All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] Introduce ancillary links
@ 2022-01-30 23:58 Daniel Scally
  2022-01-30 23:58 ` [PATCH v2 1/6] media: entity: Skip non-data links in graph iteration Daniel Scally
                   ` (5 more replies)
  0 siblings, 6 replies; 18+ messages in thread
From: Daniel Scally @ 2022-01-30 23:58 UTC (permalink / raw)
  To: linux-media, libcamera-devel
  Cc: sakari.ailus, laurent.pinchart, hanlinchen, tfiga, hdegoede,
	kieran.bingham, hpa

Hello all

At present there's no means in the kernel of describing the supporting
relationship between subdevices that work together to form an effective single
unit - the type example in this case being a camera sensor and its
corresponding vcm. To attempt to solve that, this series adds a new type of
media link called MEDIA_LNK_FL_ANCILLARY_LINK, which connects two instances of
struct media_entity.

The mechanism of connection I have modelled as a notifier and async subdev,
which seemed the best route since sensor drivers already typically will call
v4l2_async_register_subdev_sensor() on probe, and that function already looks
for a reference to a firmware node with the reference named "lens-focus". To
avoid boilerplate in the sensor drivers, I added some new functions in
v4l2-async that are called in v4l2_async_match_notify() to create the ancillary
links - checking the entity.function of both notifier and subdev to make sure
that's appropriate. I haven't gone further than that yet, but I suspect we could
cut down on code elsewhere by, for example, also creating pad-to-pad links in
the same place.

Series-level changes since v1:

	- New patch adding some documentation to the uAPI pages.

Dan

Daniel Scally (6):
  media: entity: Skip non-data links in graph iteration
  media: media.h: Add new media link type
  media: docs: Add entries documenting ancillary links
  media: entity: Add link_type_name() helper
  media: entity: Add support for ancillary links
  media: v4l2-async: Create links during v4l2_async_match_notify()

 .../media/mediactl/media-controller-model.rst |  6 ++
 .../media/mediactl/media-types.rst            |  9 ++-
 drivers/media/mc/mc-entity.c                  | 46 ++++++++++++++-
 drivers/media/v4l2-core/v4l2-async.c          | 56 +++++++++++++++++++
 include/media/media-entity.h                  | 21 +++++++
 include/uapi/linux/media.h                    |  1 +
 6 files changed, 135 insertions(+), 4 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 18+ messages in thread
* Re: [PATCH v2 6/6] media: v4l2-async: Create links during v4l2_async_match_notify()
@ 2022-01-31  5:37 kernel test robot
  0 siblings, 0 replies; 18+ messages in thread
From: kernel test robot @ 2022-01-31  5:37 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 3124 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20220130235821.48076-7-djrscally@gmail.com>
References: <20220130235821.48076-7-djrscally@gmail.com>
TO: Daniel Scally <djrscally@gmail.com>
TO: linux-media(a)vger.kernel.org
TO: libcamera-devel(a)lists.libcamera.org
CC: sakari.ailus(a)linux.intel.com
CC: laurent.pinchart(a)ideasonboard.com
CC: hanlinchen(a)chromium.org
CC: tfiga(a)chromium.org
CC: hdegoede(a)redhat.com
CC: kieran.bingham(a)ideasonboard.com
CC: hpa(a)redhat.com

Hi Daniel,

I love your patch! Perhaps something to improve:

[auto build test WARNING on media-tree/master]
[also build test WARNING on v5.17-rc2 next-20220128]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Daniel-Scally/Introduce-ancillary-links/20220131-080041
base:   git://linuxtv.org/media_tree.git master
:::::: branch date: 5 hours ago
:::::: commit date: 5 hours ago
config: powerpc-randconfig-c003-20220131 (https://download.01.org/0day-ci/archive/20220131/202201311324.q8ec5kGJ-lkp(a)intel.com/config)
compiler: powerpc-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Julia Lawall <julia.lawall@lip6.fr>


cocci warnings: (new ones prefixed by >>)
>> drivers/media/v4l2-core/v4l2-async.c:294:23-30: ERROR: PTR_ERR applied after initialization to constant on line 282

vim +294 drivers/media/v4l2-core/v4l2-async.c

2cab00bb076b9f Sakari Ailus  2017-09-24  277  
8dc719a0ecab0c Daniel Scally 2022-01-30  278  static int
8dc719a0ecab0c Daniel Scally 2022-01-30  279  __v4l2_async_create_ancillary_link(struct v4l2_async_notifier *notifier,
8dc719a0ecab0c Daniel Scally 2022-01-30  280  				   struct v4l2_subdev *sd)
8dc719a0ecab0c Daniel Scally 2022-01-30  281  {
8dc719a0ecab0c Daniel Scally 2022-01-30 @282  	struct media_link *link = NULL;
8dc719a0ecab0c Daniel Scally 2022-01-30  283  
8dc719a0ecab0c Daniel Scally 2022-01-30  284  #if IS_ENABLED(CONFIG_MEDIA_CONTROLLER)
8dc719a0ecab0c Daniel Scally 2022-01-30  285  
8dc719a0ecab0c Daniel Scally 2022-01-30  286  	if (sd->entity.function != MEDIA_ENT_F_LENS &&
8dc719a0ecab0c Daniel Scally 2022-01-30  287  	    sd->entity.function != MEDIA_ENT_F_FLASH)
8dc719a0ecab0c Daniel Scally 2022-01-30  288  		return -EINVAL;
8dc719a0ecab0c Daniel Scally 2022-01-30  289  
8dc719a0ecab0c Daniel Scally 2022-01-30  290  	link = media_create_ancillary_link(&notifier->sd->entity, &sd->entity);
8dc719a0ecab0c Daniel Scally 2022-01-30  291  
8dc719a0ecab0c Daniel Scally 2022-01-30  292  #endif
8dc719a0ecab0c Daniel Scally 2022-01-30  293  
8dc719a0ecab0c Daniel Scally 2022-01-30 @294  	return IS_ERR(link) ? PTR_ERR(link) : 0;
8dc719a0ecab0c Daniel Scally 2022-01-30  295  }
8dc719a0ecab0c Daniel Scally 2022-01-30  296  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2022-02-11 11:27 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-30 23:58 [PATCH v2 0/6] Introduce ancillary links Daniel Scally
2022-01-30 23:58 ` [PATCH v2 1/6] media: entity: Skip non-data links in graph iteration Daniel Scally
2022-01-30 23:58 ` [PATCH v2 2/6] media: media.h: Add new media link type Daniel Scally
2022-02-02 23:15   ` Laurent Pinchart
2022-01-30 23:58 ` [PATCH v2 3/6] media: docs: Add entries documenting ancillary links Daniel Scally
2022-02-02 23:25   ` Laurent Pinchart
2022-01-30 23:58 ` [PATCH v2 4/6] media: entity: Add link_type_name() helper Daniel Scally
2022-01-30 23:58 ` [PATCH v2 5/6] media: entity: Add support for ancillary links Daniel Scally
2022-01-31 16:00   ` kernel test robot
2022-01-31 16:00     ` kernel test robot
2022-02-02 23:32   ` Laurent Pinchart
2022-02-02 23:32     ` Laurent Pinchart
2022-01-30 23:58 ` [PATCH v2 6/6] media: v4l2-async: Create links during v4l2_async_match_notify() Daniel Scally
2022-02-02 16:38   ` Sakari Ailus
2022-02-02 21:48     ` Daniel Scally
2022-02-10 23:51       ` Daniel Scally
2022-02-11 11:26       ` Sakari Ailus
2022-01-31  5:37 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.