On Sun May 27 2012 22:15:08 Mauro Carvalho Chehab wrote: > Em 27-05-2012 15:47, Andy Walls escreveu: > > Hans Verkuil <hverkuil@xxxxxxxxx> wrote: > > > >> On Sun May 27 2012 19:13:38 Mauro Carvalho Chehab wrote: > >>> Em 27-05-2012 13:56, Mauro Carvalho Chehab escreveu: > >>>> The Kconfig building system is improperly selecting some drivers, > >>>> like analog TV tuners even when this is not required. > >>>> > >>>> Rearrange the Kconfig in a way to prevent that. > >>>> > >>>> Mauro Carvalho Chehab (3): > >>>> media: reorganize the main Kconfig items > >>>> media: Remove VIDEO_MEDIA Kconfig option > >>>> media: only show V4L devices based on device type selection > >>>> > >>>> drivers/media/Kconfig | 114 > >> +++++++++++++++++++++++------------ > >>>> drivers/media/common/tuners/Kconfig | 64 ++++++++++---------- > >>>> drivers/media/dvb/frontends/Kconfig | 1 + > >>>> drivers/media/radio/Kconfig | 1 + > >>>> drivers/media/rc/Kconfig | 29 ++++----- > >>>> drivers/media/video/Kconfig | 76 +++++++++++++++++------ > >>>> drivers/media/video/m5mols/Kconfig | 1 + > >>>> drivers/media/video/pvrusb2/Kconfig | 1 - > >>>> drivers/media/video/smiapp/Kconfig | 1 + > >>>> 9 files changed, 181 insertions(+), 107 deletions(-) > >>>> > >>> > >>> The organization between DVB only, V4L only and hybrid devices are > >> somewhat > >>> confusing on our tree. From time to time, someone proposes changing > >> one driver > >>> from one place to another or complains that "his device is DVB only > >> but it is > >>> inside the V4L tree" (and other similar requests). This sometimes > >> happen because > >>> the same driver can support analog only, digital only or hybrid > >> devices. > >>> > >>> Also, one driver may start as a DVB only or as a V4L only and then > >>> it can be latter be converted into an hybrid driver. > >>> > >>> So, the better is to rearrange the drivers tree, in order to fix this > >> issue, > >>> removing them from /video and /dvb, and storing them on a better > >> place. > >>> > >>> So, my proposal is to move all radio, analog TV, digital TV, webcams > >> and grabber > >>> bridge drivers to this arrangement: > >>> > >>> drivers/media/isa - ISA drivers > >>> drivers/media/usb - USB drivers > >>> drivers/media/pci - PCI/PCIe drivers > >>> drivers/media/platform - platform drivers > >> > >> drivers/media/parport > >> drivers/media/i2c > >> > >> Also, if we do this then I would really like to separate the sub-device > >> drivers > >>from the main drivers. I find it very messy that those are mixed. > >> > >> So: drivers/media/subdevs > >> > >> We might subdivide /subdevs even further (sensors, encoders, decoders, > >> etc.) but > >> I am not sure if that is worthwhile. > >> > >> Frankly, the current directory structure (other than the lack of a > >> subdevs > >> directory) doesn't bother me. But your proposal is a bit cleaner. > >> > >> Regards, > >> > >> Hans > >> > >>> > >>> Comments? > >>> > >>> Regards, > >>> Mauro > >>> > >>> - > >>> > >>> PS.: for now, I don't intend to touch at I2C/ancillary drivers. We > >> may latter move > >>> the i2c drivers that aren't frontend/tuners to media/i2c or to > >> media/common. > >>> -- > >>> 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 > >>> > >> -- > >> 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 > > > > Also > > > > cx2341x and tveeprom > > cx2341x is a sub-device module. So, it can go to drivers/media/subdevs > (ok, it has other problems, but solving them is not as simple as moving > things from one place to the other - so let's not mix it here). It's not a subdev. It's a helper module, so it should go to common (or 'helpers'). > The case of tveeprom is different, because it is not really a sub-device. > > Btw, this file is bad named - it should be called hauppauge-eeprom or > something like that. Yet, I wouldn't move it out of drivers/media/video > (or at least on this first step). > > There are other similar cases. for example, btcx-risc is a common module > used by both cx88 and bttv drivers to handle the RISC processor that > exists on both. This is not a sub-device, so it won't fit on the above > structure. . > > Maybe we can create a drivers/media/v4l2-core and move everything that > belongs to the core into it, and the things that won't fit elsewhere > can be moved into drivers/media/common. Ack. > I would also move tuner, dvb-core and frontend to an upper level: > > So, in summary, the final structure would be: > > drivers/media > /common - drivers that are "common" to several ones, like tveeprom and btcx-risc And saa7146 sources in /common/saa7146. That will (finally!) make sense. What can go in here: - saa7146 - tveeprom - cx2341x - btcx-risc - radio-isa - smiapp-pll (?) We should probably also try and get tea575x-tuner.c in here. But that can be done in a separate step. > /dvb-core - what is already at dvb/dvb-core > /frontends - what is already at dvb/frontends > /isa - all ISA drivers > /parport - all parallel port drivers I propose to replace /parport with a /others directory for things of which we have only a very few (parport, i2c) or are hard to classify (si470x, vivi, mem2mem_testdev). > /pci - all PCI/PCIe drivers > /platform - all platform drivers > /subdevice - all sub-device drivers Either /subdevices or /subdevs. It should definitely be plural. > /tuner - what's currently at common/tuners Ditto: /tuners > /usb - all USB drivers > /v4l2-core - V4L2 core /media-core for the media*.c sources. > > After doing that, the Kconfig options at isa, parport, pci, platform and usb > can be optimized further, based on the media support "filters": > > <m> Multimedia support ---> > [ ] Webcams and video grabbers support > [ ] Analog TV support > [ ] Digital TV support > [ ] AM/FM radio receivers/transmitters support > [ ] Remote Controller support One thing wasn't clear to me: if I have a hybrid device I gathered that it be enabled only if both analog and digital are set, right? But is that also true for radio and RC support? So if I have a card with all of the above, will it be enabled only if I check all four items? That doesn't really make sense to me. I think the average end-user just cares about the hardware that he wants to enable, and if a hybrid device is selected, then that should select all the various core configs that it needs. Not the other way around. Another thing: I would move 'video grabber' away from webcams and to 'Analog TV/Video support'. And rename 'Digital TV' to 'Digital TV/Video' as well. A video grabber driver has much more to do with TV then it does with webcams. But basically I would do away with filters altogether and just present a menu with bus type (usb/pci/platform/isa/others) and subdivide each bus either by captions: *** Webcams *** *** Analog TV/Video Capture *** or corresponding submenus. This could be decided based on the number of devices in each category. Regards, Hans -- 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