]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Mar 2013 19:28:27 +0000 (11:28 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Mar 2013 19:28:27 +0000 (11:28 -0800)
added patches:
ata_piix-add-device-ids-for-intel-wellsburg-pch.patch
ata_piix-ide-mode-sata-patch-for-intel-avoton-deviceids.patch
perf-tools-fix-build-with-bison-2.3-and-older.patch
staging-comedi-check-s-async-for-poll-read-and-write.patch
staging-comedi-ni_labpc-correct-differential-channel-sequence-for-ai-commands.patch
staging-comedi-ni_labpc-set-up-command4-register-after-command3.patch
usb-hid-quirks-for-masterkit-ma901-usb-radio.patch

queue-3.4/ata_piix-add-device-ids-for-intel-wellsburg-pch.patch [new file with mode: 0644]
queue-3.4/ata_piix-ide-mode-sata-patch-for-intel-avoton-deviceids.patch [new file with mode: 0644]
queue-3.4/perf-tools-fix-build-with-bison-2.3-and-older.patch [new file with mode: 0644]
queue-3.4/series
queue-3.4/staging-comedi-check-s-async-for-poll-read-and-write.patch [new file with mode: 0644]
queue-3.4/staging-comedi-ni_labpc-correct-differential-channel-sequence-for-ai-commands.patch [new file with mode: 0644]
queue-3.4/staging-comedi-ni_labpc-set-up-command4-register-after-command3.patch [new file with mode: 0644]
queue-3.4/usb-hid-quirks-for-masterkit-ma901-usb-radio.patch [new file with mode: 0644]

diff --git a/queue-3.4/ata_piix-add-device-ids-for-intel-wellsburg-pch.patch b/queue-3.4/ata_piix-add-device-ids-for-intel-wellsburg-pch.patch
new file mode 100644 (file)
index 0000000..96ad596
--- /dev/null
@@ -0,0 +1,37 @@
+From 3aee8bc52c415aba8148f144e5e5359b0fd75dd1 Mon Sep 17 00:00:00 2001
+From: James Ralston <james.d.ralston@intel.com>
+Date: Fri, 8 Feb 2013 17:24:12 -0800
+Subject: ata_piix: Add Device IDs for Intel Wellsburg PCH
+
+From: James Ralston <james.d.ralston@intel.com>
+
+commit 3aee8bc52c415aba8148f144e5e5359b0fd75dd1 upstream.
+
+This patch adds the IDE-mode SATA Device IDs for the Intel Wellsburg PCH
+
+Signed-off-by: James Ralston <james.d.ralston@intel.com>
+Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/ata/ata_piix.c |    9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/ata/ata_piix.c
++++ b/drivers/ata/ata_piix.c
+@@ -339,6 +339,15 @@ static const struct pci_device_id piix_p
+       { 0x8086, 0x1f30, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
+       /* SATA Controller IDE (Avoton) */
+       { 0x8086, 0x1f31, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
++      /* SATA Controller IDE (Wellsburg) */
++      { 0x8086, 0x8d00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
++      /* SATA Controller IDE (Wellsburg) */
++      { 0x8086, 0x8d08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
++      /* SATA Controller IDE (Wellsburg) */
++      { 0x8086, 0x8d60, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
++      /* SATA Controller IDE (Wellsburg) */
++      { 0x8086, 0x8d68, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
++
+       { }     /* terminate list */
+ };
diff --git a/queue-3.4/ata_piix-ide-mode-sata-patch-for-intel-avoton-deviceids.patch b/queue-3.4/ata_piix-ide-mode-sata-patch-for-intel-avoton-deviceids.patch
new file mode 100644 (file)
index 0000000..8954e87
--- /dev/null
@@ -0,0 +1,36 @@
+From aaa515277db9585eeb4fdeb4637b9f9df50a1dd9 Mon Sep 17 00:00:00 2001
+From: Seth Heasley <seth.heasley@intel.com>
+Date: Fri, 25 Jan 2013 11:57:05 -0800
+Subject: ata_piix: IDE-mode SATA patch for Intel Avoton DeviceIDs
+
+From: Seth Heasley <seth.heasley@intel.com>
+
+commit aaa515277db9585eeb4fdeb4637b9f9df50a1dd9 upstream.
+
+This patch adds the IDE-mode SATA DeviceIDs for the Intel Avoton SOC.
+
+Signed-off-by: Seth Heasley <seth.heasley@intel.com>
+Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/ata/ata_piix.c |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/ata/ata_piix.c
++++ b/drivers/ata/ata_piix.c
+@@ -331,6 +331,14 @@ static const struct pci_device_id piix_p
+       { 0x8086, 0x8c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
+       /* SATA Controller IDE (DH89xxCC) */
+       { 0x8086, 0x2326, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
++      /* SATA Controller IDE (Avoton) */
++      { 0x8086, 0x1f20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
++      /* SATA Controller IDE (Avoton) */
++      { 0x8086, 0x1f21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
++      /* SATA Controller IDE (Avoton) */
++      { 0x8086, 0x1f30, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
++      /* SATA Controller IDE (Avoton) */
++      { 0x8086, 0x1f31, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
+       { }     /* terminate list */
+ };
diff --git a/queue-3.4/perf-tools-fix-build-with-bison-2.3-and-older.patch b/queue-3.4/perf-tools-fix-build-with-bison-2.3-and-older.patch
new file mode 100644 (file)
index 0000000..e11b852
--- /dev/null
@@ -0,0 +1,74 @@
+From vlee@twitter.com  Fri Mar  1 11:21:19 2013
+From: Vinson Lee <vlee@twitter.com>
+Date: Tue, 26 Feb 2013 18:30:30 -0800
+Subject: perf tools: Fix build with bison 2.3 and older.
+To: stable@vger.kernel.org
+Cc: Vinson Lee <vlee@twitter.com>, Ingo Molnar <mingo@redhat.com>, Jiri Olsa <jolsa@redhat.com>, Li Zefan <lizefan@huawei.com>, Namhyung Kim <namhyung@gmail.com>, Paul Mackerras <paulus@samba.org>, Pekka Enberg <penberg@kernel.org>, Arnaldo Carvalho de Melo <acme@redhat.com>
+Message-ID: <1361932230-11746-1-git-send-email-vlee@twitter.com>
+
+From: Vinson Lee <vlee@twitter.com>
+
+commit 85df3b3769222894e9692b383c7af124b7721086 upstream.
+
+The %name-prefix "prefix" syntax is not available on bison 2.3 and
+older. Substitute with the -p "prefix" command-line option for
+compatibility with older versions of bison.
+
+This patch fixes this build error with older versions of bison.
+
+    CC util/sysfs.o
+    BISON util/pmu-bison.c
+util/pmu.y:2.14-24: syntax error, unexpected string, expecting =
+make: *** [util/pmu-bison.c] Error 1
+
+Signed-off-by: Vinson Lee <vlee@twitter.com>
+Tested-by: Li Zefan <lizefan@huawei.com>
+Cc: Ingo Molnar <mingo@redhat.com>
+Cc: Jiri Olsa <jolsa@redhat.com>
+Cc: Li Zefan <lizefan@huawei.com>
+Cc: Namhyung Kim <namhyung@gmail.com>
+Cc: Paul Mackerras <paulus@samba.org>
+Cc: Pekka Enberg <penberg@kernel.org>
+Link: http://lkml.kernel.org/r/1360792138-29186-1-git-send-email-vlee@twitter.com
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/perf/Makefile            |    4 ++--
+ tools/perf/util/parse-events.y |    1 -
+ tools/perf/util/pmu.y          |    1 -
+ 3 files changed, 2 insertions(+), 4 deletions(-)
+
+--- a/tools/perf/Makefile
++++ b/tools/perf/Makefile
+@@ -241,13 +241,13 @@ $(OUTPUT)util/parse-events-flex.c: util/
+       $(QUIET_FLEX)$(FLEX) --header-file=$(OUTPUT)util/parse-events-flex.h -t util/parse-events.l > $(OUTPUT)util/parse-events-flex.c
+ $(OUTPUT)util/parse-events-bison.c: util/parse-events.y
+-      $(QUIET_BISON)$(BISON) -v util/parse-events.y -d -o $(OUTPUT)util/parse-events-bison.c
++      $(QUIET_BISON)$(BISON) -v util/parse-events.y -d -o $(OUTPUT)util/parse-events-bison.c -p parse_events_
+ $(OUTPUT)util/pmu-flex.c: util/pmu.l
+       $(QUIET_FLEX)$(FLEX) --header-file=$(OUTPUT)util/pmu-flex.h -t util/pmu.l > $(OUTPUT)util/pmu-flex.c
+ $(OUTPUT)util/pmu-bison.c: util/pmu.y
+-      $(QUIET_BISON)$(BISON) -v util/pmu.y -d -o $(OUTPUT)util/pmu-bison.c
++      $(QUIET_BISON)$(BISON) -v util/pmu.y -d -o $(OUTPUT)util/pmu-bison.c -p perf_pmu_
+ $(OUTPUT)util/parse-events.o: $(OUTPUT)util/parse-events-flex.c $(OUTPUT)util/parse-events-bison.c
+ $(OUTPUT)util/pmu.o: $(OUTPUT)util/pmu-flex.c $(OUTPUT)util/pmu-bison.c
+--- a/tools/perf/util/parse-events.y
++++ b/tools/perf/util/parse-events.y
+@@ -1,5 +1,4 @@
+-%name-prefix "parse_events_"
+ %parse-param {struct list_head *list_all}
+ %parse-param {struct list_head *list_event}
+ %parse-param {int *idx}
+--- a/tools/perf/util/pmu.y
++++ b/tools/perf/util/pmu.y
+@@ -1,5 +1,4 @@
+-%name-prefix "perf_pmu_"
+ %parse-param {struct list_head *format}
+ %parse-param {char *name}
index ec3d71ed39aab32103c4a13e90ca4ff2d1f8061e..a77dffc995a81ade20bf3659aa8f7d169d80ef25 100644 (file)
@@ -37,3 +37,10 @@ cgroup-fix-exit-vs-rmdir-race.patch
 ab8500-chargalg-only-root-should-have-write-permission-on-sysfs-file.patch
 ab8500_btemp-demote-initcall-sequence.patch
 acpi-add-dmi-entry-for-sony-vgn-fw41e_h.patch
+staging-comedi-ni_labpc-correct-differential-channel-sequence-for-ai-commands.patch
+staging-comedi-ni_labpc-set-up-command4-register-after-command3.patch
+staging-comedi-check-s-async-for-poll-read-and-write.patch
+perf-tools-fix-build-with-bison-2.3-and-older.patch
+ata_piix-ide-mode-sata-patch-for-intel-avoton-deviceids.patch
+ata_piix-add-device-ids-for-intel-wellsburg-pch.patch
+usb-hid-quirks-for-masterkit-ma901-usb-radio.patch
diff --git a/queue-3.4/staging-comedi-check-s-async-for-poll-read-and-write.patch b/queue-3.4/staging-comedi-check-s-async-for-poll-read-and-write.patch
new file mode 100644 (file)
index 0000000..92cac5b
--- /dev/null
@@ -0,0 +1,68 @@
+From abbotti@mev.co.uk  Fri Mar  1 11:20:18 2013
+From: Ian Abbott <abbotti@mev.co.uk>
+Date: Wed, 27 Feb 2013 10:56:19 +0000
+Subject: staging: comedi: check s->async for poll(), read() and write()
+To: stable@vger.kernel.org
+Cc: gregkh@linuxfoundation.org, Ian Abbott <abbotti@mev.co.uk>
+Message-ID: <1361962579-4790-1-git-send-email-abbotti@mev.co.uk>
+
+From: Ian Abbott <abbotti@mev.co.uk>
+
+commit cc400e185c07c15a42d2635995f422de5b94b696 upstream.
+
+Some low-level comedi drivers (incorrectly) point `dev->read_subdev` or
+`dev->write_subdev` to a subdevice that does not support asynchronous
+commands.  Comedi's poll(), read() and write() file operation handlers
+assume these subdevices do support asynchronous commands.  In
+particular, they assume `s->async` is valid (where `s` points to the
+read or write subdevice), which it won't be if it has been set
+incorrectly.  This can lead to a NULL pointer dereference.
+
+Check `s->async` is non-NULL in `comedi_poll()`, `comedi_read()` and
+`comedi_write()` to avoid the bug.
+
+Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/staging/comedi/comedi_fops.c |    8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/drivers/staging/comedi/comedi_fops.c
++++ b/drivers/staging/comedi/comedi_fops.c
+@@ -1577,7 +1577,7 @@ static unsigned int comedi_poll(struct f
+       mask = 0;
+       read_subdev = comedi_get_read_subdevice(dev_file_info);
+-      if (read_subdev) {
++      if (read_subdev && read_subdev->async) {
+               poll_wait(file, &read_subdev->async->wait_head, wait);
+               if (!read_subdev->busy
+                   || comedi_buf_read_n_available(read_subdev->async) > 0
+@@ -1587,7 +1587,7 @@ static unsigned int comedi_poll(struct f
+               }
+       }
+       write_subdev = comedi_get_write_subdevice(dev_file_info);
+-      if (write_subdev) {
++      if (write_subdev && write_subdev->async) {
+               poll_wait(file, &write_subdev->async->wait_head, wait);
+               comedi_buf_write_alloc(write_subdev->async,
+                                      write_subdev->async->prealloc_bufsz);
+@@ -1629,7 +1629,7 @@ static ssize_t comedi_write(struct file
+       }
+       s = comedi_get_write_subdevice(dev_file_info);
+-      if (s == NULL) {
++      if (s == NULL || s->async == NULL) {
+               retval = -EIO;
+               goto done;
+       }
+@@ -1740,7 +1740,7 @@ static ssize_t comedi_read(struct file *
+       }
+       s = comedi_get_read_subdevice(dev_file_info);
+-      if (s == NULL) {
++      if (s == NULL || s->async == NULL) {
+               retval = -EIO;
+               goto done;
+       }
diff --git a/queue-3.4/staging-comedi-ni_labpc-correct-differential-channel-sequence-for-ai-commands.patch b/queue-3.4/staging-comedi-ni_labpc-correct-differential-channel-sequence-for-ai-commands.patch
new file mode 100644 (file)
index 0000000..d63d16c
--- /dev/null
@@ -0,0 +1,54 @@
+From abbotti@mev.co.uk  Fri Mar  1 11:18:44 2013
+From: Ian Abbott <abbotti@mev.co.uk>
+Date: Wed, 27 Feb 2013 12:52:45 +0000
+Subject: staging: comedi: ni_labpc: correct differential channel sequence for AI commands
+To: stable@vger.kernel.org
+Cc: Ian Abbott <abbotti@mev.co.uk>
+Message-ID: <1361969566-32521-1-git-send-email-abbotti@mev.co.uk>
+
+From: Ian Abbott <abbotti@mev.co.uk>
+
+Commit 4c4bc25d0fa6beaf054c0b4c3b324487f266c820 upstream.
+
+Tuomas <tvainikk _at_ gmail _dot_ com> reported problems getting
+meaningful output from a Lab-PC+ in differential mode for AI cmds, but
+AI insn reads gave correct readings.  He tracked it down to two
+problems, one of which is addressed by this patch.
+
+It seems the setting of the channel bits for particular scanning modes
+was incorrect for differential mode.  (Only half the number of channels
+are available in differential mode; comedi refers to them as channels 0,
+1, 2 and 3, but the hardware documentation refers to them as channels 0,
+2, 4 and 6.)  In differential mode, the setting of the channel enable
+bits in the command1 register should depend on whether the scan enable
+bit is set.  Effectively, we need to double the comedi channel number
+when the scan enable bit is not set in differential mode.  The scan
+enable bit gets set when the AI scan mode is `MODE_MULT_CHAN_UP` or
+`MODE_MULT_CHAN_DOWN`, and gets cleared when the AI scan mode is
+`MODE_SINGLE_CHAN` or `MODE_SINGLE_CHAN_INTERVAL`.  The existing test
+for whether the comedi channel number needs to be doubled in
+differential mode is incorrect in `labpc_ai_cmd()`.  This patch corrects
+the test.
+
+Thanks to Tuomas for suggesting the fix.
+
+Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/staging/comedi/drivers/ni_labpc.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/staging/comedi/drivers/ni_labpc.c
++++ b/drivers/staging/comedi/drivers/ni_labpc.c
+@@ -1264,7 +1264,9 @@ static int labpc_ai_cmd(struct comedi_de
+       else
+               channel = CR_CHAN(cmd->chanlist[0]);
+       /* munge channel bits for differential / scan disabled mode */
+-      if (labpc_ai_scan_mode(cmd) != MODE_SINGLE_CHAN && aref == AREF_DIFF)
++      if ((labpc_ai_scan_mode(cmd) == MODE_SINGLE_CHAN ||
++           labpc_ai_scan_mode(cmd) == MODE_SINGLE_CHAN_INTERVAL) &&
++          aref == AREF_DIFF)
+               channel *= 2;
+       devpriv->command1_bits |= ADC_CHAN_BITS(channel);
+       devpriv->command1_bits |= thisboard->ai_range_code[range];
diff --git a/queue-3.4/staging-comedi-ni_labpc-set-up-command4-register-after-command3.patch b/queue-3.4/staging-comedi-ni_labpc-set-up-command4-register-after-command3.patch
new file mode 100644 (file)
index 0000000..4a1a5b6
--- /dev/null
@@ -0,0 +1,79 @@
+From abbotti@mev.co.uk  Fri Mar  1 11:19:33 2013
+From: Ian Abbott <abbotti@mev.co.uk>
+Date: Wed, 27 Feb 2013 12:52:46 +0000
+Subject: staging: comedi: ni_labpc: set up command4 register *after* command3
+To: stable@vger.kernel.org
+Cc: Ian Abbott <abbotti@mev.co.uk>
+Message-ID: <1361969566-32521-2-git-send-email-abbotti@mev.co.uk>
+
+From: Ian Abbott <abbotti@mev.co.uk>
+
+Commit 22056e2b46246d97ff0f7c6e21a77b8daa07f02c upstream.
+
+Tuomas <tvainikk _at_ gmail _dot_ com> reported problems getting
+meaningful output from a Lab-PC+ in differential mode for AI cmds, but
+AI insn reads gave correct readings.  He tracked it down to two
+problems, one of which is addressed by this patch.
+
+It seems that writing to the command3 register after writing to the
+command4 register in `labpc_ai_cmd()` messes up the differential
+reference bit setting in the command4 register.  Set up the command4
+register after the command3 register (as in `labpc_ai_rinsn()`) to avoid
+the problem.
+
+Thanks to Tuomas for suggesting the fix.
+
+Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/staging/comedi/drivers/ni_labpc.c |   31 +++++++++++++++---------------
+ 1 file changed, 16 insertions(+), 15 deletions(-)
+
+--- a/drivers/staging/comedi/drivers/ni_labpc.c
++++ b/drivers/staging/comedi/drivers/ni_labpc.c
+@@ -1282,21 +1282,6 @@ static int labpc_ai_cmd(struct comedi_de
+               devpriv->write_byte(devpriv->command1_bits,
+                                   dev->iobase + COMMAND1_REG);
+       }
+-      /*  setup any external triggering/pacing (command4 register) */
+-      devpriv->command4_bits = 0;
+-      if (cmd->convert_src != TRIG_EXT)
+-              devpriv->command4_bits |= EXT_CONVERT_DISABLE_BIT;
+-      /* XXX should discard first scan when using interval scanning
+-       * since manual says it is not synced with scan clock */
+-      if (labpc_use_continuous_mode(cmd) == 0) {
+-              devpriv->command4_bits |= INTERVAL_SCAN_EN_BIT;
+-              if (cmd->scan_begin_src == TRIG_EXT)
+-                      devpriv->command4_bits |= EXT_SCAN_EN_BIT;
+-      }
+-      /*  single-ended/differential */
+-      if (aref == AREF_DIFF)
+-              devpriv->command4_bits |= ADC_DIFF_BIT;
+-      devpriv->write_byte(devpriv->command4_bits, dev->iobase + COMMAND4_REG);
+       devpriv->write_byte(cmd->chanlist_len,
+                           dev->iobase + INTERVAL_COUNT_REG);
+@@ -1376,6 +1361,22 @@ static int labpc_ai_cmd(struct comedi_de
+               devpriv->command3_bits &= ~ADC_FNE_INTR_EN_BIT;
+       devpriv->write_byte(devpriv->command3_bits, dev->iobase + COMMAND3_REG);
++      /*  setup any external triggering/pacing (command4 register) */
++      devpriv->command4_bits = 0;
++      if (cmd->convert_src != TRIG_EXT)
++              devpriv->command4_bits |= EXT_CONVERT_DISABLE_BIT;
++      /* XXX should discard first scan when using interval scanning
++       * since manual says it is not synced with scan clock */
++      if (labpc_use_continuous_mode(cmd) == 0) {
++              devpriv->command4_bits |= INTERVAL_SCAN_EN_BIT;
++              if (cmd->scan_begin_src == TRIG_EXT)
++                      devpriv->command4_bits |= EXT_SCAN_EN_BIT;
++      }
++      /*  single-ended/differential */
++      if (aref == AREF_DIFF)
++              devpriv->command4_bits |= ADC_DIFF_BIT;
++      devpriv->write_byte(devpriv->command4_bits, dev->iobase + COMMAND4_REG);
++
+       /*  startup acquisition */
+       /*  command2 reg */
diff --git a/queue-3.4/usb-hid-quirks-for-masterkit-ma901-usb-radio.patch b/queue-3.4/usb-hid-quirks-for-masterkit-ma901-usb-radio.patch
new file mode 100644 (file)
index 0000000..327ef58
--- /dev/null
@@ -0,0 +1,45 @@
+From 0322bd3980b3ebf7dde8474e22614cb443d6479a Mon Sep 17 00:00:00 2001
+From: Alexey Klimov <klimov.linux@gmail.com>
+Date: Mon, 12 Nov 2012 02:57:03 -0300
+Subject: [hid] usb hid quirks for Masterkit MA901 usb radio
+
+From: Alexey Klimov <klimov.linux@gmail.com>
+
+commit 0322bd3980b3ebf7dde8474e22614cb443d6479a upstream.
+
+Don't let Masterkit MA901 USB radio be handled by usb hid drivers.
+This device will be handled by radio-ma901.c driver.
+
+Signed-off-by: Alexey Klimov <klimov.linux@gmail.com>
+Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
+Acked-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-core.c |    1 +
+ drivers/hid/hid-ids.h  |    3 +++
+ 2 files changed, 4 insertions(+)
+
+--- a/drivers/hid/hid-core.c
++++ b/drivers/hid/hid-core.c
+@@ -1922,6 +1922,7 @@ static const struct hid_device_id hid_ig
+       { HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_HYBRID) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_HEATCONTROL) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_BEATPAD) },
++      { HID_USB_DEVICE(USB_VENDOR_ID_MASTERKIT, USB_DEVICE_ID_MASTERKIT_MA901RADIO) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1024LS) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1208LS) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_MICROCHIP, USB_DEVICE_ID_PICKIT1) },
+--- a/drivers/hid/hid-ids.h
++++ b/drivers/hid/hid-ids.h
+@@ -520,6 +520,9 @@
+ #define USB_VENDOR_ID_MADCATZ         0x0738
+ #define USB_DEVICE_ID_MADCATZ_BEATPAD 0x4540
++#define USB_VENDOR_ID_MASTERKIT                       0x16c0
++#define USB_DEVICE_ID_MASTERKIT_MA901RADIO    0x05df
++
+ #define USB_VENDOR_ID_MCC             0x09db
+ #define USB_DEVICE_ID_MCC_PMD1024LS   0x0076
+ #define USB_DEVICE_ID_MCC_PMD1208LS   0x007a