Skip to content

Commit

Permalink
[media] media: soc_camera: rcar_vin: Fix wait_for_completion
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Koji Matsuoka authored and Mauro Carvalho Chehab committed Apr 27, 2015
1 parent 2a700d8 commit 5a9b06a
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion drivers/media/platform/soc_camera/rcar_vin.c
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,8 @@
#define VIN_MAX_WIDTH 2048
#define VIN_MAX_HEIGHT 2048

#define TIMEOUT_MS 100

enum chip_id {
RCAR_GEN2,
RCAR_H1,
Expand Down Expand Up @@ -820,7 +822,10 @@ static void rcar_vin_wait_stop_streaming(struct rcar_vin_priv *priv)
if (priv->state == STOPPING) {
priv->request_to_stop = true;
spin_unlock_irq(&priv->lock);
wait_for_completion(&priv->capture_stop);
if (!wait_for_completion_timeout(
&priv->capture_stop,
msecs_to_jiffies(TIMEOUT_MS)))
priv->state = STOPPED;
spin_lock_irq(&priv->lock);
}
}
Expand Down

0 comments on commit 5a9b06a

Please sign in to comment.