DSP name should be specified in the device section of UCM |
||
Issue description
I had to move OutputDspName "speaker_eq" to SectionVerb instead of the speakers Section Device.
Specifying the dsp in speaker device doesn't work becasue there isn't a jack for speaker.
We should change the logic so that any fullyspecified device can have a DSP name specified even if there isn't a jack for that device.
Below was what I had to make dsp.ini applied to the speaker EQ.
--- a/HiFi.conf
+++ b/HiFi.conf
@@ -1,5 +1,6 @@
SectionVerb {
Value {
+ OutputDspName "speaker_eq"
FullySpecifiedUCM "1"
}
@@ -36,7 +37,6 @@ SectionVerb {
SectionDevice."Speaker".0 {
Value {
PlaybackPCM "hw:kblr55145663max,0"
- OutputDspName "speaker_eq"
}
,
Aug 28 2017
Peter is very kind to take this.
,
Aug 30 2017
Hi Dylan, I did the following experiment and it seems not "jack-associated" 1. Add debug message prints on alsa_iodev_set_active_node 2. Make sure an OutputDspName in SectionVerb showed on Headphone 3. Remove OutputDspName from SectionVerb 4. Insert OutputDspName "speaker_eq" on SectionDevice."Headphone" 5. seaker_eq is not showed in debug message. My wild guess is that there some logic other than if a device has jack or not. Will dig it further, please let me know if I'm on the wrong path :o
,
Aug 30 2017
It could be that there are multiple places that depend on there being a default DSP name set.
My suspicions about jacks were based on the get_active_dsp_name function:
static const char *get_active_dsp_name(struct alsa_io *aio)
{
struct cras_ionode *node = aio->base.active_node;
const struct cras_alsa_jack *jack;
if (node == NULL)
return NULL;
if (aio->base.direction == CRAS_STREAM_OUTPUT)
jack = ((struct alsa_output_node *) node)->jack;
else
jack = ((struct alsa_input_node *) node)->jack;
return cras_alsa_jack_get_dsp_name(jack) ? : aio->dsp_name_default;
}
|
||
►
Sign in to add a comment |
||
Comment 1 by wuchengli@chromium.org
, Aug 16 2017