mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-12 00:38:55 +00:00
iwlwifi: fix build for CONFIG_INPUT=n
Fix iwlwifi so that it builds cleanly with CONFIG_INPUT=n. Also free the input device on exit. drivers/built-in.o: In function `iwl_rfkill_unregister': (.text+0xbf430): undefined reference to `input_unregister_device' drivers/built-in.o: In function `iwl_rfkill_init': (.text+0xbf51c): undefined reference to `input_allocate_device' drivers/built-in.o: In function `iwl_rfkill_init': (.text+0xbf5bf): undefined reference to `input_register_device' drivers/built-in.o: In function `iwl_rfkill_init': (.text+0xbf5e9): undefined reference to `input_free_device' net/built-in.o: In function `rfkill_disconnect': rfkill-input.c:(.text+0xe71e1): undefined reference to `input_close_device' rfkill-input.c:(.text+0xe71e9): undefined reference to `input_unregister_handle' net/built-in.o: In function `rfkill_connect': rfkill-input.c:(.text+0xe723e): undefined reference to `input_register_handle' rfkill-input.c:(.text+0xe724d): undefined reference to `input_open_device' rfkill-input.c:(.text+0xe725c): undefined reference to `input_unregister_handle' net/built-in.o: In function `rfkill_handler_init': rfkill-input.c:(.init.text+0x36ec): undefined reference to `input_register_handler' net/built-in.o: In function `rfkill_handler_exit': rfkill-input.c:(.exit.text+0x112c): undefined reference to `input_unregister_handler' make[1]: *** [.tmp_vmlinux1] Error 1 Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
428da76523
commit
b973e42eb2
@ -8,7 +8,7 @@ config IWLCORE
|
||||
select MAC80211_LEDS if IWLWIFI_LEDS
|
||||
select LEDS_CLASS if IWLWIFI_LEDS
|
||||
select RFKILL if IWLWIFI_RFKILL
|
||||
select RFKILL_INPUT if IWLWIFI_RFKILL
|
||||
select RFKILL_INPUT if (IWLWIFI_RFKILL && INPUT)
|
||||
|
||||
config IWLWIFI_LEDS
|
||||
bool
|
||||
|
@ -95,6 +95,7 @@ int iwl_rfkill_init(struct iwl_priv *priv)
|
||||
priv->rfkill_mngr.rfkill->dev.class->suspend = NULL;
|
||||
priv->rfkill_mngr.rfkill->dev.class->resume = NULL;
|
||||
|
||||
#if defined(CONFIG_RFKILL_INPUT) || defined(CONFIG_RFKILL_INPUT_MODULE)
|
||||
priv->rfkill_mngr.input_dev = input_allocate_device();
|
||||
if (!priv->rfkill_mngr.input_dev) {
|
||||
IWL_ERROR("Unable to allocate rfkill input device.\n");
|
||||
@ -109,6 +110,7 @@ int iwl_rfkill_init(struct iwl_priv *priv)
|
||||
priv->rfkill_mngr.input_dev->dev.parent = device;
|
||||
priv->rfkill_mngr.input_dev->evbit[0] = BIT(EV_KEY);
|
||||
set_bit(KEY_WLAN, priv->rfkill_mngr.input_dev->keybit);
|
||||
#endif
|
||||
|
||||
ret = rfkill_register(priv->rfkill_mngr.rfkill);
|
||||
if (ret) {
|
||||
@ -116,11 +118,13 @@ int iwl_rfkill_init(struct iwl_priv *priv)
|
||||
goto free_input_dev;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_RFKILL_INPUT) || defined(CONFIG_RFKILL_INPUT_MODULE)
|
||||
ret = input_register_device(priv->rfkill_mngr.input_dev);
|
||||
if (ret) {
|
||||
IWL_ERROR("Unable to register rfkill input device: %d\n", ret);
|
||||
goto unregister_rfkill;
|
||||
}
|
||||
#endif
|
||||
|
||||
IWL_DEBUG_RF_KILL("RFKILL initialization complete.\n");
|
||||
return ret;
|
||||
@ -130,8 +134,10 @@ unregister_rfkill:
|
||||
priv->rfkill_mngr.rfkill = NULL;
|
||||
|
||||
free_input_dev:
|
||||
#if defined(CONFIG_RFKILL_INPUT) || defined(CONFIG_RFKILL_INPUT_MODULE)
|
||||
input_free_device(priv->rfkill_mngr.input_dev);
|
||||
priv->rfkill_mngr.input_dev = NULL;
|
||||
#endif
|
||||
|
||||
freed_rfkill:
|
||||
if (priv->rfkill_mngr.rfkill != NULL)
|
||||
@ -147,13 +153,16 @@ EXPORT_SYMBOL(iwl_rfkill_init);
|
||||
void iwl_rfkill_unregister(struct iwl_priv *priv)
|
||||
{
|
||||
|
||||
#if defined(CONFIG_RFKILL_INPUT) || defined(CONFIG_RFKILL_INPUT_MODULE)
|
||||
if (priv->rfkill_mngr.input_dev)
|
||||
input_unregister_device(priv->rfkill_mngr.input_dev);
|
||||
input_free_device(priv->rfkill_mngr.input_dev);
|
||||
priv->rfkill_mngr.input_dev = NULL;
|
||||
#endif
|
||||
|
||||
if (priv->rfkill_mngr.rfkill)
|
||||
rfkill_unregister(priv->rfkill_mngr.rfkill);
|
||||
|
||||
priv->rfkill_mngr.input_dev = NULL;
|
||||
priv->rfkill_mngr.rfkill = NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(iwl_rfkill_unregister);
|
||||
|
Loading…
x
Reference in New Issue
Block a user