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 <helen.koike@xxxxxxxxxxxxx> >> >> --- >> 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 <niklas.soderlund@xxxxxxxxxxxx> 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 >> >