Commit 19002fd5f1ba452ba13491f97da65367f80e09a8
Committed by
Takashi Iwai
1 parent
7e79443ce2
Exists in
master
and in
40 other branches
ALSA: ctxfi - Fix microphone boost codes/comments
microphone boost was set at +12dB, not +20dB (like in Windows driver and in adc_conf structure declaration), some comments added. Signed-off-by: Przemyslaw Bruski <pbruskispam@op.pl> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Showing 1 changed file with 18 additions and 10 deletions Side-by-side Diff
sound/pci/ctxfi/cthw20k2.c
... | ... | @@ -1307,10 +1307,10 @@ |
1307 | 1307 | set_field(&pllctl, PLLCTL_B, 0); |
1308 | 1308 | if (48000 == rsr) { |
1309 | 1309 | set_field(&pllctl, PLLCTL_FD, 16 - 2); |
1310 | - set_field(&pllctl, PLLCTL_RD, 1 - 1); | |
1310 | + set_field(&pllctl, PLLCTL_RD, 1 - 1); /* 3000*16/1 = 48000 */ | |
1311 | 1311 | } else { /* 44100 */ |
1312 | 1312 | set_field(&pllctl, PLLCTL_FD, 147 - 2); |
1313 | - set_field(&pllctl, PLLCTL_RD, 10 - 1); | |
1313 | + set_field(&pllctl, PLLCTL_RD, 10 - 1); /* 3000*147/10 = 44100 */ | |
1314 | 1314 | } |
1315 | 1315 | hw_write_20kx(hw, PLL_CTL, pllctl); |
1316 | 1316 | mdelay(40); |
... | ... | @@ -1740,6 +1740,10 @@ |
1740 | 1740 | return data; |
1741 | 1741 | } |
1742 | 1742 | |
1743 | +#define MIC_BOOST_0DB 0xCF | |
1744 | +#define MIC_BOOST_STEPS_PER_DB 2 | |
1745 | +#define MIC_BOOST_20DB (MIC_BOOST_0DB + 20 * MIC_BOOST_STEPS_PER_DB) | |
1746 | + | |
1743 | 1747 | static int hw_adc_input_select(struct hw *hw, enum ADCSRC type) |
1744 | 1748 | { |
1745 | 1749 | u32 data; |
... | ... | @@ -1751,10 +1755,12 @@ |
1751 | 1755 | hw_write_20kx(hw, GPIO_DATA, data); |
1752 | 1756 | hw20k2_i2c_write(hw, MAKE_WM8775_ADDR(WM8775_ADCMC, 0x101), |
1753 | 1757 | MAKE_WM8775_DATA(0x101)); /* Mic-in */ |
1754 | - hw20k2_i2c_write(hw, MAKE_WM8775_ADDR(WM8775_AADCL, 0xE7), | |
1755 | - MAKE_WM8775_DATA(0xE7)); /* +12dB boost */ | |
1756 | - hw20k2_i2c_write(hw, MAKE_WM8775_ADDR(WM8775_AADCR, 0xE7), | |
1757 | - MAKE_WM8775_DATA(0xE7)); /* +12dB boost */ | |
1758 | + hw20k2_i2c_write(hw, | |
1759 | + MAKE_WM8775_ADDR(WM8775_AADCL, MIC_BOOST_20DB), | |
1760 | + MAKE_WM8775_DATA(MIC_BOOST_20DB)); /* +20dB */ | |
1761 | + hw20k2_i2c_write(hw, | |
1762 | + MAKE_WM8775_ADDR(WM8775_AADCR, MIC_BOOST_20DB), | |
1763 | + MAKE_WM8775_DATA(MIC_BOOST_20DB)); /* +20dB */ | |
1758 | 1764 | break; |
1759 | 1765 | case ADC_LINEIN: |
1760 | 1766 | data &= ~(0x1 << 14); |
... | ... | @@ -1827,10 +1833,12 @@ |
1827 | 1833 | |
1828 | 1834 | hw20k2_i2c_write(hw, MAKE_WM8775_ADDR(WM8775_ADCMC, 0x101), |
1829 | 1835 | MAKE_WM8775_DATA(0x101)); /* Mic-in */ |
1830 | - hw20k2_i2c_write(hw, MAKE_WM8775_ADDR(WM8775_AADCL, 0xE7), | |
1831 | - MAKE_WM8775_DATA(0xE7)); /* +12dB boost */ | |
1832 | - hw20k2_i2c_write(hw, MAKE_WM8775_ADDR(WM8775_AADCR, 0xE7), | |
1833 | - MAKE_WM8775_DATA(0xE7)); /* +12dB boost */ | |
1836 | + hw20k2_i2c_write(hw, | |
1837 | + MAKE_WM8775_ADDR(WM8775_AADCL, MIC_BOOST_20DB), | |
1838 | + MAKE_WM8775_DATA(MIC_BOOST_20DB)); /* +20dB */ | |
1839 | + hw20k2_i2c_write(hw, | |
1840 | + MAKE_WM8775_ADDR(WM8775_AADCR, MIC_BOOST_20DB), | |
1841 | + MAKE_WM8775_DATA(MIC_BOOST_20DB)); /* +20dB */ | |
1834 | 1842 | } else if (mux == 2) { |
1835 | 1843 | /* Configures GPIO data to select Line-in */ |
1836 | 1844 | data &= ~(0x1 << 14); |