On Thu, Mar 12, 2009 at 4:54 AM, Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxx> wrote: > Hi Devin, > > There's a bug on your patch series: see this: > > Those are the locations of au8522 files at Kernel's tree: > drivers/media/dvb/frontends/au8522.h > drivers/media/dvb/frontends/au8522_dig.c > drivers/media/dvb/frontends/au8522_priv.h > drivers/media/video/au8522_decoder.c > > And those are the Makefile rules for au8522.h on drivers/media/dvb/frontends/Makefile: > > au8522-objs = au8522_dig.o au8522_decoder.o > obj-$(CONFIG_DVB_AU8522) += au8522.o > > When you're compiling the out-of-tree version, everything works OK, but, for > in-tree compilation, au8522_decoder won't be compiled, since the file will be > in the wrong dir. > > If I'm understanding well, this chip has two functions: it is a dvb frontend > and an analog video/audio demodulator, right? > > One solution would be to have all those files in the same directory. However, > au8522_decoder doesn't fit well on dvb/frontends. It is also not a tuner, > otherwise common/tuners would be another better place. > > Another alternative would be to create two kconfig rules (and two separate > modules), being one for au8522_decoder and another for the frontend, since they > are, in fact, two different things. > > I suspect,however, that compiling just one or another would break compilation. > So, we need to create some sort of rules that will warrant that both modules > will be compiled at the same time. This is not an easy task, since we cannot > add "depends on", since frontends are compiled by using "select". So, we will > need to re-design the Kconfig rules to use depends on instead of select (well, > this is something good, anyway, since the usage of "select" is something that > should be avoided, according with Kbuild docs). > > I'll keep reviewing the patch series. Maybe I'll merge it, but, in this case, > I'll need to blacklist the module until we found a solution, or find a way to > allow my -git trees to compile. > > Cheers, > Mauro > Hello Mauro, Both files are required, as they share certain functions (such as the i2c transfer functions). Also, they share a common state mechanism, which is why both files end up in the same .ko file. This case is a little unique since it is the first case where we have a single chip that acts as a digital demod, an analog demod, and an analog video/audio decoder. I can certainly put the au8522_decoder.c into dvb/frontends even though this probably violates some rule about analog stuff being in the DVB section of the tree. Would that resolve your concern? I really don't want to make redesigning the KConfig rules a prerequisite to getting this rather large patch series merged. I would suggest we do what is required to get the code in (such as moving the _decoder.c to frontends), and then we can tune the solution to be something more optimal in terms of how the tree is structured. Devin -- Devin J. Heitmueller http://www.devinheitmueller.com AIM: devinheitmueller -- 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