WN721N cannot be initialized

Luis R. Rodriguez mcgrof at gmail.com
Fri Nov 13 22:05:28 UTC 2009


On Thu, Nov 12, 2009 at 10:54 PM, hong zhang <henryzhang62 at yahoo.com> wrote:
> List,
>
> I bought WN721N ar9721 but it could not be initialized. device_id is 9721
> in function ath_init_htc_priv(). After ah passed to ath9k_hw_init(ah),
>device_id becomes 0.

The device ID on the ath_hw comes all the way from the usb device ID.

This is initialized based on the value passed during probe:

ah->hw_version.devid = devid;

That is when probe_htc_9k_device() is called. This is the hw_probe
callback for the 9k atheros hardware family. This gets called by the
HTC driver during ath_htc_hw_probe() :

int ath_htc_hw_probe(void *hif_handle, enum ath_hif_transports transport)
{
        ...
        target->device_id = hif->ops->get_device_id(hif_handle);
        ...
        r = ath_htc_9k_hw_ops->hw_probe(target, target->dev, target->device_id);
        if (r) {
                dev_err(target->dev, "initializing 0x%0x device failed: %d\n",
                        target->device_id, r);
                goto fail;
        }
        ...
}

The hif_handle is passed by HIF during probe, which is done in
ath_hif_usb_probe():

static int ath_hif_usb_probe(struct usb_interface *interface,
                             const struct usb_device_id *id)
{
           ....
           hif_dev->device_id = id->idProduct;
           ....
        /* Probe hardware now */
        r = ath_htc_hw_probe(hif_dev, ATH_HIF_USB);
        if (r) {
                dev_err(&hif_dev->udev->dev, "hw probe failed\n");
                goto fail;
        }
           ....
}

> Very strange. Does anyone have similar experience?

Can you paste the output with debugging completely enabled?

modprobe ath9k_htc debug=0xfffffff

before plugging the device in. Also can you please boot with
ignore_loglevel appended to your kernel boot paramters for grub.

  Luis



More information about the devel mailing list