From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chin Liang See Date: Tue, 5 Jan 2016 23:51:47 +0800 Subject: [U-Boot] [PATCH] usb: dwc2: Enhance interrupt handling for CONTROL transaction In-Reply-To: <201601051536.11086.marex@denx.de> References: <1451970004-2344-1-git-send-email-clsee@altera.com> <201601051536.11086.marex@denx.de> Message-ID: <1452009107.2276.9.camel@altera.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Tue, 2016-01-05 at 15:36 +0100, Marek Vasut wrote: > On Tuesday, January 05, 2016 at 06:00:04 AM, Chin Liang See wrote: > > Per DesignWare USB OTG databook, driver should retry up to > > 3 times when transaction error (hcint.xacterr) happen. But > > the 3 times doesn't count when the response is nack > > (hcint.nak) or frame overrun (hcint.frmoverun) > > > > This patch solved the enumeration error as spotted at socfpga > > cyclone5_socdk when plugging in certain pendrive. > > > > Signed-off-by: Chin Liang See > > Cc: Marek Vasut > > Cc: Dinh Nguyen > > Cc: Dinh Nguyen > > Cc: Pavel Machek > > Cc: Oleksandr Tymoshenko > > Cc: Stephen Warren > > Cc: Alexander Stein > > Cc: Peter Griffin > > I applied this change on top of u-boot-socfpga/master and tested it > on > SoCFPGA CycloneV SoCDK with "Sandisk cruzer force" stick. The board > gets > completely stuck if I have dcache ENABLED and perform 'usb reset'. > This > patch is: > Thanks Marek for testing. I managed to find a SanDisk Cruzer Blade and notice the same fail behaviours as yours. FYI, note that this patch works well with other 3 pendrive that I have. With SanDisk, the dwc2 driver was timed out as hcint.xfercomp and chhltd never get set even after 1s. It keep retrying endlessly due to miss handling for the ETIMEDOUT within this patch. In short, the retry doesn't work for SanDisk but the dcache disable works. Need to figure out more what cause the failure. Thanks Chin Liang