From: Greg Kroah-Hartman Date: Sun, 1 Dec 2013 18:19:08 +0000 (-0800) Subject: 3.4-stable patches X-Git-Tag: v3.4.72~41 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1da9178e6fe527fcf7f711ddf3eafd99beacbccb;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches added patches: staging-vt6656-fix-for-tx-usb-resets-from-vendors-driver.patch --- diff --git a/queue-3.4/series b/queue-3.4/series index 77fa03d478d..a4019d60090 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -24,3 +24,4 @@ mtd-map-fixed-bug-in-64-bit-systems.patch mtd-gpmi-fix-kernel-bug-due-to-racing-dma-operations.patch ext4-avoid-bh-leak-in-retry-path-of-ext4_expand_extra_isize_ea.patch xen-blkback-fix-reference-counting.patch +staging-vt6656-fix-for-tx-usb-resets-from-vendors-driver.patch diff --git a/queue-3.4/staging-vt6656-fix-for-tx-usb-resets-from-vendors-driver.patch b/queue-3.4/staging-vt6656-fix-for-tx-usb-resets-from-vendors-driver.patch new file mode 100644 index 00000000000..41992d82656 --- /dev/null +++ b/queue-3.4/staging-vt6656-fix-for-tx-usb-resets-from-vendors-driver.patch @@ -0,0 +1,84 @@ +From 9df682927c2e3a92f43803d6b52095992e3b2ab8 Mon Sep 17 00:00:00 2001 +From: Malcolm Priestley +Date: Thu, 7 Nov 2013 21:49:04 +0000 +Subject: staging: vt6656: [BUG] Fix for TX USB resets from vendors driver. + +From: Malcolm Priestley + +commit 9df682927c2e3a92f43803d6b52095992e3b2ab8 upstream. + +This fixes resets on heavy TX data traffic. + +Vendor driver +VT6656_Linux_src_v1.21.03_x86_11.04.zip +http://www.viaembedded.com/servlet/downloadSvl?id=1890&download_file_id=14704 +This is GPL-licensed code. + +original code +BBbVT3184Init +... +//2007-0725, RobertChang add, Enable Squelch detect reset option(SQ_RST_Opt), USB (register4, bit1) +CONTROLnsRequestIn(pDevice, + MESSAGE_TYPE_READ, + (WORD)0x600+4, // USB's Reg4's bit1 + MESSAGE_REQUEST_MEM, + 1, + (PBYTE) &byData); +byData = byData|2 ; +CONTROLnsRequestOut(pDevice, + MESSAGE_TYPE_WRITE, + (WORD)0x600+4, // USB's Reg4's bit1 + MESSAGE_REQUEST_MEM, + 1, + (PBYTE) &byData); + +return TRUE;//ntStatus; +.... + +A back port patch is needed for kernels less than 3.10. + +Signed-off-by: Malcolm Priestley +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/staging/vt6656/baseband.c | 11 +++++++++++ + drivers/staging/vt6656/rndis.h | 1 + + 2 files changed, 12 insertions(+) + +--- a/drivers/staging/vt6656/baseband.c ++++ b/drivers/staging/vt6656/baseband.c +@@ -976,6 +976,7 @@ BOOL BBbVT3184Init(PSDevice pDevice) + PBYTE pbyAgc; + WORD wLengthAgc; + BYTE abyArray[256]; ++ u8 data; + + ntStatus = CONTROLnsRequestIn(pDevice, + MESSAGE_TYPE_READ, +@@ -1144,6 +1145,16 @@ else { + ControlvWriteByte(pDevice,MESSAGE_REQUEST_BBREG,0x0D,0x01); + + RFbRFTableDownload(pDevice); ++ ++ /* Fix for TX USB resets from vendors driver */ ++ CONTROLnsRequestIn(pDevice, MESSAGE_TYPE_READ, USB_REG4, ++ MESSAGE_REQUEST_MEM, sizeof(data), &data); ++ ++ data |= 0x2; ++ ++ CONTROLnsRequestOut(pDevice, MESSAGE_TYPE_WRITE, USB_REG4, ++ MESSAGE_REQUEST_MEM, sizeof(data), &data); ++ + return TRUE;//ntStatus; + } + +--- a/drivers/staging/vt6656/rndis.h ++++ b/drivers/staging/vt6656/rndis.h +@@ -69,6 +69,7 @@ + + #define VIAUSB20_PACKET_HEADER 0x04 + ++#define USB_REG4 0x604 + + /*--------------------- Export Classes ----------------------------*/ +