[alsa-devel] [PATCH v7] ASoC: add RT286 CODEC driver
Mark Brown
broonie at kernel.org
Fri Jul 4 19:50:35 CEST 2014
On Fri, Jun 20, 2014 at 02:41:13PM +0800, bardliao at realtek.com wrote:
> From: Bard Liao <bardliao at realtek.com>
>
> This patch adds Realtek ALC286 codec driver.
I've applied this but there are small number of remaining issues which
should be fixed - please send followup patches for them.
> +static int rt286_probe(struct snd_soc_codec *codec)
> +{
> + struct rt286_priv *rt286 = snd_soc_codec_get_drvdata(codec);
> + int i, ret;
> +
> + ret = snd_soc_read(codec,
> + RT286_GET_PARAM(AC_NODE_ROOT, AC_PAR_VENDOR_ID));
> + if (ret != RT286_VENDOR_ID) {
> + dev_err(codec->dev,
> + "Device with ID register %x is not rt286\n", ret);
> + return -ENODEV;
> + }
Most of this probe function doesn't depend on ASoC at all and so should
be done at the I2C level probe not here - that way errors are detected
earlier and the device is initialised even if the sound card as a whole
isn't ready yet.
> + if (!rt286->pdata.cbj_en) {
> + snd_soc_write(codec, RT286_CBJ_CTRL2, 0x0000);
> + snd_soc_write(codec, RT286_MIC1_DET_CTRL, 0x0816);
> + snd_soc_write(codec, RT286_MISC_CTRL1, 0x0000);
> + snd_soc_update_bits(codec,
> + RT286_CBJ_CTRL1, 0xf000, 0xb000);
> + } else {
> + snd_soc_update_bits(codec,
> + RT286_CBJ_CTRL1, 0xf000, 0x5000);
> + }
> +
> + mdelay(10);
I notice that the resume doesn't have these delays in it - is that not a
problem if the device lost power over suspend?
> + rt286->i2c->irq = 0;
> + if (rt286->i2c->irq) {
The assignment looks like some test code which was left in by mistake.
> + ret = request_threaded_irq(rt286->i2c->irq, NULL, rt286_irq,
> + IRQF_TRIGGER_HIGH | IRQF_ONESHOT, "rt286", rt286);
> + if (ret != 0) {
This is only released in the I2C level remove() (the the fix should be
to move the request to the I2C level probe()).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20140704/04bc7cfc/attachment.sig>
More information about the Alsa-devel
mailing list