#8270: [HDA] very quiet on Lenovo laptop (due to hda mixer?) ---------------------------------+---------------------------- Reporter: ttcoder | Owner: korli Type: bug | Status: new Priority: normal | Milestone: R1 Component: Drivers/Audio/HDA | Version: R1/Development Resolution: | Keywords: Blocked By: | Blocking: Has a Patch: 0 | Platform: All ---------------------------------+---------------------------- Comment (by ttcoder): @korli - Found it! Found why the mixer is so quiet, and a one-liner "fix" (so ''now'' I can more credibly call for this ticket being closed in the near future I guess ;-). The quietness of the mixer does not come from the initial hardware setup, it is due to the configuration done at the very end inside hda_multi_audio.cpp, which generates these lines in the syslog: {{{ KERN: set_mix: 23 mixer: 0 KERN: set_mix: 23 mixer unmuting 0 (1737000) KERN: set_mix: 23 mixer muting 1 (1737100) KERN: set_mix: 23 mixer muting 2 (1737200) KERN: set_mix: 23 mixer muting 3 (1737300) KERN: set_mix: 23 mixer muting 4 (1737400) }}} After some trial and error I've found out that if I insert this line in the middle of the set_mix() for() loop: '''verb[j]=0;''' everything is in order again: I have a normal audio volume... AND I believe this has fixed the Line-In bug for me also. To wit, with this zero-verb line added I really was able to roll back all the other changes, roll back the mixer bypass and the AMP_CAP_OFFSET changes ..etc, such that running "git diff" yields this and only this: {{{ /boot/common/cache/tmp/....haiku..../haiku/src/add- ons/kernel/drivers/audio/hda> git diff diff --git a/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp b/src/add-ons/kerne index 14fcd56..377ed88 100644 --- a/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp +++ b/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp @@ -801,6 +801,7 @@ set_mix(hda_audio_group* audioGroup, multi_mix_value_info * mmvi) | AMP_SET_LEFT_CHANNEL | AMP_SET_RIGHT_CHANNEL | AMP_SET_INPUT_INDEX(j) | ((mmvi->values[i].mux == j) ? 0 : AMP_MUTE)); +verb[j]=0; TRACE("set_mix: %ld mixer %smuting %ld (%lx)\n", control- (mmvi->values[i].mux == j) ? "un" : "", j, verb[j } /boot/common/cache/tmp/....haiku..../haiku/src/add- ons/kernel/drivers/audio/hda> git status # On branch master # (..) }}} I've also tried to comment out the whole block but IIRC things don't work as well as they do when sending '0' verbs as above. So what is the purpose of that whole AMP_SET_INPUT,AMP_SET_LEFT_CHANNEL business ..etc ? And do you want me to try some other changes to track this down more thoroughly ? Thanks. -- Ticket URL: <http://dev.haiku-os.org/ticket/8270#comment:8> Haiku <http://dev.haiku-os.org> Haiku - the operating system.