At Tue, 15 Jan 2008 08:38:31 +1030 (CST), Jonathan Woithe wrote:
Hi
[ ALC268 test model ]
But it doesn't work correctly, because when running alsamixer, dmesg tells "hda_codec: num_steps = 0 for NID=0x1d", and alsamixer fails with alsamixer: function snd_mixer_load failed: Invalid argument.
0x1d is the PCBEEP. Maybe it's disabled somehow although it's listed in the datasheet. The patch below should fix.
Perhaps it's disabled or not implemented in the chip implementation used in this particular laptop. While the "official" ALC268 documents this control and presumedly implements it, maybe others who use the ALC268 core in their own chips don't.
If the above messages are non-fatal then it may be slightly premature to disable the PCBEEP control in the test model mixer. So long as the lack of this control in certain hardware doesn't cause loss of functionality on those systems I would suggest its better if the test model keeps this control so it is available for those people whose ALC268 does in fact implement this control. At the end of the day the test model is just a diagnostic aid, so if it emits some non-fatal messages on some hardware I don't really think that's a problem.
Let's disable it unless we implement a proper probe code. The pc-beep isn't that important feature after all ;)
To make it more robust, you can check the AMP capability at first before registering the mixer element. But, this would make the code a bit more complicated. So, unless any other vital controls have the same issue, let's fix in ad hoc way.
Takashi