Accepting request 581348 from home:tiwai:branches:multimedia:libs

- Add UCM profile for Baytrail CR with RT5460 (bsc#1083195)

OBS-URL: https://build.opensuse.org/request/show/581348
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa?expand=0&rev=228
This commit is contained in:
Takashi Iwai 2018-02-28 21:51:26 +00:00 committed by Git OBS Bridge
parent 6d73dea06e
commit a5d2e9b64b
4 changed files with 488 additions and 4 deletions

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Wed Feb 28 22:33:05 CET 2018 - tiwai@suse.de
- Add UCM profile for Baytrail CR with RT5460 (bsc#1083195)
-------------------------------------------------------------------
Thu Jan 18 12:26:08 CET 2018 - tiwai@suse.de

View File

@ -29,7 +29,7 @@ Name: alsa
Version: 1.1.5
Release: 0
Summary: Advanced Linux Sound Architecture
License: LGPL-2.1+
License: LGPL-2.1-or-later
Group: System/Libraries
Url: http://www.alsa-project.org/
Source: ftp://ftp.alsa-project.org/pub/lib/alsa-lib-%{package_version}.tar.bz2
@ -59,6 +59,8 @@ Patch6: 0006-pcm-Return-the-consistent-error-code-for-unexpected-.patch
# rest suse fixes
Source101: chtcx2072x.conf
Source102: chtcx2072x-HiFi.conf
Source103: bytcr-rt5640.conf
Source104: bytcr-rt5640-HiFi.conf
BuildRequires: doxygen
BuildRequires: libtool
BuildRequires: pkgconfig
@ -85,7 +87,7 @@ on your Linux box. To set it up, run yast2 or alsaconf.
%package devel
Summary: Include Files and Libraries mandatory for Development
License: LGPL-2.1+
License: LGPL-2.1-or-later
Group: Development/Libraries/C and C++
Requires: glibc-devel
Requires: libasound2 = %{version}
@ -99,7 +101,7 @@ to develop applications that require these.
%package docs
Summary: Additional Package Documentation
License: GPL-2.0+
License: GPL-2.0-or-later
Group: Documentation/Other
%if 0%{?suse_version} > 1110
BuildArch: noarch
@ -111,7 +113,7 @@ this package's base documentation.
%package -n libasound2
Summary: Advanced Linux Sound Architecture Library
License: LGPL-2.1+
License: LGPL-2.1-or-later
Group: System/Libraries
Provides: alsa-lib
@ -149,6 +151,9 @@ make -C doc doc %{?_smp_mflags}
mkdir -p %{buildroot}%{_datadir}/alsa/ucm/chtcx2072x
install -c -m 0644 %{S:101} %{buildroot}%{_datadir}/alsa/ucm/chtcx2072x/chtcx2072x.conf
install -c -m 0644 %{S:102} %{buildroot}%{_datadir}/alsa/ucm/chtcx2072x/HiFi.conf
mkdir -p %{buildroot}%{_datadir}/alsa/ucm/bytcr-rt5640
install -c -m 0644 %{S:103} %{buildroot}%{_datadir}/alsa/ucm/bytcr-rt5640/bytcr-rt5640.conf
install -c -m 0644 %{S:104} %{buildroot}%{_datadir}/alsa/ucm/bytcr-rt5640/HiFi.conf
# clean up unneeded files
rm -f %{buildroot}%{_libdir}/*.*a
# rm -f %{buildroot}%{_libdir}/alsa-lib/smixer/*.*a

466
bytcr-rt5640-HiFi.conf Normal file
View File

@ -0,0 +1,466 @@
# Use case Configuration for bytcr-rt5640
SectionVerb {
EnableSequence [
cdev "hw:bytcrrt5640"
# media mixer settings
# compress
cset "name='media0_in Gain 0 Switch' on"
cset "name='media0_in Gain 0 Volume' 0"
# normal
cset "name='media1_in Gain 0 Switch' on"
cset "name='media1_in Gain 0 Volume' 0"
# swm loopback
cset "name='media2_in Gain 0 Switch' off"
cset "name='media2_in Gain 0 Volume' 0%"
# deep buffer
cset "name='media3_in Gain 0 Switch' on"
cset "name='media3_in Gain 0 Volume' 0"
cset "name='media0_out mix 0 media0_in Switch' on"
cset "name='media0_out mix 0 media1_in Switch' on"
cset "name='media0_out mix 0 media2_in Switch' off"
cset "name='media0_out mix 0 media3_in Switch' on"
cset "name='media1_out mix 0 media0_in Switch' off"
cset "name='media1_out mix 0 media1_in Switch' off"
cset "name='media1_out mix 0 media2_in Switch' off"
cset "name='media1_out mix 0 media3_in Switch' off"
cset "name='pcm0_in Gain 0 Switch' on"
cset "name='pcm0_in Gain 0 Volume' 0"
cset "name='pcm1_in Gain 0 Switch' off"
cset "name='pcm1_in Gain 0 Volume' 0%"
# codec0_out settings (used if ssp2 is connected to aif1)
cset "name='codec_out0 mix 0 codec_in0 Switch' off"
cset "name='codec_out0 mix 0 codec_in1 Switch' off"
cset "name='codec_out0 mix 0 media_loop1_in Switch' off"
cset "name='codec_out0 mix 0 media_loop2_in Switch' off"
cset "name='codec_out0 mix 0 pcm0_in Switch' on"
cset "name='codec_out0 mix 0 pcm1_in Switch' off"
cset "name='codec_out0 mix 0 sprot_loop_in Switch' off"
cset "name='codec_out0 Gain 0 Switch' on"
cset "name='codec_out0 Gain 0 Volume' 0"
# modem_out settings (used if ssp0 is connected to aif2)
cset "name='modem_out mix 0 codec_in0 Switch' off"
cset "name='modem_out mix 0 codec_in1 Switch' off"
cset "name='modem_out mix 0 media_loop1_in Switch' off"
cset "name='modem_out mix 0 media_loop2_in Switch' off"
cset "name='modem_out mix 0 pcm0_in Switch' on"
cset "name='modem_out mix 0 pcm1_in Switch' off"
cset "name='modem_out mix 0 sprot_loop_in Switch' off"
cset "name='modem_out Gain 0 Switch' on"
cset "name='modem_out Gain 0 Volume' 0"
# input settings
# pcm1_out settings
# input used when SSP2 is connected
cset "name='codec_in0 Gain 0 Switch' on"
cset "name='codec_in0 Gain 0 Volume' 0"
# input used when SSP0 is connected
cset "name='modem_in Gain 0 Switch' on"
cset "name='modem_in Gain 0 Volume' 0"
cset "name='pcm1_out mix 0 codec_in0 Switch' on"
cset "name='pcm1_out mix 0 modem_in Switch' on"
cset "name='pcm1_out mix 0 codec_in1 Switch' off"
cset "name='pcm1_out mix 0 media_loop1_in Switch' off"
cset "name='pcm1_out mix 0 media_loop2_in Switch' off"
cset "name='pcm1_out mix 0 pcm0_in Switch' off"
cset "name='pcm1_out mix 0 pcm1_in Switch' off"
cset "name='pcm1_out mix 0 sprot_loop_in Switch' off"
cset "name='pcm1_out Gain 0 Switch' on"
cset "name='pcm1_out Gain 0 Volume' 0"
# disable codec_out1
cset "name='codec_out1 mix 0 codec_in0 Switch' off"
cset "name='codec_out1 mix 0 codec_in1 Switch' off"
cset "name='codec_out1 mix 0 media_loop1_in Switch' off"
cset "name='codec_out1 mix 0 media_loop2_in Switch' off"
cset "name='codec_out1 mix 0 pcm0_in Switch' off"
cset "name='codec_out1 mix 0 pcm1_in Switch' off"
cset "name='codec_out1 mix 0 sprot_loop_in Switch' off"
cset "name='codec_out1 Gain 0 Switch' off"
cset "name='codec_out1 Gain 0 Volume' 0%"
# disable codec_in1
cset "name='codec_in1 Gain 0 Switch' off"
cset "name='codec_in1 Gain 0 Volume' 0%"
# disable all loops
cset "name='media_loop1_out mix 0 codec_in0 Switch' off"
cset "name='media_loop1_out mix 0 codec_in1 Switch' off"
cset "name='media_loop1_out mix 0 media_loop1_in Switch' off"
cset "name='media_loop1_out mix 0 media_loop2_in Switch' off"
cset "name='media_loop1_out mix 0 pcm0_in Switch' off"
cset "name='media_loop1_out mix 0 pcm1_in Switch' off"
cset "name='media_loop1_out mix 0 sprot_loop_in Switch' off"
cset "name='media_loop2_out mix 0 codec_in0 Switch' off"
cset "name='media_loop2_out mix 0 codec_in1 Switch' off"
cset "name='media_loop2_out mix 0 media_loop1_in Switch' off"
cset "name='media_loop2_out mix 0 media_loop2_in Switch' off"
cset "name='media_loop2_out mix 0 pcm0_in Switch' off"
cset "name='media_loop2_out mix 0 pcm1_in Switch' off"
cset "name='media_loop2_out mix 0 sprot_loop_in Switch' off"
cset "name='sprot_loop_out mix 0 codec_in0 Switch' off"
cset "name='sprot_loop_out mix 0 codec_in1 Switch' off"
cset "name='sprot_loop_out mix 0 media_loop1_in Switch' off"
cset "name='sprot_loop_out mix 0 media_loop2_in Switch' off"
cset "name='sprot_loop_out mix 0 pcm0_in Switch' off"
cset "name='sprot_loop_out mix 0 pcm1_in Switch' off"
cset "name='sprot_loop_out mix 0 sprot_loop_in Switch' off"
# RT5640 default output routing
cset "name='OUT MIXL DAC L1 Switch' on"
cset "name='OUT MIXR DAC R1 Switch' on"
# uncomment for loopback mic->speakers
# cset "name='SPOL MIX BST1 Switch' on"
# cset "name='SPOR MIX BST1 Switch' on"
# uncomment for loopback playback -> capture
# cset "name='RECMIXL OUT MIXL Switch' on"
# cset "name='RECMIXR OUT MIXR Switch' on"
# uncomment to enable swap between AIF1 and AIF2
# warning: can only work with SSP0 firmware enabled
cset "name='SDI select' 0"
cset "name='DAI select' 0"
#cset "name='SDI select' 1"
#cset "name='DAI select' 1"
cset "name='DAC2 Playback Switch' on"
cset "name='DIG MIXL DAC L2 Switch' on"
]
DisableSequence [
]
# ALSA PCM
Value {
# ALSA PCM device for HiFi
PlaybackPCM "hw:bytcrrt5640"
CapturePCM "hw:bytcrrt5640"
}
}
SectionDevice."DigitalMics" {
Comment "DigitalMics capture, NOT TESTED"
ConflictingDevice [
"IN1-InternalMics"
"IN3-InternalMics"
"HeadsetMic"
]
EnableSequence [
cdev "hw:bytcrrt5640"
cset "name='Stereo ADC2 Mux' DMIC1"
cset "name='Stereo ADC MIXL ADC2 Switch' on"
cset "name='Stereo ADC MIXR ADC2 Switch' on"
cset "name='Internal Mic Switch' on"
]
DisableSequence [
cdev "hw:bytcrrt5640"
cset "name='Stereo ADC MIXL ADC2 Switch' off"
cset "name='Stereo ADC MIXR ADC2 Switch' off"
cset "name='Internal Mic Switch' off"
]
Value {
CaptureChannels 2
}
}
SectionDevice."HeadsetMic" {
Comment "Headset Mic capture"
ConflictingDevice [
"IN1-InternalMics"
"IN3-InternalMics"
"DigitalMics"
]
EnableSequence [
cdev "hw:bytcrrt5640"
cset "name='Headset Mic Switch' on"
# default for IN2 Boost seems to saturate
cset "name='IN2 Boost' 1"
cset "name='RECMIXL BST2 Switch' on"
cset "name='RECMIXR BST2 Switch' on"
cset "name='Stereo ADC1 Mux' ADC"
cset "name='Stereo ADC MIXL ADC1 Switch' on"
cset "name='Stereo ADC MIXR ADC1 Switch' on"
]
DisableSequence [
cdev "hw:bytcrrt5640"
cset "name='Stereo ADC MIXL ADC1 Switch' off"
cset "name='Stereo ADC MIXR ADC1 Switch' off"
cset "name='Headset Mic Switch' off"
]
Value {
CaptureChannels 2
}
}
SectionDevice."IN1-InternalMics" {
Comment "Internal IN1 analog Mic capture"
ConflictingDevice [
"DigitalMics"
"HeadsetMic"
"IN3-InternalMics"
]
EnableSequence [
cdev "hw:bytcrrt5640"
cset "name='Internal Mic Switch' on"
# default for IN1 Boost seems to saturate
cset "name='IN1 Boost' 1"
cset "name='RECMIXL BST1 Switch' on"
cset "name='RECMIXR BST1 Switch' on"
cset "name='RECMIXL BST3 Switch' off"
cset "name='RECMIXR BST3 Switch' off"
cset "name='Stereo ADC1 Mux' ADC"
cset "name='Stereo ADC MIXL ADC1 Switch' on"
cset "name='Stereo ADC MIXR ADC1 Switch' on"
cset "name='Mono ADC L1 Mux' 1"
cset "name='Mono ADC R1 Mux' 1"
cset "name='Mono ADC MIXL ADC1 Switch' on"
cset "name='Mono ADC MIXR ADC1 Switch' on"
cset "name='Mono ADC Capture Switch' on"
]
DisableSequence [
cdev "hw:bytcrrt5640"
cset "name='Stereo ADC MIXL ADC1 Switch' off"
cset "name='Stereo ADC MIXR ADC1 Switch' off"
cset "name='Internal Mic Switch' off"
cset "name='Mono ADC MIXL ADC1 Switch' off"
cset "name='Mono ADC MIXR ADC1 Switch' off"
cset "name='Mono ADC Capture Switch' off"
]
Value {
CaptureChannels 2
}
}
SectionDevice."IN3-InternalMics" {
Comment "Internal IN3 analog Mic capture"
ConflictingDevice [
"DigitalMics"
"HeadsetMic"
"IN1-InternalMics"
]
EnableSequence [
cdev "hw:bytcrrt5640"
cset "name='Internal Mic Switch' on"
# default for IN3 Boost seems to too low
cset "name='IN3 Boost' 8"
cset "name='RECMIXL BST1 Switch' off"
cset "name='RECMIXR BST1 Switch' off"
cset "name='RECMIXL BST3 Switch' on"
cset "name='RECMIXR BST3 Switch' on"
cset "name='Stereo ADC1 Mux' ADC"
cset "name='Stereo ADC MIXL ADC1 Switch' on"
cset "name='Stereo ADC MIXR ADC1 Switch' on"
cset "name='Mono ADC L1 Mux' 1"
cset "name='Mono ADC R1 Mux' 1"
cset "name='Mono ADC MIXL ADC1 Switch' on"
cset "name='Mono ADC MIXR ADC1 Switch' on"
cset "name='Mono ADC Capture Switch' on"
]
DisableSequence [
cdev "hw:bytcrrt5640"
cset "name='Stereo ADC MIXL ADC1 Switch' off"
cset "name='Stereo ADC MIXR ADC1 Switch' off"
cset "name='Internal Mic Switch' off"
cset "name='Mono ADC Capture Switch' off"
]
Value {
CaptureChannels 2
}
}
SectionDevice."Headphones" {
Comment "Headphones playback"
ConflictingDevice [
"Speaker"
]
EnableSequence [
cdev "hw:bytcrrt5640"
cset "name='DAC MIXL INF1 Switch' on"
cset "name='DAC MIXR INF1 Switch' on"
cset "name='Stereo DAC MIXL DAC L1 Switch' on"
cset "name='Stereo DAC MIXR DAC R1 Switch' on"
set "name='Stereo DAC MIXL DAC L2 Switch' on"
cset "name='Stereo DAC MIXR DAC R2 Switch' on"
cset "name='HPO MIX HPVOL Switch' on"
cset "name='Headphone Switch' on"
cset "name='HP Channel Switch' on"
cset "name='Speaker Switch' off"
cset "name='HP L Playback Switch' on"
cset "name='HP R Playback Switch' on"
cset "name='HP Playback Volume' 29"
]
DisableSequence [
cdev "hw:bytcrrt5640"
cset "name='Headphone Switch' off"
cset "name='HP Channel Switch' off"
cset "name='HP L Playback Switch' off"
cset "name='HP R Playback Switch' off"
cset "name='HP Playback Volume' 0"
]
Value {
PlaybackChannels "2"
}
}
SectionDevice."Speaker" {
Comment "Speaker playback"
ConflictingDevice [
"Headphones"
"MonoSpeaker"
]
EnableSequence [
cdev "hw:bytcrrt5640"
cset "name='DAC MIXL INF1 Switch' on"
cset "name='DAC MIXR INF1 Switch' on"
cset "name='Stereo DAC MIXL DAC L1 Switch' on"
cset "name='Stereo DAC MIXR DAC R1 Switch' on"
cset "name='Stereo DAC MIXL DAC L2 Switch' on"
cset "name='Stereo DAC MIXR DAC R2 Switch' on"
cset "name='SPK MIXL DAC L1 Switch' on"
cset "name='SPK MIXR DAC R1 Switch' on"
cset "name='SPOL MIX SPKVOL L Switch' on"
cset "name='SPOR MIX SPKVOL R Switch' on"
cset "name='Speaker Switch' on"
cset "name='Speaker Channel Switch' on"
cset "name='Headphone Switch' off"
cset "name='Speaker L Playback Switch' on"
cset "name='Speaker R Playback Switch' on"
cset "name='Speaker Playback Volume' 29"
]
DisableSequence [
cdev "hw:bytcrrt5640"
cset "name='Speaker Switch' off"
cset "name='Speaker Channel Switch' off"
cset "name='Speaker L Playback Switch' off"
cset "name='Speaker R Playback Switch' off"
cset "name='Speaker Playback Volume' 0"
]
Value {
PlaybackChannels "2"
}
}
SectionDevice."MonoSpeaker" {
Comment "MonoSpeaker playback"
ConflictingDevice [
"Headphones"
"Speaker"
]
EnableSequence [
cdev "hw:bytcrrt5640"
cset "name='DAC MIXL INF1 Switch' on"
cset "name='DAC MIXR INF1 Switch' on"
cset "name='Stereo DAC MIXL DAC L1 Switch' on"
cset "name='Stereo DAC MIXR DAC R1 Switch' on"
cset "name='Stereo DAC MIXL DAC L2 Switch' on"
cset "name='Stereo DAC MIXR DAC R2 Switch' on"
cset "name='SPK MIXL DAC L1 Switch' on"
cset "name='SPK MIXR DAC R1 Switch' on"
cset "name='SPOL MIX SPKVOL L Switch' on"
# for mono speaker we apply left on right
# cset "name='SPOR MIX SPKVOL R Switch' on"
cset "name='SPOL MIX SPKVOL R Switch' on"
cset "name='Speaker Switch' on"
cset "name='Speaker Channel Switch' on"
cset "name='Headphone Switch' off"
cset "name='Speaker L Playback Switch' on"
cset "name='Speaker R Playback Switch' on"
cset "name='Speaker Playback Volume' 29"
]
DisableSequence [
cdev "hw:bytcrrt5640"
cset "name='Speaker Switch' off"
cset "name='Speaker Channel Switch' off"
cset "name='Speaker L Playback Switch' off"
cset "name='Speaker R Playback Switch' off"
cset "name='Speaker Playback Volume' 0"
]
Value {
PlaybackChannels "2"
}
}

8
bytcr-rt5640.conf Normal file
View File

@ -0,0 +1,8 @@
SectionUseCase."HiFi" {
File "HiFi.conf"
Comment "Play HiFi quality Music"
}
SectionDefaults [
cdev "hw:bytcrrt5640"
]