[Alsa-devel] [RFC 4/7] snd-aoa: add codecs

Johannes Berg johannes at sipsolutions.net
Tue May 30 22:43:16 EST 2006


On Mon, 2006-05-29 at 14:08 +0200, Takashi Iwai wrote:
> > +	if (reg != ONYX_REG_CONTROL) {
> > +		*value = onyx->cache[reg-FIRSTREGISTER];
> > +		return 0;
> > +	}
> > +	v = i2c_smbus_read_byte_data(&onyx->i2c, reg);
> > +	if (v < 0)
> > +		return -1;
> > +	*value = (u8)v;
> > +	onyx->cache[ONYX_REG_CONTROL-FIRSTREGISTER] = *value;
> 
> Isn't it "reg - FIRSTREGISTER" ?

Nah, look at the first line I quoted :)


> I'd define a constant for 128.

#define OFFSET_BECAUSE_ALSA_USERSPACE_PROGRAMS_SUCK 128
;)

Just kidding, will do.

> Fold lines to fit with 80 columns (heh, blaming other one's code is
> easy :)

Heh. I thought I'd Lindent'ed most of it.

> > +	/* FIXME: we could be checking if anything changed */
> > +	mutex_unlock(&onyx->mutex);
> > +
> > +	return 1;
> 
> The put callback is supposed to return 0 if the values are unchanged
> (although most apps ignore the return value).

Does it have to? This way there's an event, but...

> > +static u8 initial_values[] = {
> 
> Should have ARRAY_SIZE(register_map) since this size must be identical
> with register_map.

Good point.

> > +#define ADDCTL(n)							\
> > +	do {								\
> > +		ctl = snd_ctl_new1(&n, onyx);				\
> > +		if (ctl) {						\
> > +			ctl->id.device =				\
> > +				onyx->codec.soundbus_dev->pcm->device;	\
> > +			aoa_snd_ctl_add(ctl);				\
> 
> No error check?

Hmm, yeah, I guess it should have error checks. Will revisit that.

> Use strlcpy, or MAX_CODEC_NAME_LEN-1.  Similar lines are found in
> tas driver too.

Right.

> Looks a bit too hacky.  IMO, it's better to define a struct

Maybe I'll just get rid of it completely, it's never hooked up as far as
I know. But yeah, I guess you're right.

> > +static int tas_snd_capture_source_info(struct snd_kcontrol *kcontrol,
> > +	struct snd_ctl_elem_info *uinfo)
> > +{
> > +	static char* texts[] = { "Line-In", "Microphone" };
> 
> char *texts[]

Any particular reason?

> > +/* I need help here!
> 
> Use ifdef.  Nested comments are bad.

I know. Temporary code, probably going away completely.

> > +	aoa_snd_ctl_add(snd_ctl_new1(&volume_control, tas));
> 
> Error checks please.

What should it do on such errors?

Thanks,
johannes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 793 bytes
Desc: This is a digitally signed message part
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20060530/657e46df/attachment.pgp>


More information about the Linuxppc-dev mailing list