From: Mark Brown <broonie@kernel.org>
To: Peter Rosin <peda@axentia.se>
Cc: linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Kumar Gala <galak@codeaurora.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
alsa-devel@alsa-project.org, devicetree@vger.kernel.org
Subject: Re: [PATCH] ASoC: MAX9860: new driver
Date: Wed, 11 May 2016 16:29:50 +0100 [thread overview]
Message-ID: <20160511152950.GL6261@sirena.org.uk> (raw)
In-Reply-To: <1462892797-1147-1-git-send-email-peda@axentia.se>
[-- Attachment #1: Type: text/plain, Size: 1989 bytes --]
On Tue, May 10, 2016 at 05:06:37PM +0200, Peter Rosin wrote:
> + if (master) {
> + switch (max9860->pclk_rate) {
> + case 12000000:
> + sysclk = MAX9860_FREQ_12MHZ;
> + break;
> + case 13000000:
> + sysclk = MAX9860_FREQ_13MHZ;
> + break;
> + case 19200000:
> + sysclk = MAX9860_FREQ_19_2MHZ;
> + break;
> + }
What if we have another PCLK rate?
> +#ifdef CONFIG_PM
> +static int max9860_suspend(struct device *dev)
> +{
> + struct max9860_priv *max9860 = dev_get_drvdata(dev);
> + int ret;
> +
> + ret = regmap_update_bits(max9860->regmap, MAX9860_SYSCLK,
> + MAX9860_PSCLK, MAX9860_PSCLK_OFF);
> + if (ret) {
> + dev_err(dev, "Failed to disable clock: %d\n", ret);
> + return ret;
> + }
> +
> + return 0;
> +}
> +
> +static int max9860_resume(struct device *dev)
> +{
> + struct max9860_priv *max9860 = dev_get_drvdata(dev);
> + int ret;
> +
> + regcache_cache_only(max9860->regmap, false);
> + ret = regcache_sync(max9860->regmap);
We didn't go into cache only mode on suspend? I'd also expect to see
the regulators disabled over suspend and some system PM ops.
> +static int max9860_mclk_rate(struct device *dev, unsigned long *mclk_rate)
> +{
> + struct clk *mclk = clk_get(dev, "mclk");
Request resources on probe, not at some random point in driver
execution. That will mean probe deferral works properly and that we
don't get broken devices instantiated in userspace.
> + ret = clk_prepare_enable(mclk);
> + if (ret) {
> + dev_err(dev, "Failed to enable MCLK: %d\n", ret);
> + clk_put(mclk);
> + return ret;
> + }
> +
> + *mclk_rate = clk_get_rate(mclk);
> +
> + clk_disable_unprepare(mclk);
This is definitely confused too. Enabling the clock to read the
programmed frequency is at best odd, and obviously if we do get the rate
this will ensure that MCLK is disabled which probably isn't ideal.
> +err_pm:
> + pm_runtime_disable(dev);
> + return ret;
> +}
> +EXPORT_SYMBOL_GPL(max9860_probe);
I've no idea why this is exported...
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
next prev parent reply other threads:[~2016-05-11 15:31 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-10 15:06 [PATCH] ASoC: MAX9860: new driver Peter Rosin
2016-05-11 15:09 ` Mark Brown
2016-05-11 20:12 ` Peter Rosin
2016-05-11 20:50 ` Mark Brown
2016-05-12 7:54 ` Peter Rosin
2016-05-12 11:04 ` Mark Brown
2016-05-11 15:29 ` Mark Brown [this message]
2016-05-11 20:28 ` Peter Rosin
2016-05-11 20:53 ` Mark Brown
2016-05-12 8:24 ` Peter Rosin
2016-05-12 10:53 ` Mark Brown
2016-05-14 14:25 ` Rob Herring
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=20160511152950.GL6261@sirena.org.uk \
--to=broonie@kernel.org \
--cc=alsa-devel@alsa-project.org \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=peda@axentia.se \
--cc=perex@perex.cz \
--cc=robh+dt@kernel.org \
--cc=tiwai@suse.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox