diff options
author | Steven Toth <stoth@kernellabs.com> | 2009-07-20 14:40:31 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-09-12 11:17:59 -0400 |
commit | 25ea66e2696066a12274119ceec084963427e75b (patch) | |
tree | 4a928feb2ecda1269649dd6e56c586cbf4dab3d0 /drivers/media/video/cx23885 | |
parent | 1369738023900302ef9677c90c4da873b5593ee7 (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.c | 22 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885.h | 1 |
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 */ |