diff mbox

[v2,2/2] v4l: vsp1: Always enable virtual RPF when BRU is in use

Message ID 1417051502-30169-3-git-send-email-taki@igel.co.jp (mailing list archive)
State Accepted
Delegated to: Geert Uytterhoeven
Headers show

Commit Message

Takanari Hayama Nov. 27, 2014, 1:25 a.m. UTC
Regardless of a number of inputs, we should always enable virtual RPF
when BRU is used. This allows the case when there's only one input to
BRU, and a size of the input is smaller than a size of an output of BRU.

Signed-off-by: Takanari Hayama <taki@igel.co.jp>
---
 drivers/media/platform/vsp1/vsp1_wpf.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

Comments

Laurent Pinchart Nov. 27, 2014, 8:03 p.m. UTC | #1
Hi Hayama-san,

Thank you for the patch.

On Thursday 27 November 2014 10:25:02 Takanari Hayama wrote:
> Regardless of a number of inputs, we should always enable virtual RPF
> when BRU is used. This allows the case when there's only one input to
> BRU, and a size of the input is smaller than a size of an output of BRU.
> 
> Signed-off-by: Takanari Hayama <taki@igel.co.jp>

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

I've applied the patch to my tree. I'll wait for your reply regarding my 
comments to the first patch and will then send a pull request for both.

> ---
>  drivers/media/platform/vsp1/vsp1_wpf.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/media/platform/vsp1/vsp1_wpf.c
> b/drivers/media/platform/vsp1/vsp1_wpf.c index 6e05776..cb17c4d 100644
> --- a/drivers/media/platform/vsp1/vsp1_wpf.c
> +++ b/drivers/media/platform/vsp1/vsp1_wpf.c
> @@ -92,19 +92,20 @@ static int wpf_s_stream(struct v4l2_subdev *subdev, int
> enable) return 0;
>  	}
> 
> -	/* Sources. If the pipeline has a single input configure it as the
> -	 * master layer. Otherwise configure all inputs as sub-layers and
> -	 * select the virtual RPF as the master layer.
> +	/* Sources. If the pipeline has a single input and BRU is not used,
> +	 * configure it as the master layer. Otherwise configure all
> +	 * inputs as sub-layers and select the virtual RPF as the master
> +	 * layer.
>  	 */
>  	for (i = 0; i < pipe->num_inputs; ++i) {
>  		struct vsp1_rwpf *input = pipe->inputs[i];
> 
> -		srcrpf |= pipe->num_inputs == 1
> +		srcrpf |= (!pipe->bru && pipe->num_inputs == 1)
>  			? VI6_WPF_SRCRPF_RPF_ACT_MST(input->entity.index)
> 
>  			: VI6_WPF_SRCRPF_RPF_ACT_SUB(input->entity.index);
> 
>  	}
> 
> -	if (pipe->num_inputs > 1)
> +	if (pipe->bru || pipe->num_inputs > 1)
>  		srcrpf |= VI6_WPF_SRCRPF_VIRACT_MST;
> 
>  	vsp1_wpf_write(wpf, VI6_WPF_SRCRPF, srcrpf);
Takanari Hayama Nov. 27, 2014, 11:37 p.m. UTC | #2
Hi Laurent,

On 11/28/14, 5:03 AM, Laurent Pinchart wrote:
> Hi Hayama-san,
> 
> Thank you for the patch.
> 
> On Thursday 27 November 2014 10:25:02 Takanari Hayama wrote:
>> Regardless of a number of inputs, we should always enable virtual RPF
>> when BRU is used. This allows the case when there's only one input to
>> BRU, and a size of the input is smaller than a size of an output of BRU.
>>
>> Signed-off-by: Takanari Hayama <taki@igel.co.jp>
> 
> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> 
> I've applied the patch to my tree. I'll wait for your reply regarding my 
> comments to the first patch and will then send a pull request for both.

Thank you. As I already mentioned in my other email, I'm all good with
your suggestions.

>> ---
>>  drivers/media/platform/vsp1/vsp1_wpf.c | 11 ++++++-----
>>  1 file changed, 6 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/media/platform/vsp1/vsp1_wpf.c
>> b/drivers/media/platform/vsp1/vsp1_wpf.c index 6e05776..cb17c4d 100644
>> --- a/drivers/media/platform/vsp1/vsp1_wpf.c
>> +++ b/drivers/media/platform/vsp1/vsp1_wpf.c
>> @@ -92,19 +92,20 @@ static int wpf_s_stream(struct v4l2_subdev *subdev, int
>> enable) return 0;
>>  	}
>>
>> -	/* Sources. If the pipeline has a single input configure it as the
>> -	 * master layer. Otherwise configure all inputs as sub-layers and
>> -	 * select the virtual RPF as the master layer.
>> +	/* Sources. If the pipeline has a single input and BRU is not used,
>> +	 * configure it as the master layer. Otherwise configure all
>> +	 * inputs as sub-layers and select the virtual RPF as the master
>> +	 * layer.
>>  	 */
>>  	for (i = 0; i < pipe->num_inputs; ++i) {
>>  		struct vsp1_rwpf *input = pipe->inputs[i];
>>
>> -		srcrpf |= pipe->num_inputs == 1
>> +		srcrpf |= (!pipe->bru && pipe->num_inputs == 1)
>>  			? VI6_WPF_SRCRPF_RPF_ACT_MST(input->entity.index)
>>
>>  			: VI6_WPF_SRCRPF_RPF_ACT_SUB(input->entity.index);
>>
>>  	}
>>
>> -	if (pipe->num_inputs > 1)
>> +	if (pipe->bru || pipe->num_inputs > 1)
>>  		srcrpf |= VI6_WPF_SRCRPF_VIRACT_MST;
>>
>>  	vsp1_wpf_write(wpf, VI6_WPF_SRCRPF, srcrpf);
> 

Cheers,
Takanari Hayama, Ph.D. (taki@igel.co.jp)
IGEL Co.,Ltd.
http://www.igel.co.jp/
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/media/platform/vsp1/vsp1_wpf.c b/drivers/media/platform/vsp1/vsp1_wpf.c
index 6e05776..cb17c4d 100644
--- a/drivers/media/platform/vsp1/vsp1_wpf.c
+++ b/drivers/media/platform/vsp1/vsp1_wpf.c
@@ -92,19 +92,20 @@  static int wpf_s_stream(struct v4l2_subdev *subdev, int enable)
 		return 0;
 	}
 
-	/* Sources. If the pipeline has a single input configure it as the
-	 * master layer. Otherwise configure all inputs as sub-layers and
-	 * select the virtual RPF as the master layer.
+	/* Sources. If the pipeline has a single input and BRU is not used,
+	 * configure it as the master layer. Otherwise configure all
+	 * inputs as sub-layers and select the virtual RPF as the master
+	 * layer.
 	 */
 	for (i = 0; i < pipe->num_inputs; ++i) {
 		struct vsp1_rwpf *input = pipe->inputs[i];
 
-		srcrpf |= pipe->num_inputs == 1
+		srcrpf |= (!pipe->bru && pipe->num_inputs == 1)
 			? VI6_WPF_SRCRPF_RPF_ACT_MST(input->entity.index)
 			: VI6_WPF_SRCRPF_RPF_ACT_SUB(input->entity.index);
 	}
 
-	if (pipe->num_inputs > 1)
+	if (pipe->bru || pipe->num_inputs > 1)
 		srcrpf |= VI6_WPF_SRCRPF_VIRACT_MST;
 
 	vsp1_wpf_write(wpf, VI6_WPF_SRCRPF, srcrpf);