]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Jul 2013 20:38:43 +0000 (13:38 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Jul 2013 20:38:43 +0000 (13:38 -0700)
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

15 files changed:
queue-3.4/alsa-usb-audio-6fire-return-correct-xrun-indication.patch [new file with mode: 0644]
queue-3.4/hrtimers-move-smp-function-call-to-thread-context.patch [new file with mode: 0644]
queue-3.4/lockd-protect-nlm_blocked-access-in-nlmsvc_retry_blocked.patch [new file with mode: 0644]
queue-3.4/series
queue-3.4/tracing-fix-irqs-off-tag-display-in-syscall-tracing.patch [new file with mode: 0644]
queue-3.4/usb-cp210x-add-mmb-and-pi-zigbee-usb-device-support.patch [new file with mode: 0644]
queue-3.4/usb-cp210x-support-sel-c662-vendor-device.patch [new file with mode: 0644]
queue-3.4/usb-option-add-d-link-dwm-152-c1-and-dwm-156-c1.patch [new file with mode: 0644]
queue-3.4/usb-option-add-tp-link-ma260.patch [new file with mode: 0644]
queue-3.4/usb-option-append-petatel-np10t-device-to-gsm-modems-list.patch [new file with mode: 0644]
queue-3.4/usb-serial-cp210x-add-usb-id-for-netgear-switches-embedded-serial-adapter.patch [new file with mode: 0644]
queue-3.4/usb-serial-option-add-olivetti-olicard-200.patch [new file with mode: 0644]
queue-3.4/usb-serial-option-add-onyx-3g-device-support.patch [new file with mode: 0644]
queue-3.4/usb-serial-option-blacklist-onda-mt689dc-qmi-interface.patch [new file with mode: 0644]
queue-3.4/usb-serial-option.c-remove-onda-mt825up-product-id-fromdriver.patch [new file with mode: 0644]

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 (file)
index 0000000..7e3d458
--- /dev/null
@@ -0,0 +1,34 @@
+From be2f93a4c4981b3646b6f98f477154411b8516cb Mon Sep 17 00:00:00 2001
+From: Eldad Zack <eldad@fogrefinery.com>
+Date: Fri, 19 Jul 2013 18:26:53 +0200
+Subject: ALSA: usb-audio: 6fire: return correct XRUN indication
+
+From: Eldad Zack <eldad@fogrefinery.com>
+
+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 <eldad@fogrefinery.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..4a34a32
--- /dev/null
@@ -0,0 +1,95 @@
+From 5ec2481b7b47a4005bb446d176e5d0257400c77d Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 5 Jul 2013 12:09:18 +0200
+Subject: hrtimers: Move SMP function call to thread context
+
+From: Thomas Gleixner <tglx@linutronix.de>
+
+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 <artem.savkov@gmail.com>
+Reported-by: Sasha Levin <sasha.levin@oracle.com>
+Cc: David Vrabel <david.vrabel@citrix.com>
+Cc: Ingo Molnar <mingo@kernel.org>
+Cc: H. Peter Anvin <hpa@zytor.com>,
+Cc: Konrad Wilk <konrad.wilk@oracle.com>
+Cc: John Stultz <john.stultz@linaro.org>
+Cc: xen-devel@lists.xen.org
+Cc: stable@vger.kernel.org
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..7cda748
--- /dev/null
@@ -0,0 +1,61 @@
+From 1c327d962fc420aea046c16215a552710bde8231 Mon Sep 17 00:00:00 2001
+From: David Jeffery <djeffery@redhat.com>
+Date: Wed, 10 Jul 2013 13:19:50 -0400
+Subject: lockd: protect nlm_blocked access in nlmsvc_retry_blocked
+
+From: David Jeffery <djeffery@redhat.com>
+
+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 <djeffery@redhat.com>
+Cc: Bryan Schumaker <bjschuma@netapp.com>
+Signed-off-by: J. Bruce Fields <bfields@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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;
+ }
index d4d7a1f98471e4c0a41b99c7267b4fd3e0e853fc..a53bb9e9fc4d54bc99504f782a1081a539c4c17d 100644 (file)
@@ -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 (file)
index 0000000..4bca79f
--- /dev/null
@@ -0,0 +1,123 @@
+From 11034ae9c20f4057a6127fc965906417978e69b2 Mon Sep 17 00:00:00 2001
+From: "zhangwei(Jovi)" <jovi.zhangwei@huawei.com>
+Date: Wed, 10 Apr 2013 11:26:23 +0800
+Subject: tracing: Fix irqs-off tag display in syscall tracing
+
+From: "zhangwei(Jovi)" <jovi.zhangwei@huawei.com>
+
+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) <jovi.zhangwei@huawei.com>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..ce77336
--- /dev/null
@@ -0,0 +1,32 @@
+From 7681156982026ebf7eafd7301eb0374d7648d068 Mon Sep 17 00:00:00 2001
+From: Sami Rahman <sami.rahman@mmbresearch.com>
+Date: Mon, 8 Jul 2013 14:28:55 -0400
+Subject: USB: cp210x: add MMB and PI ZigBee USB Device Support
+
+From: Sami Rahman <sami.rahman@mmbresearch.com>
+
+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 <sami.rahman@mmbresearch.com>
+Tested-by: Sami Rahman <sami.rahman@mmbresearch.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..18f1691
--- /dev/null
@@ -0,0 +1,29 @@
+From b579fa52f6be0b4157ca9cc5e94d44a2c89a7e95 Mon Sep 17 00:00:00 2001
+From: Barry Grussling <barry@grussling.com>
+Date: Fri, 19 Jul 2013 14:46:12 -0700
+Subject: usb: cp210x support SEL C662 Vendor/Device
+
+From: Barry Grussling <barry@grussling.com>
+
+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 <barry@grussling.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..7ba14c9
--- /dev/null
@@ -0,0 +1,77 @@
+From ca24763588844b14f019ffc45c7df6d9e8f932c5 Mon Sep 17 00:00:00 2001
+From: "Alexandr \\\"Sky\\\" Ivanov" <alexandr.sky@gmail.com>
+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" <alexandr.sky@gmail.com>
+
+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 <alexandr.sky@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..1f0b110
--- /dev/null
@@ -0,0 +1,27 @@
+From 94190301ffa059c2d127b3a67ec5d161d5c62681 Mon Sep 17 00:00:00 2001
+From: Bjørn Mork <bjorn@mork.no>
+Date: Fri, 28 Jun 2013 17:15:25 +0200
+Subject: usb: option: add TP-LINK MA260
+
+From: Bjørn Mork <bjorn@mork.no>
+
+commit 94190301ffa059c2d127b3a67ec5d161d5c62681 upstream.
+
+Signed-off-by: Bjørn Mork <bjorn@mork.no>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..0060913
--- /dev/null
@@ -0,0 +1,46 @@
+From c38e83b6cc2adf80e3f091fd92cfbeacc9748347 Mon Sep 17 00:00:00 2001
+From: Daniil Bolsun <dan.bolsun@gmail.com>
+Date: Fri, 19 Jul 2013 10:21:23 +0300
+Subject: USB: option: append Petatel NP10T device to GSM modems list
+
+From: Daniil Bolsun <dan.bolsun@gmail.com>
+
+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 <dan.bolsun@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..d59e264
--- /dev/null
@@ -0,0 +1,31 @@
+From 90625070c4253377025878c4e82feed8b35c7116 Mon Sep 17 00:00:00 2001
+From: Luiz Angelo Daros de Luca <luizluca@gmail.com>
+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 <luizluca@gmail.com>
+
+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 <luizluca@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..2161135
--- /dev/null
@@ -0,0 +1,37 @@
+From 4cf76df06ecc852633ed927d91e01c83c33bc331 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Wed, 10 Jul 2013 12:25:02 -0500
+Subject: usb: serial: option: add Olivetti Olicard 200
+
+From: Dan Williams <dcbw@redhat.com>
+
+commit 4cf76df06ecc852633ed927d91e01c83c33bc331 upstream.
+
+Speaks AT on interfaces 5 (command & PPP) and 3 (secondary), other
+interface protocols are unknown.
+
+Signed-off-by: Dan Williams <dcbw@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..7715309
--- /dev/null
@@ -0,0 +1,29 @@
+From 63b5df963f52ccbab6fabedf05b7ac6b465789a4 Mon Sep 17 00:00:00 2001
+From: Enrico Mioso <mrkiko.rs@gmail.com>
+Date: Thu, 25 Jul 2013 02:01:39 +0200
+Subject: usb: serial: option: Add ONYX 3G device support
+
+From: Enrico Mioso <mrkiko.rs@gmail.com>
+
+commit 63b5df963f52ccbab6fabedf05b7ac6b465789a4 upstream.
+
+This patch adds support for the ONYX 3G device (version 1) from ALFA
+NETWORK.
+
+Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..ec96463
--- /dev/null
@@ -0,0 +1,31 @@
+From 3d1a69e726406ab662ab88fa30a3a05ed404334d Mon Sep 17 00:00:00 2001
+From: Enrico Mioso <mrkiko.rs@gmail.com>
+Date: Sat, 29 Jun 2013 15:33:35 +0200
+Subject: usb: serial: option: blacklist ONDA MT689DC QMI interface
+
+From: Enrico Mioso <mrkiko.rs@gmail.com>
+
+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 <mrkiko.rs@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..9f9825d
--- /dev/null
@@ -0,0 +1,44 @@
+From 878c69aae986ae97084458c0183a8c0a059865b1 Mon Sep 17 00:00:00 2001
+From: Enrico Mioso <mrkiko.rs@gmail.com>
+Date: Sat, 13 Jul 2013 18:54:14 +0200
+Subject: usb: serial: option.c: remove ONDA MT825UP product ID fromdriver
+
+From: Enrico Mioso <mrkiko.rs@gmail.com>
+
+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 <mrkiko.rs@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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) },