diff options
author | Igor M. Liplianin <liplianin@netup.ru> | 2009-03-03 10:06:09 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-03-30 11:43:05 -0400 |
commit | 5a23b0762c9095e137ce9a559cc7c37b2f8fd083 (patch) | |
tree | 501d119b876a9051f2349fcf62fb9b4863fb577d /drivers/media/video/cx23885/cx23885-core.c | |
parent | ce45264eca4963e666ec170af1eeb0c4f5f8339e (diff) |
V4L/DVB (10805): Add support for NetUP Dual DVB-S2 CI card
Add support for NetUP Dual DVB-S2 CI card
The card based on cx23885 PCI-e bridge, CiMax SP2 Common Interface chips,
STM lnbh24 LNB power chip, stv6110 tuners and stv0900 demodulator.
http://www.linuxtv.org/wiki/index.php/NetUP_Dual_DVB_S2_CI
Signed-off-by: Igor M. Liplianin <liplianin@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx23885/cx23885-core.c')
-rw-r--r-- | drivers/media/video/cx23885/cx23885-core.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/drivers/media/video/cx23885/cx23885-core.c b/drivers/media/video/cx23885/cx23885-core.c index 8f6fb2add7de..1b401457d42e 100644 --- a/drivers/media/video/cx23885/cx23885-core.c +++ b/drivers/media/video/cx23885/cx23885-core.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <asm/div64.h> | 31 | #include <asm/div64.h> |
32 | 32 | ||
33 | #include "cx23885.h" | 33 | #include "cx23885.h" |
34 | #include "cimax2.h" | ||
34 | 35 | ||
35 | MODULE_DESCRIPTION("Driver for cx23885 based TV cards"); | 36 | MODULE_DESCRIPTION("Driver for cx23885 based TV cards"); |
36 | MODULE_AUTHOR("Steven Toth <stoth@linuxtv.org>"); | 37 | MODULE_AUTHOR("Steven Toth <stoth@linuxtv.org>"); |
@@ -791,6 +792,8 @@ static int cx23885_dev_setup(struct cx23885_dev *dev) | |||
791 | dev->pci_bus = dev->pci->bus->number; | 792 | dev->pci_bus = dev->pci->bus->number; |
792 | dev->pci_slot = PCI_SLOT(dev->pci->devfn); | 793 | dev->pci_slot = PCI_SLOT(dev->pci->devfn); |
793 | dev->pci_irqmask = 0x001f00; | 794 | dev->pci_irqmask = 0x001f00; |
795 | if (cx23885_boards[dev->board].cimax > 0) | ||
796 | dev->pci_irqmask |= 0x01800000; /* for CiMaxes */ | ||
794 | 797 | ||
795 | /* External Master 1 Bus */ | 798 | /* External Master 1 Bus */ |
796 | dev->i2c_bus[0].nr = 0; | 799 | dev->i2c_bus[0].nr = 0; |
@@ -1643,7 +1646,9 @@ static irqreturn_t cx23885_irq(int irq, void *dev_id) | |||
1643 | (pci_status & PCI_MSK_VID_B) || | 1646 | (pci_status & PCI_MSK_VID_B) || |
1644 | (pci_status & PCI_MSK_VID_A) || | 1647 | (pci_status & PCI_MSK_VID_A) || |
1645 | (pci_status & PCI_MSK_AUD_INT) || | 1648 | (pci_status & PCI_MSK_AUD_INT) || |
1646 | (pci_status & PCI_MSK_AUD_EXT)) { | 1649 | (pci_status & PCI_MSK_AUD_EXT) || |
1650 | (pci_status & PCI_MSK_GPIO0) || | ||
1651 | (pci_status & PCI_MSK_GPIO1)) { | ||
1647 | 1652 | ||
1648 | if (pci_status & PCI_MSK_RISC_RD) | 1653 | if (pci_status & PCI_MSK_RISC_RD) |
1649 | dprintk(7, " (PCI_MSK_RISC_RD 0x%08x)\n", | 1654 | dprintk(7, " (PCI_MSK_RISC_RD 0x%08x)\n", |
@@ -1685,8 +1690,19 @@ static irqreturn_t cx23885_irq(int irq, void *dev_id) | |||
1685 | dprintk(7, " (PCI_MSK_AUD_EXT 0x%08x)\n", | 1690 | dprintk(7, " (PCI_MSK_AUD_EXT 0x%08x)\n", |
1686 | PCI_MSK_AUD_EXT); | 1691 | PCI_MSK_AUD_EXT); |
1687 | 1692 | ||
1693 | if (pci_status & PCI_MSK_GPIO0) | ||
1694 | dprintk(7, " (PCI_MSK_GPIO0 0x%08x)\n", | ||
1695 | PCI_MSK_GPIO0); | ||
1696 | |||
1697 | if (pci_status & PCI_MSK_GPIO1) | ||
1698 | dprintk(7, " (PCI_MSK_GPIO1 0x%08x)\n", | ||
1699 | PCI_MSK_GPIO1); | ||
1688 | } | 1700 | } |
1689 | 1701 | ||
1702 | if ((pci_status & PCI_MSK_GPIO0) || (pci_status & PCI_MSK_GPIO1)) | ||
1703 | /* handled += cx23885_irq_gpio(dev, pci_status); */ | ||
1704 | handled += netup_ci_slot_status(dev, pci_status); | ||
1705 | |||
1690 | if (ts1_status) { | 1706 | if (ts1_status) { |
1691 | if (cx23885_boards[dev->board].portb == CX23885_MPEG_DVB) | 1707 | if (cx23885_boards[dev->board].portb == CX23885_MPEG_DVB) |
1692 | handled += cx23885_irq_ts(ts1, ts1_status); | 1708 | handled += cx23885_irq_ts(ts1, ts1_status); |
@@ -1759,6 +1775,8 @@ static int __devinit cx23885_initdev(struct pci_dev *pci_dev, | |||
1759 | } | 1775 | } |
1760 | 1776 | ||
1761 | pci_set_drvdata(pci_dev, dev); | 1777 | pci_set_drvdata(pci_dev, dev); |
1778 | cx_set(PCI_INT_MSK, 0x01800000); /* for NetUP */ | ||
1779 | |||
1762 | return 0; | 1780 | return 0; |
1763 | 1781 | ||
1764 | fail_irq: | 1782 | fail_irq: |