conf/ucm: bytcr-rt5651: Add mono speaker output profile

Many rt5651 devices only have a single speaker and even though there is
some external mixing done on the PCB, the quality of that mixing is quite
poor and various sounds come out garbled when relying on the on PCB mixing.

Using the codecs builtin mixer to mix left + right to the left output works
much better. This commits adds a new MonoSpeaker.conf output profile which
allows this.

Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Hans de Goede 2018-08-08 11:05:40 +02:00 committed by Jaroslav Kysela
parent 5c8be23b89
commit 5b39b6b16e
6 changed files with 42 additions and 2 deletions

View file

@ -21,9 +21,9 @@ SectionVerb {
} }
<rt5651/Speaker.conf> <rt5651/Speaker.conf>
<rt5651/MonoSpeaker.conf>
<rt5651/HeadPhones.conf> <rt5651/HeadPhones.conf>
<rt5651/IN1-InternalMic.conf> <rt5651/IN1-InternalMic.conf>
<rt5651/IN2-InternalMic.conf> <rt5651/IN2-InternalMic.conf>
<rt5651/IN12-InternalMic.conf> <rt5651/IN12-InternalMic.conf>

View file

@ -11,6 +11,8 @@ cset "name='IF1 ASRC Switch' on"
cset "name='LOUT L Playback Switch' off" cset "name='LOUT L Playback Switch' off"
cset "name='LOUT R Playback Switch' off" cset "name='LOUT R Playback Switch' off"
cset "name='Stereo DAC MIXL DAC L1 Switch' on" cset "name='Stereo DAC MIXL DAC L1 Switch' on"
cset "name='Stereo DAC MIXL DAC R1 Switch' off"
cset "name='Stereo DAC MIXR DAC L1 Switch' off"
cset "name='Stereo DAC MIXR DAC R1 Switch' on" cset "name='Stereo DAC MIXR DAC R1 Switch' on"
cset "name='Stereo1 ADC MIXR ADC1 Switch' on" cset "name='Stereo1 ADC MIXR ADC1 Switch' on"
cset "name='Stereo1 ADC MIXR ADC2 Switch' on" cset "name='Stereo1 ADC MIXR ADC2 Switch' on"

View file

@ -3,6 +3,7 @@ SectionDevice."Headphones" {
ConflictingDevice [ ConflictingDevice [
"Speaker" "Speaker"
"MonoSpeaker"
] ]
EnableSequence [ EnableSequence [

View file

@ -2,5 +2,5 @@ alsaconfigdir = @ALSA_CONFIG_DIR@
ucmdir = $(alsaconfigdir)/ucm/rt5651 ucmdir = $(alsaconfigdir)/ucm/rt5651
ucm_DATA = EnableSeq.conf HeadPhones.conf IN1-InternalMic.conf \ ucm_DATA = EnableSeq.conf HeadPhones.conf IN1-InternalMic.conf \
IN2-InternalMic.conf IN12-InternalMic.conf IN3-HeadsetMic.conf \ IN2-InternalMic.conf IN12-InternalMic.conf IN3-HeadsetMic.conf \
Speaker.conf Speaker.conf MonoSpeaker.conf
EXTRA_DIST = $(ucm_DATA) EXTRA_DIST = $(ucm_DATA)

View file

@ -0,0 +1,36 @@
SectionDevice."MonoSpeaker" {
Comment "Mono Speaker"
ConflictingDevice [
"Speaker"
"Headphones"
]
EnableSequence [
cdev "hw:bytcrrt5651"
# Map left and right input on left
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 [
cdev "hw:bytcrrt5651"
# 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 {
PlaybackChannels "2"
}
}

View file

@ -2,6 +2,7 @@ SectionDevice."Speaker" {
Comment "Speakers" Comment "Speakers"
ConflictingDevice [ ConflictingDevice [
"MonoSpeaker"
"Headphones" "Headphones"
] ]