Skip to content

Commit 5a9b06a

Browse files
KojiMatsuokamchehab
authored andcommitted
[media] media: soc_camera: rcar_vin: Fix wait_for_completion
When stopping abnormally, a driver can't return from wait_for_completion. This patch resolved this problem by changing wait_for_completion_timeout from wait_for_completion. Signed-off-by: Koji Matsuoka <koji.matsuoka.xm@renesas.com> Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
1 parent 2a700d8 commit 5a9b06a

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

drivers/media/platform/soc_camera/rcar_vin.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@
135135
#define VIN_MAX_WIDTH 2048
136136
#define VIN_MAX_HEIGHT 2048
137137

138+
#define TIMEOUT_MS 100
139+
138140
enum chip_id {
139141
RCAR_GEN2,
140142
RCAR_H1,
@@ -820,7 +822,10 @@ static void rcar_vin_wait_stop_streaming(struct rcar_vin_priv *priv)
820822
if (priv->state == STOPPING) {
821823
priv->request_to_stop = true;
822824
spin_unlock_irq(&priv->lock);
823-
wait_for_completion(&priv->capture_stop);
825+
if (!wait_for_completion_timeout(
826+
&priv->capture_stop,
827+
msecs_to_jiffies(TIMEOUT_MS)))
828+
priv->state = STOPPED;
824829
spin_lock_irq(&priv->lock);
825830
}
826831
}

0 commit comments

Comments
 (0)