On Fri, Jun 27, 2008 at 12:15 AM, Ivo van Doorn <ivdoorn@xxxxxxxxx> wrote: >> diff --git a/drivers/net/wireless/iwlwifi/Kconfig >> b/drivers/net/wireless/iwlwifi/Kconfig >> index a382c00..3148a28 100644 >> --- a/drivers/net/wireless/iwlwifi/Kconfig >> +++ b/drivers/net/wireless/iwlwifi/Kconfig >> @@ -105,6 +105,7 @@ config IWL3945 >> select IWLWIFI >> select MAC80211_LEDS if IWL3945_LEDS >> select LEDS_CLASS if IWL3945_LEDS >> + select RFKILL_INPUT if (IWL3945_RFKILL && INPUT) > > That is a big no. Drivers should only use CONFIG_RFKILL and in no way > depend or select RFKILL_INPUT. RFKILL_INPUT is a decision for the user > and doesn't change anything for drivers. v2 is attached it removed the CONFIG_RFKILL_INPUT stuff and made it depend on CONFIG_RFKILL. That means that the 4965 patch needs to be updated/fixed too. ------ This patch fixes the iwl3945 driver to depend on CONFIG_RFKILL and CONFIG_INPUT when RFKILL is used. It removes the dependency on CONFIG_IWLCORE and frees the input device on exit. Signed-off-by: Adel Gadllah <adel.gadllah@xxxxxxxxx> diff --git a/drivers/net/wireless/iwlwifi/Kconfig b/drivers/net/wireless/iwlwifi/Kconfig index a382c00..c7fd8aa 100644 --- a/drivers/net/wireless/iwlwifi/Kconfig +++ b/drivers/net/wireless/iwlwifi/Kconfig @@ -105,6 +105,8 @@ config IWL3945 select IWLWIFI select MAC80211_LEDS if IWL3945_LEDS select LEDS_CLASS if IWL3945_LEDS + select RFKILL if IWL3945_RFKILL + select INPUT if IWL3945_RFKILL ---help--- Select to build the driver supporting the: @@ -127,6 +129,10 @@ config IWL3945 say M here and read <file:Documentation/kbuild/modules.txt>. The module will be called iwl3945.ko. +config IWL3945_RFKILL + boolean "Enable RF kill support in iwl3945 drivers" + depends on IWL3945 + config IWL3945_SPECTRUM_MEASUREMENT bool "Enable Spectrum Measurement in iwl3945 drivers" depends on IWL3945 diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.h b/drivers/net/wireless/iwlwifi/iwl-3945.h index a774978..4df42ad 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.h +++ b/drivers/net/wireless/iwlwifi/iwl-3945.h @@ -690,7 +690,7 @@ enum { #endif -#ifdef CONFIG_IWLWIFI_RFKILL +#ifdef CONFIG_IWL3945_RFKILL struct iwl3945_priv; struct iwl3945_rfkill_mngr { @@ -800,7 +800,7 @@ struct iwl3945_priv { struct iwl3945_init_alive_resp card_alive_init; struct iwl3945_alive_resp card_alive; -#ifdef CONFIG_IWLWIFI_RFKILL +#ifdef CONFIG_IWL3945_RFKILL struct iwl3945_rfkill_mngr rfkill_mngr; #endif diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index 43cb8ff..e12baaa 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c @@ -8282,7 +8282,7 @@ static int iwl3945_pci_resume(struct pci_dev *pdev) #endif /* CONFIG_PM */ /*************** RFKILL FUNCTIONS **********/ -#ifdef CONFIG_IWLWIFI_RFKILL +#ifdef CONFIG_IWL3945_RFKILL /* software rf-kill from user */ static int iwl3945_rfkill_soft_rf_kill(void *data, enum rfkill_state state) { @@ -8391,8 +8391,11 @@ error: void iwl3945_rfkill_unregister(struct iwl3945_priv *priv) { - if (priv->rfkill_mngr.input_dev) + if (priv->rfkill_mngr.input_dev) { input_unregister_device(priv->rfkill_mngr.input_dev); + input_free_device(priv->rfkill_mngr.input_dev); + } + if (priv->rfkill_mngr.rfkill) rfkill_unregister(priv->rfkill_mngr.rfkill); -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html