[alsa-devel] [PATCH v6 1/2] ASoC: cs35l33: Initial commit of the cs35l33 CODEC driver.

Handrigan, Paul Paul.Handrigan at cirrus.com
Tue Jun 7 00:23:50 CEST 2016



On 6/6/16, 1:31 PM, "Mark Brown" <broonie at kernel.org> wrote:

>On Fri, Jun 03, 2016 at 03:09:05PM -0500, Paul.Handrigan at cirrus.com wrote:
>
>> +		regmap_update_bits(cs35l33->regmap, CS35L33_CLK_CTL,
>> +			CS35L33_MCLKDIV2, CS35L33_MCLKDIV2);
>> +			cs35l33->mclk_int = freq/2;
>
>Coding style, spaces around /.
Thanks!


>
>> +       if (CS35L33_VBSTMON_OVFL & sticky_val2)
>> +               dev_err(codec->dev,
>> +                       "ERROR: VPMON Overflow Interrupt\n");
>
>Cut'n'paste.

Thanks!
>
>> +	/* Make sure that the bits are cleared */
>> +	for (i = 0; i < CS35L33_INT_ATTEMPTS; i++) {
>> +		regmap_read(cs35l33->regmap, CS35L33_INT_STATUS_1,
>> +			&sticky_val1);
>> +		regmap_read(cs35l33->regmap, CS35L33_INT_STATUS_2,
>> +			&sticky_val2);
>> +
>> +		if (!(sticky_val1 & ~mask1) && !(sticky_val2 & ~mask2))
>> +			break;
>> +	}
>
>I still don't understand this.  If these interrupts are clear on read
>(which seems to be the case since we don't ack anything?) then these
>repeated reads are obviously just going to ignore interrupts.  I really
>hope that the masking also applies to the clear on read behaviour but
>that's a separate thing.
>
>I'm guessing the hardware is just broken here but it's not clear to me
>that just letting the interrupt fire a couple of extra times isn't the
>best solution and we need a clear explanation of what this is trying to
>accomplish and why so that the code is maintainable.

It is just to ensure that the unmasked bits are cleared. We can remove this
code all together.


>
>> +       ret = request_threaded_irq(i2c_client->irq, NULL,
>>cs35l33_irq_thread,
>> +                       IRQF_ONESHOT | IRQF_TRIGGER_LOW, "cs35l33",
>>cs35l33);
>> +       if (ret != 0)
>> +               dev_err(&i2c_client->dev, "Failed to request IRQ:
>>%d\n", ret);
>
>But otherwise ignore the error?

This really should be a warning.  The device can be used without an
interrupt pin.
This should be devm_ as well.

>



More information about the Alsa-devel mailing list