From: Vinod Koul <vinod.koul@intel.com>
To: Mark Brown <broonie@kernel.org>
Cc: liam.r.girdwood@linux.intel.com, patches.audio@intel.com,
alsa-devel@alsa-project.org
Subject: Re: [PATCH v2 0/9] Add DSP topology management for SKL
Date: Mon, 21 Sep 2015 22:17:45 +0530 [thread overview]
Message-ID: <20150921164745.GO2381@localhost> (raw)
In-Reply-To: <20150921163353.GU30445@sirena.org.uk>
[-- Attachment #1.1.1: Type: text/plain, Size: 870 bytes --]
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
[-- Attachment #1.1.2: skl_i2s.conf --]
[-- Type: text/plain, Size: 13318 bytes --]
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"
]
}
[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
prev parent reply other threads:[~2015-09-21 16:52 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-17 17:26 [PATCH v2 0/9] Add DSP topology management for SKL Vinod Koul
2015-08-17 17:26 ` [PATCH v2 1/9] ASoC: Intel: Skylake: Add pipe and modules handlers Vinod Koul
2015-09-19 16:00 ` Mark Brown
2015-09-21 3:37 ` Vinod Koul
2015-09-21 16:36 ` Mark Brown
2015-08-17 17:26 ` [PATCH v2 2/9] ASoC: Intel: Skylake: Add module configuration helpers Vinod Koul
2015-08-17 17:26 ` [PATCH v2 3/9] ASoC: Intel: Skylake: add DSP platform widget event handlers Vinod Koul
2015-09-17 9:47 ` Liam Girdwood
2015-09-17 11:38 ` Vinod Koul
2015-09-17 12:25 ` Liam Girdwood
2015-09-18 4:22 ` Vinod Koul
2015-09-19 16:11 ` Mark Brown
2015-09-21 3:24 ` Vinod Koul
2015-08-17 17:26 ` [PATCH v2 4/9] ASoC: Intel: Skylake: Add FE and BE hw_params handling Vinod Koul
2015-09-19 16:22 ` Mark Brown
2015-09-21 3:13 ` Vinod Koul
2015-08-17 17:26 ` [PATCH v2 5/9] ASoC: Intel: Skylake: Add topology core init and handlers Vinod Koul
2015-09-18 9:55 ` Liam Girdwood
2015-09-18 15:09 ` Vinod Koul
2015-08-17 17:26 ` [PATCH v2 6/9] ASoC: Intel: Skylake: Initialize and load DSP controls Vinod Koul
2015-09-18 9:58 ` Liam Girdwood
2015-09-18 15:11 ` Vinod Koul
2015-09-19 16:26 ` Mark Brown
2015-09-21 3:26 ` Vinod Koul
2015-08-17 17:26 ` [PATCH v2 7/9] ASoC: Intel: Skylake: Add DSP support and enable it Vinod Koul
2015-08-17 17:26 ` [PATCH v2 8/9] ASoC: Intel: Skylake: Initialize NHLT table Vinod Koul
2015-09-19 16:27 ` Mark Brown
2015-09-21 3:38 ` Vinod Koul
2015-08-17 17:26 ` [PATCH v2 9/9] ASoC: Intel: Skylake: Remove unused CPU dai's Vinod Koul
2015-09-03 8:14 ` [PATCH v2 0/9] Add DSP topology management for SKL Vinod Koul
2015-09-11 11:45 ` Mark Brown
2015-09-19 16:56 ` Mark Brown
2015-09-21 3:57 ` Vinod Koul
2015-09-21 16:33 ` Mark Brown
2015-09-21 16:47 ` Vinod Koul [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150921164745.GO2381@localhost \
--to=vinod.koul@intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=liam.r.girdwood@linux.intel.com \
--cc=patches.audio@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).