]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/2.6.35.8/v4l-dvb-don-t-identify-pv-sbtvd-hybrid-as-a-dibcom-device.patch
4.9-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 2.6.35.8 / v4l-dvb-don-t-identify-pv-sbtvd-hybrid-as-a-dibcom-device.patch
CommitLineData
7691b2d1
GKH
1From 3bfb317f97cfddbbec67bbe8e35ad38af3507397 Mon Sep 17 00:00:00 2001
2From: Mauro Carvalho Chehab <mchehab@redhat.com>
3Date: Fri, 3 Sep 2010 10:50:24 -0300
4Subject: V4L/DVB: Don't identify PV SBTVD Hybrid as a DibCom device
5
6From: Mauro Carvalho Chehab <mchehab@redhat.com>
7
8commit 3bfb317f97cfddbbec67bbe8e35ad38af3507397 upstream.
9
10As reported by Carlos, Prolink Pixelview SBTVD Hybrid is based on
11Conexant cx231xx + Fujitsu 86A20S demodulator. However, both shares
12the same USB ID. So, we need to use USB bcdDevice, in order to
13properly discover what's the board.
14
15We know for sure that bcd 0x100 is used for a dib0700 device, while
16bcd 0x4001 is used for a cx23102 device. This patch reserves two ranges,
17the first one from 0x0000-0x3f00 for dib0700, and the second from
180x4000-0x4fff for cx231xx devices.
19
20This may need fixes in the future, as we get access to other devices.
21
22Thanks-to: Carlos Americo Domiciano <c_domiciano@yahoo.com.br>
23Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
24Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
25
26---
27 drivers/media/dvb/dvb-usb/dib0700_devices.c | 2 +-
28 drivers/media/video/cx231xx/Makefile | 1 +
29 drivers/media/video/cx231xx/cx231xx-cards.c | 3 +++
30 3 files changed, 5 insertions(+), 1 deletion(-)
31
32--- a/drivers/media/dvb/dvb-usb/dib0700_devices.c
33+++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c
34@@ -2081,7 +2081,7 @@ struct usb_device_id dib0700_usb_id_tabl
35 /* 60 */{ USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_XXS_2) },
36 { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK807XPVR) },
37 { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK807XP) },
38- { USB_DEVICE(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD) },
39+ { USB_DEVICE_VER(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD, 0x000, 0x3f00) },
40 { USB_DEVICE(USB_VID_EVOLUTEPC, USB_PID_TVWAY_PLUS) },
41 /* 65 */{ USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV73ESE) },
42 { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV282E) },
43--- a/drivers/media/video/cx231xx/Makefile
44+++ b/drivers/media/video/cx231xx/Makefile
45@@ -11,4 +11,5 @@ EXTRA_CFLAGS += -Idrivers/media/video
46 EXTRA_CFLAGS += -Idrivers/media/common/tuners
47 EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core
48 EXTRA_CFLAGS += -Idrivers/media/dvb/frontends
49+EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-usb
50
51--- a/drivers/media/video/cx231xx/cx231xx-cards.c
52+++ b/drivers/media/video/cx231xx/cx231xx-cards.c
53@@ -32,6 +32,7 @@
54 #include <media/v4l2-chip-ident.h>
55
56 #include <media/cx25840.h>
57+#include "dvb-usb-ids.h"
58 #include "xc5000.h"
59
60 #include "cx231xx.h"
61@@ -175,6 +176,8 @@ struct usb_device_id cx231xx_id_table[]
62 .driver_info = CX231XX_BOARD_CNXT_RDE_250},
63 {USB_DEVICE(0x0572, 0x58A1),
64 .driver_info = CX231XX_BOARD_CNXT_RDU_250},
65+ {USB_DEVICE_VER(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD, 0x4000,0x4fff),
66+ .driver_info = CX231XX_BOARD_UNKNOWN},
67 {},
68 };
69