From 366847cca24c22d02bf1d0069a9d541dea6bfad4 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 26 Jul 2013 13:38:43 -0700 Subject: [PATCH] 3.4-stable patches added patches: alsa-usb-audio-6fire-return-correct-xrun-indication.patch hrtimers-move-smp-function-call-to-thread-context.patch lockd-protect-nlm_blocked-access-in-nlmsvc_retry_blocked.patch tracing-fix-irqs-off-tag-display-in-syscall-tracing.patch usb-cp210x-add-mmb-and-pi-zigbee-usb-device-support.patch usb-cp210x-support-sel-c662-vendor-device.patch usb-option-add-d-link-dwm-152-c1-and-dwm-156-c1.patch usb-option-add-tp-link-ma260.patch usb-option-append-petatel-np10t-device-to-gsm-modems-list.patch usb-serial-cp210x-add-usb-id-for-netgear-switches-embedded-serial-adapter.patch usb-serial-option-add-olivetti-olicard-200.patch usb-serial-option-add-onyx-3g-device-support.patch usb-serial-option-blacklist-onda-mt689dc-qmi-interface.patch usb-serial-option.c-remove-onda-mt825up-product-id-fromdriver.patch --- ...6fire-return-correct-xrun-indication.patch | 34 +++++ ...-smp-function-call-to-thread-context.patch | 95 ++++++++++++++ ...ocked-access-in-nlmsvc_retry_blocked.patch | 61 +++++++++ queue-3.4/series | 14 ++ ...s-off-tag-display-in-syscall-tracing.patch | 123 ++++++++++++++++++ ...mmb-and-pi-zigbee-usb-device-support.patch | 32 +++++ ...p210x-support-sel-c662-vendor-device.patch | 29 +++++ ...add-d-link-dwm-152-c1-and-dwm-156-c1.patch | 77 +++++++++++ queue-3.4/usb-option-add-tp-link-ma260.patch | 27 ++++ ...atel-np10t-device-to-gsm-modems-list.patch | 46 +++++++ ...ear-switches-embedded-serial-adapter.patch | 31 +++++ ...rial-option-add-olivetti-olicard-200.patch | 37 ++++++ ...al-option-add-onyx-3g-device-support.patch | 29 +++++ ...blacklist-onda-mt689dc-qmi-interface.patch | 31 +++++ ...e-onda-mt825up-product-id-fromdriver.patch | 44 +++++++ 15 files changed, 710 insertions(+) create mode 100644 queue-3.4/alsa-usb-audio-6fire-return-correct-xrun-indication.patch create mode 100644 queue-3.4/hrtimers-move-smp-function-call-to-thread-context.patch create mode 100644 queue-3.4/lockd-protect-nlm_blocked-access-in-nlmsvc_retry_blocked.patch create mode 100644 queue-3.4/tracing-fix-irqs-off-tag-display-in-syscall-tracing.patch create mode 100644 queue-3.4/usb-cp210x-add-mmb-and-pi-zigbee-usb-device-support.patch create mode 100644 queue-3.4/usb-cp210x-support-sel-c662-vendor-device.patch create mode 100644 queue-3.4/usb-option-add-d-link-dwm-152-c1-and-dwm-156-c1.patch create mode 100644 queue-3.4/usb-option-add-tp-link-ma260.patch create mode 100644 queue-3.4/usb-option-append-petatel-np10t-device-to-gsm-modems-list.patch create mode 100644 queue-3.4/usb-serial-cp210x-add-usb-id-for-netgear-switches-embedded-serial-adapter.patch create mode 100644 queue-3.4/usb-serial-option-add-olivetti-olicard-200.patch create mode 100644 queue-3.4/usb-serial-option-add-onyx-3g-device-support.patch create mode 100644 queue-3.4/usb-serial-option-blacklist-onda-mt689dc-qmi-interface.patch create mode 100644 queue-3.4/usb-serial-option.c-remove-onda-mt825up-product-id-fromdriver.patch diff --git a/queue-3.4/alsa-usb-audio-6fire-return-correct-xrun-indication.patch b/queue-3.4/alsa-usb-audio-6fire-return-correct-xrun-indication.patch new file mode 100644 index 00000000000..7e3d4587d1f --- /dev/null +++ b/queue-3.4/alsa-usb-audio-6fire-return-correct-xrun-indication.patch @@ -0,0 +1,34 @@ +From be2f93a4c4981b3646b6f98f477154411b8516cb Mon Sep 17 00:00:00 2001 +From: Eldad Zack +Date: Fri, 19 Jul 2013 18:26:53 +0200 +Subject: ALSA: usb-audio: 6fire: return correct XRUN indication + +From: Eldad Zack + +commit be2f93a4c4981b3646b6f98f477154411b8516cb upstream. + +Return SNDRV_PCM_POS_XRUN (snd_pcm_uframes_t) instead of +SNDRV_PCM_STATE_XRUN (snd_pcm_state_t) from the pointer +function of 6fire, as expected by snd_pcm_update_hw_ptr0(). + +Caught by sparse. + +Signed-off-by: Eldad Zack +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/6fire/pcm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/usb/6fire/pcm.c ++++ b/sound/usb/6fire/pcm.c +@@ -540,7 +540,7 @@ static snd_pcm_uframes_t usb6fire_pcm_po + snd_pcm_uframes_t ret; + + if (rt->panic || !sub) +- return SNDRV_PCM_STATE_XRUN; ++ return SNDRV_PCM_POS_XRUN; + + spin_lock_irqsave(&sub->lock, flags); + ret = sub->dma_off; diff --git a/queue-3.4/hrtimers-move-smp-function-call-to-thread-context.patch b/queue-3.4/hrtimers-move-smp-function-call-to-thread-context.patch new file mode 100644 index 00000000000..4a34a32c340 --- /dev/null +++ b/queue-3.4/hrtimers-move-smp-function-call-to-thread-context.patch @@ -0,0 +1,95 @@ +From 5ec2481b7b47a4005bb446d176e5d0257400c77d Mon Sep 17 00:00:00 2001 +From: Thomas Gleixner +Date: Fri, 5 Jul 2013 12:09:18 +0200 +Subject: hrtimers: Move SMP function call to thread context + +From: Thomas Gleixner + +commit 5ec2481b7b47a4005bb446d176e5d0257400c77d upstream. + +smp_call_function_* must not be called from softirq context. + +But clock_was_set() which calls on_each_cpu() is called from softirq +context to implement a delayed clock_was_set() for the timer interrupt +handler. Though that almost never gets invoked. A recent change in the +resume code uses the softirq based delayed clock_was_set to support +Xens resume mechanism. + +linux-next contains a new warning which warns if smp_call_function_* +is called from softirq context which gets triggered by that Xen +change. + +Fix this by moving the delayed clock_was_set() call to a work context. + +Reported-and-tested-by: Artem Savkov +Reported-by: Sasha Levin +Cc: David Vrabel +Cc: Ingo Molnar +Cc: H. Peter Anvin , +Cc: Konrad Wilk +Cc: John Stultz +Cc: xen-devel@lists.xen.org +Cc: stable@vger.kernel.org +Signed-off-by: Thomas Gleixner +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/hrtimer.c | 28 +++++++++++++--------------- + 1 file changed, 13 insertions(+), 15 deletions(-) + +--- a/kernel/hrtimer.c ++++ b/kernel/hrtimer.c +@@ -707,17 +707,20 @@ static int hrtimer_switch_to_hres(void) + return 1; + } + ++static void clock_was_set_work(struct work_struct *work) ++{ ++ clock_was_set(); ++} ++ ++static DECLARE_WORK(hrtimer_work, clock_was_set_work); ++ + /* +- * Called from timekeeping code to reprogramm the hrtimer interrupt +- * device. If called from the timer interrupt context we defer it to +- * softirq context. ++ * Called from timekeeping and resume code to reprogramm the hrtimer ++ * interrupt device on all cpus. + */ + void clock_was_set_delayed(void) + { +- struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases); +- +- cpu_base->clock_was_set = 1; +- __raise_softirq_irqoff(HRTIMER_SOFTIRQ); ++ schedule_work(&hrtimer_work); + } + + #else +@@ -766,8 +769,10 @@ void hrtimers_resume(void) + WARN_ONCE(!irqs_disabled(), + KERN_INFO "hrtimers_resume() called with IRQs enabled!"); + ++ /* Retrigger on the local CPU */ + retrigger_next_event(NULL); +- timerfd_clock_was_set(); ++ /* And schedule a retrigger for all others */ ++ clock_was_set_delayed(); + } + + static inline void timer_stats_hrtimer_set_start_info(struct hrtimer *timer) +@@ -1416,13 +1421,6 @@ void hrtimer_peek_ahead_timers(void) + + static void run_hrtimer_softirq(struct softirq_action *h) + { +- struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases); +- +- if (cpu_base->clock_was_set) { +- cpu_base->clock_was_set = 0; +- clock_was_set(); +- } +- + hrtimer_peek_ahead_timers(); + } + diff --git a/queue-3.4/lockd-protect-nlm_blocked-access-in-nlmsvc_retry_blocked.patch b/queue-3.4/lockd-protect-nlm_blocked-access-in-nlmsvc_retry_blocked.patch new file mode 100644 index 00000000000..7cda748eef6 --- /dev/null +++ b/queue-3.4/lockd-protect-nlm_blocked-access-in-nlmsvc_retry_blocked.patch @@ -0,0 +1,61 @@ +From 1c327d962fc420aea046c16215a552710bde8231 Mon Sep 17 00:00:00 2001 +From: David Jeffery +Date: Wed, 10 Jul 2013 13:19:50 -0400 +Subject: lockd: protect nlm_blocked access in nlmsvc_retry_blocked + +From: David Jeffery + +commit 1c327d962fc420aea046c16215a552710bde8231 upstream. + +In nlmsvc_retry_blocked, the check that the list is non-empty and acquiring +the pointer of the first entry is unprotected by any lock. This allows a rare +race condition when there is only one entry on the list. A function such as +nlmsvc_grant_callback() can be called, which will temporarily remove the entry +from the list. Between the list_empty() and list_entry(),the list may become +empty, causing an invalid pointer to be used as an nlm_block, leading to a +possible crash. + +This patch adds the nlm_block_lock around these calls to prevent concurrent +use of the nlm_blocked list. + +This was a regression introduced by +f904be9cc77f361d37d71468b13ff3d1a1823dea "lockd: Mostly remove BKL from +the server". + +Signed-off-by: David Jeffery +Cc: Bryan Schumaker +Signed-off-by: J. Bruce Fields +Signed-off-by: Greg Kroah-Hartman + +--- + fs/lockd/svclock.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/fs/lockd/svclock.c ++++ b/fs/lockd/svclock.c +@@ -941,6 +941,7 @@ nlmsvc_retry_blocked(void) + unsigned long timeout = MAX_SCHEDULE_TIMEOUT; + struct nlm_block *block; + ++ spin_lock(&nlm_blocked_lock); + while (!list_empty(&nlm_blocked) && !kthread_should_stop()) { + block = list_entry(nlm_blocked.next, struct nlm_block, b_list); + +@@ -950,6 +951,7 @@ nlmsvc_retry_blocked(void) + timeout = block->b_when - jiffies; + break; + } ++ spin_unlock(&nlm_blocked_lock); + + dprintk("nlmsvc_retry_blocked(%p, when=%ld)\n", + block, block->b_when); +@@ -959,7 +961,9 @@ nlmsvc_retry_blocked(void) + retry_deferred_block(block); + } else + nlmsvc_grant_blocked(block); ++ spin_lock(&nlm_blocked_lock); + } ++ spin_unlock(&nlm_blocked_lock); + + return timeout; + } diff --git a/queue-3.4/series b/queue-3.4/series index d4d7a1f9847..a53bb9e9fc4 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -43,3 +43,17 @@ writeback-fix-periodic-writeback-after-fs-mount.patch scsi-megaraid_sas-fix-memory-leak-if-sgl-has-zero-length-entries.patch scsi-fix-incorrect-memset-in-bnx2fc_parse_fcp_rsp.patch zfcp-block-queue-limits-with-data-router.patch +usb-serial-option-blacklist-onda-mt689dc-qmi-interface.patch +usb-option-add-tp-link-ma260.patch +usb-serial-option-add-olivetti-olicard-200.patch +usb-serial-option.c-remove-onda-mt825up-product-id-fromdriver.patch +usb-option-append-petatel-np10t-device-to-gsm-modems-list.patch +usb-option-add-d-link-dwm-152-c1-and-dwm-156-c1.patch +usb-serial-option-add-onyx-3g-device-support.patch +usb-serial-cp210x-add-usb-id-for-netgear-switches-embedded-serial-adapter.patch +usb-cp210x-add-mmb-and-pi-zigbee-usb-device-support.patch +usb-cp210x-support-sel-c662-vendor-device.patch +lockd-protect-nlm_blocked-access-in-nlmsvc_retry_blocked.patch +tracing-fix-irqs-off-tag-display-in-syscall-tracing.patch +hrtimers-move-smp-function-call-to-thread-context.patch +alsa-usb-audio-6fire-return-correct-xrun-indication.patch diff --git a/queue-3.4/tracing-fix-irqs-off-tag-display-in-syscall-tracing.patch b/queue-3.4/tracing-fix-irqs-off-tag-display-in-syscall-tracing.patch new file mode 100644 index 00000000000..4bca79fcaa6 --- /dev/null +++ b/queue-3.4/tracing-fix-irqs-off-tag-display-in-syscall-tracing.patch @@ -0,0 +1,123 @@ +From 11034ae9c20f4057a6127fc965906417978e69b2 Mon Sep 17 00:00:00 2001 +From: "zhangwei(Jovi)" +Date: Wed, 10 Apr 2013 11:26:23 +0800 +Subject: tracing: Fix irqs-off tag display in syscall tracing + +From: "zhangwei(Jovi)" + +commit 11034ae9c20f4057a6127fc965906417978e69b2 upstream. + +All syscall tracing irqs-off tags are wrong, the syscall enter entry doesn't +disable irqs. + + [root@jovi tracing]#echo "syscalls:sys_enter_open" > set_event + [root@jovi tracing]# cat trace + # tracer: nop + # + # entries-in-buffer/entries-written: 13/13 #P:2 + # + # _-----=> irqs-off + # / _----=> need-resched + # | / _---=> hardirq/softirq + # || / _--=> preempt-depth + # ||| / delay + # TASK-PID CPU# |||| TIMESTAMP FUNCTION + # | | | |||| | | + irqbalance-513 [000] d... 56115.496766: sys_open(filename: 804e1a6, flags: 0, mode: 1b6) + irqbalance-513 [000] d... 56115.497008: sys_open(filename: 804e1bb, flags: 0, mode: 1b6) + sendmail-771 [000] d... 56115.827982: sys_open(filename: b770e6d1, flags: 0, mode: 1b6) + +The reason is syscall tracing doesn't record irq_flags into buffer. +The proper display is: + + [root@jovi tracing]#echo "syscalls:sys_enter_open" > set_event + [root@jovi tracing]# cat trace + # tracer: nop + # + # entries-in-buffer/entries-written: 14/14 #P:2 + # + # _-----=> irqs-off + # / _----=> need-resched + # | / _---=> hardirq/softirq + # || / _--=> preempt-depth + # ||| / delay + # TASK-PID CPU# |||| TIMESTAMP FUNCTION + # | | | |||| | | + irqbalance-514 [001] .... 46.213921: sys_open(filename: 804e1a6, flags: 0, mode: 1b6) + irqbalance-514 [001] .... 46.214160: sys_open(filename: 804e1bb, flags: 0, mode: 1b6) + <...>-920 [001] .... 47.307260: sys_open(filename: 4e82a0c5, flags: 80000, mode: 0) + +Link: http://lkml.kernel.org/r/1365564393-10972-3-git-send-email-jovi.zhangwei@huawei.com + +Cc: stable@vger.kernel.org # 2.6.35 +Signed-off-by: zhangwei(Jovi) +Signed-off-by: Steven Rostedt +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/trace/trace_syscalls.c | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +--- a/kernel/trace/trace_syscalls.c ++++ b/kernel/trace/trace_syscalls.c +@@ -305,6 +305,8 @@ void ftrace_syscall_enter(void *ignore, + struct ring_buffer *buffer; + int size; + int syscall_nr; ++ unsigned long irq_flags; ++ int pc; + + syscall_nr = syscall_get_nr(current, regs); + if (syscall_nr < 0) +@@ -318,8 +320,11 @@ void ftrace_syscall_enter(void *ignore, + + size = sizeof(*entry) + sizeof(unsigned long) * sys_data->nb_args; + ++ local_save_flags(irq_flags); ++ pc = preempt_count(); ++ + event = trace_current_buffer_lock_reserve(&buffer, +- sys_data->enter_event->event.type, size, 0, 0); ++ sys_data->enter_event->event.type, size, irq_flags, pc); + if (!event) + return; + +@@ -329,7 +334,8 @@ void ftrace_syscall_enter(void *ignore, + + if (!filter_current_check_discard(buffer, sys_data->enter_event, + entry, event)) +- trace_current_buffer_unlock_commit(buffer, event, 0, 0); ++ trace_current_buffer_unlock_commit(buffer, event, ++ irq_flags, pc); + } + + void ftrace_syscall_exit(void *ignore, struct pt_regs *regs, long ret) +@@ -339,6 +345,8 @@ void ftrace_syscall_exit(void *ignore, s + struct ring_buffer_event *event; + struct ring_buffer *buffer; + int syscall_nr; ++ unsigned long irq_flags; ++ int pc; + + syscall_nr = syscall_get_nr(current, regs); + if (syscall_nr < 0) +@@ -351,7 +359,8 @@ void ftrace_syscall_exit(void *ignore, s + return; + + event = trace_current_buffer_lock_reserve(&buffer, +- sys_data->exit_event->event.type, sizeof(*entry), 0, 0); ++ sys_data->exit_event->event.type, sizeof(*entry), ++ irq_flags, pc); + if (!event) + return; + +@@ -361,7 +370,8 @@ void ftrace_syscall_exit(void *ignore, s + + if (!filter_current_check_discard(buffer, sys_data->exit_event, + entry, event)) +- trace_current_buffer_unlock_commit(buffer, event, 0, 0); ++ trace_current_buffer_unlock_commit(buffer, event, ++ irq_flags, pc); + } + + int reg_event_syscall_enter(struct ftrace_event_call *call) diff --git a/queue-3.4/usb-cp210x-add-mmb-and-pi-zigbee-usb-device-support.patch b/queue-3.4/usb-cp210x-add-mmb-and-pi-zigbee-usb-device-support.patch new file mode 100644 index 00000000000..ce77336cd63 --- /dev/null +++ b/queue-3.4/usb-cp210x-add-mmb-and-pi-zigbee-usb-device-support.patch @@ -0,0 +1,32 @@ +From 7681156982026ebf7eafd7301eb0374d7648d068 Mon Sep 17 00:00:00 2001 +From: Sami Rahman +Date: Mon, 8 Jul 2013 14:28:55 -0400 +Subject: USB: cp210x: add MMB and PI ZigBee USB Device Support + +From: Sami Rahman + +commit 7681156982026ebf7eafd7301eb0374d7648d068 upstream. + +Added support for MMB Networks and Planet Innovation Ingeni ZigBee USB +devices using customized Silicon Labs' CP210x.c USB to UART bridge +drivers with PIDs: 88A4, 88A5. + +Signed-off-by: Sami Rahman +Tested-by: Sami Rahman +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/cp210x.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/serial/cp210x.c ++++ b/drivers/usb/serial/cp210x.c +@@ -125,6 +125,8 @@ static const struct usb_device_id id_tab + { USB_DEVICE(0x10C4, 0x85F8) }, /* Virtenio Preon32 */ + { USB_DEVICE(0x10C4, 0x8664) }, /* AC-Services CAN-IF */ + { USB_DEVICE(0x10C4, 0x8665) }, /* AC-Services OBD-IF */ ++ { USB_DEVICE(0x10C4, 0x88A4) }, /* MMB Networks ZigBee USB Device */ ++ { USB_DEVICE(0x10C4, 0x88A5) }, /* Planet Innovation Ingeni ZigBee USB Device */ + { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */ + { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */ + { USB_DEVICE(0x10C4, 0xEA70) }, /* Silicon Labs factory default */ diff --git a/queue-3.4/usb-cp210x-support-sel-c662-vendor-device.patch b/queue-3.4/usb-cp210x-support-sel-c662-vendor-device.patch new file mode 100644 index 00000000000..18f169109bc --- /dev/null +++ b/queue-3.4/usb-cp210x-support-sel-c662-vendor-device.patch @@ -0,0 +1,29 @@ +From b579fa52f6be0b4157ca9cc5e94d44a2c89a7e95 Mon Sep 17 00:00:00 2001 +From: Barry Grussling +Date: Fri, 19 Jul 2013 14:46:12 -0700 +Subject: usb: cp210x support SEL C662 Vendor/Device + +From: Barry Grussling + +commit b579fa52f6be0b4157ca9cc5e94d44a2c89a7e95 upstream. + +This patch adds support for the Schweitzer Engineering Laboratories +C662 USB cable based off the CP210x driver. + +Signed-off-by: Barry Grussling +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/cp210x.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/serial/cp210x.c ++++ b/drivers/usb/serial/cp210x.c +@@ -157,6 +157,7 @@ static const struct usb_device_id id_tab + { USB_DEVICE(0x17F4, 0xAAAA) }, /* Wavesense Jazz blood glucose meter */ + { USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */ + { USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */ ++ { USB_DEVICE(0x1ADB, 0x0001) }, /* Schweitzer Engineering C662 Cable */ + { USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */ + { USB_DEVICE(0x1E29, 0x0102) }, /* Festo CPX-USB */ + { USB_DEVICE(0x1E29, 0x0501) }, /* Festo CMSP */ diff --git a/queue-3.4/usb-option-add-d-link-dwm-152-c1-and-dwm-156-c1.patch b/queue-3.4/usb-option-add-d-link-dwm-152-c1-and-dwm-156-c1.patch new file mode 100644 index 00000000000..7ba14c90311 --- /dev/null +++ b/queue-3.4/usb-option-add-d-link-dwm-152-c1-and-dwm-156-c1.patch @@ -0,0 +1,77 @@ +From ca24763588844b14f019ffc45c7df6d9e8f932c5 Mon Sep 17 00:00:00 2001 +From: "Alexandr \\\"Sky\\\" Ivanov" +Date: Tue, 23 Jul 2013 17:46:40 +0400 +Subject: USB: option: add D-Link DWM-152/C1 and DWM-156/C1 + +From: "Alexandr \\\"Sky\\\" Ivanov" + +commit ca24763588844b14f019ffc45c7df6d9e8f932c5 upstream. + +Adding support for D-Link DWM-152/C1 and DWM-156/C1 devices. + +DWM-152/C1: +T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 6 Spd=480 MxCh= 0 +D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 +P: Vendor=07d1 ProdID=3e01 Rev= 0.00 +S: Product=USB Configuration +S: SerialNumber=1234567890ABCDEF +C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA +I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option +E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=2ms +E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option +E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option +E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option +E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage +E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms + +DWM-156/C1: +T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 8 Spd=480 MxCh= 0 +D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 +P: Vendor=07d1 ProdID=3e02 Rev= 0.00 +S: Product=DataCard Device +S: SerialNumber=1234567890ABCDEF +C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA +I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option +E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=2ms +E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option +E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option +E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option +E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage +E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms + +Signed-off-by: Alexandr Ivanov +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -1361,6 +1361,8 @@ static const struct usb_device_id option + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d02, 0xff, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x02, 0x01) }, + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x00, 0x00) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */ ++ { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */ + { } /* Terminating entry */ + }; + MODULE_DEVICE_TABLE(usb, option_ids); diff --git a/queue-3.4/usb-option-add-tp-link-ma260.patch b/queue-3.4/usb-option-add-tp-link-ma260.patch new file mode 100644 index 00000000000..1f0b1103f73 --- /dev/null +++ b/queue-3.4/usb-option-add-tp-link-ma260.patch @@ -0,0 +1,27 @@ +From 94190301ffa059c2d127b3a67ec5d161d5c62681 Mon Sep 17 00:00:00 2001 +From: Bjørn Mork +Date: Fri, 28 Jun 2013 17:15:25 +0200 +Subject: usb: option: add TP-LINK MA260 + +From: Bjørn Mork + +commit 94190301ffa059c2d127b3a67ec5d161d5c62681 upstream. + +Signed-off-by: Bjørn Mork +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -1355,6 +1355,8 @@ static const struct usb_device_id option + { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T) }, + { USB_DEVICE(TPLINK_VENDOR_ID, TPLINK_PRODUCT_MA180), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, ++ { USB_DEVICE(TPLINK_VENDOR_ID, 0x9000), /* TP-Link MA260 */ ++ .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE(CHANGHONG_VENDOR_ID, CHANGHONG_PRODUCT_CH690) }, + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d01, 0xff, 0x02, 0x01) }, /* D-Link DWM-156 (variant) */ + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d01, 0xff, 0x00, 0x00) }, /* D-Link DWM-156 (variant) */ diff --git a/queue-3.4/usb-option-append-petatel-np10t-device-to-gsm-modems-list.patch b/queue-3.4/usb-option-append-petatel-np10t-device-to-gsm-modems-list.patch new file mode 100644 index 00000000000..0060913ebe8 --- /dev/null +++ b/queue-3.4/usb-option-append-petatel-np10t-device-to-gsm-modems-list.patch @@ -0,0 +1,46 @@ +From c38e83b6cc2adf80e3f091fd92cfbeacc9748347 Mon Sep 17 00:00:00 2001 +From: Daniil Bolsun +Date: Fri, 19 Jul 2013 10:21:23 +0300 +Subject: USB: option: append Petatel NP10T device to GSM modems list + +From: Daniil Bolsun + +commit c38e83b6cc2adf80e3f091fd92cfbeacc9748347 upstream. + +This patch was tested on 3.10.1 kernel. + +Same models of Petatel NP10T modems have different device IDs. +Unfortunately they have no additional revision information on a board +which may treat them as different devices. Currently I've seen only +two NP10T devices with various IDs. Possibly Petatel NP10T list will +be appended upon devices with new IDs will appear. + +Signed-off-by: Daniil Bolsun +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -445,7 +445,8 @@ static void option_instat_callback(struc + + /* Hyundai Petatel Inc. products */ + #define PETATEL_VENDOR_ID 0x1ff4 +-#define PETATEL_PRODUCT_NP10T 0x600e ++#define PETATEL_PRODUCT_NP10T_600A 0x600a ++#define PETATEL_PRODUCT_NP10T_600E 0x600e + + /* TP-LINK Incorporated products */ + #define TPLINK_VENDOR_ID 0x2357 +@@ -1347,7 +1348,8 @@ static const struct usb_device_id option + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x02, 0x01) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x00, 0x00) }, + { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) }, +- { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T) }, ++ { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600A) }, ++ { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600E) }, + { USB_DEVICE(TPLINK_VENDOR_ID, TPLINK_PRODUCT_MA180), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE(TPLINK_VENDOR_ID, 0x9000), /* TP-Link MA260 */ diff --git a/queue-3.4/usb-serial-cp210x-add-usb-id-for-netgear-switches-embedded-serial-adapter.patch b/queue-3.4/usb-serial-cp210x-add-usb-id-for-netgear-switches-embedded-serial-adapter.patch new file mode 100644 index 00000000000..d59e264966d --- /dev/null +++ b/queue-3.4/usb-serial-cp210x-add-usb-id-for-netgear-switches-embedded-serial-adapter.patch @@ -0,0 +1,31 @@ +From 90625070c4253377025878c4e82feed8b35c7116 Mon Sep 17 00:00:00 2001 +From: Luiz Angelo Daros de Luca +Date: Mon, 1 Jul 2013 23:56:25 -0300 +Subject: usb: serial: cp210x: Add USB ID for Netgear Switches embedded serial adapter + +From: Luiz Angelo Daros de Luca + +commit 90625070c4253377025878c4e82feed8b35c7116 upstream. + +This adds NetGear Managed Switch M4100 series, M5300 series, M7100 series +USB ID (0846:0110) to the cp210x driver. Without this, the serial +adapter is not recognized in Linux. Description was obtained from +an Netgear Eng. + +Signed-off-by: Luiz Angelo Daros de Luca +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/cp210x.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/serial/cp210x.c ++++ b/drivers/usb/serial/cp210x.c +@@ -60,6 +60,7 @@ static const struct usb_device_id id_tab + { USB_DEVICE(0x0489, 0xE000) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */ + { USB_DEVICE(0x0489, 0xE003) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */ + { USB_DEVICE(0x0745, 0x1000) }, /* CipherLab USB CCD Barcode Scanner 1000 */ ++ { USB_DEVICE(0x0846, 0x1100) }, /* NetGear Managed Switch M4100 series, M5300 series, M7100 series */ + { USB_DEVICE(0x08e6, 0x5501) }, /* Gemalto Prox-PU/CU contactless smartcard reader */ + { USB_DEVICE(0x08FD, 0x000A) }, /* Digianswer A/S , ZigBee/802.15.4 MAC Device */ + { USB_DEVICE(0x0BED, 0x1100) }, /* MEI (TM) Cashflow-SC Bill/Voucher Acceptor */ diff --git a/queue-3.4/usb-serial-option-add-olivetti-olicard-200.patch b/queue-3.4/usb-serial-option-add-olivetti-olicard-200.patch new file mode 100644 index 00000000000..21611359d56 --- /dev/null +++ b/queue-3.4/usb-serial-option-add-olivetti-olicard-200.patch @@ -0,0 +1,37 @@ +From 4cf76df06ecc852633ed927d91e01c83c33bc331 Mon Sep 17 00:00:00 2001 +From: Dan Williams +Date: Wed, 10 Jul 2013 12:25:02 -0500 +Subject: usb: serial: option: add Olivetti Olicard 200 + +From: Dan Williams + +commit 4cf76df06ecc852633ed927d91e01c83c33bc331 upstream. + +Speaks AT on interfaces 5 (command & PPP) and 3 (secondary), other +interface protocols are unknown. + +Signed-off-by: Dan Williams +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -347,6 +347,7 @@ static void option_instat_callback(struc + #define OLIVETTI_VENDOR_ID 0x0b3c + #define OLIVETTI_PRODUCT_OLICARD100 0xc000 + #define OLIVETTI_PRODUCT_OLICARD145 0xc003 ++#define OLIVETTI_PRODUCT_OLICARD200 0xc005 + + /* Celot products */ + #define CELOT_VENDOR_ID 0x211f +@@ -1279,6 +1280,7 @@ static const struct usb_device_id option + + { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100) }, + { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD145) }, ++ { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD200) }, + { USB_DEVICE(CELOT_VENDOR_ID, CELOT_PRODUCT_CT680M) }, /* CT-650 CDMA 450 1xEVDO modem */ + { USB_DEVICE(ONDA_VENDOR_ID, ONDA_MT825UP) }, /* ONDA MT825UP modem */ + { USB_DEVICE_AND_INTERFACE_INFO(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_GT_B3730, USB_CLASS_CDC_DATA, 0x00, 0x00) }, /* Samsung GT-B3730 LTE USB modem.*/ diff --git a/queue-3.4/usb-serial-option-add-onyx-3g-device-support.patch b/queue-3.4/usb-serial-option-add-onyx-3g-device-support.patch new file mode 100644 index 00000000000..7715309f78b --- /dev/null +++ b/queue-3.4/usb-serial-option-add-onyx-3g-device-support.patch @@ -0,0 +1,29 @@ +From 63b5df963f52ccbab6fabedf05b7ac6b465789a4 Mon Sep 17 00:00:00 2001 +From: Enrico Mioso +Date: Thu, 25 Jul 2013 02:01:39 +0200 +Subject: usb: serial: option: Add ONYX 3G device support + +From: Enrico Mioso + +commit 63b5df963f52ccbab6fabedf05b7ac6b465789a4 upstream. + +This patch adds support for the ONYX 3G device (version 1) from ALFA +NETWORK. + +Signed-off-by: Enrico Mioso +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -793,6 +793,7 @@ static const struct usb_device_id option + { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) }, + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6000)}, /* ZTE AC8700 */ + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ ++ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */ + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */ + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6280) }, /* BP3-USB & BP3-EXT HSDPA */ + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6008) }, diff --git a/queue-3.4/usb-serial-option-blacklist-onda-mt689dc-qmi-interface.patch b/queue-3.4/usb-serial-option-blacklist-onda-mt689dc-qmi-interface.patch new file mode 100644 index 00000000000..ec9646368e9 --- /dev/null +++ b/queue-3.4/usb-serial-option-blacklist-onda-mt689dc-qmi-interface.patch @@ -0,0 +1,31 @@ +From 3d1a69e726406ab662ab88fa30a3a05ed404334d Mon Sep 17 00:00:00 2001 +From: Enrico Mioso +Date: Sat, 29 Jun 2013 15:33:35 +0200 +Subject: usb: serial: option: blacklist ONDA MT689DC QMI interface + +From: Enrico Mioso + +commit 3d1a69e726406ab662ab88fa30a3a05ed404334d upstream. + +Prevent the option driver from binding itself to the QMI/WWAN interface, making +it unusable by the proper driver. + +Signed-off-by: enrico Mioso +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -832,7 +832,8 @@ static const struct usb_device_id option + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0017, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0018, 0xff, 0xff, 0xff) }, +- { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0019, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0019, 0xff, 0xff, 0xff), ++ .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0020, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0021, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, diff --git a/queue-3.4/usb-serial-option.c-remove-onda-mt825up-product-id-fromdriver.patch b/queue-3.4/usb-serial-option.c-remove-onda-mt825up-product-id-fromdriver.patch new file mode 100644 index 00000000000..9f9825d047d --- /dev/null +++ b/queue-3.4/usb-serial-option.c-remove-onda-mt825up-product-id-fromdriver.patch @@ -0,0 +1,44 @@ +From 878c69aae986ae97084458c0183a8c0a059865b1 Mon Sep 17 00:00:00 2001 +From: Enrico Mioso +Date: Sat, 13 Jul 2013 18:54:14 +0200 +Subject: usb: serial: option.c: remove ONDA MT825UP product ID fromdriver + +From: Enrico Mioso + +commit 878c69aae986ae97084458c0183a8c0a059865b1 upstream. + +Some (very few) early devices like mine, where not exposting a proper CDC +descriptor. This was fixed with an immediate firmware update from the vendor, +and pre-installed on newer devices. +So actual devices can be driven by cdc_acm.c + cdc_ether.c. + +Signed-off-by: Enrico Mioso +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 7 ------- + 1 file changed, 7 deletions(-) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -353,12 +353,6 @@ static void option_instat_callback(struc + #define CELOT_VENDOR_ID 0x211f + #define CELOT_PRODUCT_CT680M 0x6801 + +-/* ONDA Communication vendor id */ +-#define ONDA_VENDOR_ID 0x1ee8 +- +-/* ONDA MT825UP HSDPA 14.2 modem */ +-#define ONDA_MT825UP 0x000b +- + /* Samsung products */ + #define SAMSUNG_VENDOR_ID 0x04e8 + #define SAMSUNG_PRODUCT_GT_B3730 0x6889 +@@ -1282,7 +1276,6 @@ static const struct usb_device_id option + { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD145) }, + { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD200) }, + { USB_DEVICE(CELOT_VENDOR_ID, CELOT_PRODUCT_CT680M) }, /* CT-650 CDMA 450 1xEVDO modem */ +- { USB_DEVICE(ONDA_VENDOR_ID, ONDA_MT825UP) }, /* ONDA MT825UP modem */ + { USB_DEVICE_AND_INTERFACE_INFO(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_GT_B3730, USB_CLASS_CDC_DATA, 0x00, 0x00) }, /* Samsung GT-B3730 LTE USB modem.*/ + { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM600) }, + { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM610) }, -- 2.47.3