[alsa-devel] [PATCH] conf/ucm: GoogleNyan: Add configuration
Taken from the ChromeOS sources, this configuration should apply to all Nyan boards from Google, so far HP Chromebook 14 (nyan-blaze) and Acer Chromebook 13 (nyan-big).
Signed-off-by: Tomeu Vizoso tomeu.vizoso@collabora.com --- configure.ac | 1 + src/conf/ucm/GoogleNyan/GoogleNyan.conf | 5 ++ src/conf/ucm/GoogleNyan/HiFi.conf | 83 +++++++++++++++++++++++++++++++++ src/conf/ucm/GoogleNyan/Makefile.am | 4 ++ src/conf/ucm/Makefile.am | 2 +- 5 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 src/conf/ucm/GoogleNyan/GoogleNyan.conf create mode 100644 src/conf/ucm/GoogleNyan/HiFi.conf create mode 100644 src/conf/ucm/GoogleNyan/Makefile.am
diff --git a/configure.ac b/configure.ac index 734163c..916280b 100644 --- a/configure.ac +++ b/configure.ac @@ -654,6 +654,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \ src/conf/ucm/SDP4430/Makefile \ src/conf/ucm/tegraalc5632/Makefile \ src/conf/ucm/PAZ00/Makefile \ + src/conf/ucm/GoogleNyan/Makefile \ modules/Makefile modules/mixer/Makefile modules/mixer/simple/Makefile \ alsalisp/Makefile aserver/Makefile \ test/Makefile test/lsb/Makefile \ diff --git a/src/conf/ucm/GoogleNyan/GoogleNyan.conf b/src/conf/ucm/GoogleNyan/GoogleNyan.conf new file mode 100644 index 0000000..ebd0dd9 --- /dev/null +++ b/src/conf/ucm/GoogleNyan/GoogleNyan.conf @@ -0,0 +1,5 @@ + Comment "Nyan internal card" + SectionUseCase."HiFi" { + File "HiFi.conf" + Comment "Default" + } diff --git a/src/conf/ucm/GoogleNyan/HiFi.conf b/src/conf/ucm/GoogleNyan/HiFi.conf new file mode 100644 index 0000000..cb624e7 --- /dev/null +++ b/src/conf/ucm/GoogleNyan/HiFi.conf @@ -0,0 +1,83 @@ + SectionVerb { + Value { + OutputDspName "speaker_eq" + } + EnableSequence [ + cdev "hw:GoogleNyan" + cset "name='Left Speaker Mixer Left DAC Switch' on" + cset "name='Right Speaker Mixer Right DAC Switch' on" + cset "name='Headphone Left Switch' on" + cset "name='Headphone Right Switch' on" + cset "name='Digital EQ 3 Band Switch' off" + cset "name='Digital EQ 5 Band Switch' off" + cset "name='Digital EQ 7 Band Switch' off" + cset "name='Biquad Switch' off" + cset "name='Filter Mode' Music" + cset "name='ADC Oversampling Rate' 0" + cset "name='DMIC Mux' DMIC" + cset "name='MIC2 Mux' IN34" + cset "name='Right ADC Mixer MIC2 Switch' on" + cset "name='Left ADC Mixer MIC2 Switch' on" + cset "name='MIC2 Volume' 10" + cset "name='MIC2 Boost Volume' 0" + cset "name='Mic Jack Switch' off" + cset "name='Int Mic Switch' on" + cset "name='ADCR Boost Volume' 4" + cset "name='ADCL Boost Volume' 4" + cset "name='ADCR Volume' 11" + cset "name='ADCL Volume' 11" + cset "name='Left Speaker Mixer Left DAC Switch' on" + cset "name='Right Speaker Mixer Right DAC Switch' on" + cset "name='Speaker Left Mixer Volume' 2" + cset "name='Speaker Right Mixer Volume' 2" + cset "name='Record Path DC Blocking' on" + cset "name='Playback Path DC Blocking' on" + cset "name='Headphone Left Switch' on" + cset "name='Headphone Right Switch' on" + cset "name='HP Left Out Switch' off" + cset "name='HP Right Out Switch' off" + cset "name='Speaker Left Switch' on" + cset "name='Speaker Right Switch' on" + cset "name='Speakers Switch' on" + ] + DisableSequence [ + ] + } + SectionDevice."Headphone".0 { + Value { + JackName "Google Nyan Headphone Jack" + OutputDspName "" + } + EnableSequence [ + cdev "hw:GoogleNyan" + cset "name='Speakers Switch' off" + cset "name='HP Left Out Switch' on" + cset "name='HP Right Out Switch' on" + ] + DisableSequence [ + cdev "hw:GoogleNyan" + cset "name='HP Left Out Switch' off" + cset "name='HP Right Out Switch' off" + cset "name='Speakers Switch' on" + ] + } + SectionDevice."Mic".0 { + Value { + JackName "Google Nyan Mic Jack" + CaptureControl "MIC2" + } + EnableSequence [ + cdev "hw:GoogleNyan" + cset "name='Int Mic Switch' off" + cset "name='DMIC Mux' ADC" + cset "name='Mic Jack Switch' on" + cset "name='Record Path DC Blocking' on" + ] + DisableSequence [ + cdev "hw:GoogleNyan" + cset "name='Mic Jack Switch' off" + cset "name='DMIC Mux' DMIC" + cset "name='Int Mic Switch' on" + cset "name='Record Path DC Blocking' off" + ] + } diff --git a/src/conf/ucm/GoogleNyan/Makefile.am b/src/conf/ucm/GoogleNyan/Makefile.am new file mode 100644 index 0000000..47c7fc9 --- /dev/null +++ b/src/conf/ucm/GoogleNyan/Makefile.am @@ -0,0 +1,4 @@ +alsaconfigdir = @ALSA_CONFIG_DIR@ +ucmdir = $(alsaconfigdir)/ucm/GoogleNyan +ucm_DATA = GoogleNyan.conf HiFi.conf +EXTRA_DIST = $(ucm_DATA) diff --git a/src/conf/ucm/Makefile.am b/src/conf/ucm/Makefile.am index bde89df..14fc7ae 100644 --- a/src/conf/ucm/Makefile.am +++ b/src/conf/ucm/Makefile.am @@ -1 +1 @@ -SUBDIRS=DAISY-I2S PandaBoard PandaBoardES SDP4430 tegraalc5632 PAZ00 +SUBDIRS=DAISY-I2S PandaBoard PandaBoardES SDP4430 tegraalc5632 PAZ00 GoogleNyan
On 01/14/2015 09:57 AM, Tomeu Vizoso wrote:
Taken from the ChromeOS sources, this configuration should apply to all Nyan boards from Google, so far HP Chromebook 14 (nyan-blaze) and Acer Chromebook 13 (nyan-big).
How does user-space correlate the files added here:
src/conf/ucm/GoogleNyan/GoogleNyan.conf | 5 ++ src/conf/ucm/GoogleNyan/HiFi.conf | 83 +++++++++++++++++++++++++++++++++ src/conf/ucm/GoogleNyan/Makefile.am | 4 ++
... with the (DT-provided) ASoC card name, or DT compatible value:
sound { compatible = "nvidia,tegra-audio-max98090-nyan-big", "nvidia,tegra-audio-max98090"; nvidia,model = "Acer Chromebook 13";
I would have expected either the file/directory names in this repo to match the ASoC card name that the kernel exposes (derived from the model string above), or that the files here contain some kind of indexable string that contains the kernel's ASoC card name. Is that not how the UCM repo usually works?
Otherwise, generic distro UCM init scripts aren't possible; UCM setup scripts would need a huge table mapping ASoC card name to UCM repo file/directory name, which doesn't seem scalable.
On 01/14/2015 06:14 PM, Stephen Warren wrote:
On 01/14/2015 09:57 AM, Tomeu Vizoso wrote:
Taken from the ChromeOS sources, this configuration should apply to all Nyan boards from Google, so far HP Chromebook 14 (nyan-blaze) and Acer Chromebook 13 (nyan-big).
How does user-space correlate the files added here:
src/conf/ucm/GoogleNyan/GoogleNyan.conf | 5 ++ src/conf/ucm/GoogleNyan/HiFi.conf | 83 +++++++++++++++++++++++++++++++++ src/conf/ucm/GoogleNyan/Makefile.am | 4 ++
... with the (DT-provided) ASoC card name, or DT compatible value:
sound { compatible = "nvidia,tegra-audio-max98090-nyan-big", "nvidia,tegra-audio-max98090"; nvidia,model = "Acer Chromebook 13";
I would have expected either the file/directory names in this repo to match the ASoC card name that the kernel exposes (derived from the model string above), or that the files here contain some kind of indexable string that contains the kernel's ASoC card name. Is that not how the UCM repo usually works?
Otherwise, generic distro UCM init scripts aren't possible; UCM setup scripts would need a huge table mapping ASoC card name to UCM repo file/directory name, which doesn't seem scalable.
Yeah, a corresponding patch is coming to the kernel soon.
Regards,
Tomeu
On Wed, Jan 14, 2015 at 8:57 AM, Tomeu Vizoso tomeu.vizoso@collabora.com wrote:
Taken from the ChromeOS sources, this configuration should apply to all Nyan boards from Google, so far HP Chromebook 14 (nyan-blaze) and Acer Chromebook 13 (nyan-big).
Thanks for posting this Tomeu.
Signed-off-by: Tomeu Vizoso tomeu.vizoso@collabora.com
configure.ac | 1 + src/conf/ucm/GoogleNyan/GoogleNyan.conf | 5 ++ src/conf/ucm/GoogleNyan/HiFi.conf | 83 +++++++++++++++++++++++++++++++++ src/conf/ucm/GoogleNyan/Makefile.am | 4 ++ src/conf/ucm/Makefile.am | 2 +- 5 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 src/conf/ucm/GoogleNyan/GoogleNyan.conf create mode 100644 src/conf/ucm/GoogleNyan/HiFi.conf create mode 100644 src/conf/ucm/GoogleNyan/Makefile.am
diff --git a/configure.ac b/configure.ac index 734163c..916280b 100644 --- a/configure.ac +++ b/configure.ac @@ -654,6 +654,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \ src/conf/ucm/SDP4430/Makefile \ src/conf/ucm/tegraalc5632/Makefile \ src/conf/ucm/PAZ00/Makefile \
src/conf/ucm/GoogleNyan/Makefile \ modules/Makefile modules/mixer/Makefile modules/mixer/simple/Makefile \ alsalisp/Makefile aserver/Makefile \ test/Makefile test/lsb/Makefile \
diff --git a/src/conf/ucm/GoogleNyan/GoogleNyan.conf b/src/conf/ucm/GoogleNyan/GoogleNyan.conf new file mode 100644 index 0000000..ebd0dd9 --- /dev/null +++ b/src/conf/ucm/GoogleNyan/GoogleNyan.conf @@ -0,0 +1,5 @@
- Comment "Nyan internal card"
- SectionUseCase."HiFi" {
- File "HiFi.conf"
- Comment "Default"
- }
diff --git a/src/conf/ucm/GoogleNyan/HiFi.conf b/src/conf/ucm/GoogleNyan/HiFi.conf new file mode 100644 index 0000000..cb624e7 --- /dev/null +++ b/src/conf/ucm/GoogleNyan/HiFi.conf @@ -0,0 +1,83 @@
- SectionVerb {
- Value {
- OutputDspName "speaker_eq"
These values are a Chrome-only addition. I'm not sure what the normal process for defining a value here is, but we haven't gone through it. The JackName below is rather useful for matching a device to a Jack, but it's not standard outside of ChromeOS
- }
- EnableSequence [
- cdev "hw:GoogleNyan"
- cset "name='Left Speaker Mixer Left DAC Switch' on"
- cset "name='Right Speaker Mixer Right DAC Switch' on"
- cset "name='Headphone Left Switch' on"
- cset "name='Headphone Right Switch' on"
- cset "name='Digital EQ 3 Band Switch' off"
- cset "name='Digital EQ 5 Band Switch' off"
- cset "name='Digital EQ 7 Band Switch' off"
- cset "name='Biquad Switch' off"
- cset "name='Filter Mode' Music"
- cset "name='ADC Oversampling Rate' 0"
- cset "name='DMIC Mux' DMIC"
- cset "name='MIC2 Mux' IN34"
- cset "name='Right ADC Mixer MIC2 Switch' on"
- cset "name='Left ADC Mixer MIC2 Switch' on"
- cset "name='MIC2 Volume' 10"
- cset "name='MIC2 Boost Volume' 0"
- cset "name='Mic Jack Switch' off"
- cset "name='Int Mic Switch' on"
- cset "name='ADCR Boost Volume' 4"
- cset "name='ADCL Boost Volume' 4"
- cset "name='ADCR Volume' 11"
- cset "name='ADCL Volume' 11"
- cset "name='Left Speaker Mixer Left DAC Switch' on"
- cset "name='Right Speaker Mixer Right DAC Switch' on"
- cset "name='Speaker Left Mixer Volume' 2"
- cset "name='Speaker Right Mixer Volume' 2"
- cset "name='Record Path DC Blocking' on"
- cset "name='Playback Path DC Blocking' on"
- cset "name='Headphone Left Switch' on"
- cset "name='Headphone Right Switch' on"
- cset "name='HP Left Out Switch' off"
- cset "name='HP Right Out Switch' off"
- cset "name='Speaker Left Switch' on"
- cset "name='Speaker Right Switch' on"
- cset "name='Speakers Switch' on"
- ]
- DisableSequence [
- ]
- }
- SectionDevice."Headphone".0 {
- Value {
- JackName "Google Nyan Headphone Jack"
- OutputDspName ""
- }
- EnableSequence [
- cdev "hw:GoogleNyan"
- cset "name='Speakers Switch' off"
- cset "name='HP Left Out Switch' on"
- cset "name='HP Right Out Switch' on"
- ]
- DisableSequence [
- cdev "hw:GoogleNyan"
- cset "name='HP Left Out Switch' off"
- cset "name='HP Right Out Switch' off"
- cset "name='Speakers Switch' on"
- ]
- }
- SectionDevice."Mic".0 {
- Value {
- JackName "Google Nyan Mic Jack"
- CaptureControl "MIC2"
- }
- EnableSequence [
- cdev "hw:GoogleNyan"
- cset "name='Int Mic Switch' off"
- cset "name='DMIC Mux' ADC"
- cset "name='Mic Jack Switch' on"
- cset "name='Record Path DC Blocking' on"
- ]
- DisableSequence [
- cdev "hw:GoogleNyan"
- cset "name='Mic Jack Switch' off"
- cset "name='DMIC Mux' DMIC"
- cset "name='Int Mic Switch' on"
- cset "name='Record Path DC Blocking' off"
- ]
- }
diff --git a/src/conf/ucm/GoogleNyan/Makefile.am b/src/conf/ucm/GoogleNyan/Makefile.am new file mode 100644 index 0000000..47c7fc9 --- /dev/null +++ b/src/conf/ucm/GoogleNyan/Makefile.am @@ -0,0 +1,4 @@ +alsaconfigdir = @ALSA_CONFIG_DIR@ +ucmdir = $(alsaconfigdir)/ucm/GoogleNyan +ucm_DATA = GoogleNyan.conf HiFi.conf +EXTRA_DIST = $(ucm_DATA) diff --git a/src/conf/ucm/Makefile.am b/src/conf/ucm/Makefile.am index bde89df..14fc7ae 100644 --- a/src/conf/ucm/Makefile.am +++ b/src/conf/ucm/Makefile.am @@ -1 +1 @@ -SUBDIRS=DAISY-I2S PandaBoard PandaBoardES SDP4430 tegraalc5632 PAZ00
+SUBDIRS=DAISY-I2S PandaBoard PandaBoardES SDP4430 tegraalc5632 PAZ00 GoogleNyan
1.9.3
-- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
participants (3)
-
Dylan Reid
-
Stephen Warren
-
Tomeu Vizoso