media: cx23885: Override 888 ImpactVCBe crystal frequency
authorBrad Love <brad@nextdimension.cc>
Tue, 6 Mar 2018 19:15:37 +0000 (14:15 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 May 2018 14:17:56 +0000 (16:17 +0200)
[ Upstream commit 779c79d4b833ec646b0aed878da38edb45bbe156 ]

Hauppauge produced a revision of ImpactVCBe using an 888,
with a 25MHz crystal, instead of using the default third
overtone 50Mhz crystal. This overrides that frequency so
that the cx25840 is properly configured. Without the proper
crystal setup the cx25840 cannot load the firmware or
decode video.

Signed-off-by: Brad Love <brad@nextdimension.cc>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/pci/cx23885/cx23885-core.c

index 8f63df1cb418767e1a6627872cb461d477de404f..4612f26fcd6d5c1b183c3ed441e5e2c7e12b7f07 100644 (file)
@@ -873,6 +873,16 @@ static int cx23885_dev_setup(struct cx23885_dev *dev)
        if (cx23885_boards[dev->board].clk_freq > 0)
                dev->clk_freq = cx23885_boards[dev->board].clk_freq;
 
+       if (dev->board == CX23885_BOARD_HAUPPAUGE_IMPACTVCBE &&
+               dev->pci->subsystem_device == 0x7137) {
+               /* Hauppauge ImpactVCBe device ID 0x7137 is populated
+                * with an 888, and a 25Mhz crystal, instead of the
+                * usual third overtone 50Mhz. The default clock rate must
+                * be overridden so the cx25840 is properly configured
+                */
+               dev->clk_freq = 25000000;
+       }
+
        dev->pci_bus  = dev->pci->bus->number;
        dev->pci_slot = PCI_SLOT(dev->pci->devfn);
        cx23885_irq_add(dev, 0x001f00);