Re: [PATCH mmotm] hid-picolcd: depends on LCD_CLASS_DEVICE

From: Jiri Kosina
Date: Thu Apr 08 2010 - 08:43:04 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/