Hi Fabio, thank you for the patch. Am Samstag, den 17.01.2015, 19:49 -0200 schrieb Fabio Estevam: > From: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx> > > In the case of errors we should propagate them. > > Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx> > --- > Changes since v1: > - Fixed a typo on my FSL address > > drivers/gpu/drm/imx/imx-tve.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/imx/imx-tve.c b/drivers/gpu/drm/imx/imx-tve.c > index a729f4f7..a281723 100644 > --- a/drivers/gpu/drm/imx/imx-tve.c > +++ b/drivers/gpu/drm/imx/imx-tve.c > @@ -191,10 +191,18 @@ static int tve_setup_vga(struct imx_tve *tve) > /* set gain to (1 + 10/128) to provide 0.7V peak-to-peak amplitude */ > ret = regmap_update_bits(tve->regmap, TVE_TVDAC0_CONT_REG, > TVE_TVDAC_GAIN_MASK, 0x0a); > + if (ret) > + return ret; > + > ret = regmap_update_bits(tve->regmap, TVE_TVDAC1_CONT_REG, > TVE_TVDAC_GAIN_MASK, 0x0a); > + if (ret) > + return ret; > + > ret = regmap_update_bits(tve->regmap, TVE_TVDAC2_CONT_REG, > TVE_TVDAC_GAIN_MASK, 0x0a); > + if (ret) > + return ret; > > /* set configuration register */ > mask = TVE_DATA_SOURCE_MASK | TVE_INP_VIDEO_FORM; Oh yes. I think the idea here was that if any regmap_* call fails, all of them should fail, and since the return value of tve_setup_vga is not checked, the proper return value was not a concern. > @@ -210,10 +218,8 @@ static int tve_setup_vga(struct imx_tve *tve) > } > > /* set test mode (as documented) */ > - ret = regmap_update_bits(tve->regmap, TVE_TST_MODE_REG, > + return regmap_update_bits(tve->regmap, TVE_TST_MODE_REG, > TVE_TVDAC_TEST_MODE_MASK, 1); > - > - return 0; > } > > static enum drm_connector_status imx_tve_connector_detect( > @@ -671,6 +677,8 @@ static int imx_tve_bind(struct device *dev, struct device *master, void *data) > > /* disable cable detection for VGA mode */ > ret = regmap_write(tve->regmap, TVE_CD_CONT_REG, 0); > + if (ret) > + return ret; > > ret = imx_tve_register(drm, tve); > if (ret) How about adding the following change: -----8<----- diff --git a/drivers/gpu/drm/imx/imx-tve.c b/drivers/gpu/drm/imx/imx-tve.c index ad77a11..76a4509 100644 --- a/drivers/gpu/drm/imx/imx-tve.c +++ b/drivers/gpu/drm/imx/imx-tve.c @@ -212,10 +212,8 @@ static int tve_setup_vga(struct imx_tve *tve) mask |= TVE_TV_OUT_MODE_MASK | TVE_SYNC_CH_0_EN; val |= TVE_TV_OUT_RGB | TVE_SYNC_CH_0_EN; ret = regmap_update_bits(tve->regmap, TVE_COM_CONF_REG, mask, val); - if (ret < 0) { - dev_err(tve->dev, "failed to set configuration: %d\n", ret); + if (ret) return ret; - } /* set test mode (as documented) */ return regmap_update_bits(tve->regmap, TVE_TST_MODE_REG, @@ -341,9 +339,11 @@ static void imx_tve_encoder_mode_set(struct drm_encoder *encoder, } if (tve->mode == TVE_MODE_VGA) - tve_setup_vga(tve); + ret = tve_setup_vga(tve); else - tve_setup_tvout(tve); + ret = tve_setup_tvout(tve); + if (ret) + dev_err(tve->dev, "failed to set configuration: %d\n", ret); } static void imx_tve_encoder_commit(struct drm_encoder *encoder) -- 2.1.4 ----->8----- regards Philipp _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel