The only places which make sese to allow users to enable or disable
links are:
* between sensors and isp:
So users can select which sensor should be used while streaming
* between isp and the resizers:
|
v here
rkisp1_isp:2 -> rkisp1_resizer_mainpath -> rkisp1_mainpath (capture)
\-> rkisp1_resizer_selfpath -> rkisp1_selfpath (capture)
^ here
|
So users can disable one of the capture paths when unused, to avoid
worring about matching formats.
Make the following links immutable to simplify userspace:
rkisp1_resizer_mainpath -> rkisp1_mainpath
rkisp1_resizer_selfpath -> rkisp1_selfpath
rkisp1_params -> rkisp1_isp
rkisp1_isp -> rkisp1_stats
Signed-off-by: Helen Koike <[email protected]>
---
This is the topology graph after disabling all the links with
media -r
http://col.la/rkisp1immutable
Dashed links are the only one can can be enabled/disabled, the others
are immutable.
drivers/staging/media/rkisp1/rkisp1-dev.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/media/rkisp1/rkisp1-dev.c b/drivers/staging/media/rkisp1/rkisp1-dev.c
index 558126e66465..4030d5e71af1 100644
--- a/drivers/staging/media/rkisp1/rkisp1-dev.c
+++ b/drivers/staging/media/rkisp1/rkisp1-dev.c
@@ -145,14 +145,15 @@ static int rkisp1_create_links(struct rkisp1_device *rkisp1)
flags = 0;
}
- flags = MEDIA_LNK_FL_ENABLED;
+ flags = MEDIA_LNK_FL_ENABLED | MEDIA_LNK_FL_IMMUTABLE;
/* create ISP->RSZ->CAP links */
for (i = 0; i < 2; i++) {
source = &rkisp1->isp.sd.entity;
sink = &rkisp1->resizer_devs[i].sd.entity;
ret = media_create_pad_link(source, RKISP1_ISP_PAD_SOURCE_VIDEO,
- sink, RKISP1_RSZ_PAD_SINK, flags);
+ sink, RKISP1_RSZ_PAD_SINK,
+ MEDIA_LNK_FL_ENABLED);
if (ret)
return ret;
--
2.24.0
Hi Helen,
Thanks for your work.
On 2020-01-17 17:12:18 -0300, Helen Koike wrote:
> The only places which make sese to allow users to enable or disable
> links are:
>
> * between sensors and isp:
> So users can select which sensor should be used while streaming
>
> * between isp and the resizers:
> |
> v here
> rkisp1_isp:2 -> rkisp1_resizer_mainpath -> rkisp1_mainpath (capture)
> \-> rkisp1_resizer_selfpath -> rkisp1_selfpath (capture)
> ^ here
> |
>
> So users can disable one of the capture paths when unused, to avoid
> worring about matching formats.
>
> Make the following links immutable to simplify userspace:
>
> rkisp1_resizer_mainpath -> rkisp1_mainpath
> rkisp1_resizer_selfpath -> rkisp1_selfpath
> rkisp1_params -> rkisp1_isp
> rkisp1_isp -> rkisp1_stats
>
> Signed-off-by: Helen Koike <[email protected]>
>
> ---
> This is the topology graph after disabling all the links with
> media -r
> http://col.la/rkisp1immutable
>
> Dashed links are the only one can can be enabled/disabled, the others
> are immutable.
>
> drivers/staging/media/rkisp1/rkisp1-dev.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/media/rkisp1/rkisp1-dev.c b/drivers/staging/media/rkisp1/rkisp1-dev.c
> index 558126e66465..4030d5e71af1 100644
> --- a/drivers/staging/media/rkisp1/rkisp1-dev.c
> +++ b/drivers/staging/media/rkisp1/rkisp1-dev.c
> @@ -145,14 +145,15 @@ static int rkisp1_create_links(struct rkisp1_device *rkisp1)
> flags = 0;
> }
>
> - flags = MEDIA_LNK_FL_ENABLED;
> + flags = MEDIA_LNK_FL_ENABLED | MEDIA_LNK_FL_IMMUTABLE;
>
> /* create ISP->RSZ->CAP links */
> for (i = 0; i < 2; i++) {
> source = &rkisp1->isp.sd.entity;
> sink = &rkisp1->resizer_devs[i].sd.entity;
nit: To keep with the style of the rest of the function I would set
flags here and once more bellow in the same loop.
With or without this fixed,
Reviewed-by: Niklas S?derlund <[email protected]>
> ret = media_create_pad_link(source, RKISP1_ISP_PAD_SOURCE_VIDEO,
> - sink, RKISP1_RSZ_PAD_SINK, flags);
> + sink, RKISP1_RSZ_PAD_SINK,
> + MEDIA_LNK_FL_ENABLED);
> if (ret)
> return ret;
>
> --
> 2.24.0
>
--
Regards,
Niklas S?derlund
On 1/17/20 8:36 PM, Niklas Söderlund wrote:
> Hi Helen,
>
> Thanks for your work.
>
> On 2020-01-17 17:12:18 -0300, Helen Koike wrote:
>> The only places which make sese to allow users to enable or disable
>> links are:
>>
>> * between sensors and isp:
>> So users can select which sensor should be used while streaming
>>
>> * between isp and the resizers:
>> |
>> v here
>> rkisp1_isp:2 -> rkisp1_resizer_mainpath -> rkisp1_mainpath (capture)
>> \-> rkisp1_resizer_selfpath -> rkisp1_selfpath (capture)
>> ^ here
>> |
>>
>> So users can disable one of the capture paths when unused, to avoid
>> worring about matching formats.
>>
>> Make the following links immutable to simplify userspace:
>>
>> rkisp1_resizer_mainpath -> rkisp1_mainpath
>> rkisp1_resizer_selfpath -> rkisp1_selfpath
>> rkisp1_params -> rkisp1_isp
>> rkisp1_isp -> rkisp1_stats
>>
>> Signed-off-by: Helen Koike <[email protected]>
>>
>> ---
>> This is the topology graph after disabling all the links with
>> media -r
>> http://col.la/rkisp1immutable
>>
>> Dashed links are the only one can can be enabled/disabled, the others
>> are immutable.
>>
>> drivers/staging/media/rkisp1/rkisp1-dev.c | 5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/staging/media/rkisp1/rkisp1-dev.c b/drivers/staging/media/rkisp1/rkisp1-dev.c
>> index 558126e66465..4030d5e71af1 100644
>> --- a/drivers/staging/media/rkisp1/rkisp1-dev.c
>> +++ b/drivers/staging/media/rkisp1/rkisp1-dev.c
>> @@ -145,14 +145,15 @@ static int rkisp1_create_links(struct rkisp1_device *rkisp1)
>> flags = 0;
>> }
>>
>> - flags = MEDIA_LNK_FL_ENABLED;
>> + flags = MEDIA_LNK_FL_ENABLED | MEDIA_LNK_FL_IMMUTABLE;
>>
>> /* create ISP->RSZ->CAP links */
>> for (i = 0; i < 2; i++) {
>> source = &rkisp1->isp.sd.entity;
>> sink = &rkisp1->resizer_devs[i].sd.entity;
>
> nit: To keep with the style of the rest of the function I would set
> flags here and once more bellow in the same loop.
Do you mean this: http://ix.io/27Pm ?
hmm, I don't see why to assign flags inside the loop.
the previous loop is a different case, since it sets the link
to the first sensor as enabled, but the other sensor links are disabled
(in case there are more then one link).
>
> With or without this fixed,
>
> Reviewed-by: Niklas Söderlund <[email protected]>
Thanks,
Helen
>
>> ret = media_create_pad_link(source, RKISP1_ISP_PAD_SOURCE_VIDEO,
>> - sink, RKISP1_RSZ_PAD_SINK, flags);
>> + sink, RKISP1_RSZ_PAD_SINK,
>> + MEDIA_LNK_FL_ENABLED);
>> if (ret)
>> return ret;
>>
>> --
>> 2.24.0
>>
>