aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-3.18/0094-dwc_otg-put-some-barriers-back-where-they-should-be-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-3.18/0094-dwc_otg-put-some-barriers-back-where-they-should-be-.patch')
-rwxr-xr-xtarget/linux/brcm2708/patches-3.18/0094-dwc_otg-put-some-barriers-back-where-they-should-be-.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-3.18/0094-dwc_otg-put-some-barriers-back-where-they-should-be-.patch b/target/linux/brcm2708/patches-3.18/0094-dwc_otg-put-some-barriers-back-where-they-should-be-.patch
new file mode 100755
index 0000000000..e570915813
--- /dev/null
+++ b/target/linux/brcm2708/patches-3.18/0094-dwc_otg-put-some-barriers-back-where-they-should-be-.patch
@@ -0,0 +1,45 @@
+From 1e6d3936f120fd4420662850da0c89eb5c3d9f03 Mon Sep 17 00:00:00 2001
+From: P33M <P33M@github.com>
+Date: Thu, 22 Jan 2015 17:49:23 +0000
+Subject: [PATCH 094/114] dwc_otg: put some barriers back where they should be
+ for UP
+
+---
+ drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c | 2 ++
+ drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c
+index 0d2b04e..276ad0c7 100644
+--- a/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c
++++ b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c
+@@ -1280,6 +1280,7 @@ void notrace dwc_otg_fiq_fsm(struct fiq_state *state, int num_channels)
+
+ }
+ state->fiq_done++;
++ mb();
+ fiq_fsm_spin_unlock(&state->lock);
+ }
+
+@@ -1340,5 +1341,6 @@ void notrace dwc_otg_fiq_nop(struct fiq_state *state)
+
+ }
+ state->fiq_done++;
++ mb();
+ fiq_fsm_spin_unlock(&state->lock);
+ }
+diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
+index 124ac16..ac70f1d 100644
+--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
+@@ -1928,6 +1928,7 @@ int fiq_fsm_queue_split_transaction(dwc_otg_hcd_t *hcd, dwc_otg_qh_t *qh)
+ st->hcchar_copy.b.chen = 1;
+ DWC_WRITE_REG32(&hc_regs->hcchar, st->hcchar_copy.d32);
+ }
++ mb();
+ fiq_fsm_spin_unlock(&hcd->fiq_state->lock);
+ local_fiq_enable();
+ return 0;
+--
+1.8.3.2
+