Re: EHCI bus glue driver works for storage, fails for a WiFi module

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Arokux,

Allan already pointed on timing issue. If you compare bad and working
logs you will see that interval on bad log is match more shorter. On my
expiriance with other wifi adapter it is critical. Beside, it has
nothing todo with wifi at all.
In many cases usb controller insight of adapter is produced by some
other company. For example  faraday-tech which produce FUSB200,
FUSB220,.. IP cores.

If interval is less then hardware can handle, it can overfill FIFOs on
endpoints. If firmware can't handle this error, then device will be just
unresponsive.


Am 29.09.2013 19:03, schrieb Arokux X:
> Dear Larry,
> 
>> On PCs, the driver has some problems with stability of the radio
>> connections, and I am currently working on that problem; however, there are
>> no difficulties in communicating over the USB system.
> 
> Do you have any idea how I can localize the problem to find out at
> what stage it fails? You know, same 200 lines of code work with one
> kernel (3.4), but fail with another (mainline). Fist I thought it
> might be a bug in my USB bus glue driver, but it doesn't look like
> this. I've run out of ideas how to troubleshoot this issue.
> 
>> One problem that was recently discovered on ARM architecture is that the
>> private area at the end of the main structure was not aligned. The fix has
>> been added to the wireless-testing tree as commit 60ce314d1750fef. It is on
>> its way to mainline, but is not there yet. Fortunately, it is a one-liner as
>> follows:
>>
>> diff --git a/drivers/net/wireless/rtlwifi/wifi.h
>> b/drivers/net/wireless/rtlwifi/wifi.h
>> index cc03e7c..7032587 100644
>> --- a/drivers/net/wireless/rtlwifi/wifi.h
>> +++ b/drivers/net/wireless/rtlwifi/wifi.h
>> @@ -2057,7 +2057,7 @@ struct rtl_priv {
>>         that it points to the data allocated
>>         beyond  this structure like:
>>         rtl_pci_priv or rtl_usb_priv */
>> -       u8 priv[0];
>> +       u8 priv[0] __aligned(sizeof(void *));
>>  };
>>
>>  #define rtl_priv(hw)           (((struct rtl_priv *)(hw)->priv))
>>
>> The patch is line-wrapped, and probably has its white space mangled by this
>> route of transmission, but it is easily applied manually.
> 
> Yes, I had this problem too and found that one liner already. I can
> confirm - it works. But yes, USB problem is different one.
> 
> Best regards,
> Arokux
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux