diff options
author | Steven Toth <stoth@kernellabs.com> | 2009-07-20 14:40:31 -0400 |
---|---|---|
committer | Steven Toth <stoth@kernellabs.com> | 2009-07-20 14:40:31 -0400 |
commit | 988cd25daffa554b51e3f0d5858cb1727f8a9c09 (patch) | |
tree | 48e61e6a9febbaccb1e4dd05f64c947c31ee86de /linux/drivers | |
parent | 7991d8e7d32620e4b6f0fd92a78e4a090b4a09ee (diff) | |
download | mediapointer-dvb-s2-988cd25daffa554b51e3f0d5858cb1727f8a9c09.tar.gz mediapointer-dvb-s2-988cd25daffa554b51e3f0d5858cb1727f8a9c09.tar.bz2 |
cx23885: Modify hardware revision detection for newer silicon
From: Steven Toth <stoth@kernellabs.com>
cx23885: Modify hardware revision detection for newer silicon
Priority: normal
Signed-off-by: Steven Toth <stoth@kernellabs.com>
Diffstat (limited to 'linux/drivers')
-rw-r--r-- | linux/drivers/media/video/cx23885/cx23885-core.c | 22 | ||||
-rw-r--r-- | linux/drivers/media/video/cx23885/cx23885.h | 1 |
2 files changed, 20 insertions, 3 deletions
diff --git a/linux/drivers/media/video/cx23885/cx23885-core.c b/linux/drivers/media/video/cx23885/cx23885-core.c index 351210e5c..4854d54f1 100644 --- a/linux/drivers/media/video/cx23885/cx23885-core.c +++ b/linux/drivers/media/video/cx23885/cx23885-core.c @@ -714,12 +714,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 */ @@ -757,6 +771,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; @@ -1259,6 +1274,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); diff --git a/linux/drivers/media/video/cx23885/cx23885.h b/linux/drivers/media/video/cx23885/cx23885.h index f71277845..6ddabc263 100644 --- a/linux/drivers/media/video/cx23885/cx23885.h +++ b/linux/drivers/media/video/cx23885/cx23885.h @@ -340,6 +340,7 @@ struct cx23885_dev { CX23885_BRIDGE_UNDEFINED = 0, CX23885_BRIDGE_885 = 885, CX23885_BRIDGE_887 = 887, + CX23885_BRIDGE_888 = 888, } bridge; /* Analog video */ |