On 12/06/18 12:48, Ezequiel Garcia wrote: > As discussed on IRC, memory-to-memory need to be modeled > properly in order to be supported by the media controller > framework, and thus to support the Request API. > > This RFC is a first draft on the memory-to-memory > media controller topology. > > The topology looks like this: > > Device topology > - entity 1: input (1 pad, 1 link) > type Node subtype Unknown flags 0 > pad0: Source > -> "proc":1 [ENABLED,IMMUTABLE] > > - entity 3: proc (2 pads, 2 links) > type Node subtype Unknown flags 0 > pad0: Source > -> "output":0 [ENABLED,IMMUTABLE] > pad1: Sink > <- "input":0 [ENABLED,IMMUTABLE] > > - entity 6: output (1 pad, 1 link) > type Node subtype Unknown flags 0 > pad0: Sink > <- "proc":0 [ENABLED,IMMUTABLE] > > The first commit introduces a register/unregister API, > that creates/destroys all the entities and pads needed, > and links them. > > The second commit uses this API to support the vim2m driver. > > Notes > ----- > > * A new device node type is introduced VFL_TYPE_MEM2MEM, > this is mostly done so the video4linux core doesn't > try to register other media controller entities. There is no need for this. You can check if vfl_dir == VFL_DIR_M2M instead. I'd rather not add a new VFL_TYPE. Regards, Hans > > * Also, a new media entity type is introduced. Memory-to-memory > devices have a multi-entity description and so can't > be simply embedded in other structs, or cast from other structs. > > Ezequiel Garcia (1): > media: add helpers for memory-to-memory media controller > > Hans Verkuil (1): > vim2m: add media device > > drivers/media/platform/vim2m.c | 41 ++++++- > drivers/media/v4l2-core/v4l2-dev.c | 23 ++-- > drivers/media/v4l2-core/v4l2-mem2mem.c | 157 +++++++++++++++++++++++++ > include/media/media-entity.h | 4 + > include/media/v4l2-dev.h | 2 + > include/media/v4l2-mem2mem.h | 5 + > include/uapi/linux/media.h | 2 + > 7 files changed, 222 insertions(+), 12 deletions(-) >