SectionDevice."Speaker" { Comment "Mono Speaker" ConflictingDevice [ "Headphones" ] EnableSequence [ # On most (all?) devices with a single / mono speaker an # amplifier with a differential input connected between LOUT # right and left is used. We deal with this by silencing the # right output and mixing left + right to the left output. # # An alternative approach for devices using the differential # setup would be to set bit 15 of register 5 in the codec, # which turns the stereo unbalanced line out into a mono # balanced line out. # # This possibility was discovered after we already shipped the # current solution and the current solution has the advantage # of also working on devices which only use LOUT left in # unbalanced mode. The net result is the same for devices using # the differential setup, so we just stick with what we have. cset "name='Stereo DAC MIXR DAC R1 Switch' off" cset "name='Stereo DAC MIXL DAC R1 Switch' on" cset "name='Speaker Switch' on" cset "name='LOUT L Playback Switch' on" # Done after turning the speaker on to keep the bias and clk on cset "name='Headphone Switch' off" cset "name='HPO L Playback Switch' off" cset "name='HPO R Playback Switch' off" ] DisableSequence [ # Disabling the switches is done by the Speaker EnableSeq # Undo mono mapping cset "name='Stereo DAC MIXL DAC R1 Switch' off" cset "name='Stereo DAC MIXR DAC R1 Switch' on" ] Value { PlaybackPriority 100 PlaybackPCM "hw:${CardId}" } }