Commit ddfb2982 authored by Fabio Estevam's avatar Fabio Estevam Committed by Mauro Carvalho Chehab
Browse files

media: imx7-media-csi: Check the return value from clk_prepare_enable()



clk_prepare_enable() may fail, so we should better check its return value
and propagate it in the case of error.

Signed-off-by: default avatarFabio Estevam <festevam@gmail.com>
Tested-by: default avatarRui Miguel Silva <rmfrfs@gmail.com>
Reviewed-by: default avatarRui Miguel Silva <rmfrfs@gmail.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 964fcacd
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -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);