From: Ivo van Doorn <ivdoorn@gmail.com>
To: "John W. Linville" <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org,
Adel Gadllah <adel.gadllah@gmail.com>,
Randy Dunlap <randy.dunlap@oracle.com>,
Fabien Crespel <fcrespel@gmail.com>, Zhu Yi <yi.zhu@intel.com>
Subject: Re: [PATCH] iwlwifi: remove input device from iwl3945
Date: Tue, 1 Jul 2008 16:13:43 +0200 [thread overview]
Message-ID: <200807011613.43501.IvDoorn@gmail.com> (raw)
In-Reply-To: <1214918580-5855-1-git-send-email-linville@tuxdriver.com>
On Tuesday 01 July 2008, John W. Linville wrote:
> I merged an early version of a patch and missed some bits included in a
> later version.
>
> http://marc.info/?l=linux-wireless&m=121481826531792&w=2
>
> I have replicated the missing bits here.
Not a problem in this or above mentioned patch, but more a comment
on rfkill handling in the iwlwifi driver.
How is the changed rfkill state of the driver reported to rfkill?
I see that the patch to remove the input device doesn't remove the
call input_report_key() by which I assume such call was never made.
This would mean rfkill support in iwlwifi has always been broken and
the entire input device wasn't used at all.
>From what I gather from the code itself is the function responsible
for changing the state iwl_rfkill_set_hw_state() but that only updates
the state, and doesn't report anything to the rfkill layer.
Ivo
> Cc: Adel Gadllah <adel.gadllah@gmail.com>
> Cc: Randy Dunlap <randy.dunlap@oracle.com>
> Cc: Ivo van Doorn <ivdoorn@gmail.com>
> Cc: Fabien Crespel <fcrespel@gmail.com>
> Cc: Zhu Yi <yi.zhu@intel.com>
> Signed-off-by: John W. Linville <linville@tuxdriver.com>
> ---
> drivers/net/wireless/iwlwifi/Kconfig | 5 +++
> drivers/net/wireless/iwlwifi/iwl-3945.h | 4 +-
> drivers/net/wireless/iwlwifi/iwl3945-base.c | 38 +-------------------------
> 3 files changed, 9 insertions(+), 38 deletions(-)
>
> diff --git a/drivers/net/wireless/iwlwifi/Kconfig b/drivers/net/wireless/iwlwifi/Kconfig
> index b628a44..82b66a3 100644
> --- a/drivers/net/wireless/iwlwifi/Kconfig
> +++ b/drivers/net/wireless/iwlwifi/Kconfig
> @@ -104,6 +104,7 @@ config IWL3945
> select IWLWIFI
> select MAC80211_LEDS if IWL3945_LEDS
> select LEDS_CLASS if IWL3945_LEDS
> + select RFKILL if IWL3945_RFKILL
> ---help---
> Select to build the driver supporting the:
>
> @@ -126,6 +127,10 @@ config IWL3945
> say M here and read <file:Documentation/kbuild/modules.txt>. The
> module will be called iwl3945.ko.
>
> +config IWL3945_RFKILL
> + bool "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 3bc2644..a604a29 100644
> --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
> +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
> @@ -8270,7 +8270,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)
> {
> @@ -8331,44 +8331,15 @@ int iwl3945_rfkill_init(struct iwl3945_priv *priv)
> priv->rfkill_mngr.rfkill->dev.class->suspend = NULL;
> priv->rfkill_mngr.rfkill->dev.class->resume = NULL;
>
> - priv->rfkill_mngr.input_dev = input_allocate_device();
> - if (!priv->rfkill_mngr.input_dev) {
> - IWL_ERROR("Unable to allocate rfkill input device.\n");
> - ret = -ENOMEM;
> - goto freed_rfkill;
> - }
> -
> - priv->rfkill_mngr.input_dev->name = priv->cfg->name;
> - priv->rfkill_mngr.input_dev->phys = wiphy_name(priv->hw->wiphy);
> - priv->rfkill_mngr.input_dev->id.bustype = BUS_HOST;
> - priv->rfkill_mngr.input_dev->id.vendor = priv->pci_dev->vendor;
> - 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);
> -
> ret = rfkill_register(priv->rfkill_mngr.rfkill);
> if (ret) {
> IWL_ERROR("Unable to register rfkill: %d\n", ret);
> - goto free_input_dev;
> - }
> -
> - 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;
> + goto freed_rfkill;
> }
>
> IWL_DEBUG_RF_KILL("RFKILL initialization complete.\n");
> return ret;
>
> -unregister_rfkill:
> - rfkill_unregister(priv->rfkill_mngr.rfkill);
> - priv->rfkill_mngr.rfkill = NULL;
> -
> -free_input_dev:
> - input_free_device(priv->rfkill_mngr.input_dev);
> - priv->rfkill_mngr.input_dev = NULL;
> -
> freed_rfkill:
> if (priv->rfkill_mngr.rfkill != NULL)
> rfkill_free(priv->rfkill_mngr.rfkill);
> @@ -8381,14 +8352,9 @@ error:
>
> void iwl3945_rfkill_unregister(struct iwl3945_priv *priv)
> {
> -
> - if (priv->rfkill_mngr.input_dev)
> - input_unregister_device(priv->rfkill_mngr.input_dev);
> -
> if (priv->rfkill_mngr.rfkill)
> rfkill_unregister(priv->rfkill_mngr.rfkill);
>
> - priv->rfkill_mngr.input_dev = NULL;
> priv->rfkill_mngr.rfkill = NULL;
> }
>
next prev parent reply other threads:[~2008-07-01 14:09 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-01 7:44 [PATCH 1/1] iwlwifi: fix error path of iwl_rfkill_init Tomas Winkler
2008-07-01 7:44 ` [PATCH 1/2] mac80211: add bar capability Tomas Winkler
2008-07-01 7:44 ` [PATCH 1/1] mac80211: fix warning: unused variable ifsta Tomas Winkler
2008-07-01 7:44 ` [PATCH 2/2] iwlwifi: request Tx of bar if necessary Tomas Winkler
2008-07-01 8:04 ` [PATCH 1/1] mac80211: fix warning: unused variable ifsta Johannes Berg
2008-07-01 8:03 ` [PATCH 1/2] mac80211: add bar capability Johannes Berg
2008-07-01 8:30 ` Tomas Winkler
2008-07-01 8:52 ` Johannes Berg
2008-07-01 9:17 ` Tomas Winkler
2008-07-01 9:41 ` [PATCH 1/1] iwlwifi: fix error path of iwl_rfkill_init Zhu, Yi
2008-07-01 13:23 ` [PATCH] iwlwifi: remove input device from iwl3945 John W. Linville
2008-07-01 14:13 ` Ivo van Doorn [this message]
2008-07-02 6:25 ` Zhu Yi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200807011613.43501.IvDoorn@gmail.com \
--to=ivdoorn@gmail.com \
--cc=adel.gadllah@gmail.com \
--cc=fcrespel@gmail.com \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=randy.dunlap@oracle.com \
--cc=yi.zhu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.