Re: [PATCH] ASoC: Add PCM1681 codec driver.

From: Marek Belisko
Date: Thu Jun 27 2013 - 03:53:11 EST


Hi Mark,
On 06/26/2013 04:30 PM, Mark Brown wrote:
On Wed, Jun 26, 2013 at 03:05:28PM +0200, Marek Belisko wrote:

+#define PCM1681_ATT_CONTROL(X) (X <= 6 ? X : X + 9) /* Attenuation level */

Write a function for this.
This macro is used when creating controls for channels volume so this cannot be rewritten to function. I also thinking about updating macro name to PCM1681_CHANNEL_VOL(X).

+static bool pcm1681_writeable_reg(struct device *dev, unsigned register reg)
+{
+ return pcm1681_accessible_reg(dev, reg) &&
+ (reg != PCM1681_ZERO_DETECT_STATUS);
+}

+static int pcm1681_digital_mute(struct snd_soc_dai *dai, int mute)
+{
+ struct snd_soc_codec *codec = dai->codec;
+ struct pcm1681_private *priv = snd_soc_codec_get_drvdata(codec);
+ int ret, val = 0;
+
+ if (mute)
+ val = PCM1681_SOFT_MUTE_ALL;
+

This would be clearer if written as an if .. else - otherwise it looks
like an uninitalised value might be used.
OK.

+static int pcm1681_hw_params(struct snd_pcm_substream *substream,
+ struct snd_pcm_hw_params *params,
+ struct snd_soc_dai *dai)
+{
+ struct snd_soc_codec *codec = dai->codec;
+ struct pcm1681_private *priv = snd_soc_codec_get_drvdata(codec);
+ int val = 0;
+ int pcm_format = params_format(params);
+
+ priv->rate = params_rate(params);
+

Shouldn't there be a call to set the deemphasis here?
Right. I'll add it here.

+static int pcm1681_probe(struct snd_soc_codec *codec)
+{
+ return 0;
+}
+
+static int pcm1681_remove(struct snd_soc_codec *codec)
+{
+ return 0;
+}

Remove empty functions.
Will do.


Thanks,

marek

--
Marek Belisko

Software Developer
StreamUnlimited Engineering GmbH
Gutheil Schodergasse 8-12
A-1100 Vienna, Austria

Office: +421 267200087

e-mail: marek.belisko@xxxxxxxxxxxxxxxxxxx
http://www.streamunlimited.com

Meet us at:

IFA - Berlin, 6-11 September
CEDIA - Denver, 25-28 September
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/