diff options
Diffstat (limited to 'usb.current/usb-isp1760-use-a-write-barrier-to-ensure-proper-ndelay-timing.patch')
| -rw-r--r-- | usb.current/usb-isp1760-use-a-write-barrier-to-ensure-proper-ndelay-timing.patch | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/usb.current/usb-isp1760-use-a-write-barrier-to-ensure-proper-ndelay-timing.patch b/usb.current/usb-isp1760-use-a-write-barrier-to-ensure-proper-ndelay-timing.patch deleted file mode 100644 index 82c3a63c557a94..00000000000000 --- a/usb.current/usb-isp1760-use-a-write-barrier-to-ensure-proper-ndelay-timing.patch +++ /dev/null @@ -1,49 +0,0 @@ -From vapier@gentoo.org Thu Aug 12 13:45:44 2010 -From: Mike Frysinger <vapier@gentoo.org> -To: linux-usb@vger.kernel.org, Greg Kroah-Hartman <gregkh@suse.de> -Cc: uclinux-dist-devel@blackfin.uclinux.org, - Michael Hennerich <michael.hennerich@analog.com> -Subject: USB: isp1760: use a write barrier to ensure proper ndelay timing -Date: Thu, 5 Aug 2010 17:53:57 -0400 -Message-Id: <1281045237-21967-1-git-send-email-vapier@gentoo.org> - -From: Michael Hennerich <michael.hennerich@analog.com> - -The ISP1760 has some timing requirements where it has to delay a short -period after a write to a register has started. However, this delay is -from the time the write hits the USB chip (the ISP1760), not from the -time where the processor started processing the write. So on a quick -enough processor, it is sometimes possible for the write to not hit the -device before we start delaying, and we then violate the part's timing -requirements, so things stop working. - -To avoid all this, insert a write barrier after the register write and -before the timing delay/register read so we can guarantee we only start -counting time after the write has hit the device. - -Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> -Signed-off-by: Mike Frysinger <vapier@gentoo.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/host/isp1760-hcd.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/usb/host/isp1760-hcd.c -+++ b/drivers/usb/host/isp1760-hcd.c -@@ -829,6 +829,7 @@ static void enqueue_an_ATL_packet(struct - * almost immediately. With ISP1761, this register requires a delay of - * 195ns between a write and subsequent read (see section 15.1.1.3). - */ -+ mmiowb(); - ndelay(195); - skip_map = isp1760_readl(hcd->regs + HC_ATL_PTD_SKIPMAP_REG); - -@@ -870,6 +871,7 @@ static void enqueue_an_INT_packet(struct - * almost immediately. With ISP1761, this register requires a delay of - * 195ns between a write and subsequent read (see section 15.1.1.3). - */ -+ mmiowb(); - ndelay(195); - skip_map = isp1760_readl(hcd->regs + HC_INT_PTD_SKIPMAP_REG); - |
