All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Rosin <peda@axentia.se>
To: Mark Brown <broonie@kernel.org>,
	Peter Rosin <peda@lysator.liu.se>,
	Lars-Peter Clausen <lars@metafoo.de>
Cc: "alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH 1/2] ASoC: tfa9879: New driver for NXP Semiconductors TFA9879 amplifier.
Date: Thu, 6 Nov 2014 14:37:31 +0000	[thread overview]
Message-ID: <8798d3c4cf124aa9879225d08d8477f5@EMAIL.axentia.se> (raw)
In-Reply-To: <20141106133720.GG8509@sirena.org.uk>

Thanks for the review! I'm answering here, but would like to thank
Lars-Peter for the review as well.

Mark Brown wrote:
> On Thu, Nov 06, 2014 at 01:54:00PM +0100, Peter Rosin wrote:
> 
> > +#define TFA9879_REG(codec, reg, field, value) 	\
> > +	snd_soc_update_bits(codec, TFA9879_ ## reg,			\
> > +			    TFA9879_ ## field ## _MASK, 	\
> > +			    (value) << TFA9879_ ## field ## _SHIFT)
> 
> Please don't do stuff like this, it just makes the code look more obscure than
> it should be for people who work with multiple devices - just use
> update_bits() directly.

Ok, I'll zap it. Pity though, I really liked the actual code even if the macro was a
bit hard to digest...

> > +static int tfa9879_prepare(struct snd_pcm_substream *substream,
> > +			   struct snd_soc_dai *dai)
> > +{
> > +	struct snd_soc_codec *codec = dai->codec;
> > +
> > +	TFA9879_REG(codec, DEVICE_CONTROL, POWERUP, 1);
> 
> Use DAPM to manage power, you're probably looking for a supply widget.

I'll try to find out how to hook that up. BTW, there is very limited info about
the supply widget at http://www.alsa-project.org/main/index.php/DAPM

> > +	switch (params_format(params)) {
> > +	case SNDRV_PCM_FORMAT_S16_LE:
> 
> Use params_width() rather than a specific memory layout.

Ok.

> > +	if (tfa9879->lsb_justified)
> > +		TFA9879_REG(codec, SERIAL_INTERFACE_1, I2S_SET,
> i2s_set);
> 
> Why does this need to be reset every time, shouldn't we just be setting the
> register in set_fmt().?

Yes, I'd sure like to do that, but how do I get to the width in set_fmt()?

> > +static int tfa9879_probe(struct snd_soc_codec *codec) {
> > +	struct tfa9879_priv *tfa9879 = snd_soc_codec_get_drvdata(codec);
> > +
> > +	codec->control_data = tfa9879->regmap;
> 
> This is redundant, just remove the entire function - ASoC will get the regmap
> automatically.

Oops, sorry. Forward-porting in progress...

> > +	{ TFA9879_MISC_STATUS,		0x0000 }, /* 0x15, read-only */
> > +};
> > +
> > +static bool tfa9879_volatile_register(struct device *dev, unsigned
> > +int reg) {
> > +	return reg == TFA9879_MISC_STATUS;
> 
> If the register is volatile it shouldn't have a default value provided.

Then I misunderstood what volatile was meant to do. I'll just nuke the
function. It works fine anyway...

I'll send a v2 later, with the other bits from Lars-Peter taken care of, and
with 2/2 squashed. Need to test first though...

Cheers,
Peter


  reply	other threads:[~2014-11-06 14:40 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-06 12:53 NXP Semiconductors TFA9879 Amplifier Driver Peter Rosin
2014-11-06 12:53 ` Peter Rosin
2014-11-06 12:54 ` [PATCH 1/2] ASoC: tfa9879: New driver for NXP Semiconductors TFA9879 amplifier Peter Rosin
2014-11-06 13:27   ` [alsa-devel] " Lars-Peter Clausen
2014-11-06 13:37   ` Mark Brown
2014-11-06 14:37     ` Peter Rosin [this message]
2014-11-06 16:02       ` Mark Brown
2014-11-06 16:02         ` Mark Brown
2014-11-06 16:39         ` [v2] NXP Semiconductors TFA9879 Amplifier Driver Peter Rosin
2014-11-06 16:39           ` Peter Rosin
2014-11-06 16:39           ` [PATCH v2] ASoC: tfa9879: New driver for NXP Semiconductors TFA9879 amplifier Peter Rosin
2014-11-07 11:17             ` Mark Brown
2014-11-08 13:40               ` NXP Semiconductors TFA9879 Amplifier Driver Peter Rosin
2014-11-08 13:40                 ` Peter Rosin
2014-11-08 13:40                 ` [PATCH v3] ASoC: tfa9879: New driver for NXP Semiconductors TFA9879 amplifier Peter Rosin
2014-11-09  9:46                   ` Mark Brown
2014-11-06 12:54 ` [PATCH 2/2] ASoC: tfa9879: Add bass and treble gain/freq controls Peter Rosin
2014-11-06 12:54   ` Peter Rosin
2014-11-06 13:17   ` [alsa-devel] " Lars-Peter Clausen
2014-11-06 13:40   ` Mark Brown
2014-11-06 13:15 ` NXP Semiconductors TFA9879 Amplifier Driver Frans Klaver

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8798d3c4cf124aa9879225d08d8477f5@EMAIL.axentia.se \
    --to=peda@axentia.se \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=lars@metafoo.de \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peda@lysator.liu.se \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.