浏览代码

media: cadence: csi2rx: Fix csi2rx_start error handling

The clocks enabled by csi2rx_start function are intended to be disabled in
an error path but there are two issues:

1) the loop condition is always true and

2) the first clock disabled is the the one enabling of which failed.

Fix these two bugs by changing the loop condition as well as only disabling
the clocks that were actually enabled.

Reported-by: Mauro Chehab <mchehab@kernel.org>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Sakari Ailus 7 年之前
父节点
当前提交
28d42d2fca
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      drivers/media/platform/cadence/cdns-csi2rx.c

+ 2 - 2
drivers/media/platform/cadence/cdns-csi2rx.c

@@ -174,8 +174,8 @@ static int csi2rx_start(struct csi2rx_priv *csi2rx)
 	return 0;
 
 err_disable_pixclk:
-	for (; i >= 0; i--)
-		clk_disable_unprepare(csi2rx->pixel_clk[i]);
+	for (; i > 0; i--)
+		clk_disable_unprepare(csi2rx->pixel_clk[i - 1]);
 
 err_disable_pclk:
 	clk_disable_unprepare(csi2rx->p_clk);