On Fri, 16 Dec 2011, Scott Jiang wrote: > >> How about this implementation? I know it's not for soc, but I post it > >> to give my idea. > >> Bridge knows the layout, so it doesn't need to query the subdevice. > > > > Where from? AFAIU, we are talking here about subdevice inputs, right? In > > this case about various inputs of the TV decoder. How shall the bridge > > driver know about that? > > I have asked this question before. Laurent reply me: > > > >> ENUMINPUT as defined by V4L2 enumerates input connectors available on > > >> the board. Which inputs the board designer hooked up is something that > > >> only the top-level V4L driver will know. Subdevices do not have that > > >> information, so enuminputs is not applicable there. > > >> > > >> Of course, subdevices do have input pins and output pins, but these are > > >> assumed to be fixed. With the s_routing ops the top level driver selects > > >> which input and output pins are active. Enumeration of those inputs and > > >> outputs wouldn't gain you anything as far as I can tell since the > > >> subdevice simply does not know which inputs/outputs are actually hooked > > >> up. It's the top level driver that has that information (usually passed > > >> in through board/card info structures). Laurent, right, I now remember reading this discussion before. But I'm not sure I completely agree:-) Yes, you're right - the board decides which pins are routed to which connectors. And it has to provide this information to the driver in its platform data. But - I think, this information should be provided not to the bridge driver, but to respective subdevice drivers, because only they know what exactly those interfaces are good for and how to report them to the bridge or the user, if we decide to also export this information over the subdevice user-space API. So, I would say, the board has to tell the subdevice driver: yes, your inputs 0 and 1 are routed to external connectors. On input 1 I've put a pullup, it is connected to connector of type X over a circuit Y, clocked from your output Z, if the driver needs to know all that. And the subdev driver will just tell the bridge only what that one needs to know - number of inputs and their capabilities. Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ -- 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