RE: [PATCH] ASoC: da732x: Mark DC offset control registers volatile

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 24 Feb 2014 03:01:37 +0000, Mark Brown wrote:

> From: Mark Brown <broonie@xxxxxxxxxx>
> 
> The driver reads from the DC offset control registers during callibration
> but since the registers are marked as volatile and there is a register
> cache the values will not be read from the hardware after the first reading
> rendering the callibration ineffective.
 
Guessing that should read 'not marked as volatile'.

> It appears that the driver was originally written for the ASoC level
> register I/O code but converted to regmap prior to merge and this issue
> was missed during the conversion as the framework level volatile register
> functionality was not being used.

Yes you're correct here, unfortunately. A good spot.

> +static bool da732x_volatile(struct device *dev, unsigned int reg)
> +{
> +	switch (reg) {
> +	case DA732X_REG_HPL_DAC_OFF_CNTL:
> +	case DA732X_REG_HPR_DAC_OFF_CNTL:
> +		return true;
> +	default:
> +		return false;
> +	}
> +}
> +

Having looked over the driver again, can you include the following
registers as well: 

DA732X_REG_HPL
DA732X_REG_HPR

Also, if we're doing this then you can move to using snd_soc_read()
instead of hw_read(), I guess.
��.n��������+%������w��{.n�����������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f





[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]