From: Richard Farina <sidhayn@gmail.com>
To: Sujith <m.sujith@gmail.com>
Cc: wireless <linux-wireless@vger.kernel.org>
Subject: Re: ath9k_htc oddity
Date: Mon, 11 Apr 2011 10:36:35 -0400 [thread overview]
Message-ID: <4DA311F3.6010007@gmail.com> (raw)
In-Reply-To: <19871.62035.829719.402615@gargle.gargle.HOWL>
On 04/09/11 01:44, Sujith wrote:
> Richard Farina wrote:
>> I've been using the ethool -i output a lot recently and have been very
>> much enjoying it, however I've noticed some oddity. My ath9k_htc card,
>> Ubiquiti Wifistation-EXT, doesn't have good output while using
>> compat-wireless stable 2.6.39-rc1.
>>
>> flea scripts # ethtool -i wlan15
>> driver: usb
>> version: 2.6.37-pentoo-r6-grsec
>> firmware-version: N/A
>> bus-info: 2-5
>>
>>
>> Not only is the driver listed incorrectly, but the firmware-version is
>> not listed at all. Is it just me?
> The driver name/bus-info is wrong because the wrong device pointer is used
> when registering the wireless device.
>
> The firmware version is N/A because, well, the FW has no version. :)
>
> I have a patch queued up and ethtool show this now:
> (This requires a FW update ...)
>
> sujith@atheros-dev ~ $ ethtool -i wlan0
> driver: ath9k_htc
> version: 2.6.39-rc2-wl
> firmware-version: 1.0
> bus-info: 1-3:1.0
The following commit causes extreme sadness:
[ 4094.241243] usb 2-5: new high speed USB device using ehci_hcd and
address 3
[ 4095.550452] usb 2-5: ath9k_htc: Transferred FW: ar9271.fw, size: 51312
[ 4095.816072] ath9k_htc 2-5:1.0: ath9k_htc: HTC initialized with 33 credits
[ 4159.812888] usb 2-5: USB disconnect, address 3
[ 4159.929317] ath: Couldn't reset chip
[ 4159.929321] ath: Unable to initialize hardware; initialization status: -5
[ 4159.929323] ath: Unable to initialize hardware; initialization status: -5
[ 4159.929340] Failed to initialize the device
[ 4160.012603] ath9k_htc: probe of 2-5:1.0 failed with error -22
[ 4160.012771] usbcore: registered new interface driver ath9k_htc
[ 4163.595059] usb 2-5: new high speed USB device using ehci_hcd and
address 4
[ 4164.018920] usb 2-5: ath9k_htc: Transferred FW: ar9271.fw, size: 51312
[ 4164.284420] ath9k_htc 2-5:1.0: ath9k_htc: HTC initialized with 33 credits
I'm guessing because I need the mentioned firmware update? Where can I
get it? Or better yet can you (this is almost laughable considering the
ralink thread right now) get it into linux-firmware? Or is the needed
firmware update an unstable thing?
Either way I can wait on the firmware-version fix but where can I find
the patch that shows fixes the "driver: usb" issue? Your obviously shows
properly :-)
Thanks,
Rick Farina
> commit d3ce084bd9ce550d80fc0e92dd91393ca02d3429
> Author: Sujith Manoharan<Sujith.Manoharan@atheros.com>
> Date: Wed Apr 6 09:23:50 2011 +0530
>
> ath9k_htc: Add a WMI command to get the firmware version
>
> Also, update the wiphy information and use the correct
> device pointer when registering. This would fix ethtool.
>
> Signed-off-by: Sujith Manoharan<Sujith.Manoharan@atheros.com>
>
> diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
> index 23094b7..c81b2da 100644
> --- a/drivers/net/wireless/ath/ath9k/hif_usb.c
> +++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
> @@ -1035,7 +1035,7 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
> }
>
> ret = ath9k_htc_hw_init(hif_dev->htc_handle,
> - &hif_dev->udev->dev, hif_dev->device_id,
> + &interface->dev, hif_dev->device_id,
> hif_dev->udev->product, id->driver_info);
> if (ret) {
> ret = -EINVAL;
> @@ -1153,7 +1153,7 @@ fail_resume:
> #endif
>
> static struct usb_driver ath9k_hif_usb_driver = {
> - .name = "ath9k_hif_usb",
> + .name = KBUILD_MODNAME,
> .probe = ath9k_hif_usb_probe,
> .disconnect = ath9k_hif_usb_disconnect,
> #ifdef CONFIG_PM
> diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h
> index ec47be9..9544cd7 100644
> --- a/drivers/net/wireless/ath/ath9k/htc.h
> +++ b/drivers/net/wireless/ath/ath9k/htc.h
> @@ -388,6 +388,9 @@ struct ath9k_htc_priv {
> struct htc_target *htc;
> struct wmi *wmi;
>
> + u16 fw_version_major;
> + u16 fw_version_minor;
> +
> enum htc_endpoint_id wmi_cmd_ep;
> enum htc_endpoint_id beacon_ep;
> enum htc_endpoint_id cab_ep;
> diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_init.c b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
> index 8303b34..6bbfca5 100644
> --- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c
> +++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
> @@ -782,6 +782,32 @@ static void ath9k_set_hw_capab(struct ath9k_htc_priv *priv,
> SET_IEEE80211_PERM_ADDR(hw, common->macaddr);
> }
>
> +static int ath9k_init_firmware_version(struct ath9k_htc_priv *priv)
> +{
> + struct ieee80211_hw *hw = priv->hw;
> + struct wmi_fw_version cmd_rsp;
> + int ret;
> +
> + memset(&cmd_rsp, 0, sizeof(cmd_rsp));
> +
> + WMI_CMD(WMI_GET_FW_VERSION);
> + if (ret)
> + return -EINVAL;
> +
> + priv->fw_version_major = be16_to_cpu(cmd_rsp.major);
> + priv->fw_version_minor = be16_to_cpu(cmd_rsp.minor);
> +
> + snprintf(hw->wiphy->fw_version, ETHTOOL_BUSINFO_LEN, "%d.%d",
> + priv->fw_version_major,
> + priv->fw_version_minor);
> +
> + dev_info(priv->dev, "ath9k_htc: FW Version: %d.%d\n",
> + priv->fw_version_major,
> + priv->fw_version_minor);
> +
> + return 0;
> +}
> +
> static int ath9k_init_device(struct ath9k_htc_priv *priv,
> u16 devid, char *product, u32 drv_info)
> {
> @@ -801,6 +827,10 @@ static int ath9k_init_device(struct ath9k_htc_priv *priv,
> common = ath9k_hw_common(ah);
> ath9k_set_hw_capab(priv, hw);
>
> + error = ath9k_init_firmware_version(priv);
> + if (error != 0)
> + goto err_fw;
> +
> /* Initialize regulatory */
> error = ath_regd_init(&common->regulatory, priv->hw->wiphy,
> ath9k_reg_notifier);
> @@ -861,6 +891,8 @@ err_rx:
> err_tx:
> /* Nothing */
> err_regd:
> + /* Nothing */
> +err_fw:
> ath9k_deinit_priv(priv);
> err_init:
> return error;
> diff --git a/drivers/net/wireless/ath/ath9k/wmi.c b/drivers/net/wireless/ath/ath9k/wmi.c
> index d3d2490..267a98f 100644
> --- a/drivers/net/wireless/ath/ath9k/wmi.c
> +++ b/drivers/net/wireless/ath/ath9k/wmi.c
> @@ -23,6 +23,8 @@ static const char *wmi_cmd_to_name(enum wmi_cmd_id wmi_cmd)
> return "WMI_ECHO_CMDID";
> case WMI_ACCESS_MEMORY_CMDID:
> return "WMI_ACCESS_MEMORY_CMDID";
> + case WMI_GET_FW_VERSION:
> + return "WMI_GET_FW_VERSION";
> case WMI_DISABLE_INTR_CMDID:
> return "WMI_DISABLE_INTR_CMDID";
> case WMI_ENABLE_INTR_CMDID:
> diff --git a/drivers/net/wireless/ath/ath9k/wmi.h b/drivers/net/wireless/ath/ath9k/wmi.h
> index 4208427..6a36572 100644
> --- a/drivers/net/wireless/ath/ath9k/wmi.h
> +++ b/drivers/net/wireless/ath/ath9k/wmi.h
> @@ -31,11 +31,17 @@ struct wmi_cmd_hdr {
> __be16 seq_no;
> } __packed;
>
> +struct wmi_fw_version {
> + __be16 major;
> + __be16 minor;
> +
> +} __packed;
> enum wmi_cmd_id {
> WMI_ECHO_CMDID = 0x0001,
> WMI_ACCESS_MEMORY_CMDID,
>
> /* Commands to Target */
> + WMI_GET_FW_VERSION,
> WMI_DISABLE_INTR_CMDID,
> WMI_ENABLE_INTR_CMDID,
> WMI_RX_LINK_CMDID,
>
>
>
next prev parent reply other threads:[~2011-04-11 14:36 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-09 3:03 ath9k_htc oddity Richard Farina
2011-04-09 5:44 ` Sujith
2011-04-11 14:36 ` Richard Farina [this message]
2011-04-11 15:28 ` Sujith
2011-04-11 15:29 ` Sujith
2011-04-11 16:04 ` Richard Farina
2011-04-11 16:14 ` Sujith
2011-04-11 16:59 ` Richard Farina
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=4DA311F3.6010007@gmail.com \
--to=sidhayn@gmail.com \
--cc=linux-wireless@vger.kernel.org \
--cc=m.sujith@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).