[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200117201218.3745311-1-helen.koike@collabora.com>
Date: Fri, 17 Jan 2020 17:12:18 -0300
From: Helen Koike <helen.koike@...labora.com>
To: linux-media@...r.kernel.org
Cc: hverkuil-cisco@...all.nl, niklas.soderlund@...natech.se,
kernel@...labora.com, laurent.pinchart@...asonboard.com,
tfiga@...omium.org, Helen Koike <helen.koike@...labora.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: [PATCH] staging: media: rkisp1: make links immutable by default
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@...labora.com>
---
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
Powered by blists - more mailing lists