linux/drivers/usb/renesas_usbhs
Yoshihiro Shimoda 519d8bd4b5 usb: renesas_usbhs: fix clearing the {BRDY,BEMP}STS condition
The previous driver is possible to stop the transfer wrongly.
For example:
 1) An interrupt happens, but not BRDY interruption.
 2) Read INTSTS0. And than state->intsts0 is not set to BRDY.
 3) BRDY is set to 1 here.
 4) Read BRDYSTS.
 5) Clear the BRDYSTS. And then. the BRDY is cleared wrongly.

Remarks:
 - The INTSTS0.BRDY is read only.
  - If any bits of BRDYSTS are set to 1, the BRDY is set to 1.
  - If BRDYSTS is 0, the BRDY is set to 0.

So, this patch adds condition to avoid such situation. (And about
NRDYSTS, this is not used for now. But, avoiding any side effects,
this patch doesn't touch it.)

Fixes: d5c6a1e024 ("usb: renesas_usbhs: fixup interrupt status clear method")
Cc: <stable@vger.kernel.org> # v3.8+
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2016-09-05 13:39:23 +03:00
..
common.c usb: renesas_usbhs: Fix receiving data corrupt on R-Car Gen3 with dmac 2016-08-11 15:09:43 +03:00
common.h usb: renesas_usbhs: add support for USB-DMAC 2015-03-13 10:41:19 -05:00
fifo.c usb: renesas_usbhs: Use dmac only if the pipe type is bulk 2016-08-11 15:09:43 +03:00
fifo.h usb: renesas_usbhs: constify usbhs_pkt_handle structures 2016-01-24 19:45:09 -08:00
Kconfig usb: renesas_usbhs: Use ARCH_RENESAS 2016-02-20 20:21:53 -08:00
Makefile usb: renesas_usbhs: add R-Car Gen3 power control 2016-03-04 15:14:28 +02:00
mod_gadget.c usb: renesas_usbhs: gadget: fix return value check in usbhs_mod_gadget_probe() 2016-08-22 10:45:11 +03:00
mod_host.c usb: renesas_usbhs: change arguments of dma_map_ctrl() 2016-04-19 11:11:54 +03:00
mod.c usb: renesas_usbhs: fix clearing the {BRDY,BEMP}STS condition 2016-09-05 13:39:23 +03:00
mod.h
pipe.c usb: renesas_usbhs: fix signed-unsigned return 2016-05-03 14:32:07 -07:00
pipe.h usb: renesas_usbhs: change arguments of dma_map_ctrl() 2016-04-19 11:11:54 +03:00
rcar2.c usb: renesas_usbhs: Remove unneeded #include <linux/platform_data/gpio-rcar.h> 2015-10-20 16:03:36 +02:00
rcar2.h
rcar3.c usb: renesas_usbhs: make usbhs_write32() static 2016-06-22 11:16:07 +03:00
rcar3.h usb: renesas_usbhs: add R-Car Gen3 power control 2016-03-04 15:14:28 +02:00