alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: rajeev <rajeev-dlh.kumar@st.com>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: "tiwai@suse.de" <tiwai@suse.de>,
	"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>,
	"lrg@slimlogic.co.uk" <lrg@slimlogic.co.uk>
Subject: Re: [PATCH 2/2] sound: asoc: Adding support for STA529 Audio Codec
Date: Fri, 18 Mar 2011 11:42:33 +0530	[thread overview]
Message-ID: <4D82F7D1.3070704@st.com> (raw)
In-Reply-To: <20110317151743.GH31411@opensource.wolfsonmicro.com>

Hi Mark

Thanks for your review feedback. 
Please find my answer inline.

On 3/17/2011 8:47 PM, Mark Brown wrote:
> On Thu, Mar 17, 2011 at 04:53:36PM +0530, Rajeev Kumar wrote:
> 
>> +#define STA529_VERSION "0.1"
>> +static const u8 sta529_reg[STA529_CACHEREGNUM] = {
> 
> Remove the version number, the kernel version should be good enough.
> Also check the vertical spacing in your code - there should be a blank
> between the above two.
>
OK
 
>> +/* reading from register cache: sta529 register value */
>> +static inline unsigned int
>> +sta529_read_reg_cache(struct snd_soc_codec *codec, u32 reg)
> 
> Use the generic register cache code - this looks to be a very 8 bit data
> 8 bit address map.
>
Could you please explain little bit more
 
>> +	val = sta529_read_reg_cache(codec, STA529_S2PCFG0);
>> +	val |= mode;
>> +	/*this setting will be used with actual h/w */
>> +	sta529_write(codec, STA529_S2PCFG0, val);
> 
> Use snd_soc_update_bits() - this will fix the issue you currently have
> where you'll never clear bits which were previously set.
> 
OK

>> +spear_sta_set_dai_sysclk(struct snd_soc_dai *codec_dai, int clk_id,
>> +		unsigned int freq, int dir)
>> +{
>> +	int ret = -EINVAL;
>> +	struct clk *clk;
>> +
>> +	clk = clk_get_sys(NULL, "i2s_ref_clk");
>> +	if (IS_ERR(clk)) {
>> +		ret = PTR_ERR(clk);
>> +		goto err_clk;
>> +	}
>> +	if (clk_set_rate(clk, freq))
>> +		goto err_put_clk;
> 
> Your CODEC driver shouldn't be requesting clocks that are part of the
> CPU.  Just let the machine driver tell you what the clock rate is and
> let it worry about making sure the clock is actually there.
> 
OK,
This should be the part of platform code,The function itself is not required

>> +	struct snd_soc_codec *codec = dai->codec;
>> +
>> +	u8 mute_reg = sta529_read_reg_cache(codec, STA529_FFXCFG0) &
>> +		~CODEC_MUTE_VAL;
>> +
>> +	if (mute)
>> +		mute_reg |= CODEC_MUTE_VAL;
>> +
>> +	sta529_write(codec, STA529_FFXCFG0, mute_reg);
> 
> snd_soc_update_bits().
> 
OK

>> +	switch (level) {
>> +	case SND_SOC_BIAS_ON:
>> +	case SND_SOC_BIAS_PREPARE:
>> +		sta529_write(codec, STA529_FFXCFG0, sts & POWER_STBY);
>> +		break;
>> +	case SND_SOC_BIAS_STANDBY:
>> +	case SND_SOC_BIAS_OFF:
>> +		sta529_write(codec, STA529_FFXCFG0, sts | ~POWER_STBY);
>> +
>> +		break;
> 
> Odd indentation here too.
>
OK
 
>> +	dev_info(codec->dev, "spear Audio Codec %s", STA529_VERSION);
> 
> Remove this - if you were reading something like the chip revision from
> the device announcing that would be fine.
> 
OK

>> +	cache = codec->reg_cache;
>> +	for (i = 0; i < ARRAY_SIZE(sta529_reg); i++) {
>> +		data[0] = i;
>> +		data[1] = cache[i];
>> +		codec->hw_write(codec->control_data, data, NUM_OF_MSG);
>> +	}
> 
> You should be using the chip defaults for the most part and therefore
> should have no reason to write back to hardware in probe()
>
Actually the default values at INIT are not working for all possible
play and record combination. I have kept the STA529 register combinations that
work well here and write the same to HW. 

However if you insist, I would try to change them at run-time, rather
than writing to HW in probe()

 
>> +		.name = "sta529-codec",
> 
> Drop the -codec.
> 
I am using stream_name  as "STA529" in  machine driver,so it will create confusion. 

>> +#define SPEAR_PCM_RATES		SNDRV_PCM_RATE_48000
>> +#define SPEAR_PCM_FORMAT	SNDRV_PCM_FMTBIT_S16_LE
> 
> These are for your CPU not for your CODEC, even if they're the same they
> should have different names.
Ok, will be replace with SPEAR_RATES

> 
>> +#define	S2PC_VALUE		0x98
>> +#define CLOCK_OUT		0x60
>> +#define LEFT_J_DATA_FORMAT	0x00
>> +#define I2S_DATA_FORMAT		0x02
>> +#define RIGHT_J_DATA_FORMAT	0x04
>> +#define RIGHT_J_DATA_FORMAT	0x04
>> +#define CODEC_MUTE_VAL		0x80
>> +#define NUM_OF_MSG		2
>> +#define POWER_STBY		0xBF
> 
> All these should be namespaced or moved into the driver.
> .
Ok

Best Rgds
Rajeev
> 

  reply	other threads:[~2011-03-18  6:15 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-17 11:23 [PATCH 0/2] Adding support for ASoC drivers on SPEAr13XX platform Rajeev Kumar
2011-03-17 11:23 ` [PATCH 1/2] sound: asoc: Adding support for SPEAr13XX ASoC driver Rajeev Kumar
2011-03-17 11:23   ` [PATCH 2/2] sound: asoc: Adding support for STA529 Audio Codec Rajeev Kumar
2011-03-17 15:17     ` Mark Brown
2011-03-18  6:12       ` rajeev [this message]
2011-03-18 11:39         ` Mark Brown
2011-03-21 11:29           ` rajeev
2011-03-21 12:07             ` Mark Brown
2011-03-22  5:53               ` rajeev
2011-03-22 11:34                 ` Mark Brown
2011-03-17 15:05   ` [PATCH 1/2] sound: asoc: Adding support for SPEAr13XX ASoC driver Mark Brown
2011-03-18  7:19     ` rajeev
2011-03-18 11:43       ` Mark Brown
2011-03-21 11:29         ` rajeev
2011-03-29  6:54     ` rajeev
2011-03-29  7:56       ` Mark Brown

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=4D82F7D1.3070704@st.com \
    --to=rajeev-dlh.kumar@st.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=lrg@slimlogic.co.uk \
    --cc=tiwai@suse.de \
    /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;
as well as URLs for NNTP newsgroup(s).