Commit 25ea66e2 authored by Steven Toth's avatar Steven Toth Committed by Mauro Carvalho Chehab

V4L/DVB (12307): cx23885: Modify hardware revision detection for newer silicon

cx23885: Modify hardware revision detection for newer silicon
Signed-off-by: default avatarSteven Toth <stoth@kernellabs.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 13697380
...@@ -713,12 +713,26 @@ static void cx23885_dev_checkrevision(struct cx23885_dev *dev) ...@@ -713,12 +713,26 @@ static void cx23885_dev_checkrevision(struct cx23885_dev *dev)
dev->hwrevision = 0xa1; dev->hwrevision = 0xa1;
break; break;
case 0x02: case 0x02:
/* CX23885-13Z */ /* CX23885-13Z/14Z */
dev->hwrevision = 0xb0; dev->hwrevision = 0xb0;
break; break;
case 0x03: case 0x03:
/* CX23888-22Z */ if (dev->pci->device == 0x8880) {
dev->hwrevision = 0xc0; /* CX23888-21Z/22Z */
dev->hwrevision = 0xc0;
} else {
/* CX23885-14Z */
dev->hwrevision = 0xa4;
}
break;
case 0x04:
if (dev->pci->device == 0x8880) {
/* CX23888-31Z */
dev->hwrevision = 0xd0;
} else {
/* CX23885-15Z, CX23888-31Z */
dev->hwrevision = 0xa5;
}
break; break;
case 0x0e: case 0x0e:
/* CX23887-15Z */ /* CX23887-15Z */
...@@ -756,6 +770,7 @@ static int cx23885_dev_setup(struct cx23885_dev *dev) ...@@ -756,6 +770,7 @@ static int cx23885_dev_setup(struct cx23885_dev *dev)
/* Configure the internal memory */ /* Configure the internal memory */
if (dev->pci->device == 0x8880) { if (dev->pci->device == 0x8880) {
/* Could be 887 or 888, assume a default */
dev->bridge = CX23885_BRIDGE_887; dev->bridge = CX23885_BRIDGE_887;
/* Apply a sensible clock frequency for the PCIe bridge */ /* Apply a sensible clock frequency for the PCIe bridge */
dev->clk_freq = 25000000; dev->clk_freq = 25000000;
...@@ -1258,6 +1273,7 @@ static int cx23885_start_dma(struct cx23885_tsport *port, ...@@ -1258,6 +1273,7 @@ static int cx23885_start_dma(struct cx23885_tsport *port,
switch (dev->bridge) { switch (dev->bridge) {
case CX23885_BRIDGE_885: case CX23885_BRIDGE_885:
case CX23885_BRIDGE_887: case CX23885_BRIDGE_887:
case CX23885_BRIDGE_888:
/* enable irqs */ /* enable irqs */
dprintk(1, "%s() enabling TS int's and DMA\n", __func__); dprintk(1, "%s() enabling TS int's and DMA\n", __func__);
cx_set(port->reg_ts_int_msk, port->ts_int_msk_val); cx_set(port->reg_ts_int_msk, port->ts_int_msk_val);
......
...@@ -339,6 +339,7 @@ struct cx23885_dev { ...@@ -339,6 +339,7 @@ struct cx23885_dev {
CX23885_BRIDGE_UNDEFINED = 0, CX23885_BRIDGE_UNDEFINED = 0,
CX23885_BRIDGE_885 = 885, CX23885_BRIDGE_885 = 885,
CX23885_BRIDGE_887 = 887, CX23885_BRIDGE_887 = 887,
CX23885_BRIDGE_888 = 888,
} bridge; } bridge;
/* Analog video */ /* Analog video */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment