It does matter to set explicitly gpio0 value in cx88_board structure for TBS 8920 card.
# HG changeset patch # User Igor M. Liplianin <liplianin@xxxxx> # Date 1248905908 -10800 # Node ID d2dee95e2da26a145cca2d081be86793cc9b07ea # Parent ee6cf88cb5d3faf861289fce0ef0385846adcc7c cx88: fix TBS 8920 card support From: Igor M. Liplianin <liplianin@xxxxx> It does matter to set explicitly gpio0 value in cx88_board structure for TBS 8920 card. Signed-off-by: Igor M. Liplianin <liplianin@xxxxx> diff -r ee6cf88cb5d3 -r d2dee95e2da2 linux/drivers/media/video/cx88/cx88-cards.c --- a/linux/drivers/media/video/cx88/cx88-cards.c Wed Jul 29 01:42:02 2009 -0300 +++ b/linux/drivers/media/video/cx88/cx88-cards.c Thu Jul 30 01:18:28 2009 +0300 @@ -1941,7 +1941,8 @@ .radio_addr = ADDR_UNSET, .input = {{ .type = CX88_VMUX_DVB, - .vmux = 1, + .vmux = 0, + .gpio0 = 0x8080, } }, .mpeg = CX88_MPEG_DVB, }, @@ -3187,7 +3188,11 @@ case CX88_BOARD_PROF_6200: case CX88_BOARD_PROF_7300: case CX88_BOARD_SATTRADE_ST4200: + cx_write(MO_GP0_IO, 0x8000); + msleep(100); cx_write(MO_SRST_IO, 0); + msleep(10); + cx_write(MO_GP0_IO, 0x8080); msleep(100); cx_write(MO_SRST_IO, 1); msleep(100); diff -r ee6cf88cb5d3 -r d2dee95e2da2 linux/drivers/media/video/cx88/cx88-dvb.c --- a/linux/drivers/media/video/cx88/cx88-dvb.c Wed Jul 29 01:42:02 2009 -0300 +++ b/linux/drivers/media/video/cx88/cx88-dvb.c Thu Jul 30 01:18:28 2009 +0300 @@ -425,17 +425,16 @@ struct cx8802_dev *dev= fe->dvb->priv; struct cx88_core *core = dev->core; + cx_set(MO_GP0_IO, 0x6040); switch (voltage) { case SEC_VOLTAGE_13: - printk("LNB Voltage SEC_VOLTAGE_13\n"); - cx_write(MO_GP0_IO, 0x00006040); + cx_clear(MO_GP0_IO, 0x20); break; case SEC_VOLTAGE_18: - printk("LNB Voltage SEC_VOLTAGE_18\n"); - cx_write(MO_GP0_IO, 0x00006060); + cx_set(MO_GP0_IO, 0x20); break; case SEC_VOLTAGE_OFF: - printk("LNB Voltage SEC_VOLTAGE_off\n"); + cx_clear(MO_GP0_IO, 0x20); break; }