summarylogtreecommitdiffstats
path: root/MT7630E-3.15.patch
diff options
context:
space:
mode:
Diffstat (limited to 'MT7630E-3.15.patch')
-rw-r--r--MT7630E-3.15.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/MT7630E-3.15.patch b/MT7630E-3.15.patch
new file mode 100644
index 000000000000..afcbd61fc689
--- /dev/null
+++ b/MT7630E-3.15.patch
@@ -0,0 +1,50 @@
+diff -U 3 -b -B -d -p -r -- a/rt2x00/rt2800usb.c b/rt2x00/rt2800usb.c
+--- a/rt2x00/rt2800usb.c 2014-10-25 01:34:02.129618972 +0200
++++ b/rt2x00/rt2800usb.c 2014-10-25 01:33:55.466285690 +0200
+@@ -763,7 +763,7 @@ static int rt2800usb_probe_hw(struct rt2
+ /*
+ * Overwrite TX done handler
+ */
+- PREPARE_WORK(&rt2x00dev->txdone_work, rt2800usb_work_txdone);
++ rt2x00dev->txdone_workfn = rt2800usb_work_txdone;
+
+ return 0;
+ }
+diff -U 3 -b -B -d -p -r -- a/rt2x00/rt2x00.h b/rt2x00/rt2x00.h
+--- a/rt2x00/rt2x00.h 2014-10-25 01:34:02.129618972 +0200
++++ b/rt2x00/rt2x00.h 2014-10-25 01:33:55.472952357 +0200
+@@ -2349,6 +2349,7 @@ struct rt2x00_dev {
+ */
+ struct work_struct rxdone_work;
+ struct work_struct txdone_work;
++ work_func_t txdone_workfn;
+
+ /*
+ * Powersaving work
+diff -U 3 -b -B -d -p -r -- a/rt2x00/rt2x00usb.c b/rt2x00/rt2x00usb.c
+--- a/rt2x00/rt2x00usb.c 2014-10-25 01:34:02.129618972 +0200
++++ b/rt2x00/rt2x00usb.c 2014-10-25 01:33:55.469619023 +0200
+@@ -237,6 +237,12 @@ static void rt2x00usb_work_txdone_entry(
+ rt2x00lib_txdone_noinfo(entry, TXDONE_UNKNOWN);
+ }
+
++static void rt2x00usb_work_txdonefn(struct work_struct *work)
++{
++ struct rt2x00_dev *peer = container_of(work, struct rt2x00_dev, txdone_work);
++ peer->txdone_workfn(work);
++}
++
+ static void rt2x00usb_work_txdone(struct work_struct *work)
+ {
+ struct rt2x00_dev *rt2x00dev =
+@@ -810,7 +816,8 @@ int rt2x00usb_probe(struct usb_interface
+ rt2x00_set_chip_intf(rt2x00dev, RT2X00_CHIP_INTF_USB);
+
+ INIT_WORK(&rt2x00dev->rxdone_work, rt2x00usb_work_rxdone);
+- INIT_WORK(&rt2x00dev->txdone_work, rt2x00usb_work_txdone);
++ INIT_WORK(&rt2x00dev->txdone_work, rt2x00usb_work_txdonefn);
++ rt2x00dev->txdone_workfn = rt2x00usb_work_txdone;
+ hrtimer_init(&rt2x00dev->txstatus_timer, CLOCK_MONOTONIC,
+ HRTIMER_MODE_REL);
+
+