V4L/DVB: Don't identify PV SBTVD Hybrid as a DibCom device
As reported by Carlos, Prolink Pixelview SBTVD Hybrid is based on Conexant cx231xx + Fujitsu 86A20S demodulator. However, both shares the same USB ID. So, we need to use USB bcdDevice, in order to properly discover what's the board. We know for sure that bcd 0x100 is used for a dib0700 device, while bcd 0x4001 is used for a cx23102 device. This patch reserves two ranges, the first one from 0x0000-0x3f00 for dib0700, and the second from 0x4000-0x4fff for cx231xx devices. This may need fixes in the future, as we get access to other devices. Thanks-to: Carlos Americo Domiciano <c_domiciano@yahoo.com.br> Cc: stable@kernel.org Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
c13df9cf6b
commit
3bfb317f97
|
@ -1781,7 +1781,7 @@ struct usb_device_id dib0700_usb_id_table[] = {
|
||||||
/* 60 */{ USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_XXS_2) },
|
/* 60 */{ USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_XXS_2) },
|
||||||
{ USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK807XPVR) },
|
{ USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK807XPVR) },
|
||||||
{ USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK807XP) },
|
{ USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK807XP) },
|
||||||
{ USB_DEVICE(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD) },
|
{ USB_DEVICE_VER(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD, 0x000, 0x3f00) },
|
||||||
{ USB_DEVICE(USB_VID_EVOLUTEPC, USB_PID_TVWAY_PLUS) },
|
{ USB_DEVICE(USB_VID_EVOLUTEPC, USB_PID_TVWAY_PLUS) },
|
||||||
/* 65 */{ USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV73ESE) },
|
/* 65 */{ USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV73ESE) },
|
||||||
{ USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV282E) },
|
{ USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV282E) },
|
||||||
|
|
|
@ -11,4 +11,5 @@ EXTRA_CFLAGS += -Idrivers/media/video
|
||||||
EXTRA_CFLAGS += -Idrivers/media/common/tuners
|
EXTRA_CFLAGS += -Idrivers/media/common/tuners
|
||||||
EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core
|
EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core
|
||||||
EXTRA_CFLAGS += -Idrivers/media/dvb/frontends
|
EXTRA_CFLAGS += -Idrivers/media/dvb/frontends
|
||||||
|
EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-usb
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#include <media/v4l2-chip-ident.h>
|
#include <media/v4l2-chip-ident.h>
|
||||||
|
|
||||||
#include <media/cx25840.h>
|
#include <media/cx25840.h>
|
||||||
|
#include "dvb-usb-ids.h"
|
||||||
#include "xc5000.h"
|
#include "xc5000.h"
|
||||||
|
|
||||||
#include "cx231xx.h"
|
#include "cx231xx.h"
|
||||||
|
@ -175,6 +176,8 @@ struct usb_device_id cx231xx_id_table[] = {
|
||||||
.driver_info = CX231XX_BOARD_CNXT_RDE_250},
|
.driver_info = CX231XX_BOARD_CNXT_RDE_250},
|
||||||
{USB_DEVICE(0x0572, 0x58A1),
|
{USB_DEVICE(0x0572, 0x58A1),
|
||||||
.driver_info = CX231XX_BOARD_CNXT_RDU_250},
|
.driver_info = CX231XX_BOARD_CNXT_RDU_250},
|
||||||
|
{USB_DEVICE_VER(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD, 0x4000,0x4fff),
|
||||||
|
.driver_info = CX231XX_BOARD_UNKNOWN},
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue