aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAndrew de Quincey <adq_dvb@lidskialf.net>2006-04-18 16:47:11 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-06-25 00:59:01 -0400
commitfa006d86716891657dc8cc9b330b546d1899a7b4 (patch)
tree36a2853a41d994f88ab6322da547db0e57591b91 /drivers
parent4b4c9150dafda804a24885683162a898bcc564f2 (diff)
V4L/DVB (3874): Convert ttpci/av7110 to refactored tuner code
Rename pll calls to appropriate tuner calls. Remove pll functions from demod structures. Hook tuner call into tuner_ops. Add pll gate control calls where appropriate. Signed-off-by: Andrew de Quincey <adq_dvb@lidskialf.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/dvb/ttpci/av7110.c60
1 files changed, 41 insertions, 19 deletions
diff --git a/drivers/media/dvb/ttpci/av7110.c b/drivers/media/dvb/ttpci/av7110.c
index 21e331d32ca1..939a493b5251 100644
--- a/drivers/media/dvb/ttpci/av7110.c
+++ b/drivers/media/dvb/ttpci/av7110.c
@@ -1552,7 +1552,7 @@ static int get_firmware(struct av7110* av7110)
1552#endif 1552#endif
1553 1553
1554 1554
1555static int alps_bsrv2_pll_set(struct dvb_frontend* fe, struct dvb_frontend_parameters* params) 1555static int alps_bsrv2_tuner_set_params(struct dvb_frontend* fe, struct dvb_frontend_parameters *params)
1556{ 1556{
1557 struct av7110* av7110 = (struct av7110*) fe->dvb->priv; 1557 struct av7110* av7110 = (struct av7110*) fe->dvb->priv;
1558 u8 pwr = 0; 1558 u8 pwr = 0;
@@ -1575,6 +1575,8 @@ static int alps_bsrv2_pll_set(struct dvb_frontend* fe, struct dvb_frontend_param
1575 // NOTE: since we're using a prescaler of 2, we set the 1575 // NOTE: since we're using a prescaler of 2, we set the
1576 // divisor frequency to 62.5kHz and divide by 125 above 1576 // divisor frequency to 62.5kHz and divide by 125 above
1577 1577
1578 if (fe->ops->i2c_gate_ctrl)
1579 fe->ops->i2c_gate_ctrl(fe, 1);
1578 if (i2c_transfer (&av7110->i2c_adap, &msg, 1) != 1) 1580 if (i2c_transfer (&av7110->i2c_adap, &msg, 1) != 1)
1579 return -EIO; 1581 return -EIO;
1580 return 0; 1582 return 0;
@@ -1584,10 +1586,9 @@ static struct ves1x93_config alps_bsrv2_config = {
1584 .demod_address = 0x08, 1586 .demod_address = 0x08,
1585 .xin = 90100000UL, 1587 .xin = 90100000UL,
1586 .invert_pwm = 0, 1588 .invert_pwm = 0,
1587 .pll_set = alps_bsrv2_pll_set,
1588}; 1589};
1589 1590
1590static int alps_tdbe2_pll_set(struct dvb_frontend* fe, struct dvb_frontend_parameters* params) 1591static int alps_tdbe2_tuner_set_params(struct dvb_frontend* fe, struct dvb_frontend_parameters *params)
1591{ 1592{
1592 struct av7110* av7110 = fe->dvb->priv; 1593 struct av7110* av7110 = fe->dvb->priv;
1593 u32 div; 1594 u32 div;
@@ -1601,6 +1602,8 @@ static int alps_tdbe2_pll_set(struct dvb_frontend* fe, struct dvb_frontend_param
1601 data[2] = 0x85 | ((div >> 10) & 0x60); 1602 data[2] = 0x85 | ((div >> 10) & 0x60);
1602 data[3] = (params->frequency < 174000000 ? 0x88 : params->frequency < 470000000 ? 0x84 : 0x81); 1603 data[3] = (params->frequency < 174000000 ? 0x88 : params->frequency < 470000000 ? 0x84 : 0x81);
1603 1604
1605 if (fe->ops->i2c_gate_ctrl)
1606 fe->ops->i2c_gate_ctrl(fe, 1);
1604 if (i2c_transfer(&av7110->i2c_adap, &msg, 1) != 1) 1607 if (i2c_transfer(&av7110->i2c_adap, &msg, 1) != 1)
1605 return -EIO; 1608 return -EIO;
1606 return 0; 1609 return 0;
@@ -1611,14 +1614,12 @@ static struct ves1820_config alps_tdbe2_config = {
1611 .xin = 57840000UL, 1614 .xin = 57840000UL,
1612 .invert = 1, 1615 .invert = 1,
1613 .selagc = VES1820_SELAGC_SIGNAMPERR, 1616 .selagc = VES1820_SELAGC_SIGNAMPERR,
1614 .pll_set = alps_tdbe2_pll_set,
1615}; 1617};
1616 1618
1617 1619
1618 1620
1619 1621
1620static int grundig_29504_451_pll_set(struct dvb_frontend* fe, 1622static int grundig_29504_451_tuner_set_params(struct dvb_frontend* fe, struct dvb_frontend_parameters *params)
1621 struct dvb_frontend_parameters* params)
1622{ 1623{
1623 struct av7110* av7110 = fe->dvb->priv; 1624 struct av7110* av7110 = fe->dvb->priv;
1624 u32 div; 1625 u32 div;
@@ -1631,6 +1632,8 @@ static int grundig_29504_451_pll_set(struct dvb_frontend* fe,
1631 data[2] = 0x8e; 1632 data[2] = 0x8e;
1632 data[3] = 0x00; 1633 data[3] = 0x00;
1633 1634
1635 if (fe->ops->i2c_gate_ctrl)
1636 fe->ops->i2c_gate_ctrl(fe, 1);
1634 if (i2c_transfer(&av7110->i2c_adap, &msg, 1) != 1) 1637 if (i2c_transfer(&av7110->i2c_adap, &msg, 1) != 1)
1635 return -EIO; 1638 return -EIO;
1636 return 0; 1639 return 0;
@@ -1638,13 +1641,11 @@ static int grundig_29504_451_pll_set(struct dvb_frontend* fe,
1638 1641
1639static struct tda8083_config grundig_29504_451_config = { 1642static struct tda8083_config grundig_29504_451_config = {
1640 .demod_address = 0x68, 1643 .demod_address = 0x68,
1641 .pll_set = grundig_29504_451_pll_set,
1642}; 1644};
1643 1645
1644 1646
1645 1647
1646static int philips_cd1516_pll_set(struct dvb_frontend* fe, 1648static int philips_cd1516_tuner_set_params(struct dvb_frontend* fe, struct dvb_frontend_parameters *params)
1647 struct dvb_frontend_parameters* params)
1648{ 1649{
1649 struct av7110* av7110 = fe->dvb->priv; 1650 struct av7110* av7110 = fe->dvb->priv;
1650 u32 div; 1651 u32 div;
@@ -1659,6 +1660,8 @@ static int philips_cd1516_pll_set(struct dvb_frontend* fe,
1659 data[2] = 0x8e; 1660 data[2] = 0x8e;
1660 data[3] = (f < 174000000 ? 0xa1 : f < 470000000 ? 0x92 : 0x34); 1661 data[3] = (f < 174000000 ? 0xa1 : f < 470000000 ? 0x92 : 0x34);
1661 1662
1663 if (fe->ops->i2c_gate_ctrl)
1664 fe->ops->i2c_gate_ctrl(fe, 1);
1662 if (i2c_transfer(&av7110->i2c_adap, &msg, 1) != 1) 1665 if (i2c_transfer(&av7110->i2c_adap, &msg, 1) != 1)
1663 return -EIO; 1666 return -EIO;
1664 return 0; 1667 return 0;
@@ -1669,12 +1672,11 @@ static struct ves1820_config philips_cd1516_config = {
1669 .xin = 57840000UL, 1672 .xin = 57840000UL,
1670 .invert = 1, 1673 .invert = 1,
1671 .selagc = VES1820_SELAGC_SIGNAMPERR, 1674 .selagc = VES1820_SELAGC_SIGNAMPERR,
1672 .pll_set = philips_cd1516_pll_set,
1673}; 1675};
1674 1676
1675 1677
1676 1678
1677static int alps_tdlb7_pll_set(struct dvb_frontend* fe, struct dvb_frontend_parameters* params) 1679static int alps_tdlb7_tuner_set_params(struct dvb_frontend* fe, struct dvb_frontend_parameters *params)
1678{ 1680{
1679 struct av7110* av7110 = fe->dvb->priv; 1681 struct av7110* av7110 = fe->dvb->priv;
1680 u32 div, pwr; 1682 u32 div, pwr;
@@ -1693,6 +1695,8 @@ static int alps_tdlb7_pll_set(struct dvb_frontend* fe, struct dvb_frontend_param
1693 data[2] = 0x85; 1695 data[2] = 0x85;
1694 data[3] = pwr << 6; 1696 data[3] = pwr << 6;
1695 1697
1698 if (fe->ops->i2c_gate_ctrl)
1699 fe->ops->i2c_gate_ctrl(fe, 1);
1696 if (i2c_transfer(&av7110->i2c_adap, &msg, 1) != 1) 1700 if (i2c_transfer(&av7110->i2c_adap, &msg, 1) != 1)
1697 return -EIO; 1701 return -EIO;
1698 return 0; 1702 return 0;
@@ -1708,7 +1712,6 @@ static int alps_tdlb7_request_firmware(struct dvb_frontend* fe, const struct fir
1708static struct sp8870_config alps_tdlb7_config = { 1712static struct sp8870_config alps_tdlb7_config = {
1709 1713
1710 .demod_address = 0x71, 1714 .demod_address = 0x71,
1711 .pll_set = alps_tdlb7_pll_set,
1712 .request_firmware = alps_tdlb7_request_firmware, 1715 .request_firmware = alps_tdlb7_request_firmware,
1713}; 1716};
1714 1717
@@ -1806,7 +1809,7 @@ static u8 nexusca_stv0297_inittab[] = {
1806 0xff, 0xff, 1809 0xff, 0xff,
1807}; 1810};
1808 1811
1809static int nexusca_stv0297_pll_set(struct dvb_frontend* fe, struct dvb_frontend_parameters* params) 1812static int nexusca_stv0297_tuner_set_params(struct dvb_frontend* fe, struct dvb_frontend_parameters *params)
1810{ 1813{
1811 struct av7110* av7110 = fe->dvb->priv; 1814 struct av7110* av7110 = fe->dvb->priv;
1812 u32 div; 1815 u32 div;
@@ -1832,7 +1835,8 @@ static int nexusca_stv0297_pll_set(struct dvb_frontend* fe, struct dvb_frontend_
1832 else 1835 else
1833 return -EINVAL; 1836 return -EINVAL;
1834 1837
1835 stv0297_enable_plli2c(fe); 1838 if (fe->ops->i2c_gate_ctrl)
1839 fe->ops->i2c_gate_ctrl(fe, 1);
1836 if (i2c_transfer(&av7110->i2c_adap, &msg, 1) != 1) { 1840 if (i2c_transfer(&av7110->i2c_adap, &msg, 1) != 1) {
1837 printk("nexusca: pll transfer failed!\n"); 1841 printk("nexusca: pll transfer failed!\n");
1838 return -EIO; 1842 return -EIO;
@@ -1840,8 +1844,8 @@ static int nexusca_stv0297_pll_set(struct dvb_frontend* fe, struct dvb_frontend_
1840 1844
1841 // wait for PLL lock 1845 // wait for PLL lock
1842 for(i = 0; i < 20; i++) { 1846 for(i = 0; i < 20; i++) {
1843 1847 if (fe->ops->i2c_gate_ctrl)
1844 stv0297_enable_plli2c(fe); 1848 fe->ops->i2c_gate_ctrl(fe, 1);
1845 if (i2c_transfer(&av7110->i2c_adap, &readmsg, 1) == 1) 1849 if (i2c_transfer(&av7110->i2c_adap, &readmsg, 1) == 1)
1846 if (data[0] & 0x40) break; 1850 if (data[0] & 0x40) break;
1847 msleep(10); 1851 msleep(10);
@@ -1855,12 +1859,11 @@ static struct stv0297_config nexusca_stv0297_config = {
1855 .demod_address = 0x1C, 1859 .demod_address = 0x1C,
1856 .inittab = nexusca_stv0297_inittab, 1860 .inittab = nexusca_stv0297_inittab,
1857 .invert = 1, 1861 .invert = 1,
1858 .pll_set = nexusca_stv0297_pll_set,
1859}; 1862};
1860 1863
1861 1864
1862 1865
1863static int grundig_29504_401_pll_set(struct dvb_frontend* fe, struct dvb_frontend_parameters* params) 1866static int grundig_29504_401_tuner_set_params(struct dvb_frontend* fe, struct dvb_frontend_parameters *params)
1864{ 1867{
1865 struct av7110* av7110 = (struct av7110*) fe->dvb->priv; 1868 struct av7110* av7110 = (struct av7110*) fe->dvb->priv;
1866 u32 div; 1869 u32 div;
@@ -1887,13 +1890,14 @@ static int grundig_29504_401_pll_set(struct dvb_frontend* fe, struct dvb_fronten
1887 data[2] = ((div >> 10) & 0x60) | cfg; 1890 data[2] = ((div >> 10) & 0x60) | cfg;
1888 data[3] = (cpump << 6) | band_select; 1891 data[3] = (cpump << 6) | band_select;
1889 1892
1893 if (fe->ops->i2c_gate_ctrl)
1894 fe->ops->i2c_gate_ctrl(fe, 1);
1890 if (i2c_transfer (&av7110->i2c_adap, &msg, 1) != 1) return -EIO; 1895 if (i2c_transfer (&av7110->i2c_adap, &msg, 1) != 1) return -EIO;
1891 return 0; 1896 return 0;
1892} 1897}
1893 1898
1894static struct l64781_config grundig_29504_401_config = { 1899static struct l64781_config grundig_29504_401_config = {
1895 .demod_address = 0x55, 1900 .demod_address = 0x55,
1896 .pll_set = grundig_29504_401_pll_set,
1897}; 1901};
1898 1902
1899 1903
@@ -2079,6 +2083,7 @@ static int frontend_init(struct av7110 *av7110)
2079 case 0x0000: // Fujitsu/Siemens DVB-Cable (ves1820/Philips CD1516(??)) 2083 case 0x0000: // Fujitsu/Siemens DVB-Cable (ves1820/Philips CD1516(??))
2080 av7110->fe = ves1820_attach(&philips_cd1516_config, 2084 av7110->fe = ves1820_attach(&philips_cd1516_config,
2081 &av7110->i2c_adap, read_pwm(av7110)); 2085 &av7110->i2c_adap, read_pwm(av7110));
2086 av7110->fe->ops->tuner_ops.set_params = philips_cd1516_tuner_set_params;
2082 break; 2087 break;
2083 } 2088 }
2084 2089
@@ -2091,6 +2096,7 @@ static int frontend_init(struct av7110 *av7110)
2091 // try the ALPS BSRV2 first of all 2096 // try the ALPS BSRV2 first of all
2092 av7110->fe = ves1x93_attach(&alps_bsrv2_config, &av7110->i2c_adap); 2097 av7110->fe = ves1x93_attach(&alps_bsrv2_config, &av7110->i2c_adap);
2093 if (av7110->fe) { 2098 if (av7110->fe) {
2099 av7110->fe->ops->tuner_ops.set_params = alps_bsrv2_tuner_set_params;
2094 av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd; 2100 av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd;
2095 av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst; 2101 av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst;
2096 av7110->fe->ops->set_tone = av7110_set_tone; 2102 av7110->fe->ops->set_tone = av7110_set_tone;
@@ -2101,6 +2107,9 @@ static int frontend_init(struct av7110 *av7110)
2101 // try the ALPS BSRU6 now 2107 // try the ALPS BSRU6 now
2102 av7110->fe = stv0299_attach(&alps_bsru6_config, &av7110->i2c_adap); 2108 av7110->fe = stv0299_attach(&alps_bsru6_config, &av7110->i2c_adap);
2103 if (av7110->fe) { 2109 if (av7110->fe) {
2110 av7110->fe->ops->tuner_ops.set_params = alps_bsru6_tuner_set_params;
2111 av7110->fe->tuner_priv = &av7110->i2c_adap;
2112
2104 av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd; 2113 av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd;
2105 av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst; 2114 av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst;
2106 av7110->fe->ops->set_tone = av7110_set_tone; 2115 av7110->fe->ops->set_tone = av7110_set_tone;
@@ -2111,6 +2120,7 @@ static int frontend_init(struct av7110 *av7110)
2111 // Try the grundig 29504-451 2120 // Try the grundig 29504-451
2112 av7110->fe = tda8083_attach(&grundig_29504_451_config, &av7110->i2c_adap); 2121 av7110->fe = tda8083_attach(&grundig_29504_451_config, &av7110->i2c_adap);
2113 if (av7110->fe) { 2122 if (av7110->fe) {
2123 av7110->fe->ops->tuner_ops.set_params = grundig_29504_451_tuner_set_params;
2114 av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd; 2124 av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd;
2115 av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst; 2125 av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst;
2116 av7110->fe->ops->set_tone = av7110_set_tone; 2126 av7110->fe->ops->set_tone = av7110_set_tone;
@@ -2124,11 +2134,13 @@ static int frontend_init(struct av7110 *av7110)
2124 /* Siemens DVB-C (full-length card) VES1820/Philips CD1516 */ 2134 /* Siemens DVB-C (full-length card) VES1820/Philips CD1516 */
2125 av7110->fe = ves1820_attach(&philips_cd1516_config, &av7110->i2c_adap, 2135 av7110->fe = ves1820_attach(&philips_cd1516_config, &av7110->i2c_adap,
2126 read_pwm(av7110)); 2136 read_pwm(av7110));
2137 av7110->fe->ops->tuner_ops.set_params = philips_cd1516_tuner_set_params;
2127 break; 2138 break;
2128 case 0x0003: 2139 case 0x0003:
2129 /* Hauppauge DVB-C 2.1 VES1820/ALPS TDBE2 */ 2140 /* Hauppauge DVB-C 2.1 VES1820/ALPS TDBE2 */
2130 av7110->fe = ves1820_attach(&alps_tdbe2_config, &av7110->i2c_adap, 2141 av7110->fe = ves1820_attach(&alps_tdbe2_config, &av7110->i2c_adap,
2131 read_pwm(av7110)); 2142 read_pwm(av7110));
2143 av7110->fe->ops->tuner_ops.set_params = alps_tdbe2_tuner_set_params;
2132 break; 2144 break;
2133 } 2145 }
2134 break; 2146 break;
@@ -2137,17 +2149,20 @@ static int frontend_init(struct av7110 *av7110)
2137 2149
2138 // ALPS TDLB7 2150 // ALPS TDLB7
2139 av7110->fe = sp8870_attach(&alps_tdlb7_config, &av7110->i2c_adap); 2151 av7110->fe = sp8870_attach(&alps_tdlb7_config, &av7110->i2c_adap);
2152 av7110->fe->ops->tuner_ops.set_params = alps_tdlb7_tuner_set_params;
2140 break; 2153 break;
2141 2154
2142 case 0x0002: // Hauppauge/TT DVB-C premium rev2.X 2155 case 0x0002: // Hauppauge/TT DVB-C premium rev2.X
2143 2156
2144 av7110->fe = ves1820_attach(&alps_tdbe2_config, &av7110->i2c_adap, read_pwm(av7110)); 2157 av7110->fe = ves1820_attach(&alps_tdbe2_config, &av7110->i2c_adap, read_pwm(av7110));
2158 av7110->fe->ops->tuner_ops.set_params = alps_tdbe2_tuner_set_params;
2145 break; 2159 break;
2146 2160
2147 case 0x0004: // Galaxis DVB-S rev1.3 2161 case 0x0004: // Galaxis DVB-S rev1.3
2148 /* ALPS BSRV2 */ 2162 /* ALPS BSRV2 */
2149 av7110->fe = ves1x93_attach(&alps_bsrv2_config, &av7110->i2c_adap); 2163 av7110->fe = ves1x93_attach(&alps_bsrv2_config, &av7110->i2c_adap);
2150 if (av7110->fe) { 2164 if (av7110->fe) {
2165 av7110->fe->ops->tuner_ops.set_params = alps_bsrv2_tuner_set_params;
2151 av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd; 2166 av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd;
2152 av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst; 2167 av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst;
2153 av7110->fe->ops->set_tone = av7110_set_tone; 2168 av7110->fe->ops->set_tone = av7110_set_tone;
@@ -2159,6 +2174,7 @@ static int frontend_init(struct av7110 *av7110)
2159 /* Grundig 29504-451 */ 2174 /* Grundig 29504-451 */
2160 av7110->fe = tda8083_attach(&grundig_29504_451_config, &av7110->i2c_adap); 2175 av7110->fe = tda8083_attach(&grundig_29504_451_config, &av7110->i2c_adap);
2161 if (av7110->fe) { 2176 if (av7110->fe) {
2177 av7110->fe->ops->tuner_ops.set_params = grundig_29504_451_tuner_set_params;
2162 av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd; 2178 av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd;
2163 av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst; 2179 av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst;
2164 av7110->fe->ops->set_tone = av7110_set_tone; 2180 av7110->fe->ops->set_tone = av7110_set_tone;
@@ -2169,12 +2185,15 @@ static int frontend_init(struct av7110 *av7110)
2169 case 0x0008: // Hauppauge/TT DVB-T 2185 case 0x0008: // Hauppauge/TT DVB-T
2170 2186
2171 av7110->fe = l64781_attach(&grundig_29504_401_config, &av7110->i2c_adap); 2187 av7110->fe = l64781_attach(&grundig_29504_401_config, &av7110->i2c_adap);
2188 av7110->fe->ops->tuner_ops.set_params = grundig_29504_401_tuner_set_params;
2172 break; 2189 break;
2173 2190
2174 case 0x000A: // Hauppauge/TT Nexus-CA rev1.X 2191 case 0x000A: // Hauppauge/TT Nexus-CA rev1.X
2175 2192
2176 av7110->fe = stv0297_attach(&nexusca_stv0297_config, &av7110->i2c_adap); 2193 av7110->fe = stv0297_attach(&nexusca_stv0297_config, &av7110->i2c_adap);
2177 if (av7110->fe) { 2194 if (av7110->fe) {
2195 av7110->fe->ops->tuner_ops.set_params = nexusca_stv0297_tuner_set_params;
2196
2178 /* set TDA9819 into DVB mode */ 2197 /* set TDA9819 into DVB mode */
2179 saa7146_setgpio(av7110->dev, 1, SAA7146_GPIO_OUTLO); // TDA9198 pin9(STD) 2198 saa7146_setgpio(av7110->dev, 1, SAA7146_GPIO_OUTLO); // TDA9198 pin9(STD)
2180 saa7146_setgpio(av7110->dev, 3, SAA7146_GPIO_OUTLO); // TDA9198 pin30(VIF) 2199 saa7146_setgpio(av7110->dev, 3, SAA7146_GPIO_OUTLO); // TDA9198 pin30(VIF)
@@ -2189,6 +2208,9 @@ static int frontend_init(struct av7110 *av7110)
2189 /* ALPS BSBE1 */ 2208 /* ALPS BSBE1 */
2190 av7110->fe = stv0299_attach(&alps_bsbe1_config, &av7110->i2c_adap); 2209 av7110->fe = stv0299_attach(&alps_bsbe1_config, &av7110->i2c_adap);
2191 if (av7110->fe) { 2210 if (av7110->fe) {
2211 av7110->fe->ops->tuner_ops.set_params = alps_bsbe1_tuner_set_params;
2212 av7110->fe->tuner_priv = &av7110->i2c_adap;
2213
2192 if (lnbp21_init(av7110->fe, &av7110->i2c_adap, 0, 0)) { 2214 if (lnbp21_init(av7110->fe, &av7110->i2c_adap, 0, 0)) {
2193 printk("dvb-ttpci: LNBP21 not found!\n"); 2215 printk("dvb-ttpci: LNBP21 not found!\n");
2194 if (av7110->fe->ops->release) 2216 if (av7110->fe->ops->release)