|
@@ -713,12 +713,26 @@ static void cx23885_dev_checkrevision(struct cx23885_dev *dev)
|
|
|
dev->hwrevision = 0xa1;
|
|
|
break;
|
|
|
case 0x02:
|
|
|
- /* CX23885-13Z */
|
|
|
+ /* CX23885-13Z/14Z */
|
|
|
dev->hwrevision = 0xb0;
|
|
|
break;
|
|
|
case 0x03:
|
|
|
- /* CX23888-22Z */
|
|
|
- dev->hwrevision = 0xc0;
|
|
|
+ if (dev->pci->device == 0x8880) {
|
|
|
+ /* 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;
|
|
|
case 0x0e:
|
|
|
/* CX23887-15Z */
|
|
@@ -756,6 +770,7 @@ static int cx23885_dev_setup(struct cx23885_dev *dev)
|
|
|
|
|
|
/* Configure the internal memory */
|
|
|
if (dev->pci->device == 0x8880) {
|
|
|
+ /* Could be 887 or 888, assume a default */
|
|
|
dev->bridge = CX23885_BRIDGE_887;
|
|
|
/* Apply a sensible clock frequency for the PCIe bridge */
|
|
|
dev->clk_freq = 25000000;
|
|
@@ -1258,6 +1273,7 @@ static int cx23885_start_dma(struct cx23885_tsport *port,
|
|
|
switch (dev->bridge) {
|
|
|
case CX23885_BRIDGE_885:
|
|
|
case CX23885_BRIDGE_887:
|
|
|
+ case CX23885_BRIDGE_888:
|
|
|
/* enable irqs */
|
|
|
dprintk(1, "%s() enabling TS int's and DMA\n", __func__);
|
|
|
cx_set(port->reg_ts_int_msk, port->ts_int_msk_val);
|