Message ID | 20160504185112.70ea985b@recife.lan (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi On 2016-05-04, Mauro Carvalho Chehab wrote: > Em Wed, 4 May 2016 13:49:52 -0700 > Linus Torvalds <torvalds@linux-foundation.org> escreveu: > > On Wed, May 4, 2016 at 12:28 PM, Stefan Lippers-Hollmann <s.l-h@gmx.de> wrote: [...] > Stefan, > > Could you please test the enclosed patch? > > Regards, > Mauro > > [media] media-device: fix builds when USB or PCI is compiled as module > > Just checking ifdef CONFIG_USB is not enough, if the USB is compiled > as module. The same applies to PCI. > > Compile-tested only. > > So, change the logic to use, instead, IS_REACHABLE. > > Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> > > diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c > index b84825715f98..8c1f80ff33e3 100644 > --- a/drivers/media/media-device.c > +++ b/drivers/media/media-device.c > @@ -842,11 +842,11 @@ struct media_device *media_device_find_devres(struct device *dev) > } > EXPORT_SYMBOL_GPL(media_device_find_devres); > > +#if IS_REACHABLE(CONFIG_PCI) > void media_device_pci_init(struct media_device *mdev, > struct pci_dev *pci_dev, > const char *name) > { > -#ifdef CONFIG_PCI > mdev->dev = &pci_dev->dev; > > if (name) > @@ -862,16 +862,16 @@ void media_device_pci_init(struct media_device *mdev, > mdev->driver_version = LINUX_VERSION_CODE; > > media_device_init(mdev); > -#endif > } > EXPORT_SYMBOL_GPL(media_device_pci_init); > +#endif > > +#if IS_REACHABLE(CONFIG_USB) > void __media_device_usb_init(struct media_device *mdev, > struct usb_device *udev, > const char *board_name, > const char *driver_name) > { > -#ifdef CONFIG_USB > mdev->dev = &udev->dev; > > if (driver_name) > @@ -891,9 +891,9 @@ void __media_device_usb_init(struct media_device *mdev, > mdev->driver_version = LINUX_VERSION_CODE; > > media_device_init(mdev); > -#endif > } > EXPORT_SYMBOL_GPL(__media_device_usb_init); > +#endif > > > #endif /* CONFIG_MEDIA_CONTROLLER */ > > This fails to build for me with: [...] Setup is 16348 bytes (padded to 16384 bytes). System is 3319 kB CRC a9178215 Kernel: arch/x86/boot/bzImage is ready (#1) ERROR: "__media_device_usb_init" [drivers/media/usb/siano/smsusb.ko] undefined! ERROR: "__media_device_usb_init" [drivers/media/usb/em28xx/em28xx.ko] undefined! ERROR: "__media_device_usb_init" [drivers/media/usb/dvb-usb/dvb-usb.ko] undefined! ERROR: "__media_device_usb_init" [drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko] undefined! ERROR: "__media_device_usb_init" [drivers/media/usb/cx231xx/cx231xx.ko] undefined! ERROR: "__media_device_usb_init" [drivers/media/usb/au0828/au0828.ko] undefined! scripts/Makefile.modpost:91: recipe for target '__modpost' failed make[6]: *** [__modpost] Error 1 Makefile:1147: recipe for target 'modules' failed [...] I've attached my gzipped kernel configs for amd64 and i386. Regards Stefan Lippers-Hollmann
diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c index b84825715f98..8c1f80ff33e3 100644 --- a/drivers/media/media-device.c +++ b/drivers/media/media-device.c @@ -842,11 +842,11 @@ struct media_device *media_device_find_devres(struct device *dev) } EXPORT_SYMBOL_GPL(media_device_find_devres); +#if IS_REACHABLE(CONFIG_PCI) void media_device_pci_init(struct media_device *mdev, struct pci_dev *pci_dev, const char *name) { -#ifdef CONFIG_PCI mdev->dev = &pci_dev->dev; if (name) @@ -862,16 +862,16 @@ void media_device_pci_init(struct media_device *mdev, mdev->driver_version = LINUX_VERSION_CODE; media_device_init(mdev); -#endif } EXPORT_SYMBOL_GPL(media_device_pci_init); +#endif +#if IS_REACHABLE(CONFIG_USB) void __media_device_usb_init(struct media_device *mdev, struct usb_device *udev, const char *board_name, const char *driver_name) { -#ifdef CONFIG_USB mdev->dev = &udev->dev; if (driver_name) @@ -891,9 +891,9 @@ void __media_device_usb_init(struct media_device *mdev, mdev->driver_version = LINUX_VERSION_CODE; media_device_init(mdev); -#endif } EXPORT_SYMBOL_GPL(__media_device_usb_init); +#endif #endif /* CONFIG_MEDIA_CONTROLLER */