diff mbox

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

Message ID 1416982792-11917-3-git-send-email-taki@igel.co.jp (mailing list archive)
State New, archived
Headers show

Commit Message

Takanari Hayama Nov. 26, 2014, 6:19 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

Sergei Shtylyov Nov. 26, 2014, 12:55 p.m. UTC | #1
Hello.

On 11/26/2014 9:19 AM, 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>
> ---
>   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..29ea28b 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))

    Inner parens not needed, especially in the first case.

>   			? 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))

    Likewise.

[...]

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Takanari Hayama Nov. 27, 2014, 1:01 a.m. UTC | #2
Hi Sergei,

On 11/26/14, 9:55 PM, Sergei Shtylyov wrote:
> Hello.
> 
> On 11/26/2014 9:19 AM, 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>
>> ---
>>   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..29ea28b 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))
> 
>    Inner parens not needed, especially in the first case.

Ok. Will fix it.

>>               ? 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))
> 
>    Likewise.

Here too. Thanks!

> [...]
> 
> WBR, Sergei

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-media" 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..29ea28b 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);