2008-02-07 00:44:20

by Randy Dunlap

[permalink] [raw]
Subject: [PATCH -mm] apanel: fix kconfig dependencies

From: Randy Dunlap <[email protected]>

Add I2C to config since the driver makes several i2c*() calls.

Add PCI to config because the config selects I2C_I801, which depends
on PCI, but currently config* does not follow dependency chains,
so randconfig can enable INPUT_APANEL even when PCI is not enabled,
which leads to these warnings:
linux-2.6.24-mm1/drivers/i2c/busses/i2c-i801.c:641: error: implicit declaration of function 'pci_request_region'
/linux-2.6.24-mm1/drivers/i2c/busses/i2c-i801.c:681: error: implicit declaration of function 'pci_release_region'

Signed-off-by: Randy Dunlap <[email protected]>
---
drivers/input/misc/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-2.6.24-mm1.orig/drivers/input/misc/Kconfig
+++ linux-2.6.24-mm1/drivers/input/misc/Kconfig
@@ -42,7 +42,7 @@ config INPUT_M68K_BEEP

config INPUT_APANEL
tristate "Fujitsu Lifebook Application Panel buttons"
- depends on X86
+ depends on X86 && I2C && PCI
select I2C_I801
select INPUT_POLLDEV
select CHECK_SIGNATURE


2008-02-07 16:43:23

by Jean Delvare

[permalink] [raw]
Subject: Re: [PATCH -mm] apanel: fix kconfig dependencies

Hi Randy,

On Wed, 6 Feb 2008 16:27:54 -0800, Randy Dunlap wrote:
> From: Randy Dunlap <[email protected]>
>
> Add I2C to config since the driver makes several i2c*() calls.

Correct.

>
> Add PCI to config because the config selects I2C_I801, which depends
> on PCI, but currently config* does not follow dependency chains,
> so randconfig can enable INPUT_APANEL even when PCI is not enabled,
> which leads to these warnings:
> linux-2.6.24-mm1/drivers/i2c/busses/i2c-i801.c:641: error: implicit declaration of function 'pci_request_region'
> /linux-2.6.24-mm1/drivers/i2c/busses/i2c-i801.c:681: error: implicit declaration of function 'pci_release_region'

I'd rather drop the "select I2C_I801" if the config system can't handle
it properly. It's not strictly needed (not a build-time dependency), an
addition to the help text would work as well. Adding dependencies to
make our selections happy is a bit confusing and likely to cause
trouble in the future (as dependencies can change...)

>
> Signed-off-by: Randy Dunlap <[email protected]>
> ---
> drivers/input/misc/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- linux-2.6.24-mm1.orig/drivers/input/misc/Kconfig
> +++ linux-2.6.24-mm1/drivers/input/misc/Kconfig
> @@ -42,7 +42,7 @@ config INPUT_M68K_BEEP
>
> config INPUT_APANEL
> tristate "Fujitsu Lifebook Application Panel buttons"
> - depends on X86
> + depends on X86 && I2C && PCI
> select I2C_I801
> select INPUT_POLLDEV
> select CHECK_SIGNATURE


--
Jean Delvare

2008-02-07 19:05:22

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH -mm] apanel: fix kconfig dependencies

On Thu, 7 Feb 2008 17:42:51 +0100 Jean Delvare wrote:

> Hi Randy,
>
> On Wed, 6 Feb 2008 16:27:54 -0800, Randy Dunlap wrote:
> > From: Randy Dunlap <[email protected]>
> >
> > Add I2C to config since the driver makes several i2c*() calls.
>
> Correct.
>
> >
> > Add PCI to config because the config selects I2C_I801, which depends
> > on PCI, but currently config* does not follow dependency chains,
> > so randconfig can enable INPUT_APANEL even when PCI is not enabled,
> > which leads to these warnings:
> > linux-2.6.24-mm1/drivers/i2c/busses/i2c-i801.c:641: error: implicit declaration of function 'pci_request_region'
> > /linux-2.6.24-mm1/drivers/i2c/busses/i2c-i801.c:681: error: implicit declaration of function 'pci_release_region'
>
> I'd rather drop the "select I2C_I801" if the config system can't handle
> it properly. It's not strictly needed (not a build-time dependency), an
> addition to the help text would work as well. Adding dependencies to
> make our selections happy is a bit confusing and likely to cause
> trouble in the future (as dependencies can change...)

OK. What did you have in mind for the help text. I changed it
a small bit.

I also added "depends on LEDS_CLASS" since defconfig didn't have that
set, but the build failed with wanting symbols that it provides.

Updated patch:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

From: Randy Dunlap <[email protected]>

Add I2C to config since the driver makes several i2c*() calls.

Add to help text that the Intel I2C ICH (i801) driver is also needed
for this kernel.

Add LEDS_CLASS to config since the driver makes les_classdev_*() calls:
ERROR: "led_classdev_register" [drivers/input/misc/apanel.ko] undefined!
ERROR: "__led_classdev_unregister" [drivers/input/misc/apanel.ko] undefined!

Signed-off-by: Randy Dunlap <[email protected]>
---
drivers/input/misc/Kconfig | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

--- linux-2.6.24-mm1.orig/drivers/input/misc/Kconfig
+++ linux-2.6.24-mm1/drivers/input/misc/Kconfig
@@ -42,14 +42,14 @@ config INPUT_M68K_BEEP

config INPUT_APANEL
tristate "Fujitsu Lifebook Application Panel buttons"
- depends on X86
- select I2C_I801
+ depends on X86 && I2C && LEDS_CLASS
select INPUT_POLLDEV
select CHECK_SIGNATURE
help
Say Y here for support of the Application Panel buttons, used on
Fujitsu Lifebook. These are attached to the mainboard through
- an SMBus interface managed by the I2C Intel ICH (i801) driver.
+ an SMBus interface managed by the I2C Intel ICH (i801) driver,
+ which you should also build for this kernel.

To compile this driver as a module, choose M here: the module will
be called apanel.

2008-02-07 19:14:32

by Stephen Hemminger

[permalink] [raw]
Subject: Re: [PATCH -mm] apanel: fix kconfig dependencies

On Thu, 7 Feb 2008 11:04:12 -0800
Randy Dunlap <[email protected]> wrote:

> On Thu, 7 Feb 2008 17:42:51 +0100 Jean Delvare wrote:
>
> > Hi Randy,
> >
> > On Wed, 6 Feb 2008 16:27:54 -0800, Randy Dunlap wrote:
> > > From: Randy Dunlap <[email protected]>
> > >
> > > Add I2C to config since the driver makes several i2c*() calls.
> >
> > Correct.
> >
> > >
> > > Add PCI to config because the config selects I2C_I801, which depends
> > > on PCI, but currently config* does not follow dependency chains,
> > > so randconfig can enable INPUT_APANEL even when PCI is not enabled,
> > > which leads to these warnings:
> > > linux-2.6.24-mm1/drivers/i2c/busses/i2c-i801.c:641: error: implicit declaration of function 'pci_request_region'
> > > /linux-2.6.24-mm1/drivers/i2c/busses/i2c-i801.c:681: error: implicit declaration of function 'pci_release_region'
> >
> > I'd rather drop the "select I2C_I801" if the config system can't handle
> > it properly. It's not strictly needed (not a build-time dependency), an
> > addition to the help text would work as well. Adding dependencies to
> > make our selections happy is a bit confusing and likely to cause
> > trouble in the future (as dependencies can change...)
>
> OK. What did you have in mind for the help text. I changed it
> a small bit.
>
> I also added "depends on LEDS_CLASS" since defconfig didn't have that
> set, but the build failed with wanting symbols that it provides.
>
> Updated patch:
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> From: Randy Dunlap <[email protected]>
>
> Add I2C to config since the driver makes several i2c*() calls.
>
> Add to help text that the Intel I2C ICH (i801) driver is also needed
> for this kernel.
>
> Add LEDS_CLASS to config since the driver makes les_classdev_*() calls:
> ERROR: "led_classdev_register" [drivers/input/misc/apanel.ko] undefined!
> ERROR: "__led_classdev_unregister" [drivers/input/misc/apanel.ko] undefined!
>
> Signed-off-by: Randy Dunlap <[email protected]>


On a related note, Ubuntu puts the i2c_i801 module in /etc/modprobe.d/blacklist.
To get the apanel to work, this must be removed, but that is a distro bug.

--
Stephen Hemminger <[email protected]>

2008-02-07 21:47:39

by Jean Delvare

[permalink] [raw]
Subject: Re: [PATCH -mm] apanel: fix kconfig dependencies

Hi Randy,

On Thu, 7 Feb 2008 11:04:12 -0800, Randy Dunlap wrote:
> OK. What did you have in mind for the help text. I changed it
> a small bit.
>
> I also added "depends on LEDS_CLASS" since defconfig didn't have that
> set, but the build failed with wanting symbols that it provides.
>
> Updated patch:
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> From: Randy Dunlap <[email protected]>
>
> Add I2C to config since the driver makes several i2c*() calls.
>
> Add to help text that the Intel I2C ICH (i801) driver is also needed
> for this kernel.
>
> Add LEDS_CLASS to config since the driver makes les_classdev_*() calls:
> ERROR: "led_classdev_register" [drivers/input/misc/apanel.ko] undefined!
> ERROR: "__led_classdev_unregister" [drivers/input/misc/apanel.ko] undefined!
>
> Signed-off-by: Randy Dunlap <[email protected]>
> ---
> drivers/input/misc/Kconfig | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> --- linux-2.6.24-mm1.orig/drivers/input/misc/Kconfig
> +++ linux-2.6.24-mm1/drivers/input/misc/Kconfig
> @@ -42,14 +42,14 @@ config INPUT_M68K_BEEP
>
> config INPUT_APANEL
> tristate "Fujitsu Lifebook Application Panel buttons"
> - depends on X86
> - select I2C_I801
> + depends on X86 && I2C && LEDS_CLASS
> select INPUT_POLLDEV
> select CHECK_SIGNATURE
> help
> Say Y here for support of the Application Panel buttons, used on
> Fujitsu Lifebook. These are attached to the mainboard through
> - an SMBus interface managed by the I2C Intel ICH (i801) driver.
> + an SMBus interface managed by the I2C Intel ICH (i801) driver,
> + which you should also build for this kernel.
>
> To compile this driver as a module, choose M here: the module will
> be called apanel.

Yeah, looks OK to me.

Acked-by: Jean Delvare <[email protected]>

--
Jean Delvare