USB HCD driver

Stephen Warren swarren at wwwdotorg.org
Fri Jun 8 12:42:51 EDT 2012


On 06/08/2012 10:32 AM, Simon Arlott wrote:
> On 04/06/12 13:20, popcorn mix wrote:
>> On Sun, Jun 3, 2012 at 11:19 PM, Theo Markettos
>> <linux-rpi at markettos.org.uk> wrote:
>>> One issue that's been reported is 8000 interrupts per second, even in idle
>>> mode.  According to Jeffrey our driver porter, the Synopsys driver relies on
>>> the start of frame interrupt for scheduling transfers if "descriptor DMA" is
>>> not implemented (which it isn't, on BCM2835).  8000 is one interrupt per
>>> microframe.  We have a couple of ideas for that: one is to somehow disable
>>> the interrupt if nothing interesting is happening.  The other is to wire it
>>> into a FIQ (which the BCM2835 interrupt controller will let you do).  That
>>> gives a much lower interrupt latency for dealing with unwanted interrupts.
>>> I understand Linux doesn't really use FIQs, which is unfortunate, but
>>> perhaps could be implemented for purposes such as this.
>>
>>  I can confirm that the interrupts cost us about 20% of CPU when USB is idle.
>> (measured by running a benchmark that is CPU limited, eg XBMC fps,
>> then killing dwc_otg and watching it improve)
>> So I'd love to see a FIQ (or other) improvement.
> 
> Is it possible to update the code in the USB chip to a newer version
> that has SG DMA support?

Surely it's all implemented in HW, and isn't a soft core that runs firmware?

If it is a soft core, converting it to a regular EHCI controller seems
like it'd help more.



More information about the linux-rpi-kernel mailing list