Re: [RFC/PATCH v3 06/10] media: Entities, pads and links enumeration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Hi Hans and Laurent.

I hope my thoughts help you further.

03.08.2010 12:22, Laurent Pinchart wrote:
Hi Hans,

On Monday 02 August 2010 23:01:55 Hans Verkuil wrote:
On Monday 02 August 2010 16:35:54 Laurent Pinchart wrote:
On Sunday 01 August 2010 13:58:20 Hans Verkuil wrote:
On Thursday 29 July 2010 18:06:39 Laurent Pinchart wrote:
[snip]

[snip]
It's a possibility, but it's always a bit of a hassle in an application to
work with group IDs. I wonder if there is a more elegant method.
The problem is a bit broader than just showing relationships between video
nodes and ALSA devices. We also need to show relationships between lens/flash
controllers and sensors for instance. Group IDs sound easy, but I'm open to
suggestions.

Low level example

DVB I2C bus is easy: get all I2C devices from an entity (DVB demuxer).
Some external chip (entity, the tuner) might be behind some I2C bridge device.

With I2C you need to know the characteristics, how you talk with
the destination device via the bus (extra sleeps, clock speed,
quiesce the whole bus for 50ms after talking to the slave device).
I'd like that each device would describe how it should be
talked to via the bus.

On i2c_transfer you could hide opening and closing the I2C bridge, and hide
the callbacks for extra sleeps so that the main driver and core framework code is free from such ugly details. By storing entity's special requirements inside of it, you could reuse the callbacks with another product variant.

With I2C, an array of I2C slave devices that are reachable via I2C bus would work for controlling the device
rather nicely.

Higher abstraction level

So detailed descriptions and bus knowledge is needed for controlling each entity and pad. That hierarchy is a bit different than optimal hierarchy of how the streams can flow into, within and out from the entity (the driver). Buses are the gateways for the data stream flows,
shared by two or more entities/pads by links.

Thus I'd suggest to separate these two hierarchies (initialization time hierarchy and
stream flow capability hierarchy) at necessary points, and use buses
to bind the entities/pads by links to each other.

A single wire with just two end points can also be thought like a bus.

Regards,
Marko Ristola

[ snip ]

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux