aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx23885
diff options
context:
space:
mode:
authorSteven Toth <stoth@kernellabs.com>2009-07-20 14:40:31 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-12 11:17:59 -0400
commit25ea66e2696066a12274119ceec084963427e75b (patch)
tree4a928feb2ecda1269649dd6e56c586cbf4dab3d0 /drivers/media/video/cx23885
parent1369738023900302ef9677c90c4da873b5593ee7 (diff)
V4L/DVB (12307): cx23885: Modify hardware revision detection for newer silicon
cx23885: Modify hardware revision detection for newer silicon Signed-off-by: Steven Toth <stoth@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx23885')
-rw-r--r--drivers/media/video/cx23885/cx23885-core.c22
-rw-r--r--drivers/media/video/cx23885/cx23885.h1
2 files changed, 20 insertions, 3 deletions
diff --git a/drivers/media/video/cx23885/cx23885-core.c b/drivers/media/video/cx23885/cx23885-core.c
index 554f085c55eb..40d438d7234d 100644
--- a/drivers/media/video/cx23885/cx23885-core.c
+++ b/drivers/media/video/cx23885/cx23885-core.c
@@ -713,12 +713,26 @@ static void cx23885_dev_checkrevision(struct cx23885_dev *dev)
713 dev->hwrevision = 0xa1; 713 dev->hwrevision = 0xa1;
714 break; 714 break;
715 case 0x02: 715 case 0x02:
716 /* CX23885-13Z */ 716 /* CX23885-13Z/14Z */
717 dev->hwrevision = 0xb0; 717 dev->hwrevision = 0xb0;
718 break; 718 break;
719 case 0x03: 719 case 0x03:
720 /* CX23888-22Z */ 720 if (dev->pci->device == 0x8880) {
721 dev->hwrevision = 0xc0; 721 /* CX23888-21Z/22Z */
722 dev->hwrevision = 0xc0;
723 } else {
724 /* CX23885-14Z */
725 dev->hwrevision = 0xa4;
726 }
727 break;
728 case 0x04:
729 if (dev->pci->device == 0x8880) {
730 /* CX23888-31Z */
731 dev->hwrevision = 0xd0;
732 } else {
733 /* CX23885-15Z, CX23888-31Z */
734 dev->hwrevision = 0xa5;
735 }
722 break; 736 break;
723 case 0x0e: 737 case 0x0e:
724 /* CX23887-15Z */ 738 /* CX23887-15Z */
@@ -756,6 +770,7 @@ static int cx23885_dev_setup(struct cx23885_dev *dev)
756 770
757 /* Configure the internal memory */ 771 /* Configure the internal memory */
758 if (dev->pci->device == 0x8880) { 772 if (dev->pci->device == 0x8880) {
773 /* Could be 887 or 888, assume a default */
759 dev->bridge = CX23885_BRIDGE_887; 774 dev->bridge = CX23885_BRIDGE_887;
760 /* Apply a sensible clock frequency for the PCIe bridge */ 775 /* Apply a sensible clock frequency for the PCIe bridge */
761 dev->clk_freq = 25000000; 776 dev->clk_freq = 25000000;
@@ -1258,6 +1273,7 @@ static int cx23885_start_dma(struct cx23885_tsport *port,
1258 switch (dev->bridge) { 1273 switch (dev->bridge) {
1259 case CX23885_BRIDGE_885: 1274 case CX23885_BRIDGE_885:
1260 case CX23885_BRIDGE_887: 1275 case CX23885_BRIDGE_887:
1276 case CX23885_BRIDGE_888:
1261 /* enable irqs */ 1277 /* enable irqs */
1262 dprintk(1, "%s() enabling TS int's and DMA\n", __func__); 1278 dprintk(1, "%s() enabling TS int's and DMA\n", __func__);
1263 cx_set(port->reg_ts_int_msk, port->ts_int_msk_val); 1279 cx_set(port->reg_ts_int_msk, port->ts_int_msk_val);
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h
index 963e6b17a43e..86f26947bb78 100644
--- a/drivers/media/video/cx23885/cx23885.h
+++ b/drivers/media/video/cx23885/cx23885.h
@@ -339,6 +339,7 @@ struct cx23885_dev {
339 CX23885_BRIDGE_UNDEFINED = 0, 339 CX23885_BRIDGE_UNDEFINED = 0,
340 CX23885_BRIDGE_885 = 885, 340 CX23885_BRIDGE_885 = 885,
341 CX23885_BRIDGE_887 = 887, 341 CX23885_BRIDGE_887 = 887,
342 CX23885_BRIDGE_888 = 888,
342 } bridge; 343 } bridge;
343 344
344 /* Analog video */ 345 /* Analog video */