This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TLV320ADC6140: Bug report: tlv320adcx140 driver adcx140_snd_controls register assignments

Part Number: TLV320ADC6140

The tlv320adcx140 driver has a bug in the definition of adcx140_snd_controls.  From the file tlv320adcx140.c line 444:

static const struct snd_kcontrol_new adcx140_snd_controls[] = {

        SOC_SINGLE_TLV("Analog CH1 Mic Gain Volume", ADCX140_CH1_CFG1, 2, 42, 0,

                        adc_tlv),

        SOC_SINGLE_TLV("Analog CH2 Mic Gain Volume", ADCX140_CH1_CFG2, 2, 42, 0,

                        adc_tlv),

        SOC_SINGLE_TLV("Analog CH3 Mic Gain Volume", ADCX140_CH1_CFG3, 2, 42, 0,

                        adc_tlv),

        SOC_SINGLE_TLV("Analog CH4 Mic Gain Volume", ADCX140_CH1_CFG4, 2, 42, 0,

                        adc_tlv),

The definition is assigning the four registers associated with channel 1 with the sound controls, as opposed to assigning the CFG1 register for each of the four channels.  The correct definition should be:

static const struct snd_kcontrol_new adcx140_snd_controls[] = {

        SOC_SINGLE_TLV("Analog CH1 Mic Gain Volume", ADCX140_CH1_CFG1, 2, 42, 0,

                        adc_tlv),

        SOC_SINGLE_TLV("Analog CH2 Mic Gain Volume", ADCX140_CH2_CFG1, 2, 42, 0,

                        adc_tlv),

        SOC_SINGLE_TLV("Analog CH3 Mic Gain Volume", ADCX140_CH3_CFG1, 2, 42, 0,

                        adc_tlv),

        SOC_SINGLE_TLV("Analog CH4 Mic Gain Volume", ADCX140_CH4_CFG1, 2, 42, 0,

                        adc_tlv),