media: imx7-media-csi: Check the return value from clk_prepare_enable()
authorFabio Estevam <festevam@gmail.com>
Sat, 4 May 2019 14:40:26 +0000 (10:40 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Tue, 28 May 2019 18:19:52 +0000 (14:19 -0400)
clk_prepare_enable() may fail, so we should better check its return value
and propagate it in the case of error.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Tested-by: Rui Miguel Silva <rmfrfs@gmail.com>
Reviewed-by: Rui Miguel Silva <rmfrfs@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/staging/media/imx/imx7-media-csi.c

index 5244985..d2cb056 100644 (file)
@@ -390,17 +390,23 @@ static void imx7_csi_error_recovery(struct imx7_csi *csi)
        imx7_csi_hw_enable(csi);
 }
 
-static void imx7_csi_init(struct imx7_csi *csi)
+static int imx7_csi_init(struct imx7_csi *csi)
 {
+       int ret;
+
        if (csi->is_init)
-               return;
+               return 0;
 
-       clk_prepare_enable(csi->mclk);
+       ret = clk_prepare_enable(csi->mclk);
+       if (ret < 0)
+               return ret;
        imx7_csi_hw_reset(csi);
        imx7_csi_init_interface(csi);
        imx7_csi_dmareq_rff_enable(csi);
 
        csi->is_init = true;
+
+       return 0;
 }
 
 static void imx7_csi_deinit(struct imx7_csi *csi)
@@ -513,7 +519,7 @@ static int imx7_csi_link_setup(struct media_entity *entity,
 
 init:
        if (csi->sink || csi->src_sd)
-               imx7_csi_init(csi);
+               ret = imx7_csi_init(csi);
        else
                imx7_csi_deinit(csi);