linux-mips
[Top] [All Lists]

Re: [PATCH v2 11/16] USB: ehci: add workaround for Synopsys HC bug

To: Greg KH <gregkh@suse.de>
Subject: Re: [PATCH v2 11/16] USB: ehci: add workaround for Synopsys HC bug
From: Gabor Juhos <juhosg@openwrt.org>
Date: Thu, 23 Dec 2010 09:29:18 +0100
Cc: Ralf Baechle <ralf@linux-mips.org>, linux-mips@linux-mips.org, Imre Kaloz <kaloz@openwrt.org>, "Luis R. Rodriguez" <lrodriguez@atheros.com>, Cliff Holden <Cliff.Holden@Atheros.com>, Kathy Giori <Kathy.Giori@Atheros.com>, David Brownell <dbrownell@users.sourceforge.net>, linux-usb@vger.kernel.org
In-reply-to: <20101223003048.GB9811@suse.de>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1293049861-28913-1-git-send-email-juhosg@openwrt.org> <1293049861-28913-12-git-send-email-juhosg@openwrt.org> <20101223003048.GB9811@suse.de>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; hu-HU; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7
Hi Greg,

<...>
>> diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c
>> index 233c288..343b8de 100644
>> --- a/drivers/usb/host/ehci-q.c
>> +++ b/drivers/usb/host/ehci-q.c
>> @@ -1193,6 +1193,9 @@ static void end_unlink_async (struct ehci_hcd *ehci)
>>              ehci->reclaim = NULL;
>>              start_unlink_async (ehci, next);
>>      }
>> +
>> +    if (ehci->has_synopsys_hc_bug)
>> +            writel((u32)ehci->async->qh_dma, &ehci->regs->async_next);
>>  }
>>  
>>  /* makes sure the async qh will become idle */
>> diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
>> index ba8eab3..6da85b2 100644
>> --- a/drivers/usb/host/ehci.h
>> +++ b/drivers/usb/host/ehci.h
>> @@ -133,6 +133,7 @@ struct ehci_hcd {                        /* one per 
>> controller */
>>      unsigned                broken_periodic:1;
>>      unsigned                fs_i_thresh:1;  /* Intel iso scheduling */
>>      unsigned                use_dummy_qh:1; /* AMD Frame List table quirk*/
>> +    unsigned                has_synopsys_hc_bug:1; /* Synopsys HC */
> 
> That's fine, but who sets this value to 1?  I don't see any code that
> does that, so why add this at all?  :)

It will be set to 1 by ehci_ath79_init which is in the next patch [1] of this
series.

-Gabor

1. http://marc.info/?l=linux-usb&m=129304988827418&w=2

<Prev in Thread] Current Thread [Next in Thread>