[alsa-devel] [PATCH V6] ASoC: pcm179x: Add support for pcm1795 and pcm1796

Mark Brown broonie at kernel.org
Sat Mar 12 06:53:17 CET 2016


On Sat, Mar 12, 2016 at 12:29:00AM +0100, Michael Trimarchi wrote:

> diff --git a/sound/soc/codecs/pcm179x-i2c.c b/sound/soc/codecs/pcm179x-i2c.c
> index 4118106..609f07f 100644
> --- a/sound/soc/codecs/pcm179x-i2c.c
> +++ b/sound/soc/codecs/pcm179x-i2c.c
> @@ -44,12 +44,6 @@ static int pcm179x_i2c_remove(struct i2c_client *client)
>  	return pcm179x_common_exit(&client->dev);
>  }
>  
> -static const struct of_device_id pcm179x_of_match[] = {
> -	{ .compatible = "ti,pcm1792a", },
> -	{ }
> -};
> -MODULE_DEVICE_TABLE(of, pcm179x_of_match);
> -

One effect of moving this out of the I2C driver is to break module
autoloading: currently modutils does not pay attention to the reference
from the driver structure to the ID table but instead just looks at the
MODULE_DEVICE_TABLE.  This is a problem with some existing devices but
we shouldn't introduce new instances.

I don't actually know if MODULE_DEVICE_TABLE can reference an object in
a different file off the top of my head, though a brief test suggests it
has issues.

> +static int pcm179x_startup(struct snd_pcm_substream *substream,
> +			    struct snd_soc_dai *dai)
> +{
> +	struct snd_soc_codec *codec = dai->codec;
> +	struct pcm179x_private *priv = snd_soc_codec_get_drvdata(codec);
> +	u64 formats = PCM1792A_FORMATS;
> +
> +	switch (priv->codec_model) {
> +	case PCM1795:
> +		formats = PCM1795_FORMATS;
> +		break;

It would be more data driven to just register a different DAI structure
for the 1795.  Both approaches work, it's just a little nicer to avoid
code where possible.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20160312/6a0d2ad0/attachment.sig>


More information about the Alsa-devel mailing list