Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] DiBxxxx: Codingstype updates

This patchs fix several conding-style violations.

Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

authored by

Olivier Grenie and committed by
Mauro Carvalho Chehab
b4d6046e be9bae10

+590 -660
+5 -4
drivers/media/dvb/dvb-usb/dib0700_core.c
··· 347 347 b[6] = (u8) (divider >> 8); 348 348 b[7] = (u8) (divider & 0xff); 349 349 350 - deb_info("setting I2C speed: %04x %04x %04x (%d kHz).", (b[2] << 8) | (b[3]), (b[4] << 8) | b[5], (b[6] << 8) | b[7], scl_kHz); 350 + deb_info("setting I2C speed: %04x %04x %04x (%d kHz).", 351 + (b[2] << 8) | (b[3]), (b[4] << 8) | b[5], (b[6] << 8) | b[7], scl_kHz); 351 352 return dib0700_ctrl_wr(d, b, 8); 352 353 } 353 354 ··· 485 484 deb_info("modifying (%d) streaming state for %d\n", onoff, adap->id); 486 485 487 486 st->channel_state &= ~0x3; 488 - if ((adap->stream.props.endpoint != 2) && (adap->stream.props.endpoint != 3)) { 487 + if ((adap->stream.props.endpoint != 2) 488 + && (adap->stream.props.endpoint != 3)) { 489 489 deb_info("the endpoint number (%i) is not correct, use the adapter id instead", adap->stream.props.endpoint); 490 490 if (onoff) 491 491 st->channel_state |= 1 << (adap->id); 492 492 else 493 493 st->channel_state |= 1 << ~(adap->id); 494 - } 495 - else { 494 + } else { 496 495 if (onoff) 497 496 st->channel_state |= 1 << (adap->stream.props.endpoint-2); 498 497 else
+131 -132
drivers/media/dvb/dvb-usb/dib0700_devices.c
··· 1444 1444 .drives = 0x2d98, 1445 1445 .diversity_delay = 48, 1446 1446 .refclksel = 3, 1447 - },{ 1447 + }, { 1448 1448 .output_mpeg2_in_188_bytes = 1, 1449 1449 1450 1450 .agc_config_count = 2, ··· 1517 1517 1518 1518 1519 1519 if (band == BAND_CBAND) { 1520 - deb_info("tuning in CBAND - soft-AGC startup\n"); 1521 - /* TODO specific wbd target for dib0090 - needed for startup ? */ 1522 - dib0090_set_tune_state(fe, CT_AGC_START); 1523 - do { 1524 - ret = dib0090_gain_control(fe); 1525 - msleep(ret); 1526 - tune_state = dib0090_get_tune_state(fe); 1527 - if (tune_state == CT_AGC_STEP_0) 1528 - dib8000_set_gpio(fe, 6, 0, 1); 1529 - else if (tune_state == CT_AGC_STEP_1) { 1530 - dib0090_get_current_gain(fe, NULL, NULL, &rf_gain_limit, &ltgain); 1531 - if (rf_gain_limit == 0) 1532 - dib8000_set_gpio(fe, 6, 0, 0); 1533 - } 1534 - } while (tune_state < CT_AGC_STOP); 1535 - dib0090_pwm_gain_reset(fe); 1536 - dib8000_pwm_agc_reset(fe); 1537 - dib8000_set_tune_state(fe, CT_DEMOD_START); 1520 + deb_info("tuning in CBAND - soft-AGC startup\n"); 1521 + dib0090_set_tune_state(fe, CT_AGC_START); 1522 + do { 1523 + ret = dib0090_gain_control(fe); 1524 + msleep(ret); 1525 + tune_state = dib0090_get_tune_state(fe); 1526 + if (tune_state == CT_AGC_STEP_0) 1527 + dib8000_set_gpio(fe, 6, 0, 1); 1528 + else if (tune_state == CT_AGC_STEP_1) { 1529 + dib0090_get_current_gain(fe, NULL, NULL, &rf_gain_limit, &ltgain); 1530 + if (rf_gain_limit == 0) 1531 + dib8000_set_gpio(fe, 6, 0, 0); 1532 + } 1533 + } while (tune_state < CT_AGC_STOP); 1534 + dib0090_pwm_gain_reset(fe); 1535 + dib8000_pwm_agc_reset(fe); 1536 + dib8000_set_tune_state(fe, CT_DEMOD_START); 1538 1537 } else { 1539 - deb_info("not tuning in CBAND - standard AGC startup\n"); 1540 - dib0090_pwm_gain_reset(fe); 1538 + deb_info("not tuning in CBAND - standard AGC startup\n"); 1539 + dib0090_pwm_gain_reset(fe); 1541 1540 } 1542 1541 1543 1542 return 0; ··· 1607 1608 struct dvb_frontend *fe_slave; 1608 1609 1609 1610 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0); 1610 - msleep(10); 1611 + msleep(20); 1611 1612 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1); 1612 1613 msleep(1000); 1613 1614 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1); ··· 1618 1619 1619 1620 dib0700_ctrl_clock(adap->dev, 72, 1); 1620 1621 1621 - msleep(10); 1622 + msleep(20); 1622 1623 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1); 1623 - msleep(10); 1624 + msleep(20); 1624 1625 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1); 1625 1626 1626 1627 dib8000_i2c_enumeration(&adap->dev->i2c_adap, 2, 18, 0x80); ··· 1661 1662 u8 wb[4] = { 0xc >> 8, 0xc & 0xff, 0, 0 }; 1662 1663 u8 rb[2]; 1663 1664 struct i2c_msg msg[2] = { 1664 - {.addr = 0x1e >> 1,.flags = 0,.buf = wb,.len = 2}, 1665 - {.addr = 0x1e >> 1,.flags = I2C_M_RD,.buf = rb,.len = 2}, 1665 + {.addr = 0x1e >> 1, .flags = 0, .buf = wb, .len = 2}, 1666 + {.addr = 0x1e >> 1, .flags = I2C_M_RD, .buf = rb, .len = 2}, 1666 1667 }; 1667 1668 u8 index_data; 1668 1669 ··· 1672 1673 return -EIO; 1673 1674 1674 1675 switch (rb[0] << 8 | rb[1]) { 1675 - case 0: 1676 + case 0: 1676 1677 deb_info("Found DiB0170 rev1: This version of DiB0170 is not supported any longer.\n"); 1677 1678 return -EIO; 1678 - case 1: 1679 + case 1: 1679 1680 deb_info("Found DiB0170 rev2"); 1680 1681 break; 1681 - case 2: 1682 + case 2: 1682 1683 deb_info("Found DiB0190 rev2"); 1683 1684 break; 1684 - default: 1685 + default: 1685 1686 deb_info("DiB01x0 not found"); 1686 1687 return -EIO; 1687 - } 1688 + } 1688 1689 1689 1690 for (index_data = 0; index_data < len; index_data += 2) { 1690 1691 wb[2] = (data[index_data + 1] >> 8) & 0xff; ··· 1700 1701 wb[3] |= rb[1] & ~(3 << 4); 1701 1702 } 1702 1703 1703 - wb[0] = (data[index_data ] >> 8)&0xff; 1704 - wb[1] = (data[index_data ] )&0xff; 1704 + wb[0] = (data[index_data] >> 8)&0xff; 1705 + wb[1] = (data[index_data])&0xff; 1705 1706 msg[0].len = 4; 1706 1707 if (i2c_transfer(i2c, &msg[0], 1) != 1) 1707 1708 return -EIO; ··· 1798 1799 .clkoutdrive = 0, 1799 1800 .freq_offset_khz_uhf = 0, 1800 1801 .freq_offset_khz_vhf = 0, 1801 - },{ 1802 + }, { 1802 1803 .io.pll_bypass = 0, 1803 1804 .io.pll_range = 1, 1804 1805 .io.pll_prediv = 1, ··· 1831 1832 dib0700_set_i2c_speed(adap->dev, 340); 1832 1833 1833 1834 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1); 1834 - msleep(10); 1835 + msleep(20); 1835 1836 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1); 1836 1837 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1); 1837 1838 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1); ··· 1839 1840 1840 1841 dib0700_ctrl_clock(adap->dev, 72, 1); 1841 1842 1842 - msleep(10); 1843 + msleep(20); 1843 1844 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1); 1844 - msleep(10); 1845 + msleep(20); 1845 1846 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1); 1846 1847 1847 1848 dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x80); ··· 1880 1881 dib0700_set_i2c_speed(adap->dev, 2000); 1881 1882 if (dib9000_firmware_post_pll_init(adap->fe) < 0) 1882 1883 return -ENODEV; 1883 - release_firmware(state->frontend_firmware); 1884 + release_firmware(state->frontend_firmware); 1884 1885 return 0; 1885 1886 } 1886 1887 ··· 1899 1900 dib0700_set_i2c_speed(adap->dev, 340); 1900 1901 1901 1902 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1); 1902 - msleep(10); 1903 + msleep(20); 1903 1904 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1); 1904 1905 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1); 1905 1906 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1); ··· 1907 1908 1908 1909 dib0700_ctrl_clock(adap->dev, 72, 1); 1909 1910 1910 - msleep(10); 1911 + msleep(20); 1911 1912 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1); 1912 - msleep(10); 1913 + msleep(20); 1913 1914 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1); 1914 1915 1915 1916 if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev)) { ··· 1973 1974 if (dib9000_firmware_post_pll_init(fe_slave) < 0) 1974 1975 return -ENODEV; 1975 1976 } 1976 - release_firmware(state->frontend_firmware); 1977 + release_firmware(state->frontend_firmware); 1977 1978 1978 1979 return 0; 1979 1980 } ··· 2004 2005 deb_info("bandwidth = %d fdem_min =%d", fe->dtv_property_cache.bandwidth_hz, fdem_min); 2005 2006 2006 2007 /* Find Min and Max prediv */ 2007 - while((xtal/max_prediv) >= fcp_min) 2008 + while ((xtal/max_prediv) >= fcp_min) 2008 2009 max_prediv++; 2009 2010 2010 2011 max_prediv--; 2011 2012 min_prediv = max_prediv; 2012 - while((xtal/min_prediv) <= fcp_max) { 2013 + while ((xtal/min_prediv) <= fcp_max) { 2013 2014 min_prediv--; 2014 - if(min_prediv == 1) 2015 + if (min_prediv == 1) 2015 2016 break; 2016 2017 } 2017 2018 deb_info("MIN prediv = %d : MAX prediv = %d", min_prediv, max_prediv); 2018 2019 2019 2020 min_prediv = 2; 2020 2021 2021 - for(prediv = min_prediv ; prediv < max_prediv; prediv ++) { 2022 + for (prediv = min_prediv ; prediv < max_prediv; prediv++) { 2022 2023 fcp = xtal / prediv; 2023 - if(fcp > fcp_min && fcp < fcp_max) { 2024 - for(loopdiv = 1 ; loopdiv < 64 ; loopdiv++) { 2024 + if (fcp > fcp_min && fcp < fcp_max) { 2025 + for (loopdiv = 1 ; loopdiv < 64 ; loopdiv++) { 2025 2026 fdem = ((xtal/prediv) * loopdiv); 2026 2027 fs = fdem / 4; 2027 2028 /* test min/max system restrictions */ 2028 2029 2029 - if((fdem >= fdem_min) && (fdem <= fdem_max) && (fs >= fe->dtv_property_cache.bandwidth_hz/1000)) { 2030 + if ((fdem >= fdem_min) && (fdem <= fdem_max) && (fs >= fe->dtv_property_cache.bandwidth_hz/1000)) { 2030 2031 spur = 0; 2031 2032 /* test fs harmonics positions */ 2032 - for(harmonic_id = (fe->dtv_property_cache.frequency / (1000*fs)) ; harmonic_id <= ((fe->dtv_property_cache.frequency / (1000*fs))+1) ; harmonic_id++) { 2033 - if(((fs*harmonic_id) >= ((fe->dtv_property_cache.frequency/1000) - (fe->dtv_property_cache.bandwidth_hz/2000))) && ((fs*harmonic_id) <= ((fe->dtv_property_cache.frequency/1000) + (fe->dtv_property_cache.bandwidth_hz/2000)))) { 2033 + for (harmonic_id = (fe->dtv_property_cache.frequency / (1000*fs)) ; harmonic_id <= ((fe->dtv_property_cache.frequency / (1000*fs))+1) ; harmonic_id++) { 2034 + if (((fs*harmonic_id) >= ((fe->dtv_property_cache.frequency/1000) - (fe->dtv_property_cache.bandwidth_hz/2000))) && ((fs*harmonic_id) <= ((fe->dtv_property_cache.frequency/1000) + (fe->dtv_property_cache.bandwidth_hz/2000)))) { 2034 2035 spur = 1; 2035 2036 break; 2036 2037 } 2037 2038 } 2038 2039 2039 - if(!spur) { 2040 + if (!spur) { 2040 2041 adc->pll_loopdiv = loopdiv; 2041 2042 adc->pll_prediv = prediv; 2042 - adc->timf = 2396745143UL/fdem*(1<<9); 2043 - adc->timf+= ((2396745143UL%fdem)<< 9)/fdem; 2043 + adc->timf = 2396745143UL/fdem*(1 << 9); 2044 + adc->timf += ((2396745143UL%fdem) << 9)/fdem; 2044 2045 deb_info("loopdiv=%i prediv=%i timf=%i", loopdiv, prediv, adc->timf); 2045 2046 break; 2046 2047 } ··· 2052 2053 } 2053 2054 2054 2055 2055 - if(adc->pll_loopdiv == 0 && adc->pll_prediv == 0) { 2056 + if (adc->pll_loopdiv == 0 && adc->pll_prediv == 0) 2056 2057 return -EINVAL; 2057 - } else 2058 + else 2058 2059 return 0; 2059 2060 } 2060 2061 ··· 2076 2077 target = (dib0090_get_wbd_offset(fe) * 8 + 1) / 2; 2077 2078 dib7000p_set_wbd_ref(fe, target); 2078 2079 2079 - if(dib7090p_get_best_sampling(fe, &adc) == 0) { 2080 + if (dib7090p_get_best_sampling(fe, &adc) == 0) { 2080 2081 pll.pll_ratio = adc.pll_loopdiv; 2081 2082 pll.pll_prediv = adc.pll_prediv; 2082 2083 ··· 2087 2088 } 2088 2089 2089 2090 static struct dib0090_wbd_slope dib7090_wbd_table[] = { 2090 - { 380, 81, 850, 64, 540 ,4}, 2091 - { 860, 51, 866, 21, 375 ,4}, 2092 - {1700, 0, 250, 0, 100, 6}, //LBAND Predefinition , NOT tested Yet 2093 - {2600, 0, 250, 0, 100, 6}, //SBAND Predefinition , NOT tested Yet 2094 - { 0xFFFF, 0, 0, 0, 0 ,0}, 2091 + { 380, 81, 850, 64, 540, 4}, 2092 + { 860, 51, 866, 21, 375, 4}, 2093 + {1700, 0, 250, 0, 100, 6}, 2094 + {2600, 0, 250, 0, 100, 6}, 2095 + { 0xFFFF, 0, 0, 0, 0, 0}, 2095 2096 }; 2096 2097 2097 2098 struct dibx000_agc_config dib7090_agc_config[2] = { ··· 2099 2100 .band_caps = BAND_UHF, 2100 2101 /* P_agc_use_sd_mod1=0, P_agc_use_sd_mod2=0, P_agc_freq_pwm_div=1, P_agc_inv_pwm1=0, P_agc_inv_pwm2=0, 2101 2102 * P_agc_inh_dc_rv_est=0, P_agc_time_est=3, P_agc_freeze=0, P_agc_nb_est=5, P_agc_write=0 */ 2102 - .setup = (0 << 15) | (0 << 14) | (5 << 11) | (0 << 10) | (0 << 9) | (0 << 8) | (3 << 5) | (0 << 4) | (5 << 1) | (0 << 0), // setup 2103 + .setup = (0 << 15) | (0 << 14) | (5 << 11) | (0 << 10) | (0 << 9) | (0 << 8) | (3 << 5) | (0 << 4) | (5 << 1) | (0 << 0), 2103 2104 2104 - .inv_gain = 687,// inv_gain = 1/ 95.4dB // no boost, lower gain due to ramp quantification 2105 - .time_stabiliz = 10, // time_stabiliz 2105 + .inv_gain = 687, 2106 + .time_stabiliz = 10, 2106 2107 2107 - .alpha_level = 0, // alpha_level 2108 - .thlock = 118, // thlock 2108 + .alpha_level = 0, 2109 + .thlock = 118, 2109 2110 2110 - .wbd_inv = 0, // wbd_inv 2111 - .wbd_ref = 1200, // wbd_ref 2112 - .wbd_sel = 3, // wbd_sel 2113 - .wbd_alpha = 5, // wbd_alpha 2111 + .wbd_inv = 0, 2112 + .wbd_ref = 1200, 2113 + .wbd_sel = 3, 2114 + .wbd_alpha = 5, 2114 2115 2115 - .agc1_max = 65535, // agc1_max 2116 - .agc1_min = 0, // agc1_min 2116 + .agc1_max = 65535, 2117 + .agc1_min = 0, 2117 2118 2118 - .agc2_max = 65535, // agc2_max 2119 - .agc2_min = 0, // agc2_min 2119 + .agc2_max = 65535, 2120 + .agc2_min = 0, 2120 2121 2121 - .agc1_pt1 = 0, // agc1_pt1 2122 - .agc1_pt2 = 32, // agc1_pt2 2123 - .agc1_pt3 = 114, // agc1_pt3 // 40.4dB 2124 - .agc1_slope1 = 143, // agc1_slope1 2125 - .agc1_slope2 = 144, // agc1_slope2 2126 - .agc2_pt1 = 114, // agc2_pt1 2127 - .agc2_pt2 = 227, // agc2_pt2 2128 - .agc2_slope1 = 116, // agc2_slope1 2129 - .agc2_slope2 = 117, // agc2_slope2 2122 + .agc1_pt1 = 0, 2123 + .agc1_pt2 = 32, 2124 + .agc1_pt3 = 114, 2125 + .agc1_slope1 = 143, 2126 + .agc1_slope2 = 144, 2127 + .agc2_pt1 = 114, 2128 + .agc2_pt2 = 227, 2129 + .agc2_slope1 = 116, 2130 + .agc2_slope2 = 117, 2130 2131 2131 - .alpha_mant = 18, // alpha_mant // 5Hz with 95.4dB 2132 - .alpha_exp = 0, // alpha_exp 2133 - .beta_mant = 20, // beta_mant 2134 - .beta_exp = 59, // beta_exp 2132 + .alpha_mant = 18, 2133 + .alpha_exp = 0, 2134 + .beta_mant = 20, 2135 + .beta_exp = 59, 2135 2136 2136 - .perform_agc_softsplit = 0, // perform_agc_softsplit 2137 + .perform_agc_softsplit = 0, 2137 2138 } , { 2138 2139 .band_caps = BAND_FM | BAND_VHF | BAND_CBAND, 2139 2140 /* P_agc_use_sd_mod1=0, P_agc_use_sd_mod2=0, P_agc_freq_pwm_div=1, P_agc_inv_pwm1=0, P_agc_inv_pwm2=0, 2140 2141 * P_agc_inh_dc_rv_est=0, P_agc_time_est=3, P_agc_freeze=0, P_agc_nb_est=5, P_agc_write=0 */ 2141 - .setup = (0 << 15) | (0 << 14) | (5 << 11) | (0 << 10) | (0 << 9) | (0 << 8) | (3 << 5) | (0 << 4) | (5 << 1) | (0 << 0), // setup 2142 + .setup = (0 << 15) | (0 << 14) | (5 << 11) | (0 << 10) | (0 << 9) | (0 << 8) | (3 << 5) | (0 << 4) | (5 << 1) | (0 << 0), 2142 2143 2143 - .inv_gain = 732,// inv_gain = 1/ 89.5dB // no boost, lower gain due to ramp quantification 2144 - .time_stabiliz = 10, // time_stabiliz 2144 + .inv_gain = 732, 2145 + .time_stabiliz = 10, 2145 2146 2146 - .alpha_level = 0, // alpha_level 2147 - .thlock = 118, // thlock 2147 + .alpha_level = 0, 2148 + .thlock = 118, 2148 2149 2149 - .wbd_inv = 0, // wbd_inv 2150 - .wbd_ref = 1200, // wbd_ref 2151 - .wbd_sel = 3, // wbd_sel 2152 - .wbd_alpha = 5, // wbd_alpha 2150 + .wbd_inv = 0, 2151 + .wbd_ref = 1200, 2152 + .wbd_sel = 3, 2153 + .wbd_alpha = 5, 2153 2154 2154 - .agc1_max = 65535, // agc1_max : 1 2155 - .agc1_min = 0, // agc1_min 2155 + .agc1_max = 65535, 2156 + .agc1_min = 0, 2156 2157 2157 - .agc2_max = 65535, // agc2_max 2158 - .agc2_min = 0, // agc2_min 2158 + .agc2_max = 65535, 2159 + .agc2_min = 0, 2159 2160 2160 - .agc1_pt1 = 0, // agc1_pt1 2161 - .agc1_pt2 = 0, // agc1_pt2 2162 - .agc1_pt3 = 98, // agc1_pt3 // 34.5dB CBAND P1G + 55dB BB boost = 89.5dB 2163 - .agc1_slope1 = 0, // agc1_slope1 2164 - .agc1_slope2 = 167, // agc1_slope2 = Dy/Dx * 2**6 * 2**8 = 1/98 * 2**6 *2**8 : Dy = 1 2165 - .agc1_pt1 = 98, // agc2_pt1 2166 - .agc2_pt2 = 255, // agc2_pt2 2167 - .agc2_slope1 = 104, // agc2_slope1 = Dy/Dx * 2**6 * 2**8 = 1/(255-98) * 2**6 *2**8 2168 - .agc2_slope2 = 0, // agc2_slope2 2161 + .agc1_pt1 = 0, 2162 + .agc1_pt2 = 0, 2163 + .agc1_pt3 = 98, 2164 + .agc1_slope1 = 0, 2165 + .agc1_slope2 = 167, 2166 + .agc1_pt1 = 98, 2167 + .agc2_pt2 = 255, 2168 + .agc2_slope1 = 104, 2169 + .agc2_slope2 = 0, 2169 2170 2170 - .alpha_mant = 18, // alpha_mant // 5Hz with 95.4dB 2171 - .alpha_exp = 0, // alpha_exp 2172 - .beta_mant = 20, // beta_mant 2173 - .beta_exp = 59, // beta_exp 2171 + .alpha_mant = 18, 2172 + .alpha_exp = 0, 2173 + .beta_mant = 20, 2174 + .beta_exp = 59, 2174 2175 2175 - .perform_agc_softsplit = 0, // perform_agc_softsplit 2176 + .perform_agc_softsplit = 0, 2176 2177 } 2177 2178 }; 2178 2179 2179 2180 static struct dibx000_bandwidth_config dib7090_clock_config_12_mhz = { 2180 - 60000, 15000, // internal, sampling 2181 - 1, 5, 0, 0, 0, // pll_cfg: prediv, ratio, range, reset, bypass 2182 - 0, 0, 1, 1, 2, // misc: refdiv, bypclk_div, IO_CLK_en_core, ADClkSrc, modulo 2183 - (3 << 14) | (1 << 12) | (524 << 0), // sad_cfg: refsel, sel, freq_15k 2184 - (0 << 25) | 0, // ifreq = 0.000000 MHz 2185 - 20452225, // timf 2186 - 15000000, // xtal_hz 2181 + 60000, 15000, 2182 + 1, 5, 0, 0, 0, 2183 + 0, 0, 1, 1, 2, 2184 + (3 << 14) | (1 << 12) | (524 << 0), 2185 + (0 << 25) | 0, 2186 + 20452225, 2187 + 15000000, 2187 2188 }; 2188 2189 2189 2190 static struct dib7000p_config nim7090_dib7000p_config = { ··· 2242 2243 .output_mode = OUTMODE_MPEG2_PAR_GATED_CLK, 2243 2244 .default_i2c_addr = 0x90, 2244 2245 .enMpegOutput = 1, 2245 - },{ 2246 + }, { 2246 2247 .output_mpeg2_in_188_bytes = 1, 2247 2248 .hostbus_diversity = 1, 2248 2249 .tuner_is_baseband = 1, ··· 2339 2340 .data_tx_drv = 0, 2340 2341 .low_if = NULL, 2341 2342 .in_soc = 1, 2342 - },{ 2343 + }, { 2343 2344 .io.clock_khz = 12000, 2344 2345 .io.pll_bypass = 0, 2345 2346 .io.pll_range = 0, ··· 2377 2378 static int nim7090_frontend_attach(struct dvb_usb_adapter *adap) 2378 2379 { 2379 2380 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1); 2380 - msleep(10); 2381 + msleep(20); 2381 2382 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1); 2382 2383 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1); 2383 2384 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1); 2384 2385 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0); 2385 2386 2386 - msleep(10); 2387 + msleep(20); 2387 2388 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1); 2388 - msleep(10); 2389 + msleep(20); 2389 2390 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1); 2390 2391 2391 2392 if (dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, &nim7090_dib7000p_config) != 0) { ··· 2420 2421 st->disable_streaming_master_mode = 1; 2421 2422 2422 2423 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1); 2423 - msleep(10); 2424 + msleep(20); 2424 2425 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1); 2425 2426 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1); 2426 2427 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1); 2427 2428 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0); 2428 2429 2429 - msleep(10); 2430 + msleep(20); 2430 2431 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1); 2431 - msleep(10); 2432 + msleep(20); 2432 2433 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1); 2433 2434 2434 2435 /* initialize IC 0 */ ··· 2440 2441 dib0700_set_i2c_speed(adap->dev, 340); 2441 2442 adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x90, &tfe7090pvr_dib7000p_config[0]); 2442 2443 2443 - dib7090_slave_reset(adap->fe); 2444 + dib7090_slave_reset(adap->fe); 2444 2445 2445 2446 if (adap->fe == NULL) 2446 2447 return -ENODEV;
+137 -184
drivers/media/dvb/frontends/dib0090.c
··· 204 204 { 205 205 u8 b[2]; 206 206 struct i2c_msg msg[2] = { 207 - {.addr = state->config->i2c_address,.flags = 0,.buf = &reg,.len = 1}, 208 - {.addr = state->config->i2c_address,.flags = I2C_M_RD,.buf = b,.len = 2}, 207 + {.addr = state->config->i2c_address, .flags = 0, .buf = &reg, .len = 1}, 208 + {.addr = state->config->i2c_address, .flags = I2C_M_RD, .buf = b, .len = 2}, 209 209 }; 210 210 if (i2c_transfer(state->i2c, msg, 2) != 2) { 211 211 printk(KERN_WARNING "DiB0090 I2C read failed\n"); ··· 217 217 static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val) 218 218 { 219 219 u8 b[3] = { reg & 0xff, val >> 8, val & 0xff }; 220 - struct i2c_msg msg = {.addr = state->config->i2c_address,.flags = 0,.buf = b,.len = 3 }; 220 + struct i2c_msg msg = {.addr = state->config->i2c_address, .flags = 0, .buf = b, .len = 3 }; 221 221 if (i2c_transfer(state->i2c, &msg, 1) != 1) { 222 222 printk(KERN_WARNING "DiB0090 I2C write failed\n"); 223 223 return -EREMOTEIO; ··· 228 228 static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg) 229 229 { 230 230 u8 b[2]; 231 - struct i2c_msg msg = {.addr = reg,.flags = I2C_M_RD,.buf = b,.len = 2 }; 231 + struct i2c_msg msg = {.addr = reg, .flags = I2C_M_RD, .buf = b, .len = 2 }; 232 232 if (i2c_transfer(state->i2c, &msg, 1) != 1) { 233 233 printk(KERN_WARNING "DiB0090 I2C read failed\n"); 234 234 return 0; ··· 239 239 static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val) 240 240 { 241 241 u8 b[2] = { val >> 8, val & 0xff }; 242 - struct i2c_msg msg = {.addr = reg,.flags = 0,.buf = b,.len = 2 }; 242 + struct i2c_msg msg = {.addr = reg, .flags = 0, .buf = b, .len = 2 }; 243 243 if (i2c_transfer(state->i2c, &msg, 1) != 1) { 244 244 printk(KERN_WARNING "DiB0090 I2C write failed\n"); 245 245 return -EREMOTEIO; ··· 347 347 348 348 return 0; 349 349 350 - identification_error: 350 + identification_error: 351 351 return -EIO; 352 352 } 353 353 ··· 370 370 371 371 if (identity->product != KROSUS) 372 372 goto identification_error; 373 - 374 - //From the SOC the version definition has changed 375 373 376 374 if ((identity->version & 0x3) == SOC) { 377 375 identity->in_soc = 1; ··· 437 439 438 440 return 0; 439 441 440 - identification_error: 442 + identification_error: 441 443 return -EIO;; 442 444 } 443 445 ··· 1007 1009 if (state->current_band == BAND_VHF) { 1008 1010 if (state->identity.in_soc) { 1009 1011 dib0090_set_bbramp_pwm(state, bb_ramp_pwm_normal_socs); 1010 - //dib0090_set_rframp_pwm(state, rf_ramp_pwm_vhf_socs); /* TODO */ 1011 1012 } else { 1012 1013 dib0090_set_rframp_pwm(state, rf_ramp_pwm_vhf); 1013 1014 dib0090_set_bbramp_pwm(state, bb_ramp_pwm_normal); ··· 1041 1044 static u32 dib0090_get_slow_adc_val(struct dib0090_state *state) 1042 1045 { 1043 1046 u16 adc_val = dib0090_read_reg(state, 0x1d); 1044 - if (state->identity.in_soc) { 1047 + if (state->identity.in_soc) 1045 1048 adc_val >>= 2; 1046 - } 1047 1049 return adc_val; 1048 1050 } 1049 1051 ··· 1196 1200 #ifdef DEBUG_AGC 1197 1201 dprintk 1198 1202 ("tune state %d, ADC = %3ddB (ADC err %3d) WBD %3ddB (WBD err %3d, WBD val SADC: %4d), RFGainLimit (TOP): %3d, signal: %3ddBm", 1199 - (u32) * tune_state, (u32) adc, (u32) adc_error, (u32) wbd, (u32) wbd_error, (u32) wbd_val, 1203 + (u32) *tune_state, (u32) adc, (u32) adc_error, (u32) wbd, (u32) wbd_error, (u32) wbd_val, 1200 1204 (u32) state->rf_gain_limit >> WBD_ALPHA, (s32) 200 + adc - (state->current_gain >> GAIN_ALPHA)); 1201 1205 #endif 1202 1206 } ··· 1242 1246 if (current_temp > 128) 1243 1247 current_temp = 128; 1244 1248 1245 - //What Wbd gain to apply for this range of frequency 1246 1249 state->wbdmux &= ~(7 << 13); 1247 1250 if (wbd->wbd_gain != 0) 1248 1251 state->wbdmux |= (wbd->wbd_gain << 13); 1249 1252 else 1250 - state->wbdmux |= (4 << 13); // 4 is the default WBD gain 1253 + state->wbdmux |= (4 << 13); 1251 1254 1252 1255 dib0090_write_reg(state, 0x10, state->wbdmux); 1253 1256 1254 - //All the curves are linear with slope*f/64+offset 1255 1257 wbd_thot = wbd->offset_hot - (((u32) wbd->slope_hot * f_MHz) >> 6); 1256 1258 wbd_tcold = wbd->offset_cold - (((u32) wbd->slope_cold * f_MHz) >> 6); 1257 1259 1258 - // Iet assumes that thot-tcold = 130 equiv 128, current temperature ref is -30deg 1259 - 1260 1260 wbd_tcold += ((wbd_thot - wbd_tcold) * current_temp) >> 7; 1261 1261 1262 - //for (offset = 0; offset < 1000; offset += 4) 1263 - // dbgp("offset = %d -> %d\n", offset, dib0090_wbd_to_db(state, offset)); 1264 - state->wbd_target = dib0090_wbd_to_db(state, state->wbd_offset + wbd_tcold); // get the value in dBm from the offset 1262 + state->wbd_target = dib0090_wbd_to_db(state, state->wbd_offset + wbd_tcold); 1265 1263 dprintk("wbd-target: %d dB", (u32) state->wbd_target); 1266 1264 dprintk("wbd offset applied is %d", wbd_tcold); 1267 1265 ··· 1313 1323 }; 1314 1324 1315 1325 static const u16 dib0090_p1g_additionnal_defaults[] = { 1316 - // additionnal INITIALISATION for p1g to be written after dib0090_defaults 1317 1326 1, 0x05, 1318 1327 0xabcd, 1319 1328 ··· 1351 1362 1352 1363 void dib0090_set_EFUSE(struct dib0090_state *state) 1353 1364 { 1354 - u8 c,h,n; 1355 - u16 e2,e4; 1356 - u16 cal; 1365 + u8 c, h, n; 1366 + u16 e2, e4; 1367 + u16 cal; 1357 1368 1358 - e2=dib0090_read_reg(state,0x26); 1359 - e4=dib0090_read_reg(state,0x28); 1369 + e2 = dib0090_read_reg(state, 0x26); 1370 + e4 = dib0090_read_reg(state, 0x28); 1360 1371 1361 - if ((state->identity.version == P1D_E_F) || // All P1F uses the internal calibration 1362 - (state->identity.version == P1G) || (e2 == 0xffff)) { //W0090G11R1 and W0090G11R1-D : We will find the calibration Value of the Baseband 1372 + if ((state->identity.version == P1D_E_F) || 1373 + (state->identity.version == P1G) || (e2 == 0xffff)) { 1363 1374 1364 - dib0090_write_reg(state,0x22,0x10); //Start the Calib 1365 - cal = (dib0090_read_reg(state,0x22)>>6) & 0x3ff; 1375 + dib0090_write_reg(state, 0x22, 0x10); 1376 + cal = (dib0090_read_reg(state, 0x22) >> 6) & 0x3ff; 1366 1377 1367 - if ((cal<670) || (cal==1023)) //Cal at 800 would give too high value for the n 1368 - cal=850; //Recenter the n to 32 1369 - n = 165 - ((cal * 10)>>6) ; 1370 - e2 = e4 = (3<<12) | (34<<6) | (n); 1371 - } 1378 + if ((cal < 670) || (cal == 1023)) 1379 + cal = 850; 1380 + n = 165 - ((cal * 10)>>6) ; 1381 + e2 = e4 = (3<<12) | (34<<6) | (n); 1382 + } 1372 1383 1373 - if (e2!=e4) { 1374 - e2 &= e4; /* Remove the redundancy */ 1375 - } 1384 + if (e2 != e4) 1385 + e2 &= e4; /* Remove the redundancy */ 1376 1386 1377 - if (e2 != 0xffff) { 1378 - c = e2 & 0x3f; 1379 - n = (e2 >> 12) & 0xf; 1380 - h= (e2 >> 6) & 0x3f; 1387 + if (e2 != 0xffff) { 1388 + c = e2 & 0x3f; 1389 + n = (e2 >> 12) & 0xf; 1390 + h = (e2 >> 6) & 0x3f; 1381 1391 1382 - if ((c >= CAP_VALUE_MAX) || (c <= CAP_VALUE_MIN)) 1383 - c=32; 1384 - if ((h >= HR_MAX) || (h <= HR_MIN)) 1385 - h=34; 1386 - if ((n >= POLY_MAX) || (n <= POLY_MIN)) 1387 - n=3; 1392 + if ((c >= CAP_VALUE_MAX) || (c <= CAP_VALUE_MIN)) 1393 + c = 32; 1394 + if ((h >= HR_MAX) || (h <= HR_MIN)) 1395 + h = 34; 1396 + if ((n >= POLY_MAX) || (n <= POLY_MIN)) 1397 + n = 3; 1388 1398 1389 - dib0090_write_reg(state,0x13, (h << 10)) ; 1390 - e2 = (n<<11) | ((h>>2)<<6) | (c); 1391 - dib0090_write_reg(state,0x2, e2) ; /* Load the BB_2 */ 1392 - } 1399 + dib0090_write_reg(state, 0x13, (h << 10)) ; 1400 + e2 = (n<<11) | ((h>>2)<<6) | (c); 1401 + dib0090_write_reg(state, 0x2, e2) ; /* Load the BB_2 */ 1402 + } 1393 1403 } 1394 1404 1395 1405 static int dib0090_reset(struct dvb_frontend *fe) ··· 1413 1425 1414 1426 dib0090_set_default_config(state, dib0090_defaults); 1415 1427 1416 - if (state->identity.in_soc) 1417 - dib0090_write_reg(state, 0x18, 0x2910); /* charge pump current = 0 */ 1428 + if (state->identity.in_soc) 1429 + dib0090_write_reg(state, 0x18, 0x2910); /* charge pump current = 0 */ 1418 1430 1419 1431 if (state->identity.p1g) 1420 1432 dib0090_set_default_config(state, dib0090_p1g_additionnal_defaults); 1421 1433 1422 - if (((state->identity.version & 0x1f) >= P1D_E_F) || (state->identity.in_soc)) /* Update the efuse : Only available for KROSUS > P1C and SOC as well*/ 1423 - dib0090_set_EFUSE(state); 1434 + /* Update the efuse : Only available for KROSUS > P1C and SOC as well*/ 1435 + if (((state->identity.version & 0x1f) >= P1D_E_F) || (state->identity.in_soc)) 1436 + dib0090_set_EFUSE(state); 1424 1437 1425 1438 /* Congigure in function of the crystal */ 1426 1439 if (state->config->io.clock_khz >= 24000) ··· 1490 1501 static const struct dc_calibration dc_p1g_table[] = { 1491 1502 /* Step1 BB gain1= 26 with boost 1, gain 2 = 0 */ 1492 1503 /* addr ; trim reg offset ; pga ; CTRL_BB1 value ; i or q */ 1493 - {0x06, 5, 1, (1 << 13) | (0 << 8) | (15 << 3), 1}, // offset_trim2_i_chann 0 0 5 0 0 1 6 9 5 1494 - {0x07, 11, 1, (1 << 13) | (0 << 8) | (15 << 3), 0}, // offset_trim2_q_chann 0 0 5 0 0 1 7 15 11 1504 + {0x06, 5, 1, (1 << 13) | (0 << 8) | (15 << 3), 1}, 1505 + {0x07, 11, 1, (1 << 13) | (0 << 8) | (15 << 3), 0}, 1495 1506 /* Step 2 BB gain 1 = 26 with boost = 1 & gain 2 = 29 */ 1496 - {0x06, 0, 0, (1 << 13) | (29 << 8) | (15 << 3), 1}, // offset_trim1_i_chann 0 0 5 0 0 1 6 4 0 1497 - {0x06, 10, 0, (1 << 13) | (29 << 8) | (15 << 3), 0}, // offset_trim1_q_chann 0 0 5 0 0 1 6 14 10 1507 + {0x06, 0, 0, (1 << 13) | (29 << 8) | (15 << 3), 1}, 1508 + {0x06, 10, 0, (1 << 13) | (29 << 8) | (15 << 3), 0}, 1498 1509 {0}, 1499 1510 }; 1500 1511 ··· 1531 1542 dib0090_write_reg(state, 0x24, reg); 1532 1543 1533 1544 state->wbdmux = dib0090_read_reg(state, 0x10); 1534 - dib0090_write_reg(state, 0x10, (state->wbdmux & ~(0xff << 3)) | (0x7 << 3) | 0x3); // connect BB, disable WDB enable* 1535 - dib0090_write_reg(state, 0x23, dib0090_read_reg(state, 0x23) & ~(1 << 14)); //Discard the DataTX 1545 + dib0090_write_reg(state, 0x10, (state->wbdmux & ~(0xff << 3)) | (0x7 << 3) | 0x3); 1546 + dib0090_write_reg(state, 0x23, dib0090_read_reg(state, 0x23) & ~(1 << 14)); 1536 1547 1537 1548 state->dc = dc_table; 1538 1549 ··· 1585 1596 if ((state->adc_diff & 0x8000) == (state->min_adc_diff & 0x8000) && steps(state->step) < 15) { 1586 1597 /* stop search when the delta the sign is changing and Steps =15 and Step=0 is force for continuance */ 1587 1598 state->step++; 1588 - state->min_adc_diff = state->adc_diff; //min is used as N-1 1599 + state->min_adc_diff = state->adc_diff; 1589 1600 *tune_state = CT_TUNER_STEP_1; 1590 1601 } else { 1591 1602 /* the minimum was what we have seen in the step before */ 1592 - if (ABS(state->adc_diff) > ABS(state->min_adc_diff)) { //Come back to the previous state since the delta was better 1603 + if (ABS(state->adc_diff) > ABS(state->min_adc_diff)) { 1593 1604 dprintk("Since adc_diff N = %d > adc_diff step N-1 = %d, Come back one step", state->adc_diff, state->min_adc_diff); 1594 1605 state->step--; 1595 1606 } ··· 1607 1618 break; 1608 1619 1609 1620 case CT_TUNER_STEP_6: 1610 - dib0090_write_reg(state, 0x07, state->bb7 & ~0x0008); //Force the test bus to be off 1621 + dib0090_write_reg(state, 0x07, state->bb7 & ~0x0008); 1611 1622 dib0090_write_reg(state, 0x1f, 0x7); 1612 1623 *tune_state = CT_TUNER_START; /* reset done -> real tuning can now begin */ 1613 1624 state->calibrate &= ~DC_CAL; ··· 1642 1653 return 0; 1643 1654 } 1644 1655 1645 - dib0090_write_reg(state, 0x10, 0x1b81 | (1 << 10) | (wbd_gain << 13) | (1 << 3)); // Force: WBD enable,gain to 4, mux to WBD 1656 + dib0090_write_reg(state, 0x10, 0x1b81 | (1 << 10) | (wbd_gain << 13) | (1 << 3)); 1646 1657 1647 - dib0090_write_reg(state, 0x24, ((EN_UHF & 0x0fff) | (1 << 1))); //Discard all LNA but crystal !!! 1658 + dib0090_write_reg(state, 0x24, ((EN_UHF & 0x0fff) | (1 << 1))); 1648 1659 *tune_state = CT_TUNER_STEP_0; 1649 1660 state->wbd_calibration_gain = wbd_gain; 1650 1661 return 90; /* wait for the WBDMUX to switch and for the ADC to sample */ ··· 1777 1788 }; 1778 1789 1779 1790 static const struct dib0090_tuning dib0090_p1g_tuning_table[] = { 1780 - //max_freq, switch_trim, lna_tune, lna_bias, v2i, mix, load, tuner_enable; 1781 1791 #ifdef CONFIG_BAND_CBAND 1782 - {170000, 4, 1, 0x820f, 0x300, 0x2d22, 0x82cb, EN_CAB}, // FM EN_CAB 1792 + {170000, 4, 1, 0x820f, 0x300, 0x2d22, 0x82cb, EN_CAB}, 1783 1793 #endif 1784 1794 #ifdef CONFIG_BAND_VHF 1785 - {184000, 1, 1, 15, 0x300, 0x4d12, 0xb94e, EN_VHF}, // VHF EN_VHF 1786 - {227000, 1, 3, 15, 0x300, 0x4d12, 0xb94e, EN_VHF}, // VHF EN_VHF 1787 - {380000, 1, 7, 15, 0x300, 0x4d12, 0xb94e, EN_VHF}, // VHF EN_VHF 1795 + {184000, 1, 1, 15, 0x300, 0x4d12, 0xb94e, EN_VHF}, 1796 + {227000, 1, 3, 15, 0x300, 0x4d12, 0xb94e, EN_VHF}, 1797 + {380000, 1, 7, 15, 0x300, 0x4d12, 0xb94e, EN_VHF}, 1788 1798 #endif 1789 1799 #ifdef CONFIG_BAND_UHF 1790 - {510000, 2, 0, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, // UHF 1791 - {540000, 2, 1, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, // UHF 1792 - {600000, 2, 3, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, // UHF 1793 - {630000, 2, 4, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, // UHF 1794 - {680000, 2, 5, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, // UHF 1795 - {720000, 2, 6, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, // UHF 1796 - {900000, 2, 7, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, // UHF 1800 + {510000, 2, 0, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, 1801 + {540000, 2, 1, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, 1802 + {600000, 2, 3, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, 1803 + {630000, 2, 4, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, 1804 + {680000, 2, 5, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, 1805 + {720000, 2, 6, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, 1806 + {900000, 2, 7, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, 1797 1807 #endif 1798 1808 #ifdef CONFIG_BAND_LBAND 1799 - {1500000, 4, 0, 20, 0x300, 0x1912, 0x82c9, EN_LBD}, // LBD EN_LBD 1800 - {1600000, 4, 1, 20, 0x300, 0x1912, 0x82c9, EN_LBD}, // LBD EN_LBD 1801 - {1800000, 4, 3, 20, 0x300, 0x1912, 0x82c9, EN_LBD}, // LBD EN_LBD 1809 + {1500000, 4, 0, 20, 0x300, 0x1912, 0x82c9, EN_LBD}, 1810 + {1600000, 4, 1, 20, 0x300, 0x1912, 0x82c9, EN_LBD}, 1811 + {1800000, 4, 3, 20, 0x300, 0x1912, 0x82c9, EN_LBD}, 1802 1812 #endif 1803 1813 #ifdef CONFIG_BAND_SBAND 1804 - {2300000, 1, 4, 20, 0x300, 0x2d2A, 0x82c7, EN_SBD}, // SBD EN_SBD 1805 - {2900000, 1, 7, 20, 0x280, 0x2deb, 0x8347, EN_SBD}, // SBD EN_SBD 1814 + {2300000, 1, 4, 20, 0x300, 0x2d2A, 0x82c7, EN_SBD}, 1815 + {2900000, 1, 7, 20, 0x280, 0x2deb, 0x8347, EN_SBD}, 1806 1816 #endif 1807 1817 }; 1808 1818 1809 1819 static const struct dib0090_pll dib0090_p1g_pll_table[] = { 1810 1820 #ifdef CONFIG_BAND_CBAND 1811 - {57000, 0, 11, 48, 6}, // CAB 1812 - {70000, 1, 11, 48, 6}, // CAB 1813 - {86000, 0, 10, 32, 4}, // CAB 1814 - {105000, 1, 10, 32, 4}, // FM 1815 - {115000, 0, 9, 24, 6}, // FM 1816 - {140000, 1, 9, 24, 6}, // MID FM VHF 1817 - {170000, 0, 8, 16, 4}, // MID FM VHF 1821 + {57000, 0, 11, 48, 6}, 1822 + {70000, 1, 11, 48, 6}, 1823 + {86000, 0, 10, 32, 4}, 1824 + {105000, 1, 10, 32, 4}, 1825 + {115000, 0, 9, 24, 6}, 1826 + {140000, 1, 9, 24, 6}, 1827 + {170000, 0, 8, 16, 4}, 1818 1828 #endif 1819 1829 #ifdef CONFIG_BAND_VHF 1820 - {200000, 1, 8, 16, 4}, // VHF 1821 - {230000, 0, 7, 12, 6}, // VHF 1822 - {280000, 1, 7, 12, 6}, // MID VHF UHF 1823 - {340000, 0, 6, 8, 4}, // MID VHF UHF 1824 - {380000, 1, 6, 8, 4}, // MID VHF UHF 1825 - {455000, 0, 5, 6, 6}, // MID VHF UHF 1830 + {200000, 1, 8, 16, 4}, 1831 + {230000, 0, 7, 12, 6}, 1832 + {280000, 1, 7, 12, 6}, 1833 + {340000, 0, 6, 8, 4}, 1834 + {380000, 1, 6, 8, 4}, 1835 + {455000, 0, 5, 6, 6}, 1826 1836 #endif 1827 1837 #ifdef CONFIG_BAND_UHF 1828 - {580000, 1, 5, 6, 6}, // UHF 1829 - {680000, 0, 4, 4, 4}, // UHF 1830 - {860000, 1, 4, 4, 4}, // UHF 1838 + {580000, 1, 5, 6, 6}, 1839 + {680000, 0, 4, 4, 4}, 1840 + {860000, 1, 4, 4, 4}, 1831 1841 #endif 1832 1842 #ifdef CONFIG_BAND_LBAND 1833 - {1800000, 1, 2, 2, 4}, // LBD 1843 + {1800000, 1, 2, 2, 4}, 1834 1844 #endif 1835 1845 #ifdef CONFIG_BAND_SBAND 1836 - {2900000, 0, 1, 1, 6}, // SBD 1846 + {2900000, 0, 1, 1, 6}, 1837 1847 #endif 1838 1848 }; 1839 1849 1840 1850 static const struct dib0090_tuning dib0090_p1g_tuning_table_fm_vhf_on_cband[] = { 1841 - //max_freq, switch_trim, lna_tune, lna_bias, v2i, mix, load, tuner_enable; 1842 1851 #ifdef CONFIG_BAND_CBAND 1843 - {184000, 4, 3, 0x4187, 0x2c0, 0x2d22, 0x81cb, EN_CAB}, // FM EN_CAB // 0x8190 Good perf but higher current //0x4187 Low current 1844 - {227000, 4, 3, 0x4187, 0x2c0, 0x2d22, 0x81cb, EN_CAB}, // FM EN_CAB 1845 - {380000, 4, 3, 0x4187, 0x2c0, 0x2d22, 0x81cb, EN_CAB}, // FM EN_CAB 1852 + {184000, 4, 3, 0x4187, 0x2c0, 0x2d22, 0x81cb, EN_CAB}, 1853 + {227000, 4, 3, 0x4187, 0x2c0, 0x2d22, 0x81cb, EN_CAB}, 1854 + {380000, 4, 3, 0x4187, 0x2c0, 0x2d22, 0x81cb, EN_CAB}, 1846 1855 #endif 1847 1856 #ifdef CONFIG_BAND_UHF 1848 - {520000, 2, 0, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, // UHF 1849 - {550000, 2, 2, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, // UHF 1850 - {650000, 2, 3, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, // UHF 1851 - {750000, 2, 5, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, // UHF 1852 - {850000, 2, 6, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, // UHF 1853 - {900000, 2, 7, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, // UHF 1857 + {520000, 2, 0, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, 1858 + {550000, 2, 2, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, 1859 + {650000, 2, 3, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, 1860 + {750000, 2, 5, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, 1861 + {850000, 2, 6, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, 1862 + {900000, 2, 7, 15, 0x300, 0x1d12, 0xb9ce, EN_UHF}, 1854 1863 #endif 1855 1864 #ifdef CONFIG_BAND_LBAND 1856 - {1500000, 4, 0, 20, 0x300, 0x1912, 0x82c9, EN_LBD}, // LBD EN_LBD 1857 - {1600000, 4, 1, 20, 0x300, 0x1912, 0x82c9, EN_LBD}, // LBD EN_LBD 1858 - {1800000, 4, 3, 20, 0x300, 0x1912, 0x82c9, EN_LBD}, // LBD EN_LBD 1865 + {1500000, 4, 0, 20, 0x300, 0x1912, 0x82c9, EN_LBD}, 1866 + {1600000, 4, 1, 20, 0x300, 0x1912, 0x82c9, EN_LBD}, 1867 + {1800000, 4, 3, 20, 0x300, 0x1912, 0x82c9, EN_LBD}, 1859 1868 #endif 1860 1869 #ifdef CONFIG_BAND_SBAND 1861 - {2300000, 1, 4, 20, 0x300, 0x2d2A, 0x82c7, EN_SBD}, // SBD EN_SBD 1862 - {2900000, 1, 7, 20, 0x280, 0x2deb, 0x8347, EN_SBD}, // SBD EN_SBD 1870 + {2300000, 1, 4, 20, 0x300, 0x2d2A, 0x82c7, EN_SBD}, 1871 + {2900000, 1, 7, 20, 0x280, 0x2deb, 0x8347, EN_SBD}, 1863 1872 #endif 1864 1873 }; 1865 1874 1866 1875 static const struct dib0090_tuning dib0090_tuning_table_cband_7090[] = { 1867 - //max_freq, switch_trim, lna_tune, lna_bias, v2i, mix, load, tuner_enable; 1868 1876 #ifdef CONFIG_BAND_CBAND 1869 - //{ 184000, 4, 3, 0x018F, 0x2c0, 0x2d22, 0xb9ce, EN_CAB }, // 0x81ce 0x8190 Good perf but higher current //0x4187 Low current 1870 1877 {300000, 4, 3, 0x018F, 0x2c0, 0x2d22, 0xb9ce, EN_CAB}, 1871 - {380000, 4, 10, 0x018F, 0x2c0, 0x2d22, 0xb9ce, EN_CAB}, //0x4187 1878 + {380000, 4, 10, 0x018F, 0x2c0, 0x2d22, 0xb9ce, EN_CAB}, 1872 1879 {570000, 4, 10, 0x8190, 0x2c0, 0x2d22, 0xb9ce, EN_CAB}, 1873 1880 {858000, 4, 5, 0x8190, 0x2c0, 0x2d22, 0xb9ce, EN_CAB}, 1874 1881 #endif ··· 1901 1916 state->captrim = state->fcaptrim = dib0090_read_reg(state, 0x18) & 0x7f; 1902 1917 } 1903 1918 } 1904 - state->adc_diff = 3000; // start with a unreachable high number : only set for KROSUS < P1G */ 1919 + state->adc_diff = 3000; 1905 1920 *tune_state = CT_TUNER_STEP_0; 1906 1921 1907 1922 } else if (*tune_state == CT_TUNER_STEP_0) { 1908 1923 if (state->identity.p1g && !force_soft_search) { 1909 - // 30MHz => Code 15 for the ration => 128us to lock. Giving approximately 1910 - u8 ratio = 31; // (state->config->io.clock_khz / 1024 + 1) & 0x1f; 1924 + u8 ratio = 31; 1911 1925 1912 1926 dib0090_write_reg(state, 0x40, (3 << 7) | (ratio << 2) | (1 << 1) | 1); 1913 1927 dib0090_read_reg(state, 0x40); 1914 - //dib0090_write_reg(state, 0x40, (3<<7) | ((((state->config->io.clock_khz >> 11)+1) & 0x1f)<<2) | (1<<1) | 1); 1915 1928 ret = 50; 1916 1929 } else { 1917 1930 state->step /= 2; ··· 1951 1968 dprintk("CAPTRIM=%d is closer to target (%d/%d)", (u32) state->captrim, (u32) adc, (u32) state->adc_diff); 1952 1969 state->adc_diff = adc; 1953 1970 state->fcaptrim = state->captrim; 1954 - //we could break here, to save time, if we reached a close-enough value 1955 - //e.g.: if (state->adc_diff < 20) 1956 - //break; 1957 1971 } 1958 1972 1959 1973 state->captrim += step_sign * state->step; ··· 1959 1979 else 1960 1980 *tune_state = CT_TUNER_STEP_2; 1961 1981 1962 - ret = 25; //LOLO changed from 15 1982 + ret = 25; 1963 1983 } 1964 1984 } else if (*tune_state == CT_TUNER_STEP_2) { /* this step is only used by krosus < P1G */ 1965 1985 /*write the final cptrim config */ ··· 1980 2000 int ret = 15; 1981 2001 s16 val; 1982 2002 1983 - //The assumption is that the AGC is not active 1984 2003 switch (*tune_state) { 1985 2004 case CT_TUNER_START: 1986 2005 state->wbdmux = dib0090_read_reg(state, 0x10); 1987 - dib0090_write_reg(state, 0x10, (state->wbdmux & ~(0xff << 3)) | (0x8 << 3)); //Move to the bias and clear the wbd enable 2006 + dib0090_write_reg(state, 0x10, (state->wbdmux & ~(0xff << 3)) | (0x8 << 3)); 1988 2007 1989 2008 state->bias = dib0090_read_reg(state, 0x13); 1990 - dib0090_write_reg(state, 0x13, state->bias | (0x3 << 8)); //Move to the Ref 2009 + dib0090_write_reg(state, 0x13, state->bias | (0x3 << 8)); 1991 2010 1992 2011 *tune_state = CT_TUNER_STEP_0; 1993 2012 /* wait for the WBDMUX to switch and for the ADC to sample */ 1994 2013 break; 1995 2014 1996 2015 case CT_TUNER_STEP_0: 1997 - state->adc_diff = dib0090_get_slow_adc_val(state); // Get the value for the Ref 1998 - dib0090_write_reg(state, 0x13, (state->bias & ~(0x3 << 8)) | (0x2 << 8)); //Move to the Ptat 2016 + state->adc_diff = dib0090_get_slow_adc_val(state); 2017 + dib0090_write_reg(state, 0x13, (state->bias & ~(0x3 << 8)) | (0x2 << 8)); 1999 2018 *tune_state = CT_TUNER_STEP_1; 2000 2019 break; 2001 2020 2002 2021 case CT_TUNER_STEP_1: 2003 - val = dib0090_get_slow_adc_val(state); // Get the value for the Ptat 2004 - state->temperature = ((s16) ((val - state->adc_diff) * 180) >> 8) + 55; // +55 is defined as = -30deg 2022 + val = dib0090_get_slow_adc_val(state); 2023 + state->temperature = ((s16) ((val - state->adc_diff) * 180) >> 8) + 55; 2005 2024 2006 2025 dprintk("temperature: %d C", state->temperature - 30); 2007 2026 ··· 2008 2029 break; 2009 2030 2010 2031 case CT_TUNER_STEP_2: 2011 - //Reload the start values. 2012 2032 dib0090_write_reg(state, 0x13, state->bias); 2013 2033 dib0090_write_reg(state, 0x10, state->wbdmux); /* write back original WBDMUX */ 2014 2034 2015 2035 *tune_state = CT_TUNER_START; 2016 2036 state->calibrate &= ~TEMP_CAL; 2017 2037 if (state->config->analog_output == 0) 2018 - dib0090_write_reg(state, 0x23, dib0090_read_reg(state, 0x23) | (1 << 14)); //Set the DataTX 2038 + dib0090_write_reg(state, 0x23, dib0090_read_reg(state, 0x23) | (1 << 14)); 2019 2039 2020 2040 break; 2021 2041 ··· 2048 2070 /* deactivate DataTX before some calibrations */ 2049 2071 if (state->calibrate & (DC_CAL | TEMP_CAL | WBD_CAL)) 2050 2072 dib0090_write_reg(state, 0x23, dib0090_read_reg(state, 0x23) & ~(1 << 14)); 2051 - else /* Activate DataTX in case a calibration has been done before */ if (state->config->analog_output == 0) 2052 - dib0090_write_reg(state, 0x23, dib0090_read_reg(state, 0x23) | (1 << 14)); 2073 + else 2074 + /* Activate DataTX in case a calibration has been done before */ 2075 + if (state->config->analog_output == 0) 2076 + dib0090_write_reg(state, 0x23, dib0090_read_reg(state, 0x23) | (1 << 14)); 2053 2077 } 2054 2078 2055 2079 if (state->calibrate & DC_CAL) 2056 2080 return dib0090_dc_offset_calibration(state, tune_state); 2057 2081 else if (state->calibrate & WBD_CAL) { 2058 - if (state->current_rf == 0) { 2082 + if (state->current_rf == 0) 2059 2083 state->current_rf = state->fe->dtv_property_cache.frequency / 1000; 2060 - } 2061 2084 return dib0090_wbd_calibration(state, tune_state); 2062 2085 } else if (state->calibrate & TEMP_CAL) 2063 2086 return dib0090_get_temperature(state, tune_state); ··· 2070 2091 if (state->config->use_pwm_agc && state->identity.in_soc) { 2071 2092 tmp = dib0090_read_reg(state, 0x39); 2072 2093 if ((tmp >> 10) & 0x1) 2073 - dib0090_write_reg(state, 0x39, tmp & ~(1 << 10)); // disengage mux : en_mux_bb1 = 0 2094 + dib0090_write_reg(state, 0x39, tmp & ~(1 << 10)); 2074 2095 } 2075 2096 2076 2097 state->current_band = (u8) BAND_OF_FREQUENCY(state->fe->dtv_property_cache.frequency / 1000); ··· 2151 2172 state->current_tune_table_index = tune; 2152 2173 state->current_pll_table_index = pll; 2153 2174 2154 - // select internal switch 2155 2175 dib0090_write_reg(state, 0x0b, 0xb800 | (tune->switch_trim)); 2156 2176 2157 - // Find the VCO frequency in MHz 2158 2177 VCOF_kHz = (pll->hfdiv * state->rf_request) * 2; 2159 2178 2160 - FREF = state->config->io.clock_khz; // REFDIV is 1FREF Has to be as Close as possible to 10MHz 2179 + FREF = state->config->io.clock_khz; 2161 2180 if (state->config->fref_clock_ratio != 0) 2162 2181 FREF /= state->config->fref_clock_ratio; 2163 2182 2164 - // Determine the FB divider 2165 - // The reference is 10MHz, Therefore the FBdivider is on the first digits 2166 2183 FBDiv = (VCOF_kHz / pll->topresc / FREF); 2167 - Rest = (VCOF_kHz / pll->topresc) - FBDiv * FREF; //in kHz 2184 + Rest = (VCOF_kHz / pll->topresc) - FBDiv * FREF; 2168 2185 2169 - // Avoid Spurs in the loopfilter bandwidth 2170 2186 if (Rest < LPF) 2171 2187 Rest = 0; 2172 2188 else if (Rest < 2 * LPF) ··· 2169 2195 else if (Rest > (FREF - LPF)) { 2170 2196 Rest = 0; 2171 2197 FBDiv += 1; 2172 - } //Go to the next FB 2173 - else if (Rest > (FREF - 2 * LPF)) 2198 + } else if (Rest > (FREF - 2 * LPF)) 2174 2199 Rest = FREF - 2 * LPF; 2175 2200 Rest = (Rest * 6528) / (FREF / 10); 2176 2201 state->rest = Rest; ··· 2181 2208 if (Rest == 0) { 2182 2209 if (pll->vco_band) 2183 2210 lo5 = 0x049f; 2184 - //else if (state->config->analog_output) 2185 - // lo5 = 0x041f; 2186 2211 else 2187 2212 lo5 = 0x041f; 2188 2213 } else { ··· 2199 2228 else 2200 2229 lo5 = 0x42f; 2201 2230 } else 2202 - lo5 = 0x42c; //BIAS Lo set to 4 by default in case of the Captrim search does not take care of the VCO Bias 2231 + lo5 = 0x42c; 2203 2232 } 2204 2233 2205 2234 lo5 |= (pll->hfdiv_code << 11) | (pll->vco_band << 7); /* bit 15 is the split to the slave, we do not do it here */ 2206 2235 2207 - //Internal loop filter set... 2208 2236 if (!state->config->io.pll_int_loop_filt) { 2209 2237 if (state->identity.in_soc) 2210 2238 lo6 = 0xff98; ··· 2212 2242 else 2213 2243 lo6 = 0xff28; 2214 2244 } else 2215 - lo6 = (state->config->io.pll_int_loop_filt << 3); // take the loop filter value given by the layout 2216 - //dprintk("lo6 = 0x%04x", (u32)lo6); 2245 + lo6 = (state->config->io.pll_int_loop_filt << 3); 2217 2246 2218 2247 Den = 1; 2219 2248 2220 2249 if (Rest > 0) { 2221 2250 if (state->config->analog_output) 2222 - lo6 |= (1 << 2) | 2; //SigmaDelta and Dither 2251 + lo6 |= (1 << 2) | 2; 2223 2252 else { 2224 2253 if (state->identity.in_soc) 2225 - lo6 |= (1 << 2) | 2; //SigmaDelta and Dither 2254 + lo6 |= (1 << 2) | 2; 2226 2255 else 2227 - lo6 |= (1 << 2) | 2; //SigmaDelta and Dither 2256 + lo6 |= (1 << 2) | 2; 2228 2257 } 2229 2258 Den = 255; 2230 2259 } 2231 - // Now we have to define the Num and Denum 2232 - // LO1 gets the FBdiv 2233 2260 dib0090_write_reg(state, 0x15, (u16) FBDiv); 2234 - // LO2 gets the REFDiv 2235 2261 if (state->config->fref_clock_ratio != 0) 2236 2262 dib0090_write_reg(state, 0x16, (Den << 8) | state->config->fref_clock_ratio); 2237 2263 else 2238 2264 dib0090_write_reg(state, 0x16, (Den << 8) | 1); 2239 - // LO3 for the Numerator 2240 2265 dib0090_write_reg(state, 0x17, (u16) Rest); 2241 - // VCO and HF DIV 2242 2266 dib0090_write_reg(state, 0x19, lo5); 2243 - // SIGMA Delta 2244 2267 dib0090_write_reg(state, 0x1c, lo6); 2245 2268 2246 - // Check if the 0090 is analogged configured 2247 - //Disable ADC and DigPLL =0xFF9F, 0xffbf for test purposes. 2248 - //Enable The Outputs of the BB on DATA_Tx 2249 2269 lo6 = tune->tuner_enable; 2250 2270 if (state->config->analog_output) 2251 2271 lo6 = (lo6 & 0xff9f) | 0x2; ··· 2254 2294 else if (*tune_state == CT_TUNER_STEP_0) { /* Warning : because of captrim cal, if you change this step, change it also in _cal.c file because it is the step following captrim cal state machine */ 2255 2295 const struct dib0090_wbd_slope *wbd = state->current_wbd_table; 2256 2296 2257 - // if(!state->identity.p1g) { 2258 2297 while (state->current_rf / 1000 > wbd->max_freq) 2259 2298 wbd++; 2260 - // } 2261 2299 2262 2300 dib0090_write_reg(state, 0x1e, 0x07ff); 2263 2301 dprintk("Final Captrim: %d", (u32) state->fcaptrim); ··· 2269 2311 2270 2312 #define WBD 0x781 /* 1 1 1 1 0000 0 0 1 */ 2271 2313 c = 4; 2272 - i = 3; //wbdmux_bias 2314 + i = 3; 2273 2315 2274 - if (wbd->wbd_gain != 0) //&& !state->identity.p1g) 2316 + if (wbd->wbd_gain != 0) 2275 2317 c = wbd->wbd_gain; 2276 2318 2277 - //Store wideband mux register. 2278 2319 state->wbdmux = (c << 13) | (i << 11) | (WBD | (state->config->use_pwm_agc << 1)); 2279 2320 dib0090_write_reg(state, 0x10, state->wbdmux); 2280 2321 ··· 2292 2335 } else if (*tune_state == CT_TUNER_STEP_1) { 2293 2336 /* initialize the lt gain register */ 2294 2337 state->rf_lt_def = 0x7c00; 2295 - // dib0090_write_reg(state, 0x0f, state->rf_lt_def); 2296 2338 2297 2339 dib0090_set_bandwidth(state); 2298 2340 state->tuner_is_tuned = 1; 2299 2341 2300 - // if(!state->identity.p1g) 2301 - state->calibrate |= WBD_CAL; // TODO: only do the WBD calibration for new tune 2302 - // 2303 - state->calibrate |= TEMP_CAL; // Force the Temperature to be remesured at next TUNE. 2342 + state->calibrate |= WBD_CAL; 2343 + state->calibrate |= TEMP_CAL; 2304 2344 *tune_state = CT_TUNER_STOP; 2305 2345 } else 2306 2346 ret = FE_CALLBACK_TIME_NEVER; ··· 2389 2435 static const struct dib0090_wbd_slope dib0090_wbd_table_default[] = { 2390 2436 {470, 0, 250, 0, 100, 4}, 2391 2437 {860, 51, 866, 21, 375, 4}, 2392 - {1700, 0, 800, 0, 850, 4}, //LBAND Predefinition , to calibrate 2393 - {2900, 0, 250, 0, 100, 6}, //SBAND Predefinition , NOT tested Yet 2438 + {1700, 0, 800, 0, 850, 4}, 2439 + {2900, 0, 250, 0, 100, 6}, 2394 2440 {0xFFFF, 0, 0, 0, 0, 0}, 2395 2441 }; 2396 2442 ··· 2443 2489 memcpy(&fe->ops.tuner_ops, &dib0090_fw_ops, sizeof(struct dvb_tuner_ops)); 2444 2490 2445 2491 return fe; 2446 - free_mem: 2492 + free_mem: 2447 2493 kfree(st); 2448 2494 fe->tuner_priv = NULL; 2449 2495 return NULL; 2450 2496 } 2451 - 2452 2497 EXPORT_SYMBOL(dib0090_fw_register); 2453 2498 2454 2499 MODULE_AUTHOR("Patrick Boettcher <pboettcher@dibcom.fr>");
+94 -111
drivers/media/dvb/frontends/dib7000p.c
··· 79 79 u8 wb[2] = { reg >> 8, reg & 0xff }; 80 80 u8 rb[2]; 81 81 struct i2c_msg msg[2] = { 82 - {.addr = state->i2c_addr >> 1,.flags = 0,.buf = wb,.len = 2}, 83 - {.addr = state->i2c_addr >> 1,.flags = I2C_M_RD,.buf = rb,.len = 2}, 82 + {.addr = state->i2c_addr >> 1, .flags = 0, .buf = wb, .len = 2}, 83 + {.addr = state->i2c_addr >> 1, .flags = I2C_M_RD, .buf = rb, .len = 2}, 84 84 }; 85 85 86 86 if (i2c_transfer(state->i2c_adap, msg, 2) != 2) ··· 96 96 (val >> 8) & 0xff, val & 0xff, 97 97 }; 98 98 struct i2c_msg msg = { 99 - .addr = state->i2c_addr >> 1,.flags = 0,.buf = b,.len = 4 99 + .addr = state->i2c_addr >> 1, .flags = 0, .buf = b, .len = 4 100 100 }; 101 101 return i2c_transfer(state->i2c_adap, &msg, 1) != 1 ? -EREMOTEIO : 0; 102 102 } ··· 129 129 dprintk("setting output mode for demod %p to %d", &state->demod, mode); 130 130 131 131 switch (mode) { 132 - case OUTMODE_MPEG2_PAR_GATED_CLK: // STBs with parallel gated clock 132 + case OUTMODE_MPEG2_PAR_GATED_CLK: 133 133 outreg = (1 << 10); /* 0x0400 */ 134 134 break; 135 - case OUTMODE_MPEG2_PAR_CONT_CLK: // STBs with parallel continues clock 135 + case OUTMODE_MPEG2_PAR_CONT_CLK: 136 136 outreg = (1 << 10) | (1 << 6); /* 0x0440 */ 137 137 break; 138 - case OUTMODE_MPEG2_SERIAL: // STBs with serial input 138 + case OUTMODE_MPEG2_SERIAL: 139 139 outreg = (1 << 10) | (2 << 6) | (0 << 1); /* 0x0480 */ 140 140 break; 141 141 case OUTMODE_DIVERSITY: ··· 144 144 else 145 145 outreg = (1 << 11); 146 146 break; 147 - case OUTMODE_MPEG2_FIFO: // e.g. USB feeding 147 + case OUTMODE_MPEG2_FIFO: 148 148 smo_mode |= (3 << 1); 149 149 fifo_threshold = 512; 150 150 outreg = (1 << 10) | (5 << 6); ··· 152 152 case OUTMODE_ANALOG_ADC: 153 153 outreg = (1 << 10) | (3 << 6); 154 154 break; 155 - case OUTMODE_HIGH_Z: // disable 155 + case OUTMODE_HIGH_Z: 156 156 outreg = 0; 157 157 break; 158 158 default: ··· 284 284 reg_909 &= 0x0003; 285 285 break; 286 286 287 - case DIBX000_ADC_OFF: // leave the VBG voltage on 287 + case DIBX000_ADC_OFF: 288 288 reg_908 |= (1 << 14) | (1 << 13) | (1 << 12); 289 289 reg_909 |= (1 << 5) | (1 << 4) | (1 << 3) | (1 << 2); 290 290 break; ··· 336 336 static int dib7000p_sad_calib(struct dib7000p_state *state) 337 337 { 338 338 /* internal */ 339 - // dib7000p_write_word(state, 72, (3 << 14) | (1 << 12) | (524 << 0)); // sampling clock of the SAD is writting in set_bandwidth 340 339 dib7000p_write_word(state, 73, (0 << 1) | (0 << 0)); 341 340 342 341 if (state->version == SOC7090) 343 - dib7000p_write_word(state, 74, 2048); // P_sad_calib_value = (0.9/1.8)*4096 342 + dib7000p_write_word(state, 74, 2048); 344 343 else 345 - dib7000p_write_word(state, 74, 776); // P_sad_calib_value = 0.625*3.3 / 4096 344 + dib7000p_write_word(state, 74, 776); 346 345 347 346 /* do the calibration */ 348 347 dib7000p_write_word(state, 73, (1 << 0)); ··· 370 371 if (state->version == SOC7090) { 371 372 dib7000p_write_word(state, 1856, (!bw->pll_reset << 13) | (bw->pll_range << 12) | (bw->pll_ratio << 6) | (bw->pll_prediv)); 372 373 373 - while (((dib7000p_read_word(state, 1856) >> 15) & 0x1) != 1) { 374 - } 374 + while (((dib7000p_read_word(state, 1856) >> 15) & 0x1) != 1) 375 + ; 375 376 376 377 dib7000p_write_word(state, 1857, dib7000p_read_word(state, 1857) | (!bw->pll_bypass << 15)); 377 378 } else { ··· 419 420 dprintk("Updating pll (prediv: old = %d new = %d ; loopdiv : old = %d new = %d)", prediv, bw->pll_prediv, loopdiv, bw->pll_ratio); 420 421 reg_1856 &= 0xf000; 421 422 reg_1857 = dib7000p_read_word(state, 1857); 422 - dib7000p_write_word(state, 1857, reg_1857 & ~(1 << 15)); // desable pll 423 + dib7000p_write_word(state, 1857, reg_1857 & ~(1 << 15)); 423 424 424 425 dib7000p_write_word(state, 1856, reg_1856 | ((bw->pll_ratio & 0x3f) << 6) | (bw->pll_prediv & 0x3f)); 425 426 ··· 430 431 dib7000p_write_word(state, 18, (u16) ((internal >> 16) & 0xffff)); 431 432 dib7000p_write_word(state, 19, (u16) (internal & 0xffff)); 432 433 433 - dib7000p_write_word(state, 1857, reg_1857 | (1 << 15)); // enable pll 434 + dib7000p_write_word(state, 1857, reg_1857 | (1 << 15)); 434 435 435 - while (((dib7000p_read_word(state, 1856) >> 15) & 0x1) != 1) { 436 + while (((dib7000p_read_word(state, 1856) >> 15) & 0x1) != 1) 436 437 dprintk("Waiting for PLL to lock"); 437 - } 438 438 439 439 return 0; 440 440 } ··· 501 503 0xd4c0, 502 504 503 505 1, 26, 504 - 0x6680, // P_timf_alpha=6, P_corm_alpha=6, P_corm_thres=128 default: 6,4,26 506 + 0x6680, 505 507 506 508 /* set ADC level to -16 */ 507 509 11, 79, ··· 518 520 (1 << 13) - 501 - 117, 519 521 520 522 1, 142, 521 - 0x0410, // P_palf_filter_on=1, P_palf_filter_freeze=0, P_palf_alpha_regul=16 523 + 0x0410, 522 524 523 525 /* disable power smoothing */ 524 526 8, 145, ··· 532 534 0, 533 535 534 536 1, 154, 535 - 1 << 13, // P_fft_freq_dir=1, P_fft_nb_to_cut=0 537 + 1 << 13, 536 538 537 539 1, 168, 538 - 0x0ccd, // P_pha3_thres, default 0x3000 539 - 540 - // 1, 169, 541 - // 0x0010, // P_cti_use_cpe=0, P_cti_use_prog=0, P_cti_win_len=16, default: 0x0010 540 + 0x0ccd, 542 541 543 542 1, 183, 544 - 0x200f, // P_cspu_regul=512, P_cspu_win_cut=15, default: 0x2005 543 + 0x200f, 545 544 546 545 1, 212, 547 - 0x169, // P_vit_ksi_dwn = 5 P_vit_ksi_up = 5 0x1e1, // P_vit_ksi_dwn = 4 P_vit_ksi_up = 7 546 + 0x169, 548 547 549 548 5, 187, 550 - 0x023d, // P_adp_regul_cnt=573, default: 410 551 - 0x00a4, // P_adp_noise_cnt= 552 - 0x00a4, // P_adp_regul_ext 553 - 0x7ff0, // P_adp_noise_ext 554 - 0x3ccc, // P_adp_fil 549 + 0x023d, 550 + 0x00a4, 551 + 0x00a4, 552 + 0x7ff0, 553 + 0x3ccc, 555 554 556 555 1, 198, 557 - 0x800, // P_equal_thres_wgn 556 + 0x800, 558 557 559 558 1, 222, 560 - 0x0010, // P_fec_ber_rs_len=2 559 + 0x0010, 561 560 562 561 1, 235, 563 - 0x0062, // P_smo_mode, P_smo_rs_discard, P_smo_fifo_flush, P_smo_pid_parse, P_smo_error_discard 562 + 0x0062, 564 563 565 564 2, 901, 566 - 0x0006, // P_clk_cfg1 567 - (3 << 10) | (1 << 6), // P_divclksel=3 P_divbitsel=1 565 + 0x0006, 566 + (3 << 10) | (1 << 6), 568 567 569 568 1, 905, 570 - 0x2c8e, // Tuner IO bank: max drive (14mA) + divout pads max drive 569 + 0x2c8e, 571 570 572 571 0, 573 572 }; ··· 604 609 dib7000p_write_word(state, 42, (1<<5) | 3); /* P_iqc_thsat_ipc = 1 ; P_iqc_win2 = 3 */ 605 610 dib7000p_write_word(state, 43, 0x2d4); /*-300 fag P_iqc_dect_min = -280 */ 606 611 dib7000p_write_word(state, 44, 300); /* 300 fag P_iqc_dect_min = +280 */ 607 - //dib7000p_write_word(state, 273, (1<<6) | 10); /* P_vit_inoise_sel = 1, P_vit_inoise_gain = 10*/ 608 - dib7000p_write_word(state, 273, (1<<6) | 30); //26/* P_vit_inoise_sel = 1, P_vit_inoise_gain = 26*/// FAG 612 + dib7000p_write_word(state, 273, (1<<6) | 30); 609 613 } 610 614 if (dib7000p_set_output_mode(state, OUTMODE_HIGH_Z) != 0) 611 615 dprintk("OUTPUT_MODE could not be reset."); ··· 618 624 619 625 dib7000p_set_bandwidth(state, 8000); 620 626 621 - if(state->version == SOC7090) { 627 + if (state->version == SOC7090) { 622 628 dib7000p_write_word(state, 36, 0x5755);/* P_iqc_impnc_on =1 & P_iqc_corr_inh = 1 for impulsive noise */ 623 - } else { // P_iqc_alpha_pha, P_iqc_alpha_amp_dcc_alpha, ... 629 + } else { 624 630 if (state->cfg.tuner_is_baseband) 625 631 dib7000p_write_word(state, 36, 0x0755); 626 632 else ··· 638 644 { 639 645 u16 tmp = 0; 640 646 tmp = dib7000p_read_word(state, 903); 641 - dib7000p_write_word(state, 903, (tmp | 0x1)); //pwr-up pll 647 + dib7000p_write_word(state, 903, (tmp | 0x1)); 642 648 tmp = dib7000p_read_word(state, 900); 643 - dib7000p_write_word(state, 900, (tmp & 0x7fff) | (1 << 6)); //use High freq clock 649 + dib7000p_write_word(state, 900, (tmp & 0x7fff) | (1 << 6)); 644 650 } 645 651 646 652 static void dib7000p_restart_agc(struct dib7000p_state *state) ··· 654 660 { 655 661 u16 dyn_gain; 656 662 657 - // when there is no LNA to program return immediatly 658 663 if (state->cfg.update_lna) { 659 - // read dyn_gain here (because it is demod-dependent and not fe) 660 664 dyn_gain = dib7000p_read_word(state, 394); 661 - if (state->cfg.update_lna(&state->demod, dyn_gain)) { // LNA has changed 665 + if (state->cfg.update_lna(&state->demod, dyn_gain)) { 662 666 dib7000p_restart_agc(state); 663 667 return 1; 664 668 } ··· 755 763 756 764 switch (state->agc_state) { 757 765 case 0: 758 - // set power-up level: interf+analog+AGC 759 766 dib7000p_set_power_mode(state, DIB7000P_POWER_ALL); 760 767 if (state->version == SOC7090) { 761 768 reg = dib7000p_read_word(state, 0x79b) & 0xff00; 762 769 dib7000p_write_word(state, 0x79a, upd_demod_gain_period & 0xFFFF); /* lsb */ 763 - dib7000p_write_word(state, 0x79b, reg | (1 << 14) | ((upd_demod_gain_period >> 16) & 0xFF)); // bit 14 = enDemodGain 770 + dib7000p_write_word(state, 0x79b, reg | (1 << 14) | ((upd_demod_gain_period >> 16) & 0xFF)); 764 771 765 772 /* enable adc i & q */ 766 773 reg = dib7000p_read_word(state, 0x780); ··· 778 787 break; 779 788 780 789 case 1: 781 - // AGC initialization 782 790 if (state->cfg.agc_control) 783 791 state->cfg.agc_control(&state->demod, 1); 784 792 ··· 821 831 break; 822 832 823 833 case 4: /* LNA startup */ 824 - // wait AGC accurate lock time 825 834 ret = 7; 826 835 827 836 if (dib7000p_update_lna(state)) 828 - // wait only AGC rough lock time 829 837 ret = 5; 830 - else // nothing was done, go to the next state 838 + else 831 839 (*agc_state)++; 832 840 break; 833 841 ··· 959 971 dib7000p_write_word(state, 208, value); 960 972 961 973 /* offset loop parameters */ 962 - dib7000p_write_word(state, 26, 0x6680); // timf(6xxx) 963 - dib7000p_write_word(state, 32, 0x0003); // pha_off_max(xxx3) 964 - dib7000p_write_word(state, 29, 0x1273); // isi 965 - dib7000p_write_word(state, 33, 0x0005); // sfreq(xxx5) 974 + dib7000p_write_word(state, 26, 0x6680); 975 + dib7000p_write_word(state, 32, 0x0003); 976 + dib7000p_write_word(state, 29, 0x1273); 977 + dib7000p_write_word(state, 33, 0x0005); 966 978 967 979 /* P_dvsy_sync_wait */ 968 980 switch (ch->u.ofdm.transmission_mode) { ··· 993 1005 break; 994 1006 } 995 1007 if (state->cfg.diversity_delay == 0) 996 - state->div_sync_wait = (value * 3) / 2 + 48; // add 50% SFN margin + compensate for one DVSY-fifo 1008 + state->div_sync_wait = (value * 3) / 2 + 48; 997 1009 else 998 - state->div_sync_wait = (value * 3) / 2 + state->cfg.diversity_delay; // add 50% SFN margin + compensate for one DVSY-fifo 1010 + state->div_sync_wait = (value * 3) / 2 + state->cfg.diversity_delay; 999 1011 1000 1012 /* deactive the possibility of diversity reception if extended interleaver */ 1001 1013 state->div_force_off = !1 && ch->u.ofdm.transmission_mode != TRANSMISSION_MODE_8K; ··· 1049 1061 else 1050 1062 factor = 6; 1051 1063 1052 - // always use the setting for 8MHz here lock_time for 7,6 MHz are longer 1053 1064 value = 30 * internal * factor; 1054 - dib7000p_write_word(state, 6, (u16) ((value >> 16) & 0xffff)); // lock0 wait time 1055 - dib7000p_write_word(state, 7, (u16) (value & 0xffff)); // lock0 wait time 1065 + dib7000p_write_word(state, 6, (u16) ((value >> 16) & 0xffff)); 1066 + dib7000p_write_word(state, 7, (u16) (value & 0xffff)); 1056 1067 value = 100 * internal * factor; 1057 - dib7000p_write_word(state, 8, (u16) ((value >> 16) & 0xffff)); // lock1 wait time 1058 - dib7000p_write_word(state, 9, (u16) (value & 0xffff)); // lock1 wait time 1068 + dib7000p_write_word(state, 8, (u16) ((value >> 16) & 0xffff)); 1069 + dib7000p_write_word(state, 9, (u16) (value & 0xffff)); 1059 1070 value = 500 * internal * factor; 1060 - dib7000p_write_word(state, 10, (u16) ((value >> 16) & 0xffff)); // lock2 wait time 1061 - dib7000p_write_word(state, 11, (u16) (value & 0xffff)); // lock2 wait time 1071 + dib7000p_write_word(state, 10, (u16) ((value >> 16) & 0xffff)); 1072 + dib7000p_write_word(state, 11, (u16) (value & 0xffff)); 1062 1073 1063 1074 value = dib7000p_read_word(state, 0); 1064 1075 dib7000p_write_word(state, 0, (u16) ((1 << 9) | value)); ··· 1072 1085 struct dib7000p_state *state = demod->demodulator_priv; 1073 1086 u16 irq_pending = dib7000p_read_word(state, 1284); 1074 1087 1075 - if (irq_pending & 0x1) // failed 1088 + if (irq_pending & 0x1) 1076 1089 return 1; 1077 1090 1078 - if (irq_pending & 0x2) // succeeded 1091 + if (irq_pending & 0x2) 1079 1092 return 2; 1080 1093 1081 - return 0; // still pending 1094 + return 0; 1082 1095 } 1083 1096 1084 1097 static void dib7000p_spur_protect(struct dib7000p_state *state, u32 rf_khz, u32 bw) ··· 1189 1202 if (state->sfn_workaround_active) { 1190 1203 dprintk("SFN workaround is active"); 1191 1204 tmp |= (1 << 9); 1192 - dib7000p_write_word(state, 166, 0x4000); // P_pha3_force_pha_shift 1205 + dib7000p_write_word(state, 166, 0x4000); 1193 1206 } else { 1194 - dib7000p_write_word(state, 166, 0x0000); // P_pha3_force_pha_shift 1207 + dib7000p_write_word(state, 166, 0x0000); 1195 1208 } 1196 1209 dib7000p_write_word(state, 29, tmp); 1197 1210 ··· 1412 1425 if (state->version == SOC7090) { 1413 1426 dib7090_set_diversity_in(fe, 0); 1414 1427 dib7090_set_output_mode(fe, OUTMODE_HIGH_Z); 1415 - } 1416 - else 1428 + } else 1417 1429 dib7000p_set_output_mode(state, OUTMODE_HIGH_Z); 1418 1430 1419 1431 /* maybe the parameter has been changed */ ··· 1441 1455 1442 1456 dprintk("autosearch returns: %d", found); 1443 1457 if (found == 0 || found == 1) 1444 - return 0; // no channel found 1458 + return 0; 1445 1459 1446 1460 dib7000p_get_frontend(fe, fep); 1447 1461 } ··· 1552 1566 { 1553 1567 u8 tx[2], rx[2]; 1554 1568 struct i2c_msg msg[2] = { 1555 - {.addr = 18 >> 1,.flags = 0,.buf = tx,.len = 2}, 1556 - {.addr = 18 >> 1,.flags = I2C_M_RD,.buf = rx,.len = 2}, 1569 + {.addr = 18 >> 1, .flags = 0, .buf = tx, .len = 2}, 1570 + {.addr = 18 >> 1, .flags = I2C_M_RD, .buf = rx, .len = 2}, 1557 1571 }; 1558 1572 1559 1573 tx[0] = 0x03; ··· 1711 1725 msg->buf[0] -= 3; 1712 1726 else if (msg->buf[0] == 28) 1713 1727 msg->buf[0] = 23; 1714 - else { 1728 + else 1715 1729 return -EINVAL; 1716 - } 1717 1730 return 0; 1718 1731 } 1719 1732 ··· 1894 1909 if (num == 1) { /* write */ 1895 1910 word = (u16) ((msg[0].buf[1] << 8) | msg[0].buf[2]); 1896 1911 word &= 0x3; 1897 - word = (dib7000p_read_word(state, 72) & ~(3 << 12)) | (word << 12); //Mask bit 12,13 1912 + word = (dib7000p_read_word(state, 72) & ~(3 << 12)) | (word << 12); 1898 1913 dib7000p_write_word(state, 72, word); /* Set the proper input */ 1899 1914 return num; 1900 1915 } ··· 1981 1996 u16 rx_copy_buf[22]; 1982 1997 1983 1998 dprintk("Configure DibStream Tx"); 1984 - for (index_buf = 0; index_buf<22; index_buf++) 1999 + for (index_buf = 0; index_buf < 22; index_buf++) 1985 2000 rx_copy_buf[index_buf] = dib7000p_read_word(state, 1536+index_buf); 1986 2001 1987 2002 dib7000p_write_word(state, 1615, 1); ··· 1994 2009 dib7000p_write_word(state, 1612, syncSize); 1995 2010 dib7000p_write_word(state, 1615, 0); 1996 2011 1997 - for (index_buf = 0; index_buf<22; index_buf++) 2012 + for (index_buf = 0; index_buf < 22; index_buf++) 1998 2013 dib7000p_write_word(state, 1536+index_buf, rx_copy_buf[index_buf]); 1999 2014 2000 2015 return 0; ··· 2006 2021 u32 syncFreq; 2007 2022 2008 2023 dprintk("Configure DibStream Rx"); 2009 - if ((P_Kin != 0) && (P_Kout != 0)) 2010 - { 2024 + if ((P_Kin != 0) && (P_Kout != 0)) { 2011 2025 syncFreq = dib7090_calcSyncFreq(P_Kin, P_Kout, insertExtSynchro, syncSize); 2012 2026 dib7000p_write_word(state, 1542, syncFreq); 2013 2027 } ··· 2028 2044 u16 reg; 2029 2045 2030 2046 dprintk("Enable Diversity on host bus"); 2031 - reg = (1 << 8) | (1 << 5); // P_enDivOutOnDibTx = 1 ; P_enDibTxOnHostBus = 1 2047 + reg = (1 << 8) | (1 << 5); 2032 2048 dib7000p_write_word(state, 1288, reg); 2033 2049 2034 2050 return dib7090_cfg_DibTx(state, 5, 5, 0, 0, 0, 0); ··· 2039 2055 u16 reg; 2040 2056 2041 2057 dprintk("Enable ADC on host bus"); 2042 - reg = (1 << 7) | (1 << 5); //P_enAdcOnDibTx = 1 ; P_enDibTxOnHostBus = 1 2058 + reg = (1 << 7) | (1 << 5); 2043 2059 dib7000p_write_word(state, 1288, reg); 2044 2060 2045 2061 return dib7090_cfg_DibTx(state, 20, 5, 10, 0, 0, 0); ··· 2050 2066 u16 reg; 2051 2067 2052 2068 dprintk("Enable Mpeg on host bus"); 2053 - reg = (1 << 9) | (1 << 5); //P_enMpegOnDibTx = 1 ; P_enDibTxOnHostBus = 1 2069 + reg = (1 << 9) | (1 << 5); 2054 2070 dib7000p_write_word(state, 1288, reg); 2055 2071 2056 2072 return dib7090_cfg_DibTx(state, 8, 5, 0, 0, 0, 0); ··· 2069 2085 dprintk("Enable Mpeg mux"); 2070 2086 dib7000p_write_word(state, 1287, reg); 2071 2087 2072 - reg &= ~(1 << 7); // P_restart_mpegMux = 0 2088 + reg &= ~(1 << 7); 2073 2089 dib7000p_write_word(state, 1287, reg); 2074 2090 2075 - reg = (1 << 4); //P_enMpegMuxOnHostBus = 1 2091 + reg = (1 << 4); 2076 2092 dib7000p_write_word(state, 1288, reg); 2077 2093 2078 2094 return 0; ··· 2083 2099 u16 reg; 2084 2100 2085 2101 dprintk("Disable Mpeg mux"); 2086 - dib7000p_write_word(state, 1288, 0); //P_enMpegMuxOnHostBus = 0 2102 + dib7000p_write_word(state, 1288, 0); 2087 2103 2088 2104 reg = dib7000p_read_word(state, 1287); 2089 - reg &= ~(1 << 7); // P_restart_mpegMux = 0 2105 + reg &= ~(1 << 7); 2090 2106 dib7000p_write_word(state, 1287, reg); 2091 2107 2092 2108 return 0; ··· 2096 2112 { 2097 2113 struct dib7000p_state *state = fe->demodulator_priv; 2098 2114 2099 - switch(mode) { 2100 - case INPUT_MODE_DIVERSITY: 2115 + switch (mode) { 2116 + case INPUT_MODE_DIVERSITY: 2101 2117 dprintk("Enable diversity INPUT"); 2102 - dib7090_cfg_DibRx(state, 5,5,0,0,0,0,0); 2118 + dib7090_cfg_DibRx(state, 5, 5, 0, 0, 0, 0, 0); 2103 2119 break; 2104 - case INPUT_MODE_MPEG: 2120 + case INPUT_MODE_MPEG: 2105 2121 dprintk("Enable Mpeg INPUT"); 2106 - dib7090_cfg_DibRx(state, 8,5,0,0,0,8,0); /*outputRate = 8 */ 2122 + dib7090_cfg_DibRx(state, 8, 5, 0, 0, 0, 8, 0); /*outputRate = 8 */ 2107 2123 break; 2108 - case INPUT_MODE_OFF: 2109 - default: 2124 + case INPUT_MODE_OFF: 2125 + default: 2110 2126 dprintk("Disable INPUT"); 2111 - dib7090_cfg_DibRx(state, 0,0,0,0,0,0,0); 2127 + dib7090_cfg_DibRx(state, 0, 0, 0, 0, 0, 0, 0); 2112 2128 break; 2113 2129 } 2114 2130 return 0; ··· 2159 2175 } else { /* Use Smooth block */ 2160 2176 dprintk("Sip 7090P setting output mode TS_SERIAL using Smooth bloc"); 2161 2177 dib7090_disableMpegMux(state); 2162 - dib7000p_write_word(state, 1288, (1 << 6)); //P_enDemOutInterfOnHostBus = 1 2178 + dib7000p_write_word(state, 1288, (1 << 6)); 2163 2179 outreg |= (2 << 6) | (0 << 1); 2164 2180 } 2165 2181 break; ··· 2174 2190 } else { /* Use Smooth block */ 2175 2191 dprintk("Sip 7090P setting output mode TS_PARALLEL_GATED using Smooth block"); 2176 2192 dib7090_disableMpegMux(state); 2177 - dib7000p_write_word(state, 1288, (1 << 6)); //P_enDemOutInterfOnHostBus = 1 2193 + dib7000p_write_word(state, 1288, (1 << 6)); 2178 2194 outreg |= (0 << 6); 2179 2195 } 2180 2196 break; ··· 2182 2198 case OUTMODE_MPEG2_PAR_CONT_CLK: /* Using Smooth block only */ 2183 2199 dprintk("Sip 7090P setting output mode TS_PARALLEL_CONT using Smooth block"); 2184 2200 dib7090_disableMpegMux(state); 2185 - dib7000p_write_word(state, 1288, (1 << 6)); //P_enDemOutInterfOnHostBus = 1 2201 + dib7000p_write_word(state, 1288, (1 << 6)); 2186 2202 outreg |= (1 << 6); 2187 2203 break; 2188 2204 2189 2205 case OUTMODE_MPEG2_FIFO: /* Using Smooth block because not supported by new Mpeg Mux bloc */ 2190 2206 dprintk("Sip 7090P setting output mode TS_FIFO using Smooth block"); 2191 2207 dib7090_disableMpegMux(state); 2192 - dib7000p_write_word(state, 1288, (1 << 6)); //P_enDemOutInterfOnHostBus = 1 2208 + dib7000p_write_word(state, 1288, (1 << 6)); 2193 2209 outreg |= (5 << 6); 2194 2210 smo_mode |= (3 << 1); 2195 2211 fifo_threshold = 512; ··· 2226 2242 2227 2243 en_cur_state = dib7000p_read_word(state, 1922); 2228 2244 2229 - if (en_cur_state > 0xff) { //LNAs and MIX are ON and therefore it is a valid configuration 2245 + if (en_cur_state > 0xff) 2230 2246 state->tuner_enable = en_cur_state; 2231 - } 2232 2247 2233 2248 if (onoff) 2234 - en_cur_state &= 0x00ff; //Mask to be applied 2249 + en_cur_state &= 0x00ff; 2235 2250 else { 2236 2251 if (state->tuner_enable != 0) 2237 2252 en_cur_state = state->tuner_enable; ··· 2258 2275 int dib7090_slave_reset(struct dvb_frontend *fe) 2259 2276 { 2260 2277 struct dib7000p_state *state = fe->demodulator_priv; 2261 - u16 reg; 2278 + u16 reg; 2262 2279 2263 - reg = dib7000p_read_word(state, 1794); 2264 - dib7000p_write_word(state, 1794, reg | (4 << 12)); 2280 + reg = dib7000p_read_word(state, 1794); 2281 + dib7000p_write_word(state, 1794, reg | (4 << 12)); 2265 2282 2266 - dib7000p_write_word(state, 1032, 0xffff); 2267 - return 0; 2283 + dib7000p_write_word(state, 1032, 0xffff); 2284 + return 0; 2268 2285 } 2269 2286 EXPORT_SYMBOL(dib7090_slave_reset); 2270 2287 ··· 2323 2340 2324 2341 return demod; 2325 2342 2326 - error: 2343 + error: 2327 2344 kfree(st); 2328 2345 return NULL; 2329 2346 }
+1 -1
drivers/media/dvb/frontends/dib7000p.h
··· 39 39 u16 diversity_delay; 40 40 41 41 u8 default_i2c_addr; 42 - u8 enMpegOutput : 1; 42 + u8 enMpegOutput:1; 43 43 }; 44 44 45 45 #define DEFAULT_DIB7000P_I2C_ADDRESS 18
+84 -79
drivers/media/dvb/frontends/dib8000.c
··· 261 261 fifo_threshold = 1792; 262 262 smo_mode = (dib8000_read_word(state, 299) & 0x0050) | (1 << 1); 263 263 264 - dprintk("-I- Setting output mode for demod %p to %d", &state->fe[0], mode); 264 + dprintk("-I- Setting output mode for demod %p to %d", 265 + &state->fe[0], mode); 265 266 266 267 switch (mode) { 267 268 case OUTMODE_MPEG2_PAR_GATED_CLK: // STBs with parallel gated clock ··· 296 295 break; 297 296 298 297 default: 299 - dprintk("Unhandled output_mode passed to be set for demod %p", &state->fe[0]); 298 + dprintk("Unhandled output_mode passed to be set for demod %p", 299 + &state->fe[0]); 300 300 return -EINVAL; 301 301 } 302 302 ··· 347 345 { 348 346 /* by default everything is going to be powered off */ 349 347 u16 reg_774 = 0x3fff, reg_775 = 0xffff, reg_776 = 0xffff, 350 - reg_900 = (dib8000_read_word(state, 900) & 0xfffc) | 0x3, reg_1280 = (dib8000_read_word(state, 1280) & 0x00ff) | 0xff00; 348 + reg_900 = (dib8000_read_word(state, 900) & 0xfffc) | 0x3, 349 + reg_1280 = (dib8000_read_word(state, 1280) & 0x00ff) | 0xff00; 351 350 352 351 /* now, depending on the requested mode, we power on */ 353 352 switch (mode) { ··· 485 482 486 483 // clk_cfg1 487 484 clk_cfg1 = (1 << 10) | (0 << 9) | (pll->IO_CLK_en_core << 8) | 488 - (pll->bypclk_div << 5) | (pll->enable_refdiv << 4) | (1 << 3) | (pll->pll_range << 1) | (pll->pll_reset << 0); 485 + (pll->bypclk_div << 5) | (pll->enable_refdiv << 4) | (1 << 3) | 486 + (pll->pll_range << 1) | (pll->pll_reset << 0); 489 487 490 488 dib8000_write_word(state, 902, clk_cfg1); 491 489 clk_cfg1 = (clk_cfg1 & 0xfff7) | (pll->pll_bypass << 3); ··· 496 492 497 493 /* smpl_cfg: P_refclksel=2, P_ensmplsel=1 nodivsmpl=1 */ 498 494 if (state->cfg.pll->ADClkSrc == 0) 499 - dib8000_write_word(state, 904, (0 << 15) | (0 << 12) | (0 << 10) | (pll->modulo << 8) | (pll->ADClkSrc << 7) | (0 << 1)); 495 + dib8000_write_word(state, 904, (0 << 15) | (0 << 12) | (0 << 10) | 496 + (pll->modulo << 8) | (pll->ADClkSrc << 7) | (0 << 1)); 500 497 else if (state->cfg.refclksel != 0) 501 - dib8000_write_word(state, 904, 502 - (0 << 15) | (1 << 12) | ((state->cfg.refclksel & 0x3) << 10) | (pll->modulo << 8) | (pll-> 503 - ADClkSrc << 7) | (0 << 1)); 498 + dib8000_write_word(state, 904, (0 << 15) | (1 << 12) | 499 + ((state->cfg.refclksel & 0x3) << 10) | (pll->modulo << 8) | 500 + (pll->ADClkSrc << 7) | (0 << 1)); 504 501 else 505 502 dib8000_write_word(state, 904, (0 << 15) | (1 << 12) | (3 << 10) | (pll->modulo << 8) | (pll->ADClkSrc << 7) | (0 << 1)); 506 503 ··· 632 627 1, 285, 633 628 0x0020, //p_fec_ 634 629 1, 299, 635 - 0x0062, // P_smo_mode, P_smo_rs_discard, P_smo_fifo_flush, P_smo_pid_parse, P_smo_error_discard 630 + 0x0062, /* P_smo_mode, P_smo_rs_discard, P_smo_fifo_flush, P_smo_pid_parse, P_smo_error_discard */ 636 631 637 632 1, 338, 638 633 (1 << 12) | // P_ctrl_corm_thres4pre_freq_inh=1 639 - (1 << 10) | // P_ctrl_pre_freq_mode_sat=1 640 - (0 << 9) | // P_ctrl_pre_freq_inh=0 641 - (3 << 5) | // P_ctrl_pre_freq_step=3 642 - (1 << 0), // P_pre_freq_win_len=1 634 + (1 << 10) | 635 + (0 << 9) | /* P_ctrl_pre_freq_inh=0 */ 636 + (3 << 5) | /* P_ctrl_pre_freq_step=3 */ 637 + (1 << 0), /* P_pre_freq_win_len=1 */ 643 638 644 639 1, 903, 645 640 (0 << 4) | 2, // P_divclksel=0 P_divbitsel=2 (was clk=3,bit=1 for MPW) ··· 787 782 // read dyn_gain here (because it is demod-dependent and not tuner) 788 783 dyn_gain = dib8000_read_word(state, 390); 789 784 790 - if (state->cfg.update_lna(state->fe[0], dyn_gain)) { // LNA has changed 785 + if (state->cfg.update_lna(state->fe[0], dyn_gain)) { 791 786 dib8000_restart_agc(state); 792 787 return 1; 793 788 } ··· 874 869 split_offset = state->current_agc->split.max; 875 870 else 876 871 split_offset = state->current_agc->split.max * 877 - (agc - state->current_agc->split.min_thres) / (state->current_agc->split.max_thres - state->current_agc->split.min_thres); 872 + (agc - state->current_agc->split.min_thres) / 873 + (state->current_agc->split.max_thres - state->current_agc->split.min_thres); 878 874 879 875 dprintk("AGC split_offset: %d", split_offset); 880 876 ··· 958 952 s32 val; 959 953 960 954 val = dib8000_read32(state, 384); 961 - /* mode = 1 : ln_agcpower calc using mant-exp conversion and mantis look up table */ 962 955 if (mode) { 963 956 tmp_val = val; 964 957 while (tmp_val >>= 1) 965 958 exp++; 966 959 mant = (val * 1000 / (1<<exp)); 967 960 ix = (u8)((mant-1000)/100); /* index of the LUT */ 968 - val = (lut_1000ln_mant[ix] + 693*(exp-20) - 6908); /* 1000 * ln(adcpower_real) ; 693 = 1000ln(2) ; 6908 = 1000*ln(1000) ; 20 comes from adc_real = adc_pow_int / 2**20 */ 961 + val = (lut_1000ln_mant[ix] + 693*(exp-20) - 6908); 969 962 val = (val*256)/1000; 970 963 } 971 964 return val; ··· 1011 1006 dib8000_write_word(state, 285, dib8000_read_word(state, 285) & 0x60); 1012 1007 1013 1008 i = dib8000_read_word(state, 26) & 1; // P_dds_invspec 1014 - dib8000_write_word(state, 26, state->fe[0]->dtv_property_cache.inversion ^ i); 1009 + dib8000_write_word(state, 26, state->fe[0]->dtv_property_cache.inversion^i); 1015 1010 1016 1011 if (state->fe[0]->dtv_property_cache.isdbt_sb_mode) { 1017 1012 //compute new dds_freq for the seg and adjust prbs 1018 1013 int seg_offset = 1019 - state->fe[0]->dtv_property_cache.isdbt_sb_segment_idx - (state->fe[0]->dtv_property_cache.isdbt_sb_segment_count / 2) - 1014 + state->fe[0]->dtv_property_cache.isdbt_sb_segment_idx - 1015 + (state->fe[0]->dtv_property_cache.isdbt_sb_segment_count / 2) - 1020 1016 (state->fe[0]->dtv_property_cache.isdbt_sb_segment_count % 2); 1021 1017 int clk = state->cfg.pll->internal; 1022 1018 u32 segtodds = ((u32) (430 << 23) / clk) << 3; // segtodds = SegBW / Fclk * pow(2,26) 1023 1019 int dds_offset = seg_offset * segtodds; 1024 1020 int new_dds, sub_channel; 1025 - if ((state->fe[0]->dtv_property_cache.isdbt_sb_segment_count % 2) == 0) // if even 1021 + if ((state->fe[0]->dtv_property_cache.isdbt_sb_segment_count % 2) == 0) 1026 1022 dds_offset -= (int)(segtodds / 2); 1027 1023 1028 1024 if (state->cfg.pll->ifreq == 0) { ··· 1037 1031 // - the segment of center frequency with an odd total number of segments 1038 1032 // - the segment to the left of center frequency with an even total number of segments 1039 1033 // - the segment to the right of center frequency with an even total number of segments 1040 - if ((state->fe[0]->dtv_property_cache.delivery_system == SYS_ISDBT) && (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1) 1034 + if ((state->fe[0]->dtv_property_cache.delivery_system == SYS_ISDBT) 1035 + && (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1) 1041 1036 && (((state->fe[0]->dtv_property_cache.isdbt_sb_segment_count % 2) 1042 1037 && (state->fe[0]->dtv_property_cache.isdbt_sb_segment_idx == 1043 1038 ((state->fe[0]->dtv_property_cache.isdbt_sb_segment_count / 2) + 1))) ··· 1058 1051 } 1059 1052 dib8000_write_word(state, 27, (u16) ((new_dds >> 16) & 0x01ff)); 1060 1053 dib8000_write_word(state, 28, (u16) (new_dds & 0xffff)); 1061 - if (state->fe[0]->dtv_property_cache.isdbt_sb_segment_count % 2) // if odd 1054 + if (state->fe[0]->dtv_property_cache.isdbt_sb_segment_count % 2) 1062 1055 sub_channel = ((state->fe[0]->dtv_property_cache.isdbt_sb_subchannel + (3 * seg_offset) + 1) % 41) / 3; 1063 - else // if even 1056 + else 1064 1057 sub_channel = ((state->fe[0]->dtv_property_cache.isdbt_sb_subchannel + (3 * seg_offset)) % 41) / 3; 1065 1058 sub_channel -= 6; 1066 1059 ··· 1219 1212 } 1220 1213 break; 1221 1214 } 1222 - } else { // if not state->fe[0]->dtv_property_cache.isdbt_sb_mode 1215 + } else { 1223 1216 dib8000_write_word(state, 27, (u16) ((state->cfg.pll->ifreq >> 16) & 0x01ff)); 1224 1217 dib8000_write_word(state, 28, (u16) (state->cfg.pll->ifreq & 0xffff)); 1225 1218 dib8000_write_word(state, 26, (u16) ((state->cfg.pll->ifreq >> 25) & 0x0003)); ··· 1339 1332 state->differential_constellation = (seg_diff_mask != 0); 1340 1333 dib8000_set_diversity_in(state->fe[0], state->diversity_onoff); 1341 1334 1342 - if (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1) { // ISDB-Tsb 1343 - if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 1) // 3-segments 1335 + if (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1) { 1336 + if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 1) 1344 1337 seg_mask13 = 0x00E0; 1345 1338 else // 1-segment 1346 1339 seg_mask13 = 0x0040; ··· 1362 1355 dib8000_write_word(state, 353, seg_mask13); // ADDR 353 1363 1356 1364 1357 /* // P_small_narrow_band=0, P_small_last_seg=13, P_small_offset_num_car=5 */ 1365 - // dib8000_write_word(state, 351, (state->fe[0]->dtv_property_cache.isdbt_sb_mode << 8) | (13 << 4) | 5 ); 1366 1358 1367 1359 // ---- SMALL ---- 1368 1360 if (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1) { 1369 1361 switch (state->fe[0]->dtv_property_cache.transmission_mode) { 1370 1362 case TRANSMISSION_MODE_2K: 1371 - if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) { // 1-seg 1372 - if (state->fe[0]->dtv_property_cache.layer[0].modulation == DQPSK) // DQPSK 1363 + if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) { 1364 + if (state->fe[0]->dtv_property_cache.layer[0].modulation == DQPSK) 1373 1365 ncoeff = coeff_2k_sb_1seg_dqpsk; 1374 1366 else // QPSK or QAM 1375 1367 ncoeff = coeff_2k_sb_1seg; 1376 1368 } else { // 3-segments 1377 - if (state->fe[0]->dtv_property_cache.layer[0].modulation == DQPSK) { // DQPSK on central segment 1378 - if (state->fe[0]->dtv_property_cache.layer[1].modulation == DQPSK) // DQPSK on external segments 1369 + if (state->fe[0]->dtv_property_cache.layer[0].modulation == DQPSK) { 1370 + if (state->fe[0]->dtv_property_cache.layer[1].modulation == DQPSK) 1379 1371 ncoeff = coeff_2k_sb_3seg_0dqpsk_1dqpsk; 1380 1372 else // QPSK or QAM on external segments 1381 1373 ncoeff = coeff_2k_sb_3seg_0dqpsk; 1382 1374 } else { // QPSK or QAM on central segment 1383 - if (state->fe[0]->dtv_property_cache.layer[1].modulation == DQPSK) // DQPSK on external segments 1375 + if (state->fe[0]->dtv_property_cache.layer[1].modulation == DQPSK) 1384 1376 ncoeff = coeff_2k_sb_3seg_1dqpsk; 1385 1377 else // QPSK or QAM on external segments 1386 1378 ncoeff = coeff_2k_sb_3seg; ··· 1388 1382 break; 1389 1383 1390 1384 case TRANSMISSION_MODE_4K: 1391 - if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) { // 1-seg 1392 - if (state->fe[0]->dtv_property_cache.layer[0].modulation == DQPSK) // DQPSK 1385 + if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) { 1386 + if (state->fe[0]->dtv_property_cache.layer[0].modulation == DQPSK) 1393 1387 ncoeff = coeff_4k_sb_1seg_dqpsk; 1394 1388 else // QPSK or QAM 1395 1389 ncoeff = coeff_4k_sb_1seg; 1396 1390 } else { // 3-segments 1397 - if (state->fe[0]->dtv_property_cache.layer[0].modulation == DQPSK) { // DQPSK on central segment 1398 - if (state->fe[0]->dtv_property_cache.layer[1].modulation == DQPSK) { // DQPSK on external segments 1391 + if (state->fe[0]->dtv_property_cache.layer[0].modulation == DQPSK) { 1392 + if (state->fe[0]->dtv_property_cache.layer[1].modulation == DQPSK) { 1399 1393 ncoeff = coeff_4k_sb_3seg_0dqpsk_1dqpsk; 1400 1394 } else { // QPSK or QAM on external segments 1401 1395 ncoeff = coeff_4k_sb_3seg_0dqpsk; 1402 1396 } 1403 1397 } else { // QPSK or QAM on central segment 1404 - if (state->fe[0]->dtv_property_cache.layer[1].modulation == DQPSK) { // DQPSK on external segments 1398 + if (state->fe[0]->dtv_property_cache.layer[1].modulation == DQPSK) { 1405 1399 ncoeff = coeff_4k_sb_3seg_1dqpsk; 1406 1400 } else // QPSK or QAM on external segments 1407 1401 ncoeff = coeff_4k_sb_3seg; ··· 1412 1406 case TRANSMISSION_MODE_AUTO: 1413 1407 case TRANSMISSION_MODE_8K: 1414 1408 default: 1415 - if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) { // 1-seg 1416 - if (state->fe[0]->dtv_property_cache.layer[0].modulation == DQPSK) // DQPSK 1409 + if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) { 1410 + if (state->fe[0]->dtv_property_cache.layer[0].modulation == DQPSK) 1417 1411 ncoeff = coeff_8k_sb_1seg_dqpsk; 1418 1412 else // QPSK or QAM 1419 1413 ncoeff = coeff_8k_sb_1seg; 1420 1414 } else { // 3-segments 1421 - if (state->fe[0]->dtv_property_cache.layer[0].modulation == DQPSK) { // DQPSK on central segment 1422 - if (state->fe[0]->dtv_property_cache.layer[1].modulation == DQPSK) { // DQPSK on external segments 1415 + if (state->fe[0]->dtv_property_cache.layer[0].modulation == DQPSK) { 1416 + if (state->fe[0]->dtv_property_cache.layer[1].modulation == DQPSK) { 1423 1417 ncoeff = coeff_8k_sb_3seg_0dqpsk_1dqpsk; 1424 1418 } else { // QPSK or QAM on external segments 1425 1419 ncoeff = coeff_8k_sb_3seg_0dqpsk; 1426 1420 } 1427 1421 } else { // QPSK or QAM on central segment 1428 - if (state->fe[0]->dtv_property_cache.layer[1].modulation == DQPSK) { // DQPSK on external segments 1422 + if (state->fe[0]->dtv_property_cache.layer[1].modulation == DQPSK) { 1429 1423 ncoeff = coeff_8k_sb_3seg_1dqpsk; 1430 1424 } else // QPSK or QAM on external segments 1431 1425 ncoeff = coeff_8k_sb_3seg; ··· 1443 1437 1444 1438 // ---- COFF ---- 1445 1439 // Carloff, the most robust 1446 - if (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1) { // Sound Broadcasting mode - use both TMCC and AC pilots 1440 + if (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1) { 1447 1441 1448 1442 // P_coff_cpil_alpha=4, P_coff_inh=0, P_coff_cpil_winlen=64 1449 1443 // P_coff_narrow_band=1, P_coff_square_val=1, P_coff_one_seg=~partial_rcpt, P_coff_use_tmcc=1, P_coff_use_ac=1 ··· 1454 1448 /* // P_small_coef_ext_enable = 1 */ 1455 1449 /* dib8000_write_word(state, 351, dib8000_read_word(state, 351) | 0x200); */ 1456 1450 1457 - if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) { // Sound Broadcasting mode 1 seg 1451 + if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) { 1458 1452 1459 1453 // P_coff_winlen=63, P_coff_thres_lock=15, P_coff_one_seg_width= (P_mode == 3) , P_coff_one_seg_sym= (P_mode-1) 1460 1454 if (mode == 3) ··· 1518 1512 dib8000_write_word(state, 341, (4 << 3) | (1 << 2) | (1 << 1) | (1 << 0)); 1519 1513 } 1520 1514 // ---- FFT ---- 1521 - if (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1 && state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) // 1-seg 1515 + if (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1 && state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) 1522 1516 dib8000_write_word(state, 178, 64); // P_fft_powrange=64 1523 1517 else 1524 1518 dib8000_write_word(state, 178, 32); // P_fft_powrange=32 ··· 1548 1542 1549 1543 /* offset loop parameters */ 1550 1544 if (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1) { 1551 - if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) // Sound Broadcasting mode 1 seg 1545 + if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) 1552 1546 /* P_timf_alpha = (11-P_mode), P_corm_alpha=6, P_corm_thres=0x80 */ 1553 1547 dib8000_write_word(state, 32, ((11 - mode) << 12) | (6 << 8) | 0x40); 1554 1548 ··· 1561 1555 dib8000_write_word(state, 32, ((9 - mode) << 12) | (6 << 8) | 0x80); 1562 1556 1563 1557 if (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1) { 1564 - if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) // Sound Broadcasting mode 1 seg 1558 + if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) 1565 1559 /* P_ctrl_pha_off_max=3 P_ctrl_sfreq_inh =0 P_ctrl_sfreq_step = (11-P_mode) */ 1566 1560 dib8000_write_word(state, 37, (3 << 5) | (0 << 4) | (10 - mode)); 1567 1561 ··· 1634 1628 1635 1629 // ---- ANA_FE ---- 1636 1630 if (state->fe[0]->dtv_property_cache.isdbt_sb_mode) { 1637 - if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 1) // 3-segments 1631 + if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 1) 1638 1632 ana_fe = ana_fe_coeff_3seg; 1639 1633 else // 1-segment 1640 1634 ana_fe = ana_fe_coeff_1seg; ··· 1657 1651 // "P_cspu_left_edge" not used => do not care 1658 1652 // "P_cspu_right_edge" not used => do not care 1659 1653 1660 - if (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1) { // ISDB-Tsb 1654 + if (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1) { 1661 1655 dib8000_write_word(state, 228, 1); // P_2d_mode_byp=1 1662 1656 dib8000_write_word(state, 205, dib8000_read_word(state, 205) & 0xfff0); // P_cspu_win_cut = 0 1663 - if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0 // 1-segment 1657 + if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0 1664 1658 && state->fe[0]->dtv_property_cache.transmission_mode == TRANSMISSION_MODE_2K) { 1665 1659 //dib8000_write_word(state, 219, dib8000_read_word(state, 219) & 0xfffe); // P_adp_pass = 0 1666 1660 dib8000_write_word(state, 265, 15); // P_equal_noise_sel = 15 ··· 1809 1803 // never achieved a lock before - wait for timfreq to update 1810 1804 if (state->timf == 0) { 1811 1805 if (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1) { 1812 - if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) // Sound Broadcasting mode 1 seg 1806 + if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) 1813 1807 msleep(300); 1814 1808 else // Sound Broadcasting mode 3 seg 1815 1809 msleep(500); ··· 1817 1811 msleep(200); 1818 1812 } 1819 1813 if (state->fe[0]->dtv_property_cache.isdbt_sb_mode == 1) { 1820 - if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) { // Sound Broadcasting mode 1 seg 1814 + if (state->fe[0]->dtv_property_cache.isdbt_partial_reception == 0) { 1821 1815 1822 1816 /* P_timf_alpha = (13-P_mode) , P_corm_alpha=6, P_corm_thres=0x40 alpha to check on board */ 1823 1817 dib8000_write_word(state, 32, ((13 - mode) << 12) | (6 << 8) | 0x40); ··· 1870 1864 if (dib8000_set_adc_state(state, DIBX000_SLOW_ADC_ON) != 0) 1871 1865 dprintk("could not start Slow ADC"); 1872 1866 1873 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1867 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1874 1868 ret = state->fe[index_frontend]->ops.init(state->fe[index_frontend]); 1875 - if (ret<0) 1869 + if (ret < 0) 1876 1870 return ret; 1877 1871 } 1878 1872 ··· 1885 1879 u8 index_frontend; 1886 1880 int ret; 1887 1881 1888 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1882 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1889 1883 ret = state->fe[index_frontend]->ops.sleep(state->fe[index_frontend]); 1890 1884 if (ret < 0) 1891 1885 return ret; ··· 1920 1914 1921 1915 fe->dtv_property_cache.bandwidth_hz = 6000000; 1922 1916 1923 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1917 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1924 1918 state->fe[index_frontend]->ops.read_status(state->fe[index_frontend], &stat); 1925 1919 if (stat&FE_HAS_SYNC) { 1926 1920 dprintk("TMCC lock on the slave%i", index_frontend); 1927 1921 /* synchronize the cache with the other frontends */ 1928 1922 state->fe[index_frontend]->ops.get_frontend(state->fe[index_frontend], fep); 1929 - for (sub_index_frontend=0; (sub_index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[sub_index_frontend] != NULL); sub_index_frontend++) { 1923 + for (sub_index_frontend = 0; (sub_index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[sub_index_frontend] != NULL); sub_index_frontend++) { 1930 1924 if (sub_index_frontend != index_frontend) { 1931 1925 state->fe[sub_index_frontend]->dtv_property_cache.isdbt_sb_mode = state->fe[index_frontend]->dtv_property_cache.isdbt_sb_mode; 1932 1926 state->fe[sub_index_frontend]->dtv_property_cache.inversion = state->fe[index_frontend]->dtv_property_cache.inversion; ··· 2038 2032 } 2039 2033 2040 2034 /* synchronize the cache with the other frontends */ 2041 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2035 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2042 2036 state->fe[index_frontend]->dtv_property_cache.isdbt_sb_mode = fe->dtv_property_cache.isdbt_sb_mode; 2043 2037 state->fe[index_frontend]->dtv_property_cache.inversion = fe->dtv_property_cache.inversion; 2044 2038 state->fe[index_frontend]->dtv_property_cache.transmission_mode = fe->dtv_property_cache.transmission_mode; ··· 2072 2066 state->fe[0]->dtv_property_cache.bandwidth_hz = 6000000; 2073 2067 } 2074 2068 2075 - for (index_frontend=0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2069 + for (index_frontend = 0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2076 2070 /* synchronization of the cache */ 2077 2071 state->fe[index_frontend]->dtv_property_cache.delivery_system = SYS_ISDBT; 2078 2072 memcpy(&state->fe[index_frontend]->dtv_property_cache, &fe->dtv_property_cache, sizeof(struct dtv_frontend_properties)); ··· 2087 2081 /* start up the AGC */ 2088 2082 do { 2089 2083 time = dib8000_agc_startup(state->fe[0]); 2090 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2084 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2091 2085 time_slave = dib8000_agc_startup(state->fe[index_frontend]); 2092 2086 if (time == FE_CALLBACK_TIME_NEVER) 2093 2087 time = time_slave; ··· 2099 2093 else 2100 2094 break; 2101 2095 exit_condition = 1; 2102 - for (index_frontend=0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2096 + for (index_frontend = 0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2103 2097 if (dib8000_get_tune_state(state->fe[index_frontend]) != CT_AGC_STOP) { 2104 2098 exit_condition = 0; 2105 2099 break; ··· 2107 2101 } 2108 2102 } while (exit_condition == 0); 2109 2103 2110 - for (index_frontend=0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) 2104 + for (index_frontend = 0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) 2111 2105 dib8000_set_tune_state(state->fe[index_frontend], CT_DEMOD_START); 2112 2106 2113 2107 if ((state->fe[0]->dtv_property_cache.delivery_system != SYS_ISDBT) || ··· 2138 2132 u8 found = 0; 2139 2133 u8 tune_failed = 0; 2140 2134 2141 - for (index_frontend=0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2135 + for (index_frontend = 0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2142 2136 dib8000_set_bandwidth(state->fe[index_frontend], fe->dtv_property_cache.bandwidth_hz / 1000); 2143 2137 dib8000_autosearch_start(state->fe[index_frontend]); 2144 2138 } 2145 2139 2146 2140 do { 2147 - msleep(10); 2141 + msleep(20); 2148 2142 nbr_pending = 0; 2149 2143 exit_condition = 0; /* 0: tune pending; 1: tune failed; 2:tune success */ 2150 - for (index_frontend=0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2144 + for (index_frontend = 0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2151 2145 if (((tune_failed >> index_frontend) & 0x1) == 0) { 2152 2146 found = dib8000_autosearch_irq(state->fe[index_frontend]); 2153 2147 switch (found) { 2154 - case 0: /* tune pending */ 2148 + case 0: /* tune pending */ 2155 2149 nbr_pending++; 2156 2150 break; 2157 - case 2: 2151 + case 2: 2158 2152 dprintk("autosearch succeed on the frontend%i", index_frontend); 2159 2153 exit_condition = 2; 2160 2154 index_frontend_success = index_frontend; 2161 2155 break; 2162 - default: 2156 + default: 2163 2157 dprintk("unhandled autosearch result"); 2164 - case 1: 2165 - tune_failed |= (1 << index_frontend); 2158 + case 1: 2166 2159 dprintk("autosearch failed for the frontend%i", index_frontend); 2167 2160 break; 2168 2161 } ··· 2183 2178 dib8000_get_frontend(fe, fep); 2184 2179 } 2185 2180 2186 - for (index_frontend=0, ret=0; (ret >= 0) && (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2181 + for (index_frontend = 0, ret = 0; (ret >= 0) && (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) 2187 2182 ret = dib8000_tune(state->fe[index_frontend]); 2188 - } 2189 2183 2190 2184 /* set output mode and diversity input */ 2191 2185 dib8000_set_output_mode(state->fe[0], state->cfg.output_mode); 2192 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2186 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2193 2187 dib8000_set_output_mode(state->fe[index_frontend], OUTMODE_DIVERSITY); 2194 2188 dib8000_set_diversity_in(state->fe[index_frontend-1], 1); 2195 2189 } ··· 2199 2195 return ret; 2200 2196 } 2201 2197 2202 - static u16 dib8000_read_lock(struct dvb_frontend *fe) { 2198 + static u16 dib8000_read_lock(struct dvb_frontend *fe) 2199 + { 2203 2200 struct dib8000_state *state = fe->demodulator_priv; 2204 2201 2205 2202 return dib8000_read_word(state, 568); ··· 2212 2207 u16 lock_slave = 0, lock = dib8000_read_word(state, 568); 2213 2208 u8 index_frontend; 2214 2209 2215 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) 2210 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) 2216 2211 lock_slave |= dib8000_read_lock(state->fe[index_frontend]); 2217 2212 2218 2213 *stat = 0; ··· 2267 2262 u16 val; 2268 2263 2269 2264 *strength = 0; 2270 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2265 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2271 2266 state->fe[index_frontend]->ops.read_signal_strength(state->fe[index_frontend], &val); 2272 2267 if (val > 65535 - *strength) 2273 2268 *strength = 65535; ··· 2317 2312 u32 snr_master; 2318 2313 2319 2314 snr_master = dib8000_get_snr(fe); 2320 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) 2315 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) 2321 2316 snr_master += dib8000_get_snr(state->fe[index_frontend]); 2322 2317 2323 2318 if (snr_master != 0) { ··· 2366 2361 } 2367 2362 EXPORT_SYMBOL(dib8000_remove_slave_frontend); 2368 2363 2369 - struct dvb_frontend * dib8000_get_slave_frontend(struct dvb_frontend *fe, int slave_index) 2364 + struct dvb_frontend *dib8000_get_slave_frontend(struct dvb_frontend *fe, int slave_index) 2370 2365 { 2371 2366 struct dib8000_state *state = fe->demodulator_priv; 2372 2367 ··· 2437 2432 struct dib8000_state *st = fe->demodulator_priv; 2438 2433 u8 index_frontend; 2439 2434 2440 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (st->fe[index_frontend] != NULL); index_frontend++) 2435 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (st->fe[index_frontend] != NULL); index_frontend++) 2441 2436 dvb_frontend_detach(st->fe[index_frontend]); 2442 2437 2443 2438 dibx000_exit_i2c_master(&st->i2c_master);
+4 -3
drivers/media/dvb/frontends/dib8000.h
··· 52 52 extern s32 dib8000_get_adc_power(struct dvb_frontend *fe, u8 mode); 53 53 extern int dib8000_set_slave_frontend(struct dvb_frontend *fe, struct dvb_frontend *fe_slave); 54 54 extern int dib8000_remove_slave_frontend(struct dvb_frontend *fe); 55 - extern struct dvb_frontend * dib8000_get_slave_frontend(struct dvb_frontend *fe, int slave_index); 55 + extern struct dvb_frontend *dib8000_get_slave_frontend(struct dvb_frontend *fe, int slave_index); 56 56 #else 57 57 static inline struct dvb_frontend *dib8000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib8000_config *cfg) 58 58 { ··· 126 126 return -ENODEV; 127 127 } 128 128 129 - static inline struct dvb_frontend * dib8000_get_slave_frontend(struct dvb_frontend *fe, int slave_index) { 129 + static inline struct dvb_frontend *dib8000_get_slave_frontend(struct dvb_frontend *fe, int slave_index) 130 + { 130 131 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 131 - return NULL; 132 + return NULL; 132 133 } 133 134 #endif 134 135
+98 -106
drivers/media/dvb/frontends/dib9000.c
··· 31 31 32 32 /* lock */ 33 33 #define DIB_LOCK struct mutex 34 - #define DibAcquireLock(lock) do { if (mutex_lock_interruptible(lock)<0) dprintk("could not get the lock"); } while (0) 34 + #define DibAcquireLock(lock) do { if (mutex_lock_interruptible(lock) < 0) dprintk("could not get the lock"); } while (0) 35 35 #define DibReleaseLock(lock) mutex_unlock(lock) 36 36 #define DibInitLock(lock) mutex_init(lock) 37 37 #define DibFreeLock(lock) ··· 187 187 188 188 #define FE_MM_W_COMPONENT_ACCESS 16 189 189 #define FE_MM_RW_COMPONENT_ACCESS_BUFFER 17 190 - static int dib9000_risc_apb_access_read(struct dib9000_state *state, u32 address, u16 attribute, const u8 * tx, u32 txlen, 191 - u8 * b, u32 len); 190 + static int dib9000_risc_apb_access_read(struct dib9000_state *state, u32 address, u16 attribute, const u8 * tx, u32 txlen, u8 * b, u32 len); 192 191 static int dib9000_risc_apb_access_write(struct dib9000_state *state, u32 address, u16 attribute, const u8 * b, u32 len); 193 192 194 193 static u16 to_fw_output_mode(u16 mode) ··· 219 220 int ret; 220 221 u8 wb[2] = { reg >> 8, reg & 0xff }; 221 222 struct i2c_msg msg[2] = { 222 - {.addr = state->i2c.i2c_addr >> 1,.flags = 0,.buf = wb,.len = 2}, 223 - {.addr = state->i2c.i2c_addr >> 1,.flags = I2C_M_RD,.buf = b,.len = len}, 223 + {.addr = state->i2c.i2c_addr >> 1, .flags = 0, .buf = wb, .len = 2}, 224 + {.addr = state->i2c.i2c_addr >> 1, .flags = I2C_M_RD, .buf = b, .len = len}, 224 225 }; 225 226 226 227 if (state->platform.risc.fw_is_running && (reg < 1024)) ··· 256 257 u8 b[2]; 257 258 u8 wb[2] = { reg >> 8, reg & 0xff }; 258 259 struct i2c_msg msg[2] = { 259 - {.addr = i2c->i2c_addr >> 1,.flags = 0,.buf = wb,.len = 2}, 260 - {.addr = i2c->i2c_addr >> 1,.flags = I2C_M_RD,.buf = b,.len = 2}, 260 + {.addr = i2c->i2c_addr >> 1, .flags = 0, .buf = wb, .len = 2}, 261 + {.addr = i2c->i2c_addr >> 1, .flags = I2C_M_RD, .buf = b, .len = 2}, 261 262 }; 262 263 263 264 if (i2c_transfer(i2c->i2c_adap, msg, 2) != 2) { ··· 294 295 int ret; 295 296 296 297 struct i2c_msg msg = { 297 - .addr = state->i2c.i2c_addr >> 1,.flags = 0,.buf = b,.len = len + 2 298 + .addr = state->i2c.i2c_addr >> 1, .flags = 0, .buf = b, .len = len + 2 298 299 }; 299 300 300 301 if (state->platform.risc.fw_is_running && (reg < 1024)) { 301 302 if (dib9000_risc_apb_access_write 302 - (state, reg, DATA_BUS_ACCESS_MODE_16BIT | DATA_BUS_ACCESS_MODE_NO_ADDRESS_INCREMENT | attribute, buf, len) != 0) 303 + (state, reg, DATA_BUS_ACCESS_MODE_16BIT | DATA_BUS_ACCESS_MODE_NO_ADDRESS_INCREMENT | attribute, buf, len) != 0) 303 304 return -EINVAL; 304 305 return 0; 305 306 } ··· 333 334 { 334 335 u8 b[4] = { (reg >> 8) & 0xff, reg & 0xff, (val >> 8) & 0xff, val & 0xff }; 335 336 struct i2c_msg msg = { 336 - .addr = i2c->i2c_addr >> 1,.flags = 0,.buf = b,.len = 4 337 + .addr = i2c->i2c_addr >> 1, .flags = 0, .buf = b, .len = 4 337 338 }; 338 339 339 340 return i2c_transfer(i2c->i2c_adap, &msg, 1) != 1 ? -EREMOTEIO : 0; ··· 368 369 { 369 370 u8 b[14] = { 0 }; 370 371 371 - // dprintk("%d memcmd: %d %d %d\n", state->fe_id, addr, addr+len, len); 372 - // b[0] = 0 << 7; 372 + /* dprintk("%d memcmd: %d %d %d\n", state->fe_id, addr, addr+len, len); */ 373 + /* b[0] = 0 << 7; */ 373 374 b[1] = 1; 374 375 375 - // b[2] = 0; // 1057 376 - // b[3] = 0; 377 - b[4] = (u8) (addr >> 8); // 1058 376 + /* b[2] = 0; */ 377 + /* b[3] = 0; */ 378 + b[4] = (u8) (addr >> 8); 378 379 b[5] = (u8) (addr & 0xff); 379 380 380 - // b[10] = 0; // 1061 381 - // b[11] = 0; 382 - b[12] = (u8) (addr >> 8); // 1062 381 + /* b[10] = 0; */ 382 + /* b[11] = 0; */ 383 + b[12] = (u8) (addr >> 8); 383 384 b[13] = (u8) (addr & 0xff); 384 385 385 386 addr += len; 386 - // b[6] = 0; // 1059 387 - // b[7] = 0; 388 - b[8] = (u8) (addr >> 8); // 1060 387 + /* b[6] = 0; */ 388 + /* b[7] = 0; */ 389 + b[8] = (u8) (addr >> 8); 389 390 b[9] = (u8) (addr & 0xff); 390 391 391 392 dib9000_write(state, 1056, b, 14); ··· 399 400 struct dib9000_fe_memory_map *m = &state->platform.risc.fe_mm[cmd & 0x7f]; 400 401 /* decide whether we need to "refresh" the memory controller */ 401 402 if (state->platform.risc.memcmd == cmd && /* same command */ 402 - !(cmd & 0x80 && m->size < 67)) /* and we do not want to read something with less than 67 bytes looping - working around a bug in the memory controller */ 403 + !(cmd & 0x80 && m->size < 67)) /* and we do not want to read something with less than 67 bytes looping - working around a bug in the memory controller */ 403 404 return; 404 405 dib9000_risc_mem_setup_cmd(state, m->addr, m->size, cmd & 0x80); 405 406 state->platform.risc.memcmd = cmd; ··· 505 506 break; 506 507 } while (1); 507 508 508 - //dprintk( "MBX: size: %d", size); 509 + /*dprintk( "MBX: size: %d", size); */ 509 510 510 511 if (tmp == 0) { 511 512 ret = -EINVAL; ··· 537 538 /* update register nb_mes_in_RX */ 538 539 ret = (u8) dib9000_write_word_attr(state, 1043, 1 << 14, attr); 539 540 540 - out: 541 + out: 541 542 DibReleaseLock(&state->platform.risc.mbx_if_lock); 542 543 543 544 return ret; ··· 624 625 if (*block == 0) { 625 626 size = dib9000_mbx_read(state, block, 1, attr); 626 627 627 - // dprintk( "MBX: fetched %04x message to cache", *block); 628 + /* dprintk( "MBX: fetched %04x message to cache", *block); */ 628 629 629 630 switch (*block >> 8) { 630 631 case IN_MSG_DEBUG_BUF: ··· 670 671 ret = dib9000_mbx_fetch_to_cache(state, attr); 671 672 672 673 tmp = dib9000_read_word_attr(state, 1229, attr); /* Clear the IRQ */ 673 - // if (tmp) 674 - // dprintk( "cleared IRQ: %x", tmp); 674 + /* if (tmp) */ 675 + /* dprintk( "cleared IRQ: %x", tmp); */ 675 676 DibReleaseLock(&state->platform.risc.mbx_lock); 676 677 677 678 return ret; ··· 804 805 { 805 806 u16 value; 806 807 807 - if ((value = dib9000_i2c_read16(client, 896)) != 0x01b3) { 808 + value = dib9000_i2c_read16(client, 896); 809 + if (value != 0x01b3) { 808 810 dprintk("wrong Vendor ID (0x%x)", value); 809 811 return 0; 810 812 } ··· 916 916 { 917 917 struct dib9000_state *state = fe->demodulator_priv; 918 918 919 - dib9000_write_word(state, 1817, 0x0003); // SRAM read lead in + P_host_rdy_cmos=1 919 + dib9000_write_word(state, 1817, 0x0003); 920 920 921 921 dib9000_write_word(state, 1227, 1); 922 922 dib9000_write_word(state, 1227, 0); ··· 961 961 return 0; 962 962 } 963 963 964 - static int dib9000_risc_apb_access_read(struct dib9000_state *state, u32 address, u16 attribute, const u8 * tx, u32 txlen, 965 - u8 * b, u32 len) 964 + static int dib9000_risc_apb_access_read(struct dib9000_state *state, u32 address, u16 attribute, const u8 * tx, u32 txlen, u8 * b, u32 len) 966 965 { 967 966 u16 mb[10]; 968 967 u8 i, s; ··· 969 970 if (address >= 1024 || !state->platform.risc.fw_is_running) 970 971 return -EINVAL; 971 972 972 - //dprintk( "APB access thru rd fw %d %x", address, attribute); 973 + /* dprintk( "APB access thru rd fw %d %x", address, attribute); */ 973 974 974 975 mb[0] = (u16) address; 975 976 mb[1] = len / 2; 976 977 dib9000_mbx_send_attr(state, OUT_MSG_BRIDGE_APB_R, mb, 2, attribute); 977 978 switch (dib9000_mbx_get_message_attr(state, IN_MSG_END_BRIDGE_APB_RW, mb, &s, attribute)) { 978 979 case 1: 979 - s--; // address 980 + s--; 980 981 for (i = 0; i < s; i++) { 981 982 b[i * 2] = (mb[i + 1] >> 8) & 0xff; 982 983 b[i * 2 + 1] = (mb[i + 1]) & 0xff; ··· 996 997 if (address >= 1024 || !state->platform.risc.fw_is_running) 997 998 return -EINVAL; 998 999 999 - //dprintk( "APB access thru wr fw %d %x", address, attribute); 1000 + /* dprintk( "APB access thru wr fw %d %x", address, attribute); */ 1000 1001 1001 1002 mb[0] = (unsigned short)address; 1002 - for (i = 0; i < len && i < 20; i += 2) // 20 bytes max 1003 + for (i = 0; i < len && i < 20; i += 2) 1003 1004 mb[1 + (i / 2)] = (b[i] << 8 | b[i + 1]); 1004 1005 1005 1006 dib9000_mbx_send_attr(state, OUT_MSG_BRIDGE_APB_W, mb, 1 + len / 2, attribute); ··· 1030 1031 u8 size; 1031 1032 1032 1033 if (dib9000_fw_boot(state, NULL, 0, state->chip.d9.cfg.microcode_B_fe_buffer, state->chip.d9.cfg.microcode_B_fe_size) != 0) 1033 - //if (dib9000_fw_boot(state, microcode_A_buffer, microcode_A_size, microcode_B_buffer, microcode_B_size) != 0) 1034 1034 return -EIO; 1035 1035 1036 1036 /* initialize the firmware */ ··· 1060 1062 b[2 + i * 4] = (u16) state->chip.d9.cfg.subband.subband[i].gpio.mask; 1061 1063 b[3 + i * 4] = (u16) state->chip.d9.cfg.subband.subband[i].gpio.direction; 1062 1064 b[4 + i * 4] = (u16) state->chip.d9.cfg.subband.subband[i].gpio.value; 1063 - //dprintk( "SBS: %d %d %x %x %x\n", i, b[1 + i*4], b[2 + i*4], b[3 + i*4], b[4 + i*4]); 1064 1065 } 1065 1066 b[1 + i * 4] = 0; /* fe_id */ 1066 1067 if (dib9000_mbx_send(state, OUT_MSG_SUBBAND_SEL, b, 2 + 4 * i) != 0) ··· 1068 1071 /* 0 - id, 1 - no_of_frontends */ 1069 1072 b[0] = (0 << 8) | 1; 1070 1073 /* 0 = i2c-address demod, 0 = tuner */ 1071 - b[1] = (0 << 8) | (0); //st->i2c_addr ) ); 1074 + b[1] = (0 << 8) | (0); 1072 1075 b[2] = (u16) (((state->chip.d9.cfg.xtal_clock_khz * 1000) >> 16) & 0xffff); 1073 1076 b[3] = (u16) (((state->chip.d9.cfg.xtal_clock_khz * 1000)) & 0xffff); 1074 1077 b[4] = (u16) ((state->chip.d9.cfg.vcxo_timer >> 16) & 0xffff); ··· 1086 1089 return -EIO; 1087 1090 1088 1091 if (size > ARRAY_SIZE(b)) { 1089 - dprintk("error : firmware returned %dbytes needed but the used buffer has only %dbytes\n Firmware init ABORTED", size, (int)ARRAY_SIZE(b)); 1092 + dprintk("error : firmware returned %dbytes needed but the used buffer has only %dbytes\n Firmware init ABORTED", size, 1093 + (int)ARRAY_SIZE(b)); 1090 1094 return -EINVAL; 1091 1095 } 1092 1096 1093 1097 for (i = 0; i < size; i += 2) { 1094 1098 state->platform.risc.fe_mm[i / 2].addr = b[i + 0]; 1095 1099 state->platform.risc.fe_mm[i / 2].size = b[i + 1]; 1096 - //dprintk( "MM: %d %d %d", state->platform.risc.fe_mm[i/2].addr, state->platform.risc.fe_mm[i/2].size, ARRAY_SIZE(state->platform.risc.fe_mm)); 1097 1100 } 1098 1101 1099 1102 return 0; ··· 1147 1150 ret = -EIO; 1148 1151 } 1149 1152 1150 - dib9000_risc_mem_read(state, FE_MM_R_CHANNEL_UNION, (u8 *) & ch, sizeof(struct dibDVBTChannel)); 1153 + dib9000_risc_mem_read(state, FE_MM_R_CHANNEL_UNION, (u8 *) &ch, sizeof(struct dibDVBTChannel)); 1151 1154 1152 - switch (ch.spectrum_inversion&0x7) { 1155 + switch (ch.spectrum_inversion & 0x7) { 1153 1156 case 1: 1154 1157 state->fe[0]->dtv_property_cache.inversion = INVERSION_ON; 1155 1158 break; ··· 1264 1267 break; 1265 1268 } 1266 1269 1267 - error: 1270 + error: 1268 1271 DibReleaseLock(&state->platform.risc.mem_mbx_lock); 1269 1272 return ret; 1270 1273 } ··· 1409 1412 ch.select_hp = 1; 1410 1413 ch.intlv_native = 1; 1411 1414 1412 - dib9000_risc_mem_write(state, FE_MM_W_CHANNEL_UNION, (u8 *) & ch); 1415 + dib9000_risc_mem_write(state, FE_MM_W_CHANNEL_UNION, (u8 *) &ch); 1413 1416 1414 1417 return 0; 1415 1418 } ··· 1438 1441 break; 1439 1442 case CT_DEMOD_STEP_1: 1440 1443 if (search) 1441 - dib9000_risc_mem_read(state, FE_MM_R_CHANNEL_SEARCH_STATE, (u8 *) & i, 1); 1444 + dib9000_risc_mem_read(state, FE_MM_R_CHANNEL_SEARCH_STATE, (u8 *) &i, 1); 1442 1445 else 1443 - dib9000_risc_mem_read(state, FE_MM_R_CHANNEL_TUNE_STATE, (u8 *) & i, 1); 1446 + dib9000_risc_mem_read(state, FE_MM_R_CHANNEL_TUNE_STATE, (u8 *) &i, 1); 1444 1447 switch (i) { /* something happened */ 1445 1448 case 0: 1446 1449 break; ··· 1481 1484 dprintk("setting output mode for demod %p to %d", fe, mode); 1482 1485 1483 1486 switch (mode) { 1484 - case OUTMODE_MPEG2_PAR_GATED_CLK: // STBs with parallel gated clock 1487 + case OUTMODE_MPEG2_PAR_GATED_CLK: 1485 1488 outreg = (1 << 10); /* 0x0400 */ 1486 1489 break; 1487 - case OUTMODE_MPEG2_PAR_CONT_CLK: // STBs with parallel continues clock 1490 + case OUTMODE_MPEG2_PAR_CONT_CLK: 1488 1491 outreg = (1 << 10) | (1 << 6); /* 0x0440 */ 1489 1492 break; 1490 - case OUTMODE_MPEG2_SERIAL: // STBs with serial input 1493 + case OUTMODE_MPEG2_SERIAL: 1491 1494 outreg = (1 << 10) | (2 << 6) | (0 << 1); /* 0x0482 */ 1492 1495 break; 1493 1496 case OUTMODE_DIVERSITY: 1494 1497 outreg = (1 << 10) | (4 << 6); /* 0x0500 */ 1495 1498 break; 1496 - case OUTMODE_MPEG2_FIFO: // e.g. USB feeding 1499 + case OUTMODE_MPEG2_FIFO: 1497 1500 outreg = (1 << 10) | (5 << 6); 1498 1501 break; 1499 - case OUTMODE_HIGH_Z: // disable 1502 + case OUTMODE_HIGH_Z: 1500 1503 outreg = 0; 1501 1504 break; 1502 1505 default: ··· 1504 1507 return -EINVAL; 1505 1508 } 1506 1509 1507 - dib9000_write_word(state, 1795, outreg); // has to be written from outside 1510 + dib9000_write_word(state, 1795, outreg); 1508 1511 1509 1512 switch (mode) { 1510 1513 case OUTMODE_MPEG2_PAR_GATED_CLK: ··· 1593 1596 static int dib9000_fw_component_bus_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg msg[], int num) 1594 1597 { 1595 1598 struct dib9000_state *state = i2c_get_adapdata(i2c_adap); 1596 - u8 type = 0; /* I2C */ 1599 + u8 type = 0; /* I2C */ 1597 1600 u8 port = DIBX000_I2C_INTERFACE_GPIO_3_4; 1598 - u16 scl = state->component_bus_speed; /* SCL frequency */ 1599 - //u16 scl = 208; /* SCL frequency */ 1601 + u16 scl = state->component_bus_speed; /* SCL frequency */ 1600 1602 struct dib9000_fe_memory_map *m = &state->platform.risc.fe_mm[FE_MM_RW_COMPONENT_ACCESS_BUFFER]; 1601 1603 u8 p[13] = { 0 }; 1602 1604 ··· 1606 1610 p[3] = (u8) scl & 0xff; /* scl */ 1607 1611 p[4] = (u8) (scl >> 8); 1608 1612 1609 - // p[5] = 0; /* attr */ 1610 - // p[6] = 0; 1611 - 1612 - // p[7] = (u8) (msg[0].addr << 1 ); 1613 - // p[8] = (u8) (msg[0].addr >> 7 ); 1614 1613 p[7] = 0; 1615 1614 p[8] = 0; 1616 1615 ··· 1663 1672 struct dib9000_state *st = fe->demodulator_priv; 1664 1673 return &st->tuner_adap; 1665 1674 } 1666 - 1667 1675 EXPORT_SYMBOL(dib9000_get_tuner_interface); 1668 1676 1669 1677 struct i2c_adapter *dib9000_get_component_bus_interface(struct dvb_frontend *fe) ··· 1670 1680 struct dib9000_state *st = fe->demodulator_priv; 1671 1681 return &st->component_bus; 1672 1682 } 1673 - 1674 1683 EXPORT_SYMBOL(dib9000_get_component_bus_interface); 1675 1684 1676 1685 struct i2c_adapter *dib9000_get_i2c_master(struct dvb_frontend *fe, enum dibx000_i2c_interface intf, int gating) ··· 1677 1688 struct dib9000_state *st = fe->demodulator_priv; 1678 1689 return dibx000_get_i2c_adapter(&st->i2c_master, intf, gating); 1679 1690 } 1680 - 1681 1691 EXPORT_SYMBOL(dib9000_get_i2c_master); 1682 1692 1683 1693 int dib9000_set_i2c_adapter(struct dvb_frontend *fe, struct i2c_adapter *i2c) ··· 1686 1698 st->i2c.i2c_adap = i2c; 1687 1699 return 0; 1688 1700 } 1689 - 1690 1701 EXPORT_SYMBOL(dib9000_set_i2c_adapter); 1691 1702 1692 1703 static int dib9000_cfg_gpio(struct dib9000_state *st, u8 num, u8 dir, u8 val) ··· 1710 1723 struct dib9000_state *state = fe->demodulator_priv; 1711 1724 return dib9000_cfg_gpio(state, num, dir, val); 1712 1725 } 1713 - 1714 1726 EXPORT_SYMBOL(dib9000_set_gpio); 1727 + 1715 1728 int dib9000_fw_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff) 1716 1729 { 1717 1730 struct dib9000_state *state = fe->demodulator_priv; ··· 1721 1734 dprintk("PID filter enabled %d", onoff); 1722 1735 return dib9000_write_word(state, 294 + 1, val); 1723 1736 } 1724 - 1725 1737 EXPORT_SYMBOL(dib9000_fw_pid_filter_ctrl); 1738 + 1726 1739 int dib9000_fw_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff) 1727 1740 { 1728 1741 struct dib9000_state *state = fe->demodulator_priv; 1729 1742 dprintk("Index %x, PID %d, OnOff %d", id, pid, onoff); 1730 1743 return dib9000_write_word(state, 300 + 1 + id, onoff ? (1 << 13) | pid : 0); 1731 1744 } 1732 - 1733 1745 EXPORT_SYMBOL(dib9000_fw_pid_filter); 1734 1746 1735 1747 int dib9000_firmware_post_pll_init(struct dvb_frontend *fe) ··· 1736 1750 struct dib9000_state *state = fe->demodulator_priv; 1737 1751 return dib9000_fw_init(state); 1738 1752 } 1739 - 1740 1753 EXPORT_SYMBOL(dib9000_firmware_post_pll_init); 1741 1754 1742 1755 static void dib9000_release(struct dvb_frontend *demod) ··· 1743 1758 struct dib9000_state *st = demod->demodulator_priv; 1744 1759 u8 index_frontend; 1745 1760 1746 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (st->fe[index_frontend] != NULL); index_frontend++) 1761 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (st->fe[index_frontend] != NULL); index_frontend++) 1747 1762 dvb_frontend_detach(st->fe[index_frontend]); 1748 1763 1749 1764 DibFreeLock(&state->platform.risc.mbx_if_lock); ··· 1769 1784 u8 index_frontend; 1770 1785 int ret; 1771 1786 1772 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1787 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1773 1788 ret = state->fe[index_frontend]->ops.sleep(state->fe[index_frontend]); 1774 1789 if (ret < 0) 1775 1790 return ret; ··· 1790 1805 fe_status_t stat; 1791 1806 int ret; 1792 1807 1793 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1808 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1794 1809 state->fe[index_frontend]->ops.read_status(state->fe[index_frontend], &stat); 1795 1810 if (stat & FE_HAS_SYNC) { 1796 1811 dprintk("TPS lock on the slave%i", index_frontend); 1797 1812 1798 1813 /* synchronize the cache with the other frontends */ 1799 1814 state->fe[index_frontend]->ops.get_frontend(state->fe[index_frontend], fep); 1800 - for (sub_index_frontend=0; (sub_index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[sub_index_frontend] != NULL); sub_index_frontend++) { 1815 + for (sub_index_frontend = 0; (sub_index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[sub_index_frontend] != NULL); 1816 + sub_index_frontend++) { 1801 1817 if (sub_index_frontend != index_frontend) { 1802 - state->fe[sub_index_frontend]->dtv_property_cache.modulation = state->fe[index_frontend]->dtv_property_cache.modulation; 1803 - state->fe[sub_index_frontend]->dtv_property_cache.inversion = state->fe[index_frontend]->dtv_property_cache.inversion; 1804 - state->fe[sub_index_frontend]->dtv_property_cache.transmission_mode = state->fe[index_frontend]->dtv_property_cache.transmission_mode; 1805 - state->fe[sub_index_frontend]->dtv_property_cache.guard_interval = state->fe[index_frontend]->dtv_property_cache.guard_interval; 1806 - state->fe[sub_index_frontend]->dtv_property_cache.hierarchy = state->fe[index_frontend]->dtv_property_cache.hierarchy; 1807 - state->fe[sub_index_frontend]->dtv_property_cache.code_rate_HP = state->fe[index_frontend]->dtv_property_cache.code_rate_HP; 1808 - state->fe[sub_index_frontend]->dtv_property_cache.code_rate_LP = state->fe[index_frontend]->dtv_property_cache.code_rate_LP; 1809 - state->fe[sub_index_frontend]->dtv_property_cache.rolloff = state->fe[index_frontend]->dtv_property_cache.rolloff; 1818 + state->fe[sub_index_frontend]->dtv_property_cache.modulation = 1819 + state->fe[index_frontend]->dtv_property_cache.modulation; 1820 + state->fe[sub_index_frontend]->dtv_property_cache.inversion = 1821 + state->fe[index_frontend]->dtv_property_cache.inversion; 1822 + state->fe[sub_index_frontend]->dtv_property_cache.transmission_mode = 1823 + state->fe[index_frontend]->dtv_property_cache.transmission_mode; 1824 + state->fe[sub_index_frontend]->dtv_property_cache.guard_interval = 1825 + state->fe[index_frontend]->dtv_property_cache.guard_interval; 1826 + state->fe[sub_index_frontend]->dtv_property_cache.hierarchy = 1827 + state->fe[index_frontend]->dtv_property_cache.hierarchy; 1828 + state->fe[sub_index_frontend]->dtv_property_cache.code_rate_HP = 1829 + state->fe[index_frontend]->dtv_property_cache.code_rate_HP; 1830 + state->fe[sub_index_frontend]->dtv_property_cache.code_rate_LP = 1831 + state->fe[index_frontend]->dtv_property_cache.code_rate_LP; 1832 + state->fe[sub_index_frontend]->dtv_property_cache.rolloff = 1833 + state->fe[index_frontend]->dtv_property_cache.rolloff; 1810 1834 } 1811 1835 } 1812 1836 return 0; ··· 1828 1834 return ret; 1829 1835 1830 1836 /* synchronize the cache with the other frontends */ 1831 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1837 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1832 1838 state->fe[index_frontend]->dtv_property_cache.inversion = fe->dtv_property_cache.inversion; 1833 1839 state->fe[index_frontend]->dtv_property_cache.transmission_mode = fe->dtv_property_cache.transmission_mode; 1834 1840 state->fe[index_frontend]->dtv_property_cache.guard_interval = fe->dtv_property_cache.guard_interval; ··· 1888 1894 1889 1895 /* set the master status */ 1890 1896 if (fep->u.ofdm.transmission_mode == TRANSMISSION_MODE_AUTO || 1891 - fep->u.ofdm.guard_interval == GUARD_INTERVAL_AUTO || fep->u.ofdm.constellation == QAM_AUTO || fep->u.ofdm.code_rate_HP == FEC_AUTO) { 1897 + fep->u.ofdm.guard_interval == GUARD_INTERVAL_AUTO || fep->u.ofdm.constellation == QAM_AUTO || fep->u.ofdm.code_rate_HP == FEC_AUTO) { 1892 1898 /* no channel specified, autosearch the channel */ 1893 1899 state->channel_status.status = CHANNEL_STATUS_PARAMETERS_UNKNOWN; 1894 1900 } else 1895 1901 state->channel_status.status = CHANNEL_STATUS_PARAMETERS_SET; 1896 1902 1897 1903 /* set mode and status for the different frontends */ 1898 - for (index_frontend=0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1904 + for (index_frontend = 0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1899 1905 dib9000_fw_set_diversity_in(state->fe[index_frontend], 1); 1900 1906 1901 1907 /* synchronization of the cache */ ··· 1909 1915 } 1910 1916 1911 1917 /* actual tune */ 1912 - exit_condition = 0; /* 0: tune pending; 1: tune failed; 2:tune success */ 1918 + exit_condition = 0; /* 0: tune pending; 1: tune failed; 2:tune success */ 1913 1919 index_frontend_success = 0; 1914 1920 do { 1915 1921 sleep_time = dib9000_fw_tune(state->fe[0], NULL); 1916 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1922 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1917 1923 sleep_time_slave = dib9000_fw_tune(state->fe[index_frontend], NULL); 1918 1924 if (sleep_time == FE_CALLBACK_TIME_NEVER) 1919 1925 sleep_time = sleep_time_slave; ··· 1928 1934 nbr_pending = 0; 1929 1935 exit_condition = 0; 1930 1936 index_frontend_success = 0; 1931 - for (index_frontend=0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1937 + for (index_frontend = 0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1932 1938 frontend_status = -dib9000_get_status(state->fe[index_frontend]); 1933 1939 if (frontend_status > -FE_STATUS_TUNE_PENDING) { 1934 - exit_condition = 2; /* tune success */ 1940 + exit_condition = 2; /* tune success */ 1935 1941 index_frontend_success = index_frontend; 1936 1942 break; 1937 1943 } 1938 1944 if (frontend_status == -FE_STATUS_TUNE_PENDING) 1939 - nbr_pending++; /* some frontends are still tuning */ 1945 + nbr_pending++; /* some frontends are still tuning */ 1940 1946 } 1941 1947 if ((exit_condition != 2) && (nbr_pending == 0)) 1942 - exit_condition = 1; /* if all tune are done and no success, exit: tune failed */ 1948 + exit_condition = 1; /* if all tune are done and no success, exit: tune failed */ 1943 1949 1944 1950 } while (exit_condition == 0); 1945 1951 1946 1952 /* check the tune result */ 1947 - if (exit_condition == 1) { /* tune failed */ 1953 + if (exit_condition == 1) { /* tune failed */ 1948 1954 dprintk("tune failed"); 1949 1955 return 0; 1950 1956 } ··· 1956 1962 1957 1963 /* retune the other frontends with the found channel */ 1958 1964 channel_status.status = CHANNEL_STATUS_PARAMETERS_SET; 1959 - for (index_frontend=0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1965 + for (index_frontend = 0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1960 1966 /* only retune the frontends which was not tuned success */ 1961 1967 if (index_frontend != index_frontend_success) { 1962 1968 dib9000_set_channel_status(state->fe[index_frontend], &channel_status); ··· 1965 1971 } 1966 1972 do { 1967 1973 sleep_time = FE_CALLBACK_TIME_NEVER; 1968 - for (index_frontend=0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1974 + for (index_frontend = 0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1969 1975 if (index_frontend != index_frontend_success) { 1970 1976 sleep_time_slave = dib9000_fw_tune(state->fe[index_frontend], NULL); 1971 1977 if (sleep_time == FE_CALLBACK_TIME_NEVER) ··· 1980 1986 break; 1981 1987 1982 1988 nbr_pending = 0; 1983 - for (index_frontend=0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1989 + for (index_frontend = 0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 1984 1990 if (index_frontend != index_frontend_success) { 1985 1991 frontend_status = -dib9000_get_status(state->fe[index_frontend]); 1986 1992 if ((index_frontend != index_frontend_success) && (frontend_status == -FE_STATUS_TUNE_PENDING)) 1987 - nbr_pending++; /* some frontends are still tuning */ 1993 + nbr_pending++; /* some frontends are still tuning */ 1988 1994 } 1989 1995 } 1990 1996 } while (nbr_pending != 0); 1991 1997 1992 1998 /* set the output mode */ 1993 1999 dib9000_fw_set_output_mode(state->fe[0], state->chip.d9.cfg.output_mode); 1994 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) 2000 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) 1995 2001 dib9000_fw_set_output_mode(state->fe[index_frontend], OUTMODE_DIVERSITY); 1996 2002 1997 2003 /* turn off the diversity for the last frontend */ 1998 - dib9000_fw_set_diversity_in(state->fe[index_frontend-1], 0); 2004 + dib9000_fw_set_diversity_in(state->fe[index_frontend - 1], 0); 1999 2005 2000 2006 return 0; 2001 2007 } ··· 2013 2019 u8 index_frontend; 2014 2020 u16 lock = 0, lock_slave = 0; 2015 2021 2016 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) 2022 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) 2017 2023 lock_slave |= dib9000_read_lock(state->fe[index_frontend]); 2018 2024 2019 2025 lock = dib9000_read_word(state, 535); ··· 2057 2063 u16 val; 2058 2064 2059 2065 *strength = 0; 2060 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2066 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { 2061 2067 state->fe[index_frontend]->ops.read_signal_strength(state->fe[index_frontend], &val); 2062 2068 if (val > 65535 - *strength) 2063 2069 *strength = 65535; ··· 2121 2127 u32 snr_master; 2122 2128 2123 2129 snr_master = dib9000_get_snr(fe); 2124 - for (index_frontend=1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) 2130 + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) 2125 2131 snr_master += dib9000_get_snr(state->fe[index_frontend]); 2126 2132 2127 2133 if ((snr_master >> 16) != 0) { ··· 2155 2161 struct i2c_device client = {.i2c_adap = i2c }; 2156 2162 2157 2163 client.i2c_addr = default_addr + 16; 2158 - dib9000_i2c_write16(&client, 1796, 0x0); // select DVB-T output 2164 + dib9000_i2c_write16(&client, 1796, 0x0); 2159 2165 2160 2166 for (k = no_of_demods - 1; k >= 0; k--) { 2161 2167 /* designated i2c address */ ··· 2197 2203 2198 2204 return 0; 2199 2205 } 2200 - 2201 2206 EXPORT_SYMBOL(dib9000_i2c_enumeration); 2202 2207 2203 2208 int dib9000_set_slave_frontend(struct dvb_frontend *fe, struct dvb_frontend *fe_slave) ··· 2225 2232 while ((index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL)) 2226 2233 index_frontend++; 2227 2234 if (index_frontend != 1) { 2228 - dprintk("remove slave fe %p (index %i)", state->fe[index_frontend-1], index_frontend-1); 2235 + dprintk("remove slave fe %p (index %i)", state->fe[index_frontend - 1], index_frontend - 1); 2229 2236 state->fe[index_frontend] = NULL; 2230 2237 return 0; 2231 2238 } ··· 2235 2242 } 2236 2243 EXPORT_SYMBOL(dib9000_remove_slave_frontend); 2237 2244 2238 - struct dvb_frontend * dib9000_get_slave_frontend(struct dvb_frontend *fe, int slave_index) 2245 + struct dvb_frontend *dib9000_get_slave_frontend(struct dvb_frontend *fe, int slave_index) 2239 2246 { 2240 2247 struct dib9000_state *state = fe->demodulator_priv; 2241 2248 ··· 2306 2313 2307 2314 return fe; 2308 2315 2309 - component_bus_add_error: 2316 + component_bus_add_error: 2310 2317 i2c_del_adapter(&st->tuner_adap); 2311 - error: 2318 + error: 2312 2319 kfree(st); 2313 2320 return NULL; 2314 2321 } 2315 - 2316 2322 EXPORT_SYMBOL(dib9000_attach); 2317 2323 2318 2324 static struct dvb_frontend_ops dib9000_ops = {
+3 -2
drivers/media/dvb/frontends/dib9000.h
··· 38 38 extern int dib9000_firmware_post_pll_init(struct dvb_frontend *fe); 39 39 extern int dib9000_set_slave_frontend(struct dvb_frontend *fe, struct dvb_frontend *fe_slave); 40 40 extern int dib9000_remove_slave_frontend(struct dvb_frontend *fe); 41 - extern struct dvb_frontend * dib9000_get_slave_frontend(struct dvb_frontend *fe, int slave_index); 41 + extern struct dvb_frontend *dib9000_get_slave_frontend(struct dvb_frontend *fe, int slave_index); 42 42 extern struct i2c_adapter *dib9000_get_component_bus_interface(struct dvb_frontend *fe); 43 43 extern int dib9000_set_i2c_adapter(struct dvb_frontend *fe, struct i2c_adapter *i2c); 44 44 extern int dib9000_fw_set_component_bus_speed(struct dvb_frontend *fe, u16 speed); ··· 103 103 return -ENODEV; 104 104 } 105 105 106 - static inline struct dvb_frontend * dib9000_get_slave_frontend(struct dvb_frontend *fe, int slave_index) { 106 + static inline struct dvb_frontend *dib9000_get_slave_frontend(struct dvb_frontend *fe, int slave_index) 107 + { 107 108 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 108 109 return NULL; 109 110 }
+28 -33
drivers/media/dvb/frontends/dibx000_common.c
··· 26 26 u8 wb[2] = { reg >> 8, reg & 0xff }; 27 27 u8 rb[2]; 28 28 struct i2c_msg msg[2] = { 29 - {.addr = mst->i2c_addr,.flags = 0,.buf = wb,.len = 2}, 30 - {.addr = mst->i2c_addr,.flags = I2C_M_RD,.buf = rb,.len = 2}, 29 + {.addr = mst->i2c_addr, .flags = 0, .buf = wb, .len = 2}, 30 + {.addr = mst->i2c_addr, .flags = I2C_M_RD, .buf = rb, .len = 2}, 31 31 }; 32 32 33 33 if (i2c_transfer(mst->i2c_adap, msg, 2) != 2) ··· 38 38 39 39 static int dibx000_is_i2c_done(struct dibx000_i2c_master *mst) 40 40 { 41 - int i = 100; // max_i2c_polls; 41 + int i = 100; 42 42 u16 status; 43 43 44 - while (((status = dibx000_read_word(mst, mst->base_reg + 2)) & 0x0100) == 0 && --i > 0); 44 + while (((status = dibx000_read_word(mst, mst->base_reg + 2)) & 0x0100) == 0 && --i > 0) 45 + ; 45 46 46 47 /* i2c timed out */ 47 48 if (i == 0) ··· 64 63 const u8 *b = msg->buf; 65 64 66 65 while (txlen) { 67 - dibx000_read_word(mst, mst->base_reg + 2); // reset fifo ptr 66 + dibx000_read_word(mst, mst->base_reg + 2); 68 67 69 68 len = txlen > 8 ? 8 : txlen; 70 69 for (i = 0; i < len; i += 2) { ··· 73 72 data |= *b++; 74 73 dibx000_write_word(mst, mst->base_reg, data); 75 74 } 76 - da = (((u8) (msg->addr)) << 9) | // addr 77 - (1 << 8) | // master 78 - (1 << 7) | // rq 79 - (0 << 6) | // stop 80 - (0 << 5) | // start 81 - ((len & 0x7) << 2) | // nb 8 bytes == 0 here 82 - (0 << 1) | // rw 83 - (0 << 0); // irqen 75 + da = (((u8) (msg->addr)) << 9) | 76 + (1 << 8) | 77 + (1 << 7) | 78 + (0 << 6) | 79 + (0 << 5) | 80 + ((len & 0x7) << 2) | 81 + (0 << 1) | 82 + (0 << 0); 84 83 85 84 if (txlen == msg->len) 86 85 da |= 1 << 5; /* start */ ··· 106 105 107 106 while (rxlen) { 108 107 len = rxlen > 8 ? 8 : rxlen; 109 - da = (((u8) (msg->addr)) << 9) | // addr 110 - (1 << 8) | // master 111 - (1 << 7) | // rq 112 - (0 << 6) | // stop 113 - (0 << 5) | // start 114 - ((len & 0x7) << 2) | // nb 115 - (1 << 1) | // rw 116 - (0 << 0); // irqen 108 + da = (((u8) (msg->addr)) << 9) | 109 + (1 << 8) | 110 + (1 << 7) | 111 + (0 << 6) | 112 + (0 << 5) | 113 + ((len & 0x7) << 2) | 114 + (1 << 1) | 115 + (0 << 0); 117 116 118 117 if (rxlen == msg->len) 119 118 da |= 1 << 5; /* start */ ··· 175 174 int ret = 0; 176 175 177 176 dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_GPIO_1_2); 178 - for (msg_index = 0; msg_index<num; msg_index++) { 179 - if (msg[msg_index].flags & I2C_M_RD) 180 - { 177 + for (msg_index = 0; msg_index < num; msg_index++) { 178 + if (msg[msg_index].flags & I2C_M_RD) { 181 179 ret = dibx000_master_i2c_read(mst, &msg[msg_index]); 182 180 if (ret != 0) 183 181 return 0; 184 - } 185 - else 186 - { 182 + } else { 187 183 ret = dibx000_master_i2c_write(mst, &msg[msg_index], 1); 188 184 if (ret != 0) 189 185 return 0; ··· 197 199 int ret = 0; 198 200 199 201 dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_GPIO_3_4); 200 - for (msg_index = 0; msg_index<num; msg_index++) { 201 - if (msg[msg_index].flags & I2C_M_RD) 202 - { 202 + for (msg_index = 0; msg_index < num; msg_index++) { 203 + if (msg[msg_index].flags & I2C_M_RD) { 203 204 ret = dibx000_master_i2c_read(mst, &msg[msg_index]); 204 205 if (ret != 0) 205 206 return 0; 206 - } 207 - else 208 - { 207 + } else { 209 208 ret = dibx000_master_i2c_write(mst, &msg[msg_index], 1); 210 209 if (ret != 0) 211 210 return 0;
+5 -5
drivers/media/dvb/frontends/dibx000_common.h
··· 18 18 19 19 enum dibx000_i2c_interface selected_interface; 20 20 21 - // struct i2c_adapter tuner_i2c_adap; 21 + /* struct i2c_adapter tuner_i2c_adap; */ 22 22 struct i2c_adapter gated_tuner_i2c_adap; 23 23 struct i2c_adapter master_i2c_adap_gpio12; 24 24 struct i2c_adapter master_i2c_adap_gpio34; ··· 50 50 #define BAND_FM 0x10 51 51 #define BAND_CBAND 0x20 52 52 53 - #define BAND_OF_FREQUENCY(freq_kHz) ( (freq_kHz) <= 170000 ? BAND_CBAND : \ 53 + #define BAND_OF_FREQUENCY(freq_kHz) ((freq_kHz) <= 170000 ? BAND_CBAND : \ 54 54 (freq_kHz) <= 115000 ? BAND_FM : \ 55 55 (freq_kHz) <= 250000 ? BAND_VHF : \ 56 56 (freq_kHz) <= 863000 ? BAND_UHF : \ ··· 140 140 DIBX000_VBG_DISABLE, 141 141 }; 142 142 143 - #define BANDWIDTH_TO_KHZ(v) ( (v) == BANDWIDTH_8_MHZ ? 8000 : \ 143 + #define BANDWIDTH_TO_KHZ(v) ((v) == BANDWIDTH_8_MHZ ? 8000 : \ 144 144 (v) == BANDWIDTH_7_MHZ ? 7000 : \ 145 - (v) == BANDWIDTH_6_MHZ ? 6000 : 8000 ) 145 + (v) == BANDWIDTH_6_MHZ ? 6000 : 8000) 146 146 147 147 #define BANDWIDTH_TO_INDEX(v) ( \ 148 148 (v) == 8000 ? BANDWIDTH_8_MHZ : \ ··· 223 223 224 224 #define FE_CALLBACK_TIME_NEVER 0xffffffff 225 225 226 - #define ABS(x) ((x<0)?(-x):(x)) 226 + #define ABS(x) ((x < 0) ? (-x) : (x)) 227 227 228 228 #define DATA_BUS_ACCESS_MODE_8BIT 0x01 229 229 #define DATA_BUS_ACCESS_MODE_16BIT 0x02