[alsa-devel] [PATCH RESEND 0/2] ALSA SOC driver for uda134x codec
christian pellegrin
chripell at gmail.com
Fri Nov 14 17:30:54 CET 2008
On Fri, Nov 14, 2008 at 11:55 AM, Mark Brown <broonie at sirena.org.uk> wrote:
> On Thu, Nov 13, 2008 at 04:41:30PM +0100, Christian Pellegrin wrote:
>
> A couple of minor procedural points:
> - Normally the patches in a series are numbered starting from 1 with
> mail 0 being a cover letter ("This series does..." or similar).
> - Information like the "Generated on" should go after the --- with the
> diffstat so that it doesn't go in the commit message.
>
ack
>> +++ b/include/sound/uda134x.h
>
>> +extern struct snd_soc_dai uda134x_dai;
>> +extern struct snd_soc_codec_device soc_codec_dev_uda134x;
>
> At least this should be in a header sound/soc/codecs - as I said
> previously that is the idiom used by codec drivers. However...
>
ack
>
> ...putting this in a separate file in include/sound is a good idea.
>
> Is having UDA1340 as zero a good idea - that'll mean that if someone
> forgets to initialise the model it'll come out as UDA1340? It might be
> better to start the model numbers from 1 so that it'll be obvious if
> that happens. Might also be an idea to use an enum rather than the
> series of #defines?
>
good point, ack
>> --- a/sound/soc/codecs/Makefile
>> +++ b/sound/soc/codecs/Makefile
>> @@ -8,6 +8,8 @@ snd-soc-tlv320aic23-objs := tlv320aic23.o
>> snd-soc-tlv320aic26-objs := tlv320aic26.o
>> snd-soc-tlv320aic3x-objs := tlv320aic3x.o
>> snd-soc-twl4030-objs := twl4030.o
>> +snd-soc-l3-objs := l3.o
>> +snd-soc-uda134x-objs := uda134x.o
>
> Please keep this and the other build stuff sorted (it helps merges).
>
I'll sort alphabetically
>> + if (reg >= UDA134X_REGS_NUM) {
>> + printk(KERN_ERR "%s unkown register: reg: %d",
>> + __func__, reg);
>
> Could use pr_error() here and elsewhere but doesn't make much difference
> either way - up to you.
>
didn't know about it. The next driver will use it because it's shorter.
>> + pr_debug("%s costrining to %d bits at %d\n", __func__,
>
> constraining.
>
ack
>> + codec->write(codec, i, *cache++);
>> + /* ADC, DAC on */
>> + reg = uda134x_read_reg_cache(codec, UDA134X_STATUS1);
>> + uda134x_write(codec, UDA134X_STATUS1, reg | 0x03);
>> + break;
>
> This should probably be done when going into SND_SOC_BIAS_STANDBY or at
> least _PREPARE. The codec will be brought up to _ON whenever a playback
> or record is active, spending most of the rest of the time at _STANDBY.
> The result will be that you're syncing the register cache to the codec
> every time playback starts, even if the codec is already on. _ON is
> expected to be very quick.
ack, I was thinking to put it in prepare but I wasn't sure.
>
>> +EXPORT_SYMBOL(uda134x_dai);
>
> Note that since ASoC core is all EXPORT_SYMBOL_GPL() it'll be difficult
> for anyone to actually use this from non-GPLed code.
>
ack
>> + printk(KERN_ERR "UDA134X SoC codec: "
>> + "unsupported model\n");
>> + return -EINVAL;
>
> Probably worth printing out what the model was set to if it's not
> recognised.
>
ack
>
> The #else should be with the definition of the functions so there's no
> need for a conditional here.
>
ack
--
Christian Pellegrin, see http://www.evolware.org/chri/
"Real Programmers don't play tennis, or any other sport which requires
you to change clothes. Mountain climbing is OK, and Real Programmers
wear their climbing boots to work in case a mountain should suddenly
spring up in the middle of the computer room."
More information about the Alsa-devel
mailing list