At Thu, 21 May 2009 20:25:53 +0200, Andreas Mohr wrote:
Hi all,
On my i8k, I'm getting this on bootup (2.6.30-rc5):
ALSA sound/core/control.c:232: Control name 'Sigmatel Surround Phase Inversion Playback Switch' truncated to 'Sigmatel Surround Phase Inversion Playback '
I would quickly have submitted a patch for this (and similar items), problem is:
- what to fix: control name or struct definition?
- "Sigmatel Surround" might be a relatively important prefix, thus removing "Sigmatel " from relevant names possibly not a good idea
The word "Sigmatel" is superfluous, IMO. Just removing it should suffice...
(snip)
struct snd_ctl_elem_id { unsigned int numid; /* numeric identifier, zero = invalid */ snd_ctl_elem_iface_t iface; /* interface identifier */ unsigned int device; /* device/client number */ unsigned int subdevice; /* subdevice (substream) number */ unsigned char name[44]; /* ASCII name of item */ unsigned int index; /* index of item */ };
I suppose (well, DAMN sure) that name is only 44 bytes due to exactly 64-byte cacheline-compatible struct alignment status.
Not due to cacheline. It's just an initial definition, supposed to be large enough (but not obviously for some stupid case like this).
Given that snd_ctl_elem_id 64 byte is a rather hard and arguably important limit, I'd suggest changing the names, but how?
Unfortunately Sigmatel Surround PhaseInvert Playback Switch doesn't fit the bill either, since it's one char too long. Thus it will probably be Surround Phase Inversion Playback Switch (and thus changing "Sigmatel Surround" at all affected controls)
"Sigmatel Surround" is used just because "Surround" already exists. No really need to sync with the phase inversion switch, IMO.
The overall "Sigmatel" there looks really weird. But, I don't want to screw up things at this stage just for "looks ugly"...
thanks,
Takashi