Re: [PATCH] media: ttpci: Fix build error without RC_CORE

Mauro Carvalho Chehab
2019-06-12T18:25:51Z

Em Wed, 12 Jun 2019 18:56:29 +0100
Sean Young <sean@mess.org> escreveu:

> On Wed, Jun 12, 2019 at 06:37:08AM -0300, Mauro Carvalho Chehab wrote:
> > Em Wed, 12 Jun 2019 08:42:55 +0100
> > Sean Young <sean@mess.org> escreveu:
> >
> > > On Wed, Jun 12, 2019 at 11:43:10AM +0800, YueHaibing wrote:
> > > > If RC_CORE is not set, building fails:
> > > >
> > > > drivers/media/pci/ttpci/av7110_ir.o: In function `av7110_ir_init':
> > > > av7110_ir.c:(.text+0x1b0): undefined reference to `rc_allocate_device'
> > > > av7110_ir.c:(.text+0x2c1): undefined reference to `rc_register_device'
> > > > av7110_ir.c:(.text+0x2dc): undefined reference to `rc_free_device'
> > > >
> > > > Reported-by: Hulk Robot <hulkci@huawei.com>
> > > > Fixes: 71f49a8bf5c5 ("media: ttpci: use rc-core for the IR receiver")
> > > > Signed-off-by: YueHaibing <yuehaibing@huawei.com>
> > >
> > > Thank you for spotting this and writing a patch.
> > >
> > > > ---
> > > > drivers/media/pci/ttpci/Kconfig | 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/media/pci/ttpci/Kconfig b/drivers/media/pci/ttpci/Kconfig
> > > > index d96d4fa..b705631 100644
> > > > --- a/drivers/media/pci/ttpci/Kconfig
> > > > +++ b/drivers/media/pci/ttpci/Kconfig
> > > > @@ -7,7 +7,7 @@ config DVB_AV7110
> > > > depends on DVB_CORE && PCI && I2C
> > > > select TTPCI_EEPROM
> > > > select VIDEO_SAA7146_VV
> > > > - select DVB_AV7110_IR if INPUT_EVDEV=y || INPUT_EVDEV=DVB_AV7110
> > >
> > > This says if
> > > - select DVB_AV7110_IR if INPUT_EVDEV and DVB_AV7110 are both y or m
> > > - select DVB_AV7110_IR if INPUT_EVDEV=y
> > > This exists for the case when INPUT_EVDEV=y and DVB_AV7110=m, which is fine
> > >
> > > > + select DVB_AV7110_IR if RC_CORE=DVB_AV7110 && (INPUT_EVDEV=y || INPUT_EVDEV=DVB_AV7110)
> > >
> > > That's not exactly the same. For one thing it should not longer depend on
> > > INPUT_EVDEV=y.
> > >
> > > Now if DVB_AV7110=m and RC_CORE=y is not allowed which should be (this is
> > > the case in Fedora default kernel config for example).
> >
> > My suggestion here is to stop using select here, using, instead
> > a depends on for DVB_AV7110_IR, e. g. something like (untested):
> >
> > config DVB_AV7110_IR
> > bool
> > depends on RC_CORE && DVB_AV7110
> > default DVB_AV7110

As I said, this was untested.

> Build will fail if RC_CORE=m && DVB_AV7110=y. So it should be
>
> depends on RC_CORE=y || RC_CORE = DVB_AV7110

Works for me.

That's a lot cleaner and easier to understand than what
we currently have.

Thanks,
Mauro