On Wed, 7 Apr 2010, Bruno Prémont wrote: > HID_PICOLCD should depend on LCD_CLASS_DEVICE, otherwise the > build fails when HID_PICOLCD=y and LCD_CLASS_DEVICE=m: > > hid-picolcd.c:(.text+0x84523f): undefined reference to `lcd_device_unregister' > hid-picolcd.c:(.text+0x8478ab): undefined reference to `lcd_device_register' > hid-picolcd.c:(.text+0x84c15f): undefined reference to `lcd_device_unregister' > > Same applies to FB, BACKLIGHT_CLASS_DEVICE and LEDS_CLASS. > > Add suboptions for those features to handle the deps on kbuild side > and just check HID_PICOLCD_* in the code. > > Reported-by: Randy Dunlap <randy.dunlap@xxxxxxxxxx> > Signed-off-by: Bruno Prémont <bonbons@xxxxxxxxxxxxxxxxx> > --- > > On Wed, 07 April 2010 Randy Dunlap <randy.dunlap@xxxxxxxxxx> wrote: > > All of these user-visible kconfig options need help text also... > > > > Here is a better patch, with added documentation and stripped > select clauses under HID_PICOLCD as they are handled by HID_PICOLCD_FB. > > > > > drivers/hid/Kconfig | 53 +++++++++++++++++++++++++++++++++++++------- > drivers/hid/hid-picolcd.c | 40 +++++++++++++++++----------------- > 2 files changed, 64 insertions(+), 29 deletions(-) > > diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig > index a2ecd83..782a34e 100644 > --- a/drivers/hid/Kconfig > +++ b/drivers/hid/Kconfig > @@ -265,11 +265,6 @@ config HID_PETALYNX > config HID_PICOLCD > tristate "PicoLCD (graphic version)" > depends on USB_HID > - select FB_DEFERRED_IO if FB > - select FB_SYS_FILLRECT if FB > - select FB_SYS_COPYAREA if FB > - select FB_SYS_IMAGEBLIT if FB > - select FB_SYS_FOPS if FB > ---help--- > This provides support for Minibox PicoLCD devices, currently > only the graphical ones are supported. > @@ -277,14 +272,54 @@ config HID_PICOLCD > This includes support for the following device features: > - Keypad > - Switching between Firmware and Flash mode > - - Framebuffer for monochrome 256x64 display > - - Backlight control (needs CONFIG_BACKLIGHT_CLASS_DEVICE) > - - Contrast control (needs CONFIG_LCD_CLASS_DEVICE) > - - General purpose outputs (needs CONFIG_LEDS_CLASS) > - EEProm / Flash access (via debugfs) > + Features to selectively enable: > + - Framebuffer for monochrome 256x64 display > + - Backlight control > + - Contrast control > + - General purpose outputs > Features that are not (yet) supported: > - IR > > +config HID_PICOLCD_FB > + bool "Framebuffer support" > + default !EMBEDDED > + depends on HID_PICOLCD > + depends on HID_PICOLCD=FB || FB=y > + select FB_DEFERRED_IO > + select FB_SYS_FILLRECT > + select FB_SYS_COPYAREA > + select FB_SYS_IMAGEBLIT > + select FB_SYS_FOPS Could we perhaps also make the sub-choices for individual features availabel only if !EMBEDDED as well? It's probably too much to ask for a single device during oldconfig run, for example ... Thanks, -- Jiri Kosina SUSE Labs, Novell Inc. -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html