Re: [PATCH/RFC] media: soc_camera: rcar_vin: Fix wait_for_completion

2015-03-16 Thread Yoshihiro Kaneko
Hi,

2015-03-15 23:46 GMT+09:00 Guennadi Liakhovetski :
> Hi,
>
> Thanks for the patch.
>
> On Sun, 15 Mar 2015, Yoshihiro Kaneko wrote:
>
>> From: Koji Matsuoka 
>>
>> 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 
>> Signed-off-by: Yoshihiro Kaneko 
>> ---
>>
>> This patch is against master branch of linuxtv.org/media_tree.git.
>>
>>  drivers/media/platform/soc_camera/rcar_vin.c | 6 ++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/media/platform/soc_camera/rcar_vin.c 
>> b/drivers/media/platform/soc_camera/rcar_vin.c
>> index 279ab9f..ff0359b 100644
>> --- a/drivers/media/platform/soc_camera/rcar_vin.c
>> +++ b/drivers/media/platform/soc_camera/rcar_vin.c
>> @@ -135,6 +135,8 @@
>>  #define VIN_MAX_WIDTH2048
>>  #define VIN_MAX_HEIGHT   2048
>>
>> +#define TIMEOUT_MS   100
>> +
>>  enum chip_id {
>>   RCAR_GEN2,
>>   RCAR_H1,
>> @@ -821,6 +823,10 @@ static void rcar_vin_wait_stop_streaming(struct 
>> rcar_vin_priv *priv)
>>   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;
>
> You forgot to remove the original wait_for_completion().

Oops, my bad.

Thanks,
Kaneko

>
> Thanks
> Guennadi
>
>>   spin_lock_irq(&priv->lock);
>>   }
>>   }
>> --
>> 1.9.1
>>
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH/RFC] media: soc_camera: rcar_vin: Fix wait_for_completion

2015-03-15 Thread Sergei Shtylyov

Hello.

On 03/15/2015 05:39 PM, Yoshihiro Kaneko wrote:


From: Koji Matsuoka 



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 
Signed-off-by: Yoshihiro Kaneko 
---


[...]


diff --git a/drivers/media/platform/soc_camera/rcar_vin.c 
b/drivers/media/platform/soc_camera/rcar_vin.c
index 279ab9f..ff0359b 100644
--- a/drivers/media/platform/soc_camera/rcar_vin.c
+++ b/drivers/media/platform/soc_camera/rcar_vin.c

[...]

@@ -821,6 +823,10 @@ static void rcar_vin_wait_stop_streaming(struct 
rcar_vin_priv *priv)
priv->request_to_stop = true;
spin_unlock_irq(&priv->lock);
wait_for_completion(&priv->capture_stop);


   You forgot to remove this line, as already noted.


+   if (!wait_for_completion_timeout(
+   &priv->capture_stop,
+   msecs_to_jiffies(TIMEOUT_MS)))


   Please indent the above 2 lines more to the right, so that they're easier 
on the eyes with the following line.



+   priv->state = STOPPED;
spin_lock_irq(&priv->lock);
}
}


WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH/RFC] media: soc_camera: rcar_vin: Fix wait_for_completion

2015-03-15 Thread Guennadi Liakhovetski
Hi,

Thanks for the patch.

On Sun, 15 Mar 2015, Yoshihiro Kaneko wrote:

> From: Koji Matsuoka 
> 
> 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 
> Signed-off-by: Yoshihiro Kaneko 
> ---
> 
> This patch is against master branch of linuxtv.org/media_tree.git.
> 
>  drivers/media/platform/soc_camera/rcar_vin.c | 6 ++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/media/platform/soc_camera/rcar_vin.c 
> b/drivers/media/platform/soc_camera/rcar_vin.c
> index 279ab9f..ff0359b 100644
> --- a/drivers/media/platform/soc_camera/rcar_vin.c
> +++ b/drivers/media/platform/soc_camera/rcar_vin.c
> @@ -135,6 +135,8 @@
>  #define VIN_MAX_WIDTH2048
>  #define VIN_MAX_HEIGHT   2048
>  
> +#define TIMEOUT_MS   100
> +
>  enum chip_id {
>   RCAR_GEN2,
>   RCAR_H1,
> @@ -821,6 +823,10 @@ static void rcar_vin_wait_stop_streaming(struct 
> rcar_vin_priv *priv)
>   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;

You forgot to remove the original wait_for_completion().

Thanks
Guennadi

>   spin_lock_irq(&priv->lock);
>   }
>   }
> -- 
> 1.9.1
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html