Commit 19002fd5f1ba452ba13491f97da65367f80e09a8

Authored by Przemyslaw Bruski
Committed by Takashi Iwai
1 parent 7e79443ce2

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);