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

Takashi Iwai tiwai at suse.de
Tue May 30 23:19:41 EST 2006


At Tue, 30 May 2006 14:43:16 +0200,
Johannes Berg wrote:
> 
> 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 :)

Ah, OK it's anyway same...

> > > +	/* 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...

Yes, in principle.  As mentioned, it works even without the check,
though.

> > > +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?

Well, I meant the position of asterisk to follow the conventional C
coding style.  Of course it should be static.

> > > +	aoa_snd_ctl_add(snd_ctl_new1(&volume_control, tas));
> > 
> > Error checks please.
> 
> What should it do on such errors?

The driver should give up the initialization and fail to load.
Usually the error from snd_ctl_add() is critical, either no memory or
a duplicated control element is found.


Takashi



More information about the Linuxppc-dev mailing list