[alsa-devel] [PATCH v2 0/9] Add DSP topology management for SKL
Vinod Koul
vinod.koul at intel.com
Mon Sep 21 18:47:45 CEST 2015
On Mon, Sep 21, 2015 at 09:33:53AM -0700, Mark Brown wrote:
> On Mon, Sep 21, 2015 at 09:27:39AM +0530, Vinod Koul wrote:
> > We did decide to use DPCM, DAPM and topology here to solve manging the DSP
> > using these frameworks. yes hard coding a simple mixer and two pipes could
> > have made code look easy to follow but then we would be redoing those bits
> > as we scale these to defferent designs.
>
> Sure, and my point here is that that this process of redoing things
> would most likely be a lot faster since it'd be a lot easier to follow
> which would make the review a lot easier.
>
> > And to provide what we are trying here I have attached the SKL Topology conf
> > file to give a picture of topology we are trying to build as a reference.
>
> I think you missed the attachment here...
Oops sorry about that, here you go
--
~Vinod
-------------- next part --------------
SectionControlMixer."media0_mixin" {
index "1"
max "1"
invert "false"
no_pm "true"
channel."fl" {
reg "-1"
shift "0"
}
channel."fr" {
reg "-1"
shift "0"
}
ops."ctl" {
info "64"
get "64"
put "64"
}
}
SectionControlMixer."media1_mixin" {
index "1"
max "1"
invert "false"
no_pm "true"
channel."fl" {
reg "-1"
shift "0"
}
channel."fr" {
reg "-1"
shift "0"
}
ops."ctl" {
info "64"
get "64"
put "64"
}
}
SectionControlMixer."media2_mixin" {
index "1"
max "1"
invert "false"
no_pm "true"
channel."fl" {
reg "-1"
shift "0"
}
channel."fr" {
reg "-1"
shift "0"
}
ops."ctl" {
info "64"
get "64"
put "64"
}
}
SectionControlMixer."media3_mixin" {
index "1"
max "1"
invert "false"
no_pm "true"
channel."fl" {
reg "-1"
shift "0"
}
channel."fr" {
reg "-1"
shift "0"
}
ops."ctl" {
info "64"
get "64"
put "64"
}
}
SectionControlMixer."speech_mixin" {
index "1"
max "1"
invert "false"
no_pm "true"
channel."fl" {
reg "-1"
shift "0"
}
channel."fr" {
reg "-1"
shift "0"
}
ops."ctl" {
info "64"
get "64"
put "64"
}
}
SectionControlMixer."tone_mixin" {
index "1"
max "1"
invert "false"
no_pm "true"
channel."fl" {
reg "-1"
shift "0"
}
channel."fr" {
reg "-1"
shift "0"
}
ops."ctl" {
info "64"
get "64"
put "64"
}
}
SectionControlMixer."dmic01_hifi_mixin" {
index "1"
max "1"
invert "false"
no_pm "true"
channel."fl" {
reg "-1"
shift "0"
}
channel."fr" {
reg "-1"
shift "0"
}
ops."ctl" {
info "64"
get "64"
put "64"
}
}
SectionControlMixer."dmic23_hifi_mixin" {
index "1"
max "1"
invert "false"
no_pm "true"
channel."fl" {
reg "-1"
shift "0"
}
channel."fr" {
reg "-1"
shift "0"
}
ops."ctl" {
info "64"
get "64"
put "64"
}
}
SectionControlMixer."dmic01_voice_mixin" {
index "1"
max "1"
invert "false"
no_pm "true"
channel."fl" {
reg "-1"
shift "0"
}
channel."fr" {
reg "-1"
shift "0"
}
ops."ctl" {
info "64"
get "64"
put "64"
}
}
SectionControlMixer."dmic23_voice_mixin" {
index "1"
max "1"
invert "false"
no_pm "true"
channel."fl" {
reg "-1"
shift "0"
}
channel."fr" {
reg "-1"
shift "0"
}
ops."ctl" {
info "64"
get "64"
put "64"
}
}
SectionControlMixer."codec0_in_mixin" {
index "1"
max "1"
invert "false"
no_pm "true"
channel."fl" {
reg "-1"
shift "0"
}
channel."fr" {
reg "-1"
shift "0"
}
ops."ctl" {
info "64"
get "64"
put "64"
}
}
SectionControlMixer."codec1_in_mixin" {
index "1"
max "1"
invert "false"
no_pm "true"
channel."fl" {
reg "-1"
shift "0"
}
channel."fr" {
reg "-1"
shift "0"
}
ops."ctl" {
info "64"
get "64"
put "64"
}
}
SectionWidget."codec0_out" {
index "1"
type "aif_out"
no_pm "true"
}
SectionWidget."codec1_out" {
index "1"
type "aif_out"
no_pm "true"
}
SectionWidget."iDisp_out" {
index "1"
type "aif_out"
no_pm "true"
}
SectionWidget."dmic01_hifi" {
index "1"
type "aif_in"
no_pm "true"
}
SectionWidget."dmic23_hifi" {
index "1"
type "aif_in"
no_pm "true"
}
SectionWidget."codec0_in" {
index "1"
type "aif_in"
no_pm "true"
}
SectionWidget."codec1_in" {
index "1"
type "aif_in"
no_pm "true"
}
SectionWidget."media2_in cpr vmix 0" {
index "1"
type "mixer"
no_pm "true"
event_type "3"
event_flags "15"
subseq "0"
data "media2_in cpr vmix 0"
}
SectionWidget."media3_in cpr vmix 0" {
index "1"
type "mixer"
no_pm "true"
event_type "3"
event_flags "15"
subseq "0"
data "media3_in cpr vmix 0"
}
SectionWidget."media01_out cpr vmix 0" {
index "1"
type "mixer"
no_pm "true"
event_type "3"
event_flags "15"
subseq "0"
data "media01_out cpr vmix 0"
}
SectionWidget."codec0_in cpr vmix 0" {
index "1"
type "mixer"
no_pm "true"
event_type "3"
event_flags "15"
subseq "0"
data "codec0_in cpr vmix 0"
}
SectionWidget."codec1_in cpr vmix 0" {
index "1"
type "mixer"
no_pm "true"
event_type "3"
event_flags "15"
subseq "0"
data "codec1_in cpr vmix 0"
}
SectionWidget."dmic01_hifi cpr vmix 0" {
index "1"
type "mixer"
no_pm "true"
event_type "3"
event_flags "15"
subseq "0"
data "dmic01_hifi cpr vmix 0"
}
SectionWidget."dmic23_hifi cpr vmix 0" {
index "1"
type "mixer"
no_pm "true"
event_type "3"
event_flags "15"
subseq "0"
data "dmic23_hifi cpr vmix 0"
}
SectionWidget."codec1_out cpr 0" {
index "1"
type "mixer"
no_pm "true"
event_type "4"
subseq "0"
data "codec1_out cpr 0"
}
SectionWidget."codec0_out cpr 0" {
index "1"
type "mixer"
no_pm "true"
event_type "4"
subseq "0"
data "codec0_out cpr 0"
}
SectionWidget."iDisp_out cpr 0" {
index "1"
type "mixer"
no_pm "true"
event_type "4"
subseq "0"
data "iDisp_out cpr 0"
}
SectionWidget."media0_out cpr 0" {
index "1"
type "mixer"
no_pm "true"
subseq "0"
data "media0_out cpr 0"
}
SectionWidget."media2_out cpr 0" {
index "1"
type "mixer"
no_pm "true"
subseq "0"
data "media2_out cpr 0"
}
SectionWidget."codec1_out_mixout mix 0" {
index "1"
type "mixer"
no_pm "true"
event_type "1"
event_flags "15"
subseq "10"
data "codec1_out_mixout mix 0"
mixer [
"media0_mixin"
"media1_mixin"
"media2_mixin"
"media3_mixin"
"speech_mixin"
"tone_mixin"
"dmic01_hifi_mixin"
"dmic23_hifi_mixin"
"dmic01_voice_mixin"
"dmic23_voice_mixin"
"codec0_in_mixin"
"codec1_in_mixin"
]
}
SectionWidget."media0_mixout mix 0" {
index "1"
type "mixer"
no_pm "true"
event_type "1"
event_flags "15"
subseq "10"
data "media0_mixout mix 0"
mixer [
"media0_mixin"
"media1_mixin"
"media2_mixin"
"media3_mixin"
"speech_mixin"
"tone_mixin"
"dmic01_hifi_mixin"
"dmic23_hifi_mixin"
"dmic01_voice_mixin"
"dmic23_voice_mixin"
"codec0_in_mixin"
"codec1_in_mixin"
]
}
SectionWidget."media2_mixout mix 0" {
index "1"
type "mixer"
no_pm "true"
event_type "1"
event_flags "15"
subseq "10"
data "media2_mixout mix 0"
mixer [
"media0_mixin"
"media1_mixin"
"media2_mixin"
"media3_mixin"
"speech_mixin"
"tone_mixin"
"dmic01_hifi_mixin"
"dmic23_hifi_mixin"
"dmic01_voice_mixin"
"dmic23_voice_mixin"
"codec0_in_mixin"
"codec1_in_mixin"
]
}
SectionWidget."codec0_out_mixout mix 0" {
index "1"
type "mixer"
no_pm "true"
event_type "1"
event_flags "15"
subseq "10"
data "codec0_out_mixout mix 0"
mixer [
"media0_mixin"
"media1_mixin"
"media2_mixin"
"media3_mixin"
"speech_mixin"
"tone_mixin"
"dmic01_hifi_mixin"
"dmic23_hifi_mixin"
"dmic01_voice_mixin"
"dmic23_voice_mixin"
"codec0_in_mixin"
"codec1_in_mixin"
]
}
SectionWidget."iDisp_out_mixout mix 0" {
index "1"
type "mixer"
no_pm "true"
event_type "1"
event_flags "15"
subseq "10"
data "iDisp_out_mixout mix 0"
mixer [
"media0_mixin"
"media1_mixin"
"media2_mixin"
"media3_mixin"
"speech_mixin"
"tone_mixin"
"dmic01_hifi_mixin"
"dmic23_hifi_mixin"
"dmic01_voice_mixin"
"dmic23_voice_mixin"
"codec0_in_mixin"
"codec1_in_mixin"
]
}
SectionWidget."media2_mixin" {
index "1"
type "pga"
no_pm "true"
event_type "4"
event_flags "15"
subseq "10"
data "media2_mixin"
}
SectionWidget."dmic01_hifi_mixin" {
index "1"
type "pga"
no_pm "true"
event_type "4"
event_flags "15"
subseq "10"
data "dmic01_hifi_mixin"
}
SectionWidget."dmic23_hifi_mixin" {
index "1"
type "pga"
no_pm "true"
event_type "4"
event_flags "15"
subseq "10"
data "dmic23_hifi_mixin"
}
SectionWidget."media3_mixin" {
index "1"
type "pga"
no_pm "true"
event_type "4"
event_flags "15"
subseq "10"
data "media3_mixin"
}
SectionWidget."codec0_in_mixin" {
index "1"
type "pga"
no_pm "true"
event_type "4"
event_flags "15"
subseq "10"
data "codec0_in_mixin"
}
SectionWidget."codec1_in_mixin" {
index "1"
type "pga"
no_pm "true"
event_type "4"
event_flags "15"
subseq "10"
data "codec1_in_mixin"
}
SectionPCMCapabilities."System Playback" {
formats "S24_LE,S16_LE"
rate_min "48000"
rate_max "48000"
channels_min "2"
channels_max "2"
}
SectionGraph."Pipeline 1 Graph" {
index "1"
lines [
"media2_in cpr vmix 0, , System Playback"
"media2_mixin, , media2_in cpr vmix 0"
"media3_in cpr vmix 0, , Deepbuffer Playback"
"media3_mixin, , media3_in cpr vmix 0"
"codec1_out_mixout mix 0, media0_mixin, media0_mixin"
"codec1_out_mixout mix 0, media1_mixin, media1_mixin"
"codec1_out_mixout mix 0, media2_mixin, media2_mixin"
"codec1_out_mixout mix 0, media3_mixin, media3_mixin"
"codec1_out_mixout mix 0, speech_mixin, speech_mixin"
"codec1_out_mixout mix 0, tone_mixin, tone_mixin"
"codec1_out_mixout mix 0, dmic01_hifi_mixin, dmic01_hifi_mixin"
"codec1_out_mixout mix 0, dmic23_hifi_mixin, dmic23_hifi_mixin"
"codec1_out_mixout mix 0, dmic01_voice_mixin, dmic01_voice_mixin"
"codec1_out_mixout mix 0, dmic23_voice_mixin, dmic23_voice_mixin"
"codec1_out_mixout mix 0, codec0_in_mixin, codec0_in_mixin"
"codec1_out_mixout mix 0, codec1_in_mixin, codec1_in_mixin"
"codec1_out cpr 0, , codec1_out_mixout mix 0"
"codec1_out, , codec1_out cpr 0"
"codec0_out_mixout mix 0, media0_mixin, media0_mixin"
"codec0_out_mixout mix 0, media1_mixin, media1_mixin"
"codec0_out_mixout mix 0, media2_mixin, media2_mixin"
"codec0_out_mixout mix 0, media3_mixin, media3_mixin"
"codec0_out_mixout mix 0, speech_mixin, speech_mixin"
"codec0_out_mixout mix 0, tone_mixin, tone_mixin"
"codec0_out_mixout mix 0, dmic01_hifi_mixin, dmic01_hifi_mixin"
"codec0_out_mixout mix 0, dmic23_hifi_mixin, dmic23_hifi_mixin"
"codec0_out_mixout mix 0, dmic01_voice_mixin, dmic01_voice_mixin"
"codec0_out_mixout mix 0, dmic23_voice_mixin, dmic23_voice_mixin"
"codec0_out_mixout mix 0, codec0_in_mixin, codec0_in_mixin"
"codec0_out_mixout mix 0, codec1_in_mixin, codec1_in_mixin"
"codec0_out cpr 0, , codec0_out_mixout mix 0"
"codec0_out, , codec0_out cpr 0"
"iDisp_out_mixout mix 0, media0_mixin, media0_mixin"
"iDisp_out_mixout mix 0, media1_mixin, media1_mixin"
"iDisp_out_mixout mix 0, media2_mixin, media2_mixin"
"iDisp_out_mixout mix 0, media3_mixin, media3_mixin"
"iDisp_out_mixout mix 0, speech_mixin, speech_mixin"
"iDisp_out_mixout mix 0, tone_mixin, tone_mixin"
"iDisp_out_mixout mix 0, dmic01_hifi_mixin, dmic01_hifi_mixin"
"iDisp_out_mixout mix 0, dmic23_hifi_mixin, dmic23_hifi_mixin"
"iDisp_out_mixout mix 0, dmic01_voice_mixin, dmic01_voice_mixin"
"iDisp_out_mixout mix 0, dmic23_voice_mixin, dmic23_voice_mixin"
"iDisp_out_mixout mix 0, codec0_in_mixin, codec0_in_mixin"
"iDisp_out_mixout mix 0, codec1_in_mixin, codec1_in_mixin"
"iDisp_out cpr 0, , iDisp_out_mixout mix 0"
"iDisp_out, , iDisp_out cpr 0"
"System Capture, , media0_out cpr 0"
"media0_out cpr 0, , media0_mixout mix 0"
"media0_mixout mix 0, media0_mixin, media0_mixin"
"media0_mixout mix 0, media1_mixin, media1_mixin"
"media0_mixout mix 0, media2_mixin, media2_mixin"
"media0_mixout mix 0, media3_mixin, media3_mixin"
"media0_mixout mix 0, speech_mixin, speech_mixin"
"media0_mixout mix 0, tone_mixin, tone_mixin"
"media0_mixout mix 0, dmic01_hifi_mixin, dmic01_hifi_mixin"
"media0_mixout mix 0, dmic23_hifi_mixin, dmic23_hifi_mixin"
"media0_mixout mix 0, dmic01_voice_mixin, dmic01_voice_mixin"
"media0_mixout mix 0, dmic23_voice_mixin, dmic23_voice_mixin"
"media0_mixout mix 0, codec0_in_mixin, codec0_in_mixin"
"media0_mixout mix 0, codec1_in_mixin, codec1_in_mixin"
"Reference Capture, , media2_out cpr 0"
"media2_out cpr 0, , media2_mixout mix 0"
"media2_mixout mix 0, media0_mixin, media0_mixin"
"media2_mixout mix 0, media1_mixin, media1_mixin"
"media2_mixout mix 0, media2_mixin, media2_mixin"
"media2_mixout mix 0, media3_mixin, media3_mixin"
"media2_mixout mix 0, speech_mixin, speech_mixin"
"media2_mixout mix 0, tone_mixin, tone_mixin"
"media2_mixout mix 0, dmic01_hifi_mixin, dmic01_hifi_mixin"
"media2_mixout mix 0, dmic23_hifi_mixin, dmic23_hifi_mixin"
"media2_mixout mix 0, dmic01_voice_mixin, dmic01_voice_mixin"
"media2_mixout mix 0, dmic23_voice_mixin, dmic23_voice_mixin"
"media2_mixout mix 0, codec0_in_mixin, codec0_in_mixin"
"media2_mixout mix 0, codec1_in_mixin, codec1_in_mixin"
"codec0_in_mixin, , codec0_in cpr vmix 0"
"codec0_in cpr vmix 0, , codec0_in"
"codec1_in_mixin, , codec1_in cpr vmix 0"
"codec1_in cpr vmix 0, , codec1_in"
"dmic01_hifi_mixin, , dmic01_hifi cpr vmix 0"
"dmic01_hifi cpr vmix 0, , dmic01_hifi"
"dmic23_hifi_mixin, , dmic23_hifi cpr vmix 0"
"dmic23_hifi cpr vmix 0, , dmic23_hifi"
]
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20150921/23f52c6e/attachment.sig>
More information about the Alsa-devel
mailing list