On Sat, Jul 06, 2013 at 11:13:15AM +0200, Oleksij Rempel wrote:
> Hi Sarah,
> 
> thanks you or who ever fixed this issue. With latest wireless-testing
> i can't reproduce my crash any more. Instead i get this messages:

What kernel is your wireless-testing branch based on?

It would be nice to know which patch fixed your issue, since AFAIK we
didn't make a concerted effort to fix it yet.  Any chance you can do a
git bisect?  I'm afraid some other change in the wireless stack is
masking an xHCI driver bug.

Sarah Sharp

> 
> [ 4510.621603] ath9k_htc: Driver unloaded
> [ 4516.407764] usb 3-2: reset high-speed USB device number 4 using xhci_hcd
> [ 4516.430175] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called
> with disabled ep ffff880113f39c00
> [ 4516.430179] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called
> with disabled ep ffff880113f39c40
> [ 4516.430181] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called
> with disabled ep ffff880113f39c80
> [ 4516.430183] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called
> with disabled ep ffff880113f39cc0
> [ 4516.430185] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called
> with disabled ep ffff880113f39d00
> [ 4516.430186] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called
> with disabled ep ffff880113f39d40
> [ 4516.430855] usb 3-2: ath9k_htc: Firmware htc_9271.fw requested
> [ 4516.431139] usbcore: registered new interface driver ath9k_htc
> 
> 
> Am 11.06.2013 19:34, schrieb Sarah Sharp:
> >On Mon, Jun 10, 2013 at 08:55:56AM +0200, Oleksij Rempel wrote:
> >>Hello all,
> >>
> >>i'm working on usb_autosuspend for ath9k_htc and triggered this
> >>oops. Currently i do not know if real bug is in ath9k_htc or in
> >>xhci. Same adapter with same kernel and my patches work fine on ehci
> >>host... so may be it is xhci.
> >
> >Which kernel version is this oops on?  I suspect it's an xHCI issue.
> >
> >Please turn on CONFIG_USB_XHCI_HCD_DEBUGGING and CONFIG_USB_DEBUG and
> >send me dmesg, from the beginning of connecting the device to when it is
> >suspended and then resumed.  That will be a lot of output, so feel free
> >to compress it.
> >
> >Sarah Sharp
> >
> >>i get oops on this line:
> >>426 static void ring_doorbell_for_active_rings(struct xhci_hcd *xhci,
> >>427                 unsigned int slot_id,
> >>428                 unsigned int ep_index)
> >>429 {
> >>430         unsigned int stream_id;
> >>431         struct xhci_virt_ep *ep;
> >>432 
> >>433         ep = &xhci->devs[slot_id]->eps[ep_index];
> >>^^^             ^^^^^^^^^^^^^^^^^^^^^^^
> >>
> >>changes for ath9k_htc are in attachment and photo of oops here:
> >>https://plus.google.com/u/0/102032716864870215256/posts/a9d8nFsLhYK
> >>--
> >>Regards,
> >>Oleksij
> >
> >>diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c 
> >>b/drivers/net/wireless/ath/ath9k/hif_usb.c
> >>index f5dda84..3d74575 100644
> >>--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
> >>+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
> >>@@ -1368,6 +1368,7 @@ static struct usb_driver ath9k_hif_usb_driver = {
> >>    .suspend = ath9k_hif_usb_suspend,
> >>    .resume = ath9k_hif_usb_resume,
> >>    .reset_resume = ath9k_hif_usb_resume,
> >>+   .supports_autosuspend = 1,
> >>  #endif
> >>    .id_table = ath9k_hif_usb_ids,
> >>    .soft_unbind = 1,
> >>diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c 
> >>b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
> >>index 0743a47..20be8a1 100644
> >>--- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c
> >>+++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
> >>@@ -905,6 +905,7 @@ static int ath9k_htc_start(struct ieee80211_hw *hw)
> >>    struct ath_hw *ah = priv->ah;
> >>    struct ath_common *common = ath9k_hw_common(ah);
> >>    struct ieee80211_channel *curchan = hw->conf.chandef.chan;
> >>+   struct hif_device_usb *hif_dev = priv->htc->hif_dev;
> >>    struct ath9k_channel *init_channel;
> >>    int ret = 0;
> >>    enum htc_phymode mode;
> >>@@ -917,6 +918,14 @@ static int ath9k_htc_start(struct ieee80211_hw *hw)
> >>            "Starting driver with initial channel: %d MHz\n",
> >>            curchan->center_freq);
> >>
> >>+   ret = usb_autopm_get_interface(hif_dev->interface);
> >>+   if (ret < 0) {
> >>+           ath_err(common,
> >>+                   "Unable wake up hardware\n");
> >>+           mutex_unlock(&priv->mutex);
> >>+           return ret;
> >>+   }
> >>+
> >>    /* Ensure that HW is awake before flushing RX */
> >>    ath9k_htc_setpower(priv, ATH9K_PM_AWAKE);
> >>    WMI_CMD(WMI_FLUSH_RECV_CMDID);
> >>@@ -972,6 +981,7 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw)
> >>  {
> >>    struct ath9k_htc_priv *priv = hw->priv;
> >>    struct ath_hw *ah = priv->ah;
> >>+   struct hif_device_usb *hif_dev = priv->htc->hif_dev;
> >>    struct ath_common *common = ath9k_hw_common(ah);
> >>    int ret __attribute__ ((unused));
> >>    u8 cmd_rsp;
> >>@@ -1022,6 +1032,8 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw)
> >>
> >>    set_bit(OP_INVALID, &priv->op_flags);
> >>
> >>+   usb_autopm_put_interface(hif_dev->interface);
> >>+
> >>    ath_dbg(common, CONFIG, "Driver halt\n");
> >>    mutex_unlock(&priv->mutex);
> >>  }
> >>
> >
> >--
> >To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> >the body of a message to majord...@vger.kernel.org
> >More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >
> 
> 
> -- 
> Regards,
> Oleksij
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to