Subject: Re: [Rt2400-devel] next-20080611 rt2x00: build failure

From: Ivo van Doorn <[email-masked]>
Date: Wed, 11 Jun 2008 21:03:58 +0200

On Wednesday 11 June 2008, John W. Linville wrote:
> On Wed, Jun 11, 2008 at 10:07:48AM -0700, Randy Dunlap wrote:
> > when CONFIG_INPUT=n and
> > # CONFIG_NEW_LEDS is not set
> > CONFIG_LEDS_CLASS=y
> > 
> > (full config attached)
> > 
> > vmlinux.o: In function `iwl_rfkill_unregister':
> > (.text+0x174cdc): undefined reference to `input_unregister_device'
> > vmlinux.o: In function `iwl_rfkill_init':
> > (.text+0x174d9f): undefined reference to `input_allocate_device'
> > vmlinux.o: In function `iwl_rfkill_init':
> > (.text+0x174e2d): undefined reference to `input_register_device'
> > vmlinux.o: In function `iwl_rfkill_init':
> > (.text+0x174e53): undefined reference to `input_free_device'
> > vmlinux.o: In function `rt2x00rfkill_allocate_polldev':
> > rt2x00rfkill.c:(.text+0x176dc4): undefined reference to `input_allocate_polled_device'
> > vmlinux.o: In function `rt2x00rfkill_poll':
> > rt2x00rfkill.c:(.text+0x176e8b): undefined reference to `input_event'
> > rt2x00rfkill.c:(.text+0x176e9f): undefined reference to `input_event'
> 
> <snip>
> 
> Ick, what a mess...
> 
> So what combination of depends and select of INPUT, INPUT_POLLDEV,
> and RFKILL_INPUT do we need to resolve this?

Well RFKILL_INPUT shouldn't be selected by a driver, in fact any driver that
selects or depends on RFKILL_INPUT is wrong. But selecting it only makes
matters worse since that will bypass the INPUT dependency.
When INPUT_POLLDEV is required I guess it is best to depend on INPUT and
select INPUT_POLLDEV.

iwlwifi is selecting RFKILL_INPUT and preferably they should drop the select
altogether (not replacing it with a depend), but since I am not sure about the
reason for the select

rt2x00 is selecting INPUT_POLLDEV but should depend on INPUT first (as done
in the patch in my previous mail).

b43 shouldn't really depend on RFKILL_INPUT but their Kconfig is correct and
shouldn't cause the above build failure.

Ivo