Messages in this thread | | | From | Bartlomiej Zolnierkiewicz <> | Subject | Re: [PATCH v2] omapfb: dss: Handle return error in dss_init_ports. | Date | Thu, 09 Feb 2017 12:22:52 +0100 |
| |
Hi,
On Thursday, February 09, 2017 03:28:01 PM Arvind Yadav wrote: > Here, dss_init_ports is not handling return error form > dpi_init_port and sdi_init_port. Now dss_init_ports is returning > always 0. And it's making below code as a dead code. > > static int dss_bind(struct device *dev) > { > . > . > r = dss_init_ports(pdev); //dss_init_ports will return always 0 > if (r)// This condition will always false > goto err_init_ports; //Dead Code > . > . > } > > This change is to handle return error from dpi_init_port and > sdi_init_port. Also, It will remove dead code from function 'dss_bind'. > > Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> > ---
Please include version history here when submitting new versions.
> drivers/video/fbdev/omap2/omapfb/dss/dss.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/video/fbdev/omap2/omapfb/dss/dss.c b/drivers/video/fbdev/omap2/omapfb/dss/dss.c > index 47d7f69..87eb10c 100644 > --- a/drivers/video/fbdev/omap2/omapfb/dss/dss.c > +++ b/drivers/video/fbdev/omap2/omapfb/dss/dss.c > @@ -946,6 +946,7 @@ static int dss_init_ports(struct platform_device *pdev) > struct device_node *parent = pdev->dev.of_node; > struct device_node *port; > int r; > + int ret = 0; > > if (parent == NULL) > return 0; > @@ -972,17 +973,20 @@ static int dss_init_ports(struct platform_device *pdev) > > switch (port_type) { > case OMAP_DISPLAY_TYPE_DPI: > - dpi_init_port(pdev, port); > + ret = dpi_init_port(pdev, port); > break; > case OMAP_DISPLAY_TYPE_SDI: > - sdi_init_port(pdev, port); > + ret = sdi_init_port(pdev, port); > break; > default: > break; > } > } while ((port = omapdss_of_get_next_port(parent, port)) != NULL);
What about the other issue raised by me?
Shouldn't initialization be stopped after first failure?
i.e.:
} while (!ret && (port = omapdss_of_get_next_port(parent, port)) != NULL);
Otherwise it is possible to return a success in case when - initialization of the first port fails - initialization of the second port is successful > - return 0; > + if (ret) > + dss_uninit_ports(pdev); > + > + return ret; > } > > static void dss_uninit_ports(struct platform_device *pdev)
Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics
| |