[alsa-devel] [PATCH] conf: topology: Add topolgy for skylake i2s configuration
This patch adds basic playback/capture support for skylake i2s platform. DSP topology module data are passed through the binary files. The framework parses these files and puts the data in the widget private section for the corresponding widget. This is parsed by kernel driver and stored as module config for the DSP. Based on usecase these data are sent to the DSP through IPCs for further processing.
Signed-off-by: Subhransu S. Prusty subhransu.s.prusty@intel.com Signed-off-by: Vinod Koul vinod.koul@intel.com --- configure.ac | 2 + src/conf/topology/Makefile.am | 2 +- src/conf/topology/skl/Makefile.am | 5 + src/conf/topology/skl/i2slinux/Makefile.am | 5 + src/conf/topology/skl/i2slinux/codec0_in-cpr-1.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/codec0_in-mi.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/codec0_out-cpr-4.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/codec0_out-mo.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/codec1_out-cpr-5.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/codec1_out-mo.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/dmic01_hifi_in-cpr-3.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/dmic01_hifi_in-mi.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi1_pt_out-cpr-7.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi1_pt_out-cpr-8.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi2_pt_out-cpr-10.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi2_pt_out-cpr-9.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi3_pt_out-cpr-11.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi3_pt_out-cpr-12.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/media0_in-cpr-0.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/media0_in-mi.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/media0_out-cpr-6.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/media0_out-mo.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/skl_i2s_linux.conf | 337 +++++++++++++++++++++ 23 files changed, 350 insertions(+), 1 deletion(-) create mode 100644 src/conf/topology/skl/Makefile.am create mode 100644 src/conf/topology/skl/i2slinux/Makefile.am create mode 100644 src/conf/topology/skl/i2slinux/codec0_in-cpr-1.bin create mode 100644 src/conf/topology/skl/i2slinux/codec0_in-mi.bin create mode 100644 src/conf/topology/skl/i2slinux/codec0_out-cpr-4.bin create mode 100644 src/conf/topology/skl/i2slinux/codec0_out-mo.bin create mode 100644 src/conf/topology/skl/i2slinux/codec1_out-cpr-5.bin create mode 100644 src/conf/topology/skl/i2slinux/codec1_out-mo.bin create mode 100644 src/conf/topology/skl/i2slinux/dmic01_hifi_in-cpr-3.bin create mode 100644 src/conf/topology/skl/i2slinux/dmic01_hifi_in-mi.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-7.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-8.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-10.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-9.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-11.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-12.bin create mode 100644 src/conf/topology/skl/i2slinux/media0_in-cpr-0.bin create mode 100644 src/conf/topology/skl/i2slinux/media0_in-mi.bin create mode 100644 src/conf/topology/skl/i2slinux/media0_out-cpr-6.bin create mode 100644 src/conf/topology/skl/i2slinux/media0_out-mo.bin create mode 100644 src/conf/topology/skl/skl_i2s_linux.conf
diff --git a/configure.ac b/configure.ac index 9490d39..af6ea6e 100644 --- a/configure.ac +++ b/configure.ac @@ -660,6 +660,8 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \ src/conf/ucm/broadwell-rt286/Makefile \ src/conf/topology/Makefile \ src/conf/topology/broadwell/Makefile \ + src/conf/topology/skl/Makefile \ + src/conf/topology/skl/i2slinux/Makefile \ modules/Makefile modules/mixer/Makefile modules/mixer/simple/Makefile \ alsalisp/Makefile aserver/Makefile \ test/Makefile test/lsb/Makefile \ diff --git a/src/conf/topology/Makefile.am b/src/conf/topology/Makefile.am index f56a96c..ce011f3 100644 --- a/src/conf/topology/Makefile.am +++ b/src/conf/topology/Makefile.am @@ -1 +1 @@ -SUBDIRS=broadwell +SUBDIRS=broadwell skl diff --git a/src/conf/topology/skl/Makefile.am b/src/conf/topology/skl/Makefile.am new file mode 100644 index 0000000..623f1d0 --- /dev/null +++ b/src/conf/topology/skl/Makefile.am @@ -0,0 +1,5 @@ +SUBDIRS=i2slinux +alsaconfigdir = @ALSA_CONFIG_DIR@ +topologydir = $(alsaconfigdir)/topology/skl +topology_DATA = skl_i2s_linux.conf +EXTRA_DIST = $(topology_DATA) diff --git a/src/conf/topology/skl/i2slinux/Makefile.am b/src/conf/topology/skl/i2slinux/Makefile.am new file mode 100644 index 0000000..c57da9f --- /dev/null +++ b/src/conf/topology/skl/i2slinux/Makefile.am @@ -0,0 +1,5 @@ +alsaconfigdir = @ALSA_CONFIG_DIR@ +i2slinuxdir = $(alsaconfigdir)/topology/skl/i2slinux +i2slinux_DATA = codec0_in-cpr-1.bin codec0_out-mo.bin dmic01_hifi_in-cpr-3.bin hdmi1_pt_out-cpr-8.bin hdmi3_pt_out-cpr-11.bin media0_in-cpr-0.bin media0_out-mo.bin codec0_in-mi.bin codec1_out-cpr-5.bin dmic01_hifi_in-mi.bin hdmi2_pt_out-cpr-10.bin hdmi3_pt_out-cpr-12.bin media0_in-mi.bin codec0_out-cpr-4.bin codec1_out-mo.bin hdmi1_pt_out-cpr-7.bin hdmi2_pt_out-cpr-9.bin media0_out-cpr-6.bin + +EXTRA_DIST = $(i2slinux_DATA) diff --git a/src/conf/topology/skl/i2slinux/codec0_in-cpr-1.bin b/src/conf/topology/skl/i2slinux/codec0_in-cpr-1.bin new file mode 100644 index 0000000000000000000000000000000000000000..67ec763d25a7c6a87a2090a620aba6ec9a15a87f GIT binary patch literal 4268 zcmeIuF%E+;6a!Ev6<Y_!j#c+a5E#h#8{k|_JxA}+!v&}6PG{su-?5Y||D~sOU7m)J zt&d?ewloeo^sB{Xiffu@1J4Bx@0Vi&8>3D=&T}3NT+zV$+O`jH=Y8Y+zOeyqDdk&E i97p>fy`Pvyt4Tlt5|DrdBp?9^NI(J-kbngK64(I`Xcztf
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec0_in-mi.bin b/src/conf/topology/skl/i2slinux/codec0_in-mi.bin new file mode 100644 index 0000000000000000000000000000000000000000..bde78994ea15d128cbd9446fc6927a3b3a67a135 GIT binary patch literal 4268 zcmeIvy%B&Q3<l81ot=dvxBzzu_(KcG9FAh;9PZ(8niQ^Jp<g(X9MI(9!Z?gewA#g~ z*WUP`=j@6u!KOSU?~)0`QSmx<$wV6`*%wD82dm=LP)$lnx1B^CSJ`s?M9c4={;T!x d^MCbUF&6|N009U<00Izz00bZa0SLS&a05GX7nlG5
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec0_out-cpr-4.bin b/src/conf/topology/skl/i2slinux/codec0_out-cpr-4.bin new file mode 100644 index 0000000000000000000000000000000000000000..cfa5661fc67763d279ed03c1288a2d8b8d13f2df GIT binary patch literal 4268 zcmeIuF%E+;3<c01%GiOCvFaWP0s|S{P|n5FbMziPT=+rkbVlEj9b56@7hl$OX&QX8 zKKRkt#c@c!Uo5<*u*7*bFm9;v{Wv)GD@(}|u3|pRaOX}{bHw@s9(-HovBnN)a?X2m i;c|BW+5d%UbeaStAOQ(TKmrnwfCMBU0SQRpFM$m(f*1e*
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec0_out-mo.bin b/src/conf/topology/skl/i2slinux/codec0_out-mo.bin new file mode 100644 index 0000000000000000000000000000000000000000..50873bb1ab6dfcd7a6fdd3885031f42099298713 GIT binary patch literal 4268 zcmeIuu@QhE3<c1j78Vwc-~!wMirOOR9F9We9PZ(8niO_!;Llz1?~+unkAC#V2knM5 z>A}vMUQ&uW+RcYPL>E>=Tm|=eC{mo6hxE-=%VL+&P)S84fB7QnIHl$CR?Gi?zrPkp Z2tWV=5P$##AOHafKmY;|fB*!(1s-(zH=6(e
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec1_out-cpr-5.bin b/src/conf/topology/skl/i2slinux/codec1_out-cpr-5.bin new file mode 100644 index 0000000000000000000000000000000000000000..2b3b7a0dd62d9ab6ea407eae631089e41228c73e GIT binary patch literal 4268 zcmeIuF%H5o3<c1iP&NieM$|o0n|5eMlhSiBagN@jhYLT5z0B3OWXG1X_@#$+U7m)J zt&d?ec4-`P=ogF6DK2TA4U7}cSl<qg{fnh$4d*>vTZao8cuw4Hz@6`n`TNEWxRz4B j&4J6_{d@ZZ)95q_NI(J-kbndvAOQ(TKmrnwz+VC%QGOT#
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec1_out-mo.bin b/src/conf/topology/skl/i2slinux/codec1_out-mo.bin new file mode 100644 index 0000000000000000000000000000000000000000..860883d9d4587ffa15d64ec7dee2a69c367fffb2 GIT binary patch literal 4268 zcmeIuyA6Oa3<S_4qM)E)1Qv)CJ^|X0z#NQ1#T@Lxa9|g7Y`~r5vlOR#UG#%@KG?QT zqwSk%wR1|*#%A@Q3$YE0gTx@id1TVSE~Rrz3VqnLO5`xc==}m}**bc8Q_26o-(L%E Z3Q&Lo6rcbFC_n)UP=Epypa2EF1s-)GH=6(e
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/dmic01_hifi_in-cpr-3.bin b/src/conf/topology/skl/i2slinux/dmic01_hifi_in-cpr-3.bin new file mode 100644 index 0000000000000000000000000000000000000000..853de5655bbfd9f26a1820811c29cdc3b345e0d6 GIT binary patch literal 4268 zcmeIuu?>ST5Czb02c=38F+mov1cm~a7Zc{9${g7v!#Uq5J=Eyiy7RZ}=3aVQ*X3yl z+4>kpV@l(YL%&#jO>s%{Y~Z?Zf8Gv`d1b3rm-DRFqiJrq!h2q^et`$iTK{iMz`c~R jg%h{E`S;#WOry~xAOQ(TKmrnwfCMBU0SQPz0*3^CGzS<F
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/dmic01_hifi_in-mi.bin b/src/conf/topology/skl/i2slinux/dmic01_hifi_in-mi.bin new file mode 100644 index 0000000000000000000000000000000000000000..97cb2f4e6d47bbec1a61ec22d0cb5825944b978a GIT binary patch literal 4268 zcmeIvy$ysg3<cnqAW>a$Bd|auAR&;J0CO-36?5Dk49D38D^S3*<R2wz{Kco(#d&O< zAN$6IIwUttesN1`^VH?wbDbbzP~f*4>A)sM^OP`puv#e}l(1H(?Eot2ntFZ3SKeRq gQ~TTZf9k(-FA7kA0u-PC1t>rP3Q&Lo6u3{|4{X*Kn*aa+
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-7.bin b/src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-7.bin new file mode 100644 index 0000000000000000000000000000000000000000..eaca9488b52e8fc7722ac9966498031c7f9675a0 GIT binary patch literal 4268 zcmeIuu@QqX3<c0HQlz0^ge>4YFci2{4D@V7l{vCUhJ){dn$+Caoh{i?qnF;^wt4JB z_AZ9OS*4-Rp<6u8V_ecSIT#N-@%<Q#^~S55onaMVYx%7?VHKa)e!z>loYFa?;rv<O iHDB$2)xWEY_L6`EBp?9^NI(J-kbndvAOQ*dD{ug4IUGj-
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-8.bin b/src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-8.bin new file mode 100644 index 0000000000000000000000000000000000000000..88908216321996f8696fab9528dceb0f095f0ba2 GIT binary patch literal 4268 zcmeIuu@QqX3<c0HQjj7AC1n=y9T*B+DkjWD#T?lq!zJGZHPqbKoh;dMqnBRZb$J>> z_CAKu*`;yFp<g_{r?{kfb}(+Z<Fgrz{mP@{k6{&HUS1!lVHK}fzrd5VWtPbv4gc@` iRqN6INAs(?XfFv!KmrnwfCMBU0SQPz0uqqGS%E+Mo*W<m
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-10.bin b/src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-10.bin new file mode 100644 index 0000000000000000000000000000000000000000..ae8ca45258aea59a8458d4ac481678e4e63b7bd6 GIT binary patch literal 4268 zcmeIuF%E+;3<c0{x}d59BV#WR2?7Hd-B8ZO#5sD89<Kcvm|;fWl4B>%;+J0Db$J>> z_CAKu*`;yFp<g_{r?{kfb}(+Z<Fgrz{mP@{k6{&HUS1!lVHK}fzrd5VWtPbv4gc@` iRqN6INAs(?XfFv!KmrnwfCMBU0SQPz0uqqGS%E(-5ga1`
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-9.bin b/src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-9.bin new file mode 100644 index 0000000000000000000000000000000000000000..71e94823f7316fa9c0a73b46b1867388d64608cb GIT binary patch literal 4268 zcmeIuu?>VU3<c0{t~n$MMz{qcL7+%V6ONvZsF;I27!I6*8fx?{Id<YSesR#INuhH| zTkm?cF7{n=?WF!6{1nGgVevtUZ54?1iyb)+3n>7Z^J|4Kq_8WN9r#(znI~7&_W$bN hTJQG1o4?hCdr^P_6rcbFC_n)UP=Epypa2D)3Y?jp97+HH
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-11.bin b/src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-11.bin new file mode 100644 index 0000000000000000000000000000000000000000..4b3c12c102218f93ec6c5d93725e63dff9a0205a GIT binary patch literal 4268 zcmeIuu?>VU3<c0{t~x=%2)95a2oy<a!qKx46?3o$!+}#!Lyf*A$4;EaFAmx?DReGr z>s_zb#lB0foz(w>pW-+wEIuf)tpc%ru_NbUAq60Fey#9@6n4e313#-d^W=)!{$KrD h>)rl$^S8QiFA7kA0u-PC1t>rP3Q&Lo6rjLUffLIC98CZK
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-12.bin b/src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-12.bin new file mode 100644 index 0000000000000000000000000000000000000000..b8cd0949df74607d278ada0cb1f8f7fdfe36d24c GIT binary patch literal 4268 zcmeIuF%E+;3<c0{I#pum$k+=+g1|sV6Uw=mI0yIW;o6^p8D{h?Id<YKerfWy&0`<3 zcQFjkE)9JS-Qw{x#wE?OgYiI(eKQ#Ql}E`R!z#eMyw-TaDqgXEfj4WzER!Q%{D1U! ht!Mk6&F|`>y(Az32}nQ!5|DrdBp?9^NI(Kt1^!-j93}t&
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/media0_in-cpr-0.bin b/src/conf/topology/skl/i2slinux/media0_in-cpr-0.bin new file mode 100644 index 0000000000000000000000000000000000000000..01934b36352524d571f91f327c9870cd1a712d9a GIT binary patch literal 4268 zcmeIup%H*E3<b~xEP@eOpm$IZRE7ecjZn<N9t;P+0u8$NbC)J<YVyKlZ5zklMeDp9 z3|$!d=(^SXGWs>lvk9U^o`;H}?l@B32rWc(ORp7XTHq@CCDNd#Op`Zi{D1pg>(~BY d^IToH7X>Il0SZun0u-PC1t>rP3Q*v$zyp$896A61
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/media0_in-mi.bin b/src/conf/topology/skl/i2slinux/media0_in-mi.bin new file mode 100644 index 0000000000000000000000000000000000000000..fb8847d95047226fb83c2e65ab54ed859ae942fb GIT binary patch literal 4268 zcmeIv!3}^Q3<Xf&?7<OSfCK?iuAt1}D4v|dJseJ36Ibwnze#CHx%A;;7{ZdQc4_Rj zH$LiVc14$H^E_nlvWbF1QXac}>P8pNi$d~X<)fjQREoOo6r!Wb$&)u)djIyd*1zvx b>%U?z2tWV=5P$##AOHafKmY;|_)g#k$ekCF
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/media0_out-cpr-6.bin b/src/conf/topology/skl/i2slinux/media0_out-cpr-6.bin new file mode 100644 index 0000000000000000000000000000000000000000..37e8d593a7c096c4f75f92e8941e74b02497472e GIT binary patch literal 4268 zcmeIuu?>ST5CzbGjzmR~5wd_KFci4Fm{4aVD(1)@8IF86w4_G=q_e-}YwqQzcU_r= zSiDbhbf!EGCH9M_*OZn#&koiN4L+N}m{%UPca{af-aODEz(P&y7kKcl&9S5IoIf5H i4QKnG{a=(tYe_%?5|DrdBp?9^NI(J-kbngK7We@L)*L|q
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/media0_out-mo.bin b/src/conf/topology/skl/i2slinux/media0_out-mo.bin new file mode 100644 index 0000000000000000000000000000000000000000..3c2336079fb1c6cae8d8557a3724cfb90f4733de GIT binary patch literal 4268 zcmeIuy%B&Q3<Y4IvaoOj7vK&>)D}VJa1<-&a1V#mm%`2seBttQB-Q6r7=sJZ_CucR z(9OjzIVYRC5~7c(kE>G%gLfWUY0Nu{<c+B0V>2i<F0_$pzm#gxC1w3agZsblUki2$ YP=Epypa2CZKmiI+fC3bt00q7U9%Sq{ng9R*
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/skl_i2s_linux.conf b/src/conf/topology/skl/skl_i2s_linux.conf new file mode 100644 index 0000000..53cb1c1 --- /dev/null +++ b/src/conf/topology/skl/skl_i2s_linux.conf @@ -0,0 +1,337 @@ +SectionData."media0_in cpr 0" { + file "skl/i2slinux/media0_in-cpr-0.bin" +} +SectionData."media0_in mi" { + file "skl/i2slinux/media0_in-mi.bin" +} +SectionData."media0_out mo" { + file "skl/i2slinux/media0_out-mo.bin" +} +SectionData."media0_out cpr 6" { + file "skl/i2slinux/media0_out-cpr-6.bin" +} +SectionData."codec0_out mo" { + file "skl/i2slinux/codec0_out-mo.bin" +} +SectionData."codec0_out cpr 4" { + file "skl/i2slinux/codec0_out-cpr-4.bin" +} +SectionData."codec1_out mo" { + file "skl/i2slinux/codec1_out-mo.bin" +} +SectionData."codec1_out cpr 5" { + file "skl/i2slinux/codec1_out-cpr-5.bin" +} +SectionData."codec0_in cpr 1" { + file "skl/i2slinux/codec0_in-cpr-1.bin" +} +SectionData."codec0_in mi" { + file "skl/i2slinux/codec0_in-mi.bin" +} +SectionData."dmic01_hifi_in cpr 3" { + file "skl/i2slinux/dmic01_hifi_in-cpr-3.bin" +} +SectionData."dmic01_hifi_in mi" { + file "skl/i2slinux/dmic01_hifi_in-mi.bin" +} +SectionData."hdmi1_pt_out cpr 7" { + file "skl/i2slinux/hdmi1_pt_out-cpr-7.bin" +} +SectionData."hdmi1_pt_out cpr 8" { + file "skl/i2slinux/hdmi1_pt_out-cpr-8.bin" +} +SectionData."hdmi2_pt_out cpr 9" { + file "skl/i2slinux/hdmi2_pt_out-cpr-9.bin" +} +SectionData."hdmi2_pt_out cpr 10" { + file "skl/i2slinux/hdmi2_pt_out-cpr-10.bin" +} +SectionData."hdmi3_pt_out cpr 11" { + file "skl/i2slinux/hdmi3_pt_out-cpr-11.bin" +} +SectionData."hdmi3_pt_out cpr 12" { + file "skl/i2slinux/hdmi3_pt_out-cpr-12.bin" +} + +SectionControlMixer."media0_in mi Switch" { + index"1" + invert "false" + max "1" + no_pm "true" + channel."fl" { + reg "-1" + shift "0" + } + channel."fr" { + reg "-1" + shift "0" + } + ops."ctl" { + get "64" + put "64" + info "64" + } +} +SectionControlMixer."codec0_in mi Switch" { + index"1" + invert "false" + max "1" + no_pm "true" + channel."fl" { + reg "-1" + shift "0" + } + channel."fr" { + reg "-1" + shift "0" + } + ops."ctl" { + get "64" + put "64" + info "64" + } +} +SectionControlMixer."dmic01_hifi_in mi Switch" { + index"1" + invert "false" + max "1" + no_pm "true" + channel."fl" { + reg "-1" + shift "0" + } + channel."fr" { + reg "-1" + shift "0" + } + ops."ctl" { + get "64" + put "64" + info "64" + } +} + +SectionWidget."media0_in cpr 0" { + index"1" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data "media0_in cpr 0" +} +SectionWidget."media0_in mi" { + index"1" + type"pga" + no_pm "true" + event_type "4" + event_flags "9" + subseq "10" + data "media0_in mi" +} +SectionWidget."media0_out mo" { + index"1" + type"mixer" + no_pm "true" + event_type "1" + event_flags "15" + subseq "10" + data "media0_out mo" + mixer [ + "media0_in mi Switch" + "codec0_in mi Switch" + "dmic01_hifi_in mi Switch" + ] +} +SectionWidget."media0_out cpr 6" { + index"1" + type"pga" + no_pm "true" + event_type "4" + data "media0_out cpr 6" +} +SectionWidget."codec0_out mo" { + index"1" + type"mixer" + no_pm "true" + event_type "1" + event_flags "15" + subseq "10" + data "codec0_out mo" + mixer [ + "media0_in mi Switch" + "codec0_in mi Switch" + "dmic01_hifi_in mi Switch" + ] +} +SectionWidget."codec0_out cpr 4" { + index"1" + type"pga" + no_pm "true" + event_type "4" + data "codec0_out cpr 4" +} +SectionWidget."codec0_out" { + index"1" + type"aif_out" + no_pm "true" +} +SectionWidget."codec1_out mo" { + index"1" + type"mixer" + no_pm "true" + event_type "1" + event_flags "15" + subseq "10" + data "codec1_out mo" + mixer [ + "media0_in mi Switch" + "codec0_in mi Switch" + "dmic01_hifi_in mi Switch" + ] +} +SectionWidget."codec1_out cpr 5" { + index"1" + type"pga" + no_pm "true" + event_type "4" + data "codec1_out cpr 5" +} +SectionWidget."codec1_out" { + index"1" + type"aif_out" + no_pm "true" +} +SectionWidget."codec0_in cpr 1" { + index"1" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data "codec0_in cpr 1" +} +SectionWidget."codec0_in mi" { + index"1" + type"pga" + no_pm "true" + event_type "4" + event_flags "9" + subseq "10" + data "codec0_in mi" +} +SectionWidget."codec0_in" { + index"1" + type"aif_in" + no_pm "true" +} +SectionWidget."dmic01_hifi_in cpr 3" { + index"1" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data "dmic01_hifi_in cpr 3" +} +SectionWidget."dmic01_hifi_in mi" { + index"1" + type"pga" + no_pm "true" + event_type "4" + event_flags "9" + subseq "10" + data "dmic01_hifi_in mi" +} +SectionWidget."dmic01_hifi" { + index"1" + type"aif_in" + no_pm "true" +} +SectionWidget."hdmi1_pt_out cpr 7" { + index"1" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data "hdmi1_pt_out cpr 7" +} +SectionWidget."hdmi1_pt_out cpr 8" { + index"1" + type"pga" + no_pm "true" + event_type "4" + data "hdmi1_pt_out cpr 8" +} +SectionWidget."iDisp1_out" { + index"1" + type"aif_out" + no_pm "true" +} +SectionWidget."hdmi2_pt_out cpr 9" { + index"1" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data "hdmi2_pt_out cpr 9" +} +SectionWidget."hdmi2_pt_out cpr 10" { + index"1" + type"pga" + no_pm "true" + event_type "4" + data "hdmi2_pt_out cpr 10" +} +SectionWidget."iDisp2_out" { + index"1" + type"aif_out" + no_pm "true" +} +SectionWidget."hdmi3_pt_out cpr 11" { + index"1" + type"mixer" + no_pm "true" + event_type "3" + event_flags "9" + data "hdmi3_pt_out cpr 11" +} +SectionWidget."hdmi3_pt_out cpr 12" { + index"1" + type"pga" + no_pm "true" + event_type "4" + data "hdmi3_pt_out cpr 12" +} +SectionGraph."Pipeline 1 Graph" { + index"1" + lines [ + "media0_in mi, , media0_in cpr 0" + "media0_in cpr 0, , System Playback" + "media0_out mo, media0_in mi Switch, media0_in mi" + "media0_out mo, codec0_in mi Switch, codec0_in mi" + "media0_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi" + "media0_out cpr 6, , media0_out mo" + "System Capture, , media0_out cpr 6" + "codec0_out mo, media0_in mi Switch, media0_in mi" + "codec0_out mo, codec0_in mi Switch, codec0_in mi" + "codec0_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi" + "codec0_out cpr 4, , codec0_out mo" + "codec0_out, , codec0_out cpr 4" + "codec1_out mo, media0_in mi Switch, media0_in mi" + "codec1_out mo, codec0_in mi Switch, codec0_in mi" + "codec1_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi" + "codec1_out cpr 5, , codec1_out mo" + "codec1_out, , codec1_out cpr 5" + "codec0_in mi, , codec0_in cpr 1" + "codec0_in cpr 1, , codec0_in" + "dmic01_hifi_in mi, , dmic01_hifi_in cpr 3" + "dmic01_hifi_in cpr 3, , dmic01_hifi" + "hdmi1_pt_out cpr 8, , hdmi1_pt_out cpr 7" + "hdmi1_pt_out cpr 7, , HDMI1 Playback" + "iDisp1_out, , hdmi1_pt_out cpr 8" + "hdmi2_pt_out cpr 10, , hdmi2_pt_out cpr 9" + "hdmi2_pt_out cpr 9, , HDMI2 Playback" + "iDisp2_out, , hdmi2_pt_out cpr 10" + "hdmi3_pt_out cpr 12, , hdmi3_pt_out cpr 11" + "hdmi3_pt_out cpr 11, , HDMI3 Playback" + "iDisp1_out, , hdmi3_pt_out cpr 12" + ] +}
On Mon, 08 Feb 2016 04:55:56 +0100, Subhransu S. Prusty wrote:
This patch adds basic playback/capture support for skylake i2s platform. DSP topology module data are passed through the binary files. The framework parses these files and puts the data in the widget private section for the corresponding widget. This is parsed by kernel driver and stored as module config for the DSP. Based on usecase these data are sent to the DSP through IPCs for further processing.
Can we have sources for these binaries, or do they have to be binary-only?
thanks,
Takashi
Signed-off-by: Subhransu S. Prusty subhransu.s.prusty@intel.com Signed-off-by: Vinod Koul vinod.koul@intel.com
configure.ac | 2 + src/conf/topology/Makefile.am | 2 +- src/conf/topology/skl/Makefile.am | 5 + src/conf/topology/skl/i2slinux/Makefile.am | 5 + src/conf/topology/skl/i2slinux/codec0_in-cpr-1.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/codec0_in-mi.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/codec0_out-cpr-4.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/codec0_out-mo.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/codec1_out-cpr-5.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/codec1_out-mo.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/dmic01_hifi_in-cpr-3.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/dmic01_hifi_in-mi.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi1_pt_out-cpr-7.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi1_pt_out-cpr-8.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi2_pt_out-cpr-10.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi2_pt_out-cpr-9.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi3_pt_out-cpr-11.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi3_pt_out-cpr-12.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/media0_in-cpr-0.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/media0_in-mi.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/media0_out-cpr-6.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/media0_out-mo.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/skl_i2s_linux.conf | 337 +++++++++++++++++++++ 23 files changed, 350 insertions(+), 1 deletion(-) create mode 100644 src/conf/topology/skl/Makefile.am create mode 100644 src/conf/topology/skl/i2slinux/Makefile.am create mode 100644 src/conf/topology/skl/i2slinux/codec0_in-cpr-1.bin create mode 100644 src/conf/topology/skl/i2slinux/codec0_in-mi.bin create mode 100644 src/conf/topology/skl/i2slinux/codec0_out-cpr-4.bin create mode 100644 src/conf/topology/skl/i2slinux/codec0_out-mo.bin create mode 100644 src/conf/topology/skl/i2slinux/codec1_out-cpr-5.bin create mode 100644 src/conf/topology/skl/i2slinux/codec1_out-mo.bin create mode 100644 src/conf/topology/skl/i2slinux/dmic01_hifi_in-cpr-3.bin create mode 100644 src/conf/topology/skl/i2slinux/dmic01_hifi_in-mi.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-7.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-8.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-10.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-9.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-11.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-12.bin create mode 100644 src/conf/topology/skl/i2slinux/media0_in-cpr-0.bin create mode 100644 src/conf/topology/skl/i2slinux/media0_in-mi.bin create mode 100644 src/conf/topology/skl/i2slinux/media0_out-cpr-6.bin create mode 100644 src/conf/topology/skl/i2slinux/media0_out-mo.bin create mode 100644 src/conf/topology/skl/skl_i2s_linux.conf
diff --git a/configure.ac b/configure.ac index 9490d39..af6ea6e 100644 --- a/configure.ac +++ b/configure.ac @@ -660,6 +660,8 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \ src/conf/ucm/broadwell-rt286/Makefile \ src/conf/topology/Makefile \ src/conf/topology/broadwell/Makefile \
src/conf/topology/skl/Makefile \
modules/Makefile modules/mixer/Makefile modules/mixer/simple/Makefile \ alsalisp/Makefile aserver/Makefile \ test/Makefile test/lsb/Makefile \src/conf/topology/skl/i2slinux/Makefile \
diff --git a/src/conf/topology/Makefile.am b/src/conf/topology/Makefile.am index f56a96c..ce011f3 100644 --- a/src/conf/topology/Makefile.am +++ b/src/conf/topology/Makefile.am @@ -1 +1 @@ -SUBDIRS=broadwell +SUBDIRS=broadwell skl diff --git a/src/conf/topology/skl/Makefile.am b/src/conf/topology/skl/Makefile.am new file mode 100644 index 0000000..623f1d0 --- /dev/null +++ b/src/conf/topology/skl/Makefile.am @@ -0,0 +1,5 @@ +SUBDIRS=i2slinux +alsaconfigdir = @ALSA_CONFIG_DIR@ +topologydir = $(alsaconfigdir)/topology/skl +topology_DATA = skl_i2s_linux.conf +EXTRA_DIST = $(topology_DATA) diff --git a/src/conf/topology/skl/i2slinux/Makefile.am b/src/conf/topology/skl/i2slinux/Makefile.am new file mode 100644 index 0000000..c57da9f --- /dev/null +++ b/src/conf/topology/skl/i2slinux/Makefile.am @@ -0,0 +1,5 @@ +alsaconfigdir = @ALSA_CONFIG_DIR@ +i2slinuxdir = $(alsaconfigdir)/topology/skl/i2slinux +i2slinux_DATA = codec0_in-cpr-1.bin codec0_out-mo.bin dmic01_hifi_in-cpr-3.bin hdmi1_pt_out-cpr-8.bin hdmi3_pt_out-cpr-11.bin media0_in-cpr-0.bin media0_out-mo.bin codec0_in-mi.bin codec1_out-cpr-5.bin dmic01_hifi_in-mi.bin hdmi2_pt_out-cpr-10.bin hdmi3_pt_out-cpr-12.bin media0_in-mi.bin codec0_out-cpr-4.bin codec1_out-mo.bin hdmi1_pt_out-cpr-7.bin hdmi2_pt_out-cpr-9.bin media0_out-cpr-6.bin
+EXTRA_DIST = $(i2slinux_DATA) diff --git a/src/conf/topology/skl/i2slinux/codec0_in-cpr-1.bin b/src/conf/topology/skl/i2slinux/codec0_in-cpr-1.bin new file mode 100644 index 0000000000000000000000000000000000000000..67ec763d25a7c6a87a2090a620aba6ec9a15a87f GIT binary patch literal 4268 zcmeIuF%E+;6a!Ev6<Y_!j#c+a5E#h#8{k|_JxA}+!v&}6PG{su-?5Y||D~sOU7m)J zt&d?ewloeo^sB{Xiffu@1J4Bx@0Vi&8>3D=&T}3NT+zV$+O`jH=Y8Y+zOeyqDdk&E i97p>fy`Pvyt4Tlt5|DrdBp?9^NI(J-kbngK64(I`Xcztf
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec0_in-mi.bin b/src/conf/topology/skl/i2slinux/codec0_in-mi.bin new file mode 100644 index 0000000000000000000000000000000000000000..bde78994ea15d128cbd9446fc6927a3b3a67a135 GIT binary patch literal 4268 zcmeIvy%B&Q3<l81ot=dvxBzzu_(KcG9FAh;9PZ(8niQ^Jp<g(X9MI(9!Z?gewA#g~ z*WUP`=j@6u!KOSU?~)0`QSmx<$wV6`*%wD82dm=LP)$lnx1B^CSJ`s?M9c4={;T!x d^MCbUF&6|N009U<00Izz00bZa0SLS&a05GX7nlG5
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec0_out-cpr-4.bin b/src/conf/topology/skl/i2slinux/codec0_out-cpr-4.bin new file mode 100644 index 0000000000000000000000000000000000000000..cfa5661fc67763d279ed03c1288a2d8b8d13f2df GIT binary patch literal 4268 zcmeIuF%E+;3<c01%GiOCvFaWP0s|S{P|n5FbMziPT=+rkbVlEj9b56@7hl$OX&QX8 zKKRkt#c@c!Uo5<*u*7*bFm9;v{Wv)GD@(}|u3|pRaOX}{bHw@s9(-HovBnN)a?X2m i;c|BW+5d%UbeaStAOQ(TKmrnwfCMBU0SQRpFM$m(f*1e*
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec0_out-mo.bin b/src/conf/topology/skl/i2slinux/codec0_out-mo.bin new file mode 100644 index 0000000000000000000000000000000000000000..50873bb1ab6dfcd7a6fdd3885031f42099298713 GIT binary patch literal 4268 zcmeIuu@QhE3<c1j78Vwc-~!wMirOOR9F9We9PZ(8niO_!;Llz1?~+unkAC#V2knM5 z>A}vMUQ&uW+RcYPL>E>=Tm|=eC{mo6hxE-=%VL+&P)S84fB7QnIHl$CR?Gi?zrPkp Z2tWV=5P$##AOHafKmY;|fB*!(1s-(zH=6(e
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec1_out-cpr-5.bin b/src/conf/topology/skl/i2slinux/codec1_out-cpr-5.bin new file mode 100644 index 0000000000000000000000000000000000000000..2b3b7a0dd62d9ab6ea407eae631089e41228c73e GIT binary patch literal 4268 zcmeIuF%H5o3<c1iP&NieM$|o0n|5eMlhSiBagN@jhYLT5z0B3OWXG1X_@#$+U7m)J zt&d?ec4-`P=ogF6DK2TA4U7}cSl<qg{fnh$4d*>vTZao8cuw4Hz@6`n`TNEWxRz4B j&4J6_{d@ZZ)95q_NI(J-kbndvAOQ(TKmrnwz+VC%QGOT#
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec1_out-mo.bin b/src/conf/topology/skl/i2slinux/codec1_out-mo.bin new file mode 100644 index 0000000000000000000000000000000000000000..860883d9d4587ffa15d64ec7dee2a69c367fffb2 GIT binary patch literal 4268 zcmeIuyA6Oa3<S_4qM)E)1Qv)CJ^|X0z#NQ1#T@Lxa9|g7Y`~r5vlOR#UG#%@KG?QT zqwSk%wR1|*#%A@Q3$YE0gTx@id1TVSE~Rrz3VqnLO5`xc==}m}**bc8Q_26o-(L%E Z3Q&Lo6rcbFC_n)UP=Epypa2EF1s-)GH=6(e
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/dmic01_hifi_in-cpr-3.bin b/src/conf/topology/skl/i2slinux/dmic01_hifi_in-cpr-3.bin new file mode 100644 index 0000000000000000000000000000000000000000..853de5655bbfd9f26a1820811c29cdc3b345e0d6 GIT binary patch literal 4268 zcmeIuu?>ST5Czb02c=38F+mov1cm~a7Zc{9${g7v!#Uq5J=Eyiy7RZ}=3aVQ*X3yl z+4>kpV@l(YL%&#jO>s%{Y~Z?Zf8Gv`d1b3rm-DRFqiJrq!h2q^et`$iTK{iMz`c~R jg%h{E`S;#WOry~xAOQ(TKmrnwfCMBU0SQPz0*3^CGzS<F
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/dmic01_hifi_in-mi.bin b/src/conf/topology/skl/i2slinux/dmic01_hifi_in-mi.bin new file mode 100644 index 0000000000000000000000000000000000000000..97cb2f4e6d47bbec1a61ec22d0cb5825944b978a GIT binary patch literal 4268 zcmeIvy$ysg3<cnqAW>a$Bd|auAR&;J0CO-36?5Dk49D38D^S3*<R2wz{Kco(#d&O< zAN$6IIwUttesN1`^VH?wbDbbzP~f*4>A)sM^OP`puv#e}l(1H(?Eot2ntFZ3SKeRq gQ~TTZf9k(-FA7kA0u-PC1t>rP3Q&Lo6u3{|4{X*Kn*aa+
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-7.bin b/src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-7.bin new file mode 100644 index 0000000000000000000000000000000000000000..eaca9488b52e8fc7722ac9966498031c7f9675a0 GIT binary patch literal 4268 zcmeIuu@QqX3<c0HQlz0^ge>4YFci2{4D@V7l{vCUhJ){dn$+Caoh{i?qnF;^wt4JB z_AZ9OS*4-Rp<6u8V_ecSIT#N-@%<Q#^~S55onaMVYx%7?VHKa)e!z>loYFa?;rv<O iHDB$2)xWEY_L6`EBp?9^NI(J-kbndvAOQ*dD{ug4IUGj-
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-8.bin b/src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-8.bin new file mode 100644 index 0000000000000000000000000000000000000000..88908216321996f8696fab9528dceb0f095f0ba2 GIT binary patch literal 4268 zcmeIuu@QqX3<c0HQjj7AC1n=y9T*B+DkjWD#T?lq!zJGZHPqbKoh;dMqnBRZb$J>> z_CAKu*`;yFp<g_{r?{kfb}(+Z<Fgrz{mP@{k6{&HUS1!lVHK}fzrd5VWtPbv4gc@` iRqN6INAs(?XfFv!KmrnwfCMBU0SQPz0uqqGS%E+Mo*W<m
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-10.bin b/src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-10.bin new file mode 100644 index 0000000000000000000000000000000000000000..ae8ca45258aea59a8458d4ac481678e4e63b7bd6 GIT binary patch literal 4268 zcmeIuF%E+;3<c0{x}d59BV#WR2?7Hd-B8ZO#5sD89<Kcvm|;fWl4B>%;+J0Db$J>> z_CAKu*`;yFp<g_{r?{kfb}(+Z<Fgrz{mP@{k6{&HUS1!lVHK}fzrd5VWtPbv4gc@` iRqN6INAs(?XfFv!KmrnwfCMBU0SQPz0uqqGS%E(-5ga1`
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-9.bin b/src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-9.bin new file mode 100644 index 0000000000000000000000000000000000000000..71e94823f7316fa9c0a73b46b1867388d64608cb GIT binary patch literal 4268 zcmeIuu?>VU3<c0{t~n$MMz{qcL7+%V6ONvZsF;I27!I6*8fx?{Id<YSesR#INuhH| zTkm?cF7{n=?WF!6{1nGgVevtUZ54?1iyb)+3n>7Z^J|4Kq_8WN9r#(znI~7&_W$bN hTJQG1o4?hCdr^P_6rcbFC_n)UP=Epypa2D)3Y?jp97+HH
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-11.bin b/src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-11.bin new file mode 100644 index 0000000000000000000000000000000000000000..4b3c12c102218f93ec6c5d93725e63dff9a0205a GIT binary patch literal 4268 zcmeIuu?>VU3<c0{t~x=%2)95a2oy<a!qKx46?3o$!+}#!Lyf*A$4;EaFAmx?DReGr z>s_zb#lB0foz(w>pW-+wEIuf)tpc%ru_NbUAq60Fey#9@6n4e313#-d^W=)!{$KrD h>)rl$^S8QiFA7kA0u-PC1t>rP3Q&Lo6rjLUffLIC98CZK
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-12.bin b/src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-12.bin new file mode 100644 index 0000000000000000000000000000000000000000..b8cd0949df74607d278ada0cb1f8f7fdfe36d24c GIT binary patch literal 4268 zcmeIuF%E+;3<c0{I#pum$k+=+g1|sV6Uw=mI0yIW;o6^p8D{h?Id<YKerfWy&0`<3 zcQFjkE)9JS-Qw{x#wE?OgYiI(eKQ#Ql}E`R!z#eMyw-TaDqgXEfj4WzER!Q%{D1U! ht!Mk6&F|`>y(Az32}nQ!5|DrdBp?9^NI(Kt1^!-j93}t&
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/media0_in-cpr-0.bin b/src/conf/topology/skl/i2slinux/media0_in-cpr-0.bin new file mode 100644 index 0000000000000000000000000000000000000000..01934b36352524d571f91f327c9870cd1a712d9a GIT binary patch literal 4268 zcmeIup%H*E3<b~xEP@eOpm$IZRE7ecjZn<N9t;P+0u8$NbC)J<YVyKlZ5zklMeDp9 z3|$!d=(^SXGWs>lvk9U^o`;H}?l@B32rWc(ORp7XTHq@CCDNd#Op`Zi{D1pg>(~BY d^IToH7X>Il0SZun0u-PC1t>rP3Q*v$zyp$896A61
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/media0_in-mi.bin b/src/conf/topology/skl/i2slinux/media0_in-mi.bin new file mode 100644 index 0000000000000000000000000000000000000000..fb8847d95047226fb83c2e65ab54ed859ae942fb GIT binary patch literal 4268 zcmeIv!3}^Q3<Xf&?7<OSfCK?iuAt1}D4v|dJseJ36Ibwnze#CHx%A;;7{ZdQc4_Rj zH$LiVc14$H^E_nlvWbF1QXac}>P8pNi$d~X<)fjQREoOo6r!Wb$&)u)djIyd*1zvx b>%U?z2tWV=5P$##AOHafKmY;|_)g#k$ekCF
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/media0_out-cpr-6.bin b/src/conf/topology/skl/i2slinux/media0_out-cpr-6.bin new file mode 100644 index 0000000000000000000000000000000000000000..37e8d593a7c096c4f75f92e8941e74b02497472e GIT binary patch literal 4268 zcmeIuu?>ST5CzbGjzmR~5wd_KFci4Fm{4aVD(1)@8IF86w4_G=q_e-}YwqQzcU_r= zSiDbhbf!EGCH9M_*OZn#&koiN4L+N}m{%UPca{af-aODEz(P&y7kKcl&9S5IoIf5H i4QKnG{a=(tYe_%?5|DrdBp?9^NI(J-kbngK7We@L)*L|q
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/media0_out-mo.bin b/src/conf/topology/skl/i2slinux/media0_out-mo.bin new file mode 100644 index 0000000000000000000000000000000000000000..3c2336079fb1c6cae8d8557a3724cfb90f4733de GIT binary patch literal 4268 zcmeIuy%B&Q3<Y4IvaoOj7vK&>)D}VJa1<-&a1V#mm%`2seBttQB-Q6r7=sJZ_CucR z(9OjzIVYRC5~7c(kE>G%gLfWUY0Nu{<c+B0V>2i<F0_$pzm#gxC1w3agZsblUki2$ YP=Epypa2CZKmiI+fC3bt00q7U9%Sq{ng9R*
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/skl_i2s_linux.conf b/src/conf/topology/skl/skl_i2s_linux.conf new file mode 100644 index 0000000..53cb1c1 --- /dev/null +++ b/src/conf/topology/skl/skl_i2s_linux.conf @@ -0,0 +1,337 @@ +SectionData."media0_in cpr 0" {
- file "skl/i2slinux/media0_in-cpr-0.bin"
+} +SectionData."media0_in mi" {
- file "skl/i2slinux/media0_in-mi.bin"
+} +SectionData."media0_out mo" {
- file "skl/i2slinux/media0_out-mo.bin"
+} +SectionData."media0_out cpr 6" {
- file "skl/i2slinux/media0_out-cpr-6.bin"
+} +SectionData."codec0_out mo" {
- file "skl/i2slinux/codec0_out-mo.bin"
+} +SectionData."codec0_out cpr 4" {
- file "skl/i2slinux/codec0_out-cpr-4.bin"
+} +SectionData."codec1_out mo" {
- file "skl/i2slinux/codec1_out-mo.bin"
+} +SectionData."codec1_out cpr 5" {
- file "skl/i2slinux/codec1_out-cpr-5.bin"
+} +SectionData."codec0_in cpr 1" {
- file "skl/i2slinux/codec0_in-cpr-1.bin"
+} +SectionData."codec0_in mi" {
- file "skl/i2slinux/codec0_in-mi.bin"
+} +SectionData."dmic01_hifi_in cpr 3" {
- file "skl/i2slinux/dmic01_hifi_in-cpr-3.bin"
+} +SectionData."dmic01_hifi_in mi" {
- file "skl/i2slinux/dmic01_hifi_in-mi.bin"
+} +SectionData."hdmi1_pt_out cpr 7" {
- file "skl/i2slinux/hdmi1_pt_out-cpr-7.bin"
+} +SectionData."hdmi1_pt_out cpr 8" {
- file "skl/i2slinux/hdmi1_pt_out-cpr-8.bin"
+} +SectionData."hdmi2_pt_out cpr 9" {
- file "skl/i2slinux/hdmi2_pt_out-cpr-9.bin"
+} +SectionData."hdmi2_pt_out cpr 10" {
- file "skl/i2slinux/hdmi2_pt_out-cpr-10.bin"
+} +SectionData."hdmi3_pt_out cpr 11" {
- file "skl/i2slinux/hdmi3_pt_out-cpr-11.bin"
+} +SectionData."hdmi3_pt_out cpr 12" {
- file "skl/i2slinux/hdmi3_pt_out-cpr-12.bin"
+}
+SectionControlMixer."media0_in mi Switch" {
- index"1"
- invert "false"
- max "1"
- no_pm "true"
- channel."fl" {
reg "-1"
shift "0"
- }
- channel."fr" {
reg "-1"
shift "0"
- }
- ops."ctl" {
get "64"
put "64"
info "64"
- }
+} +SectionControlMixer."codec0_in mi Switch" {
- index"1"
- invert "false"
- max "1"
- no_pm "true"
- channel."fl" {
reg "-1"
shift "0"
- }
- channel."fr" {
reg "-1"
shift "0"
- }
- ops."ctl" {
get "64"
put "64"
info "64"
- }
+} +SectionControlMixer."dmic01_hifi_in mi Switch" {
- index"1"
- invert "false"
- max "1"
- no_pm "true"
- channel."fl" {
reg "-1"
shift "0"
- }
- channel."fr" {
reg "-1"
shift "0"
- }
- ops."ctl" {
get "64"
put "64"
info "64"
- }
+}
+SectionWidget."media0_in cpr 0" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "3"
- event_flags "9"
- data "media0_in cpr 0"
+} +SectionWidget."media0_in mi" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- event_flags "9"
- subseq "10"
- data "media0_in mi"
+} +SectionWidget."media0_out mo" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "1"
- event_flags "15"
- subseq "10"
- data "media0_out mo"
- mixer [
"media0_in mi Switch"
"codec0_in mi Switch"
"dmic01_hifi_in mi Switch"
- ]
+} +SectionWidget."media0_out cpr 6" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- data "media0_out cpr 6"
+} +SectionWidget."codec0_out mo" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "1"
- event_flags "15"
- subseq "10"
- data "codec0_out mo"
- mixer [
"media0_in mi Switch"
"codec0_in mi Switch"
"dmic01_hifi_in mi Switch"
- ]
+} +SectionWidget."codec0_out cpr 4" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- data "codec0_out cpr 4"
+} +SectionWidget."codec0_out" {
- index"1"
- type"aif_out"
- no_pm "true"
+} +SectionWidget."codec1_out mo" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "1"
- event_flags "15"
- subseq "10"
- data "codec1_out mo"
- mixer [
"media0_in mi Switch"
"codec0_in mi Switch"
"dmic01_hifi_in mi Switch"
- ]
+} +SectionWidget."codec1_out cpr 5" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- data "codec1_out cpr 5"
+} +SectionWidget."codec1_out" {
- index"1"
- type"aif_out"
- no_pm "true"
+} +SectionWidget."codec0_in cpr 1" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "3"
- event_flags "9"
- data "codec0_in cpr 1"
+} +SectionWidget."codec0_in mi" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- event_flags "9"
- subseq "10"
- data "codec0_in mi"
+} +SectionWidget."codec0_in" {
- index"1"
- type"aif_in"
- no_pm "true"
+} +SectionWidget."dmic01_hifi_in cpr 3" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "3"
- event_flags "9"
- data "dmic01_hifi_in cpr 3"
+} +SectionWidget."dmic01_hifi_in mi" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- event_flags "9"
- subseq "10"
- data "dmic01_hifi_in mi"
+} +SectionWidget."dmic01_hifi" {
- index"1"
- type"aif_in"
- no_pm "true"
+} +SectionWidget."hdmi1_pt_out cpr 7" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "3"
- event_flags "9"
- data "hdmi1_pt_out cpr 7"
+} +SectionWidget."hdmi1_pt_out cpr 8" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- data "hdmi1_pt_out cpr 8"
+} +SectionWidget."iDisp1_out" {
- index"1"
- type"aif_out"
- no_pm "true"
+} +SectionWidget."hdmi2_pt_out cpr 9" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "3"
- event_flags "9"
- data "hdmi2_pt_out cpr 9"
+} +SectionWidget."hdmi2_pt_out cpr 10" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- data "hdmi2_pt_out cpr 10"
+} +SectionWidget."iDisp2_out" {
- index"1"
- type"aif_out"
- no_pm "true"
+} +SectionWidget."hdmi3_pt_out cpr 11" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "3"
- event_flags "9"
- data "hdmi3_pt_out cpr 11"
+} +SectionWidget."hdmi3_pt_out cpr 12" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- data "hdmi3_pt_out cpr 12"
+} +SectionGraph."Pipeline 1 Graph" {
- index"1"
- lines [
"media0_in mi, , media0_in cpr 0"
"media0_in cpr 0, , System Playback"
"media0_out mo, media0_in mi Switch, media0_in mi"
"media0_out mo, codec0_in mi Switch, codec0_in mi"
"media0_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi"
"media0_out cpr 6, , media0_out mo"
"System Capture, , media0_out cpr 6"
"codec0_out mo, media0_in mi Switch, media0_in mi"
"codec0_out mo, codec0_in mi Switch, codec0_in mi"
"codec0_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi"
"codec0_out cpr 4, , codec0_out mo"
"codec0_out, , codec0_out cpr 4"
"codec1_out mo, media0_in mi Switch, media0_in mi"
"codec1_out mo, codec0_in mi Switch, codec0_in mi"
"codec1_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi"
"codec1_out cpr 5, , codec1_out mo"
"codec1_out, , codec1_out cpr 5"
"codec0_in mi, , codec0_in cpr 1"
"codec0_in cpr 1, , codec0_in"
"dmic01_hifi_in mi, , dmic01_hifi_in cpr 3"
"dmic01_hifi_in cpr 3, , dmic01_hifi"
"hdmi1_pt_out cpr 8, , hdmi1_pt_out cpr 7"
"hdmi1_pt_out cpr 7, , HDMI1 Playback"
"iDisp1_out, , hdmi1_pt_out cpr 8"
"hdmi2_pt_out cpr 10, , hdmi2_pt_out cpr 9"
"hdmi2_pt_out cpr 9, , HDMI2 Playback"
"iDisp2_out, , hdmi2_pt_out cpr 10"
"hdmi3_pt_out cpr 12, , hdmi3_pt_out cpr 11"
"hdmi3_pt_out cpr 11, , HDMI3 Playback"
"iDisp1_out, , hdmi3_pt_out cpr 12"
- ]
+}
1.9.1
On Tue, Feb 09, 2016 at 12:15:45PM +0100, Takashi Iwai wrote:
On Mon, 08 Feb 2016 04:55:56 +0100, Subhransu S. Prusty wrote:
This patch adds basic playback/capture support for skylake i2s platform. DSP topology module data are passed through the binary files. The framework parses these files and puts the data in the widget private section for the corresponding widget. This is parsed by kernel driver and stored as module config for the DSP. Based on usecase these data are sent to the DSP through IPCs for further processing.
Can we have sources for these binaries, or do they have to be binary-only?
Hi Takashi,
These are binary only data.
Regards, Subhransu
thanks,
Takashi
Signed-off-by: Subhransu S. Prusty subhransu.s.prusty@intel.com Signed-off-by: Vinod Koul vinod.koul@intel.com
configure.ac | 2 + src/conf/topology/Makefile.am | 2 +- src/conf/topology/skl/Makefile.am | 5 + src/conf/topology/skl/i2slinux/Makefile.am | 5 + src/conf/topology/skl/i2slinux/codec0_in-cpr-1.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/codec0_in-mi.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/codec0_out-cpr-4.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/codec0_out-mo.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/codec1_out-cpr-5.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/codec1_out-mo.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/dmic01_hifi_in-cpr-3.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/dmic01_hifi_in-mi.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi1_pt_out-cpr-7.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi1_pt_out-cpr-8.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi2_pt_out-cpr-10.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi2_pt_out-cpr-9.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi3_pt_out-cpr-11.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/hdmi3_pt_out-cpr-12.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/media0_in-cpr-0.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/media0_in-mi.bin | Bin 0 -> 4268 bytes .../topology/skl/i2slinux/media0_out-cpr-6.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/i2slinux/media0_out-mo.bin | Bin 0 -> 4268 bytes src/conf/topology/skl/skl_i2s_linux.conf | 337 +++++++++++++++++++++ 23 files changed, 350 insertions(+), 1 deletion(-) create mode 100644 src/conf/topology/skl/Makefile.am create mode 100644 src/conf/topology/skl/i2slinux/Makefile.am create mode 100644 src/conf/topology/skl/i2slinux/codec0_in-cpr-1.bin create mode 100644 src/conf/topology/skl/i2slinux/codec0_in-mi.bin create mode 100644 src/conf/topology/skl/i2slinux/codec0_out-cpr-4.bin create mode 100644 src/conf/topology/skl/i2slinux/codec0_out-mo.bin create mode 100644 src/conf/topology/skl/i2slinux/codec1_out-cpr-5.bin create mode 100644 src/conf/topology/skl/i2slinux/codec1_out-mo.bin create mode 100644 src/conf/topology/skl/i2slinux/dmic01_hifi_in-cpr-3.bin create mode 100644 src/conf/topology/skl/i2slinux/dmic01_hifi_in-mi.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-7.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-8.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-10.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-9.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-11.bin create mode 100644 src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-12.bin create mode 100644 src/conf/topology/skl/i2slinux/media0_in-cpr-0.bin create mode 100644 src/conf/topology/skl/i2slinux/media0_in-mi.bin create mode 100644 src/conf/topology/skl/i2slinux/media0_out-cpr-6.bin create mode 100644 src/conf/topology/skl/i2slinux/media0_out-mo.bin create mode 100644 src/conf/topology/skl/skl_i2s_linux.conf
diff --git a/configure.ac b/configure.ac index 9490d39..af6ea6e 100644 --- a/configure.ac +++ b/configure.ac @@ -660,6 +660,8 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \ src/conf/ucm/broadwell-rt286/Makefile \ src/conf/topology/Makefile \ src/conf/topology/broadwell/Makefile \
src/conf/topology/skl/Makefile \
modules/Makefile modules/mixer/Makefile modules/mixer/simple/Makefile \ alsalisp/Makefile aserver/Makefile \ test/Makefile test/lsb/Makefile \src/conf/topology/skl/i2slinux/Makefile \
diff --git a/src/conf/topology/Makefile.am b/src/conf/topology/Makefile.am index f56a96c..ce011f3 100644 --- a/src/conf/topology/Makefile.am +++ b/src/conf/topology/Makefile.am @@ -1 +1 @@ -SUBDIRS=broadwell +SUBDIRS=broadwell skl diff --git a/src/conf/topology/skl/Makefile.am b/src/conf/topology/skl/Makefile.am new file mode 100644 index 0000000..623f1d0 --- /dev/null +++ b/src/conf/topology/skl/Makefile.am @@ -0,0 +1,5 @@ +SUBDIRS=i2slinux +alsaconfigdir = @ALSA_CONFIG_DIR@ +topologydir = $(alsaconfigdir)/topology/skl +topology_DATA = skl_i2s_linux.conf +EXTRA_DIST = $(topology_DATA) diff --git a/src/conf/topology/skl/i2slinux/Makefile.am b/src/conf/topology/skl/i2slinux/Makefile.am new file mode 100644 index 0000000..c57da9f --- /dev/null +++ b/src/conf/topology/skl/i2slinux/Makefile.am @@ -0,0 +1,5 @@ +alsaconfigdir = @ALSA_CONFIG_DIR@ +i2slinuxdir = $(alsaconfigdir)/topology/skl/i2slinux +i2slinux_DATA = codec0_in-cpr-1.bin codec0_out-mo.bin dmic01_hifi_in-cpr-3.bin hdmi1_pt_out-cpr-8.bin hdmi3_pt_out-cpr-11.bin media0_in-cpr-0.bin media0_out-mo.bin codec0_in-mi.bin codec1_out-cpr-5.bin dmic01_hifi_in-mi.bin hdmi2_pt_out-cpr-10.bin hdmi3_pt_out-cpr-12.bin media0_in-mi.bin codec0_out-cpr-4.bin codec1_out-mo.bin hdmi1_pt_out-cpr-7.bin hdmi2_pt_out-cpr-9.bin media0_out-cpr-6.bin
+EXTRA_DIST = $(i2slinux_DATA) diff --git a/src/conf/topology/skl/i2slinux/codec0_in-cpr-1.bin b/src/conf/topology/skl/i2slinux/codec0_in-cpr-1.bin new file mode 100644 index 0000000000000000000000000000000000000000..67ec763d25a7c6a87a2090a620aba6ec9a15a87f GIT binary patch literal 4268 zcmeIuF%E+;6a!Ev6<Y_!j#c+a5E#h#8{k|_JxA}+!v&}6PG{su-?5Y||D~sOU7m)J zt&d?ewloeo^sB{Xiffu@1J4Bx@0Vi&8>3D=&T}3NT+zV$+O`jH=Y8Y+zOeyqDdk&E i97p>fy`Pvyt4Tlt5|DrdBp?9^NI(J-kbngK64(I`Xcztf
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec0_in-mi.bin b/src/conf/topology/skl/i2slinux/codec0_in-mi.bin new file mode 100644 index 0000000000000000000000000000000000000000..bde78994ea15d128cbd9446fc6927a3b3a67a135 GIT binary patch literal 4268 zcmeIvy%B&Q3<l81ot=dvxBzzu_(KcG9FAh;9PZ(8niQ^Jp<g(X9MI(9!Z?gewA#g~ z*WUP`=j@6u!KOSU?~)0`QSmx<$wV6`*%wD82dm=LP)$lnx1B^CSJ`s?M9c4={;T!x d^MCbUF&6|N009U<00Izz00bZa0SLS&a05GX7nlG5
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec0_out-cpr-4.bin b/src/conf/topology/skl/i2slinux/codec0_out-cpr-4.bin new file mode 100644 index 0000000000000000000000000000000000000000..cfa5661fc67763d279ed03c1288a2d8b8d13f2df GIT binary patch literal 4268 zcmeIuF%E+;3<c01%GiOCvFaWP0s|S{P|n5FbMziPT=+rkbVlEj9b56@7hl$OX&QX8 zKKRkt#c@c!Uo5<*u*7*bFm9;v{Wv)GD@(}|u3|pRaOX}{bHw@s9(-HovBnN)a?X2m i;c|BW+5d%UbeaStAOQ(TKmrnwfCMBU0SQRpFM$m(f*1e*
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec0_out-mo.bin b/src/conf/topology/skl/i2slinux/codec0_out-mo.bin new file mode 100644 index 0000000000000000000000000000000000000000..50873bb1ab6dfcd7a6fdd3885031f42099298713 GIT binary patch literal 4268 zcmeIuu@QhE3<c1j78Vwc-~!wMirOOR9F9We9PZ(8niO_!;Llz1?~+unkAC#V2knM5 z>A}vMUQ&uW+RcYPL>E>=Tm|=eC{mo6hxE-=%VL+&P)S84fB7QnIHl$CR?Gi?zrPkp Z2tWV=5P$##AOHafKmY;|fB*!(1s-(zH=6(e
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec1_out-cpr-5.bin b/src/conf/topology/skl/i2slinux/codec1_out-cpr-5.bin new file mode 100644 index 0000000000000000000000000000000000000000..2b3b7a0dd62d9ab6ea407eae631089e41228c73e GIT binary patch literal 4268 zcmeIuF%H5o3<c1iP&NieM$|o0n|5eMlhSiBagN@jhYLT5z0B3OWXG1X_@#$+U7m)J zt&d?ec4-`P=ogF6DK2TA4U7}cSl<qg{fnh$4d*>vTZao8cuw4Hz@6`n`TNEWxRz4B j&4J6_{d@ZZ)95q_NI(J-kbndvAOQ(TKmrnwz+VC%QGOT#
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/codec1_out-mo.bin b/src/conf/topology/skl/i2slinux/codec1_out-mo.bin new file mode 100644 index 0000000000000000000000000000000000000000..860883d9d4587ffa15d64ec7dee2a69c367fffb2 GIT binary patch literal 4268 zcmeIuyA6Oa3<S_4qM)E)1Qv)CJ^|X0z#NQ1#T@Lxa9|g7Y`~r5vlOR#UG#%@KG?QT zqwSk%wR1|*#%A@Q3$YE0gTx@id1TVSE~Rrz3VqnLO5`xc==}m}**bc8Q_26o-(L%E Z3Q&Lo6rcbFC_n)UP=Epypa2EF1s-)GH=6(e
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/dmic01_hifi_in-cpr-3.bin b/src/conf/topology/skl/i2slinux/dmic01_hifi_in-cpr-3.bin new file mode 100644 index 0000000000000000000000000000000000000000..853de5655bbfd9f26a1820811c29cdc3b345e0d6 GIT binary patch literal 4268 zcmeIuu?>ST5Czb02c=38F+mov1cm~a7Zc{9${g7v!#Uq5J=Eyiy7RZ}=3aVQ*X3yl z+4>kpV@l(YL%&#jO>s%{Y~Z?Zf8Gv`d1b3rm-DRFqiJrq!h2q^et`$iTK{iMz`c~R jg%h{E`S;#WOry~xAOQ(TKmrnwfCMBU0SQPz0*3^CGzS<F
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/dmic01_hifi_in-mi.bin b/src/conf/topology/skl/i2slinux/dmic01_hifi_in-mi.bin new file mode 100644 index 0000000000000000000000000000000000000000..97cb2f4e6d47bbec1a61ec22d0cb5825944b978a GIT binary patch literal 4268 zcmeIvy$ysg3<cnqAW>a$Bd|auAR&;J0CO-36?5Dk49D38D^S3*<R2wz{Kco(#d&O< zAN$6IIwUttesN1`^VH?wbDbbzP~f*4>A)sM^OP`puv#e}l(1H(?Eot2ntFZ3SKeRq gQ~TTZf9k(-FA7kA0u-PC1t>rP3Q&Lo6u3{|4{X*Kn*aa+
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-7.bin b/src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-7.bin new file mode 100644 index 0000000000000000000000000000000000000000..eaca9488b52e8fc7722ac9966498031c7f9675a0 GIT binary patch literal 4268 zcmeIuu@QqX3<c0HQlz0^ge>4YFci2{4D@V7l{vCUhJ){dn$+Caoh{i?qnF;^wt4JB z_AZ9OS*4-Rp<6u8V_ecSIT#N-@%<Q#^~S55onaMVYx%7?VHKa)e!z>loYFa?;rv<O iHDB$2)xWEY_L6`EBp?9^NI(J-kbndvAOQ*dD{ug4IUGj-
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-8.bin b/src/conf/topology/skl/i2slinux/hdmi1_pt_out-cpr-8.bin new file mode 100644 index 0000000000000000000000000000000000000000..88908216321996f8696fab9528dceb0f095f0ba2 GIT binary patch literal 4268 zcmeIuu@QqX3<c0HQjj7AC1n=y9T*B+DkjWD#T?lq!zJGZHPqbKoh;dMqnBRZb$J>> z_CAKu*`;yFp<g_{r?{kfb}(+Z<Fgrz{mP@{k6{&HUS1!lVHK}fzrd5VWtPbv4gc@` iRqN6INAs(?XfFv!KmrnwfCMBU0SQPz0uqqGS%E+Mo*W<m
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-10.bin b/src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-10.bin new file mode 100644 index 0000000000000000000000000000000000000000..ae8ca45258aea59a8458d4ac481678e4e63b7bd6 GIT binary patch literal 4268 zcmeIuF%E+;3<c0{x}d59BV#WR2?7Hd-B8ZO#5sD89<Kcvm|;fWl4B>%;+J0Db$J>> z_CAKu*`;yFp<g_{r?{kfb}(+Z<Fgrz{mP@{k6{&HUS1!lVHK}fzrd5VWtPbv4gc@` iRqN6INAs(?XfFv!KmrnwfCMBU0SQPz0uqqGS%E(-5ga1`
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-9.bin b/src/conf/topology/skl/i2slinux/hdmi2_pt_out-cpr-9.bin new file mode 100644 index 0000000000000000000000000000000000000000..71e94823f7316fa9c0a73b46b1867388d64608cb GIT binary patch literal 4268 zcmeIuu?>VU3<c0{t~n$MMz{qcL7+%V6ONvZsF;I27!I6*8fx?{Id<YSesR#INuhH| zTkm?cF7{n=?WF!6{1nGgVevtUZ54?1iyb)+3n>7Z^J|4Kq_8WN9r#(znI~7&_W$bN hTJQG1o4?hCdr^P_6rcbFC_n)UP=Epypa2D)3Y?jp97+HH
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-11.bin b/src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-11.bin new file mode 100644 index 0000000000000000000000000000000000000000..4b3c12c102218f93ec6c5d93725e63dff9a0205a GIT binary patch literal 4268 zcmeIuu?>VU3<c0{t~x=%2)95a2oy<a!qKx46?3o$!+}#!Lyf*A$4;EaFAmx?DReGr z>s_zb#lB0foz(w>pW-+wEIuf)tpc%ru_NbUAq60Fey#9@6n4e313#-d^W=)!{$KrD h>)rl$^S8QiFA7kA0u-PC1t>rP3Q&Lo6rjLUffLIC98CZK
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-12.bin b/src/conf/topology/skl/i2slinux/hdmi3_pt_out-cpr-12.bin new file mode 100644 index 0000000000000000000000000000000000000000..b8cd0949df74607d278ada0cb1f8f7fdfe36d24c GIT binary patch literal 4268 zcmeIuF%E+;3<c0{I#pum$k+=+g1|sV6Uw=mI0yIW;o6^p8D{h?Id<YKerfWy&0`<3 zcQFjkE)9JS-Qw{x#wE?OgYiI(eKQ#Ql}E`R!z#eMyw-TaDqgXEfj4WzER!Q%{D1U! ht!Mk6&F|`>y(Az32}nQ!5|DrdBp?9^NI(Kt1^!-j93}t&
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/media0_in-cpr-0.bin b/src/conf/topology/skl/i2slinux/media0_in-cpr-0.bin new file mode 100644 index 0000000000000000000000000000000000000000..01934b36352524d571f91f327c9870cd1a712d9a GIT binary patch literal 4268 zcmeIup%H*E3<b~xEP@eOpm$IZRE7ecjZn<N9t;P+0u8$NbC)J<YVyKlZ5zklMeDp9 z3|$!d=(^SXGWs>lvk9U^o`;H}?l@B32rWc(ORp7XTHq@CCDNd#Op`Zi{D1pg>(~BY d^IToH7X>Il0SZun0u-PC1t>rP3Q*v$zyp$896A61
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/media0_in-mi.bin b/src/conf/topology/skl/i2slinux/media0_in-mi.bin new file mode 100644 index 0000000000000000000000000000000000000000..fb8847d95047226fb83c2e65ab54ed859ae942fb GIT binary patch literal 4268 zcmeIv!3}^Q3<Xf&?7<OSfCK?iuAt1}D4v|dJseJ36Ibwnze#CHx%A;;7{ZdQc4_Rj zH$LiVc14$H^E_nlvWbF1QXac}>P8pNi$d~X<)fjQREoOo6r!Wb$&)u)djIyd*1zvx b>%U?z2tWV=5P$##AOHafKmY;|_)g#k$ekCF
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/media0_out-cpr-6.bin b/src/conf/topology/skl/i2slinux/media0_out-cpr-6.bin new file mode 100644 index 0000000000000000000000000000000000000000..37e8d593a7c096c4f75f92e8941e74b02497472e GIT binary patch literal 4268 zcmeIuu?>ST5CzbGjzmR~5wd_KFci4Fm{4aVD(1)@8IF86w4_G=q_e-}YwqQzcU_r= zSiDbhbf!EGCH9M_*OZn#&koiN4L+N}m{%UPca{af-aODEz(P&y7kKcl&9S5IoIf5H i4QKnG{a=(tYe_%?5|DrdBp?9^NI(J-kbngK7We@L)*L|q
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/i2slinux/media0_out-mo.bin b/src/conf/topology/skl/i2slinux/media0_out-mo.bin new file mode 100644 index 0000000000000000000000000000000000000000..3c2336079fb1c6cae8d8557a3724cfb90f4733de GIT binary patch literal 4268 zcmeIuy%B&Q3<Y4IvaoOj7vK&>)D}VJa1<-&a1V#mm%`2seBttQB-Q6r7=sJZ_CucR z(9OjzIVYRC5~7c(kE>G%gLfWUY0Nu{<c+B0V>2i<F0_$pzm#gxC1w3agZsblUki2$ YP=Epypa2CZKmiI+fC3bt00q7U9%Sq{ng9R*
literal 0 HcmV?d00001
diff --git a/src/conf/topology/skl/skl_i2s_linux.conf b/src/conf/topology/skl/skl_i2s_linux.conf new file mode 100644 index 0000000..53cb1c1 --- /dev/null +++ b/src/conf/topology/skl/skl_i2s_linux.conf @@ -0,0 +1,337 @@ +SectionData."media0_in cpr 0" {
- file "skl/i2slinux/media0_in-cpr-0.bin"
+} +SectionData."media0_in mi" {
- file "skl/i2slinux/media0_in-mi.bin"
+} +SectionData."media0_out mo" {
- file "skl/i2slinux/media0_out-mo.bin"
+} +SectionData."media0_out cpr 6" {
- file "skl/i2slinux/media0_out-cpr-6.bin"
+} +SectionData."codec0_out mo" {
- file "skl/i2slinux/codec0_out-mo.bin"
+} +SectionData."codec0_out cpr 4" {
- file "skl/i2slinux/codec0_out-cpr-4.bin"
+} +SectionData."codec1_out mo" {
- file "skl/i2slinux/codec1_out-mo.bin"
+} +SectionData."codec1_out cpr 5" {
- file "skl/i2slinux/codec1_out-cpr-5.bin"
+} +SectionData."codec0_in cpr 1" {
- file "skl/i2slinux/codec0_in-cpr-1.bin"
+} +SectionData."codec0_in mi" {
- file "skl/i2slinux/codec0_in-mi.bin"
+} +SectionData."dmic01_hifi_in cpr 3" {
- file "skl/i2slinux/dmic01_hifi_in-cpr-3.bin"
+} +SectionData."dmic01_hifi_in mi" {
- file "skl/i2slinux/dmic01_hifi_in-mi.bin"
+} +SectionData."hdmi1_pt_out cpr 7" {
- file "skl/i2slinux/hdmi1_pt_out-cpr-7.bin"
+} +SectionData."hdmi1_pt_out cpr 8" {
- file "skl/i2slinux/hdmi1_pt_out-cpr-8.bin"
+} +SectionData."hdmi2_pt_out cpr 9" {
- file "skl/i2slinux/hdmi2_pt_out-cpr-9.bin"
+} +SectionData."hdmi2_pt_out cpr 10" {
- file "skl/i2slinux/hdmi2_pt_out-cpr-10.bin"
+} +SectionData."hdmi3_pt_out cpr 11" {
- file "skl/i2slinux/hdmi3_pt_out-cpr-11.bin"
+} +SectionData."hdmi3_pt_out cpr 12" {
- file "skl/i2slinux/hdmi3_pt_out-cpr-12.bin"
+}
+SectionControlMixer."media0_in mi Switch" {
- index"1"
- invert "false"
- max "1"
- no_pm "true"
- channel."fl" {
reg "-1"
shift "0"
- }
- channel."fr" {
reg "-1"
shift "0"
- }
- ops."ctl" {
get "64"
put "64"
info "64"
- }
+} +SectionControlMixer."codec0_in mi Switch" {
- index"1"
- invert "false"
- max "1"
- no_pm "true"
- channel."fl" {
reg "-1"
shift "0"
- }
- channel."fr" {
reg "-1"
shift "0"
- }
- ops."ctl" {
get "64"
put "64"
info "64"
- }
+} +SectionControlMixer."dmic01_hifi_in mi Switch" {
- index"1"
- invert "false"
- max "1"
- no_pm "true"
- channel."fl" {
reg "-1"
shift "0"
- }
- channel."fr" {
reg "-1"
shift "0"
- }
- ops."ctl" {
get "64"
put "64"
info "64"
- }
+}
+SectionWidget."media0_in cpr 0" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "3"
- event_flags "9"
- data "media0_in cpr 0"
+} +SectionWidget."media0_in mi" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- event_flags "9"
- subseq "10"
- data "media0_in mi"
+} +SectionWidget."media0_out mo" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "1"
- event_flags "15"
- subseq "10"
- data "media0_out mo"
- mixer [
"media0_in mi Switch"
"codec0_in mi Switch"
"dmic01_hifi_in mi Switch"
- ]
+} +SectionWidget."media0_out cpr 6" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- data "media0_out cpr 6"
+} +SectionWidget."codec0_out mo" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "1"
- event_flags "15"
- subseq "10"
- data "codec0_out mo"
- mixer [
"media0_in mi Switch"
"codec0_in mi Switch"
"dmic01_hifi_in mi Switch"
- ]
+} +SectionWidget."codec0_out cpr 4" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- data "codec0_out cpr 4"
+} +SectionWidget."codec0_out" {
- index"1"
- type"aif_out"
- no_pm "true"
+} +SectionWidget."codec1_out mo" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "1"
- event_flags "15"
- subseq "10"
- data "codec1_out mo"
- mixer [
"media0_in mi Switch"
"codec0_in mi Switch"
"dmic01_hifi_in mi Switch"
- ]
+} +SectionWidget."codec1_out cpr 5" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- data "codec1_out cpr 5"
+} +SectionWidget."codec1_out" {
- index"1"
- type"aif_out"
- no_pm "true"
+} +SectionWidget."codec0_in cpr 1" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "3"
- event_flags "9"
- data "codec0_in cpr 1"
+} +SectionWidget."codec0_in mi" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- event_flags "9"
- subseq "10"
- data "codec0_in mi"
+} +SectionWidget."codec0_in" {
- index"1"
- type"aif_in"
- no_pm "true"
+} +SectionWidget."dmic01_hifi_in cpr 3" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "3"
- event_flags "9"
- data "dmic01_hifi_in cpr 3"
+} +SectionWidget."dmic01_hifi_in mi" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- event_flags "9"
- subseq "10"
- data "dmic01_hifi_in mi"
+} +SectionWidget."dmic01_hifi" {
- index"1"
- type"aif_in"
- no_pm "true"
+} +SectionWidget."hdmi1_pt_out cpr 7" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "3"
- event_flags "9"
- data "hdmi1_pt_out cpr 7"
+} +SectionWidget."hdmi1_pt_out cpr 8" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- data "hdmi1_pt_out cpr 8"
+} +SectionWidget."iDisp1_out" {
- index"1"
- type"aif_out"
- no_pm "true"
+} +SectionWidget."hdmi2_pt_out cpr 9" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "3"
- event_flags "9"
- data "hdmi2_pt_out cpr 9"
+} +SectionWidget."hdmi2_pt_out cpr 10" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- data "hdmi2_pt_out cpr 10"
+} +SectionWidget."iDisp2_out" {
- index"1"
- type"aif_out"
- no_pm "true"
+} +SectionWidget."hdmi3_pt_out cpr 11" {
- index"1"
- type"mixer"
- no_pm "true"
- event_type "3"
- event_flags "9"
- data "hdmi3_pt_out cpr 11"
+} +SectionWidget."hdmi3_pt_out cpr 12" {
- index"1"
- type"pga"
- no_pm "true"
- event_type "4"
- data "hdmi3_pt_out cpr 12"
+} +SectionGraph."Pipeline 1 Graph" {
- index"1"
- lines [
"media0_in mi, , media0_in cpr 0"
"media0_in cpr 0, , System Playback"
"media0_out mo, media0_in mi Switch, media0_in mi"
"media0_out mo, codec0_in mi Switch, codec0_in mi"
"media0_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi"
"media0_out cpr 6, , media0_out mo"
"System Capture, , media0_out cpr 6"
"codec0_out mo, media0_in mi Switch, media0_in mi"
"codec0_out mo, codec0_in mi Switch, codec0_in mi"
"codec0_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi"
"codec0_out cpr 4, , codec0_out mo"
"codec0_out, , codec0_out cpr 4"
"codec1_out mo, media0_in mi Switch, media0_in mi"
"codec1_out mo, codec0_in mi Switch, codec0_in mi"
"codec1_out mo, dmic01_hifi_in mi Switch, dmic01_hifi_in mi"
"codec1_out cpr 5, , codec1_out mo"
"codec1_out, , codec1_out cpr 5"
"codec0_in mi, , codec0_in cpr 1"
"codec0_in cpr 1, , codec0_in"
"dmic01_hifi_in mi, , dmic01_hifi_in cpr 3"
"dmic01_hifi_in cpr 3, , dmic01_hifi"
"hdmi1_pt_out cpr 8, , hdmi1_pt_out cpr 7"
"hdmi1_pt_out cpr 7, , HDMI1 Playback"
"iDisp1_out, , hdmi1_pt_out cpr 8"
"hdmi2_pt_out cpr 10, , hdmi2_pt_out cpr 9"
"hdmi2_pt_out cpr 9, , HDMI2 Playback"
"iDisp2_out, , hdmi2_pt_out cpr 10"
"hdmi3_pt_out cpr 12, , hdmi3_pt_out cpr 11"
"hdmi3_pt_out cpr 11, , HDMI3 Playback"
"iDisp1_out, , hdmi3_pt_out cpr 12"
- ]
+}
1.9.1
--
On Tue, 09 Feb 2016 12:47:53 +0100, Subhransu S. Prusty wrote:
On Tue, Feb 09, 2016 at 12:15:45PM +0100, Takashi Iwai wrote:
On Mon, 08 Feb 2016 04:55:56 +0100, Subhransu S. Prusty wrote:
This patch adds basic playback/capture support for skylake i2s platform. DSP topology module data are passed through the binary files. The framework parses these files and puts the data in the widget private section for the corresponding widget. This is parsed by kernel driver and stored as module config for the DSP. Based on usecase these data are sent to the DSP through IPCs for further processing.
Can we have sources for these binaries, or do they have to be binary-only?
Hi Takashi,
These are binary only data.
Then this isn't a good material for merging to alsa-lib. How is the license compatibility?
Takashi
On Tue, Feb 09, 2016 at 12:54:39PM +0100, Takashi Iwai wrote:
On Tue, 09 Feb 2016 12:47:53 +0100, Subhransu S. Prusty wrote:
On Tue, Feb 09, 2016 at 12:15:45PM +0100, Takashi Iwai wrote:
On Mon, 08 Feb 2016 04:55:56 +0100, Subhransu S. Prusty wrote:
This patch adds basic playback/capture support for skylake i2s platform. DSP topology module data are passed through the binary files. The framework parses these files and puts the data in the widget private section for the corresponding widget. This is parsed by kernel driver and stored as module config for the DSP. Based on usecase these data are sent to the DSP through IPCs for further processing.
Can we have sources for these binaries, or do they have to be binary-only?
Hi Takashi,
These are binary only data.
Then this isn't a good material for merging to alsa-lib. How is the license compatibility?
Each binary file here holds config for each module based on skl_dfw_module structure as expected by Skylake driver. The skl driver formats IPCs parsing this config.
This structure skl_dfw_module is already defined as part of skl-tplg-interface.h.
Regards, Subhransu
Takashi
--
On Tue, 09 Feb 2016 14:14:19 +0100, Subhransu S. Prusty wrote:
On Tue, Feb 09, 2016 at 12:54:39PM +0100, Takashi Iwai wrote:
On Tue, 09 Feb 2016 12:47:53 +0100, Subhransu S. Prusty wrote:
On Tue, Feb 09, 2016 at 12:15:45PM +0100, Takashi Iwai wrote:
On Mon, 08 Feb 2016 04:55:56 +0100, Subhransu S. Prusty wrote:
This patch adds basic playback/capture support for skylake i2s platform. DSP topology module data are passed through the binary files. The framework parses these files and puts the data in the widget private section for the corresponding widget. This is parsed by kernel driver and stored as module config for the DSP. Based on usecase these data are sent to the DSP through IPCs for further processing.
Can we have sources for these binaries, or do they have to be binary-only?
Hi Takashi,
These are binary only data.
Then this isn't a good material for merging to alsa-lib. How is the license compatibility?
Each binary file here holds config for each module based on skl_dfw_module structure as expected by Skylake driver. The skl driver formats IPCs parsing this config.
This structure skl_dfw_module is already defined as part of skl-tplg-interface.h.
Well, the question is whether this IP is a programmed data block, not some simple numbers. If yes, it's always a question whether it's compatible with GPL. Although alsa-lib is LGPL, putting the binary blob in the *code tree* doesn't look good to me.
IMO, this should go to firmware tree instead, unless you can give the source code to build the binary.
Takashi
On Tue, Feb 09, 2016 at 02:18:58PM +0100, Takashi Iwai wrote:
On Tue, 09 Feb 2016 14:14:19 +0100, Subhransu S. Prusty wrote:
On Tue, Feb 09, 2016 at 12:54:39PM +0100, Takashi Iwai wrote:
On Tue, 09 Feb 2016 12:47:53 +0100, Subhransu S. Prusty wrote:
On Tue, Feb 09, 2016 at 12:15:45PM +0100, Takashi Iwai wrote:
On Mon, 08 Feb 2016 04:55:56 +0100, Subhransu S. Prusty wrote:
This patch adds basic playback/capture support for skylake i2s platform. DSP topology module data are passed through the binary files. The framework parses these files and puts the data in the widget private section for the corresponding widget. This is parsed by kernel driver and stored as module config for the DSP. Based on usecase these data are sent to the DSP through IPCs for further processing.
Can we have sources for these binaries, or do they have to be binary-only?
Hi Takashi,
These are binary only data.
Then this isn't a good material for merging to alsa-lib. How is the license compatibility?
Each binary file here holds config for each module based on skl_dfw_module structure as expected by Skylake driver. The skl driver formats IPCs parsing this config.
This structure skl_dfw_module is already defined as part of skl-tplg-interface.h.
Well, the question is whether this IP is a programmed data block, not some simple numbers. If yes, it's always a question whether it's compatible with GPL. Although alsa-lib is LGPL, putting the binary blob in the *code tree* doesn't look good to me.
Hi Takashi,
This is simple numbers only. Numbers which identify the data for firmware, its resources, ids, pipe number, module number and for controls default values etc. Basically this struct
struct skl_dfw_module { char uuid[SKL_UUID_STR_SZ];
u16 module_id; u16 instance_id; u32 max_mcps; u32 mem_pages; u32 obs; u32 ibs; u32 vbus_id;
u32 max_in_queue:8; u32 max_out_queue:8; u32 time_slot:8; u32 core_id:4; u32 rsvd1:4;
u32 module_type:8; u32 conn_type:4; u32 dev_type:4; u32 hw_conn_type:4; u32 rsvd2:12;
u32 params_fixup:8; u32 converter:8; u32 input_pin_type:1; u32 output_pin_type:1; u32 is_dynamic_in_pin:1; u32 is_dynamic_out_pin:1; u32 is_loadable:1; u32 rsvd3:11;
struct skl_dfw_pipe pipe; struct skl_dfw_module_fmt in_fmt[MAX_IN_QUEUE]; struct skl_dfw_module_fmt out_fmt[MAX_OUT_QUEUE]; struct skl_dfw_module_pin in_pin[MAX_IN_QUEUE]; struct skl_dfw_module_pin out_pin[MAX_OUT_QUEUE]; struct skl_dfw_module_caps caps; } __packed;
IMO, this should go to firmware tree instead, unless you can give the source code to build the binary.
Okay that should be fine, where do we add the source?
On Tue, 09 Feb 2016 14:34:32 +0100, Vinod Koul wrote:
On Tue, Feb 09, 2016 at 02:18:58PM +0100, Takashi Iwai wrote:
On Tue, 09 Feb 2016 14:14:19 +0100, Subhransu S. Prusty wrote:
On Tue, Feb 09, 2016 at 12:54:39PM +0100, Takashi Iwai wrote:
On Tue, 09 Feb 2016 12:47:53 +0100, Subhransu S. Prusty wrote:
On Tue, Feb 09, 2016 at 12:15:45PM +0100, Takashi Iwai wrote:
On Mon, 08 Feb 2016 04:55:56 +0100, Subhransu S. Prusty wrote: > > This patch adds basic playback/capture support for skylake i2s > platform. DSP topology module data are passed through the binary > files. The framework parses these files and puts the data in the > widget private section for the corresponding widget. This is > parsed by kernel driver and stored as module config for the DSP. > Based on usecase these data are sent to the DSP through IPCs for > further processing.
Can we have sources for these binaries, or do they have to be binary-only?
Hi Takashi,
These are binary only data.
Then this isn't a good material for merging to alsa-lib. How is the license compatibility?
Each binary file here holds config for each module based on skl_dfw_module structure as expected by Skylake driver. The skl driver formats IPCs parsing this config.
This structure skl_dfw_module is already defined as part of skl-tplg-interface.h.
Well, the question is whether this IP is a programmed data block, not some simple numbers. If yes, it's always a question whether it's compatible with GPL. Although alsa-lib is LGPL, putting the binary blob in the *code tree* doesn't look good to me.
Hi Takashi,
This is simple numbers only. Numbers which identify the data for firmware, its resources, ids, pipe number, module number and for controls default values etc. Basically this struct
struct skl_dfw_module { char uuid[SKL_UUID_STR_SZ];
u16 module_id; u16 instance_id; u32 max_mcps; u32 mem_pages; u32 obs; u32 ibs; u32 vbus_id; u32 max_in_queue:8; u32 max_out_queue:8; u32 time_slot:8; u32 core_id:4; u32 rsvd1:4; u32 module_type:8; u32 conn_type:4; u32 dev_type:4; u32 hw_conn_type:4; u32 rsvd2:12; u32 params_fixup:8; u32 converter:8; u32 input_pin_type:1; u32 output_pin_type:1; u32 is_dynamic_in_pin:1; u32 is_dynamic_out_pin:1; u32 is_loadable:1; u32 rsvd3:11; struct skl_dfw_pipe pipe; struct skl_dfw_module_fmt in_fmt[MAX_IN_QUEUE]; struct skl_dfw_module_fmt out_fmt[MAX_OUT_QUEUE]; struct skl_dfw_module_pin in_pin[MAX_IN_QUEUE]; struct skl_dfw_module_pin out_pin[MAX_OUT_QUEUE]; struct skl_dfw_module_caps caps;
} __packed;
OK, but how did you create it? Via a hex editor? If you used some converter, you'd better provide the readable source, too.
IMO, this should go to firmware tree instead, unless you can give the source code to build the binary.
Okay that should be fine, where do we add the source?
In alsa-lib. It's not necessarily to be in form as all build-ready there, but providing the capability is important for future development.
Takashi
On Tue, Feb 09, 2016 at 02:48:36PM +0100, Takashi Iwai wrote:
Well, the question is whether this IP is a programmed data block, not some simple numbers. If yes, it's always a question whether it's compatible with GPL. Although alsa-lib is LGPL, putting the binary blob in the *code tree* doesn't look good to me.
Hi Takashi,
This is simple numbers only. Numbers which identify the data for firmware, its resources, ids, pipe number, module number and for controls default values etc. Basically this struct
struct skl_dfw_module { char uuid[SKL_UUID_STR_SZ];
u16 module_id; u16 instance_id; u32 max_mcps; u32 mem_pages; u32 obs; u32 ibs; u32 vbus_id; u32 max_in_queue:8; u32 max_out_queue:8; u32 time_slot:8; u32 core_id:4; u32 rsvd1:4; u32 module_type:8; u32 conn_type:4; u32 dev_type:4; u32 hw_conn_type:4; u32 rsvd2:12; u32 params_fixup:8; u32 converter:8; u32 input_pin_type:1; u32 output_pin_type:1; u32 is_dynamic_in_pin:1; u32 is_dynamic_out_pin:1; u32 is_loadable:1; u32 rsvd3:11; struct skl_dfw_pipe pipe; struct skl_dfw_module_fmt in_fmt[MAX_IN_QUEUE]; struct skl_dfw_module_fmt out_fmt[MAX_OUT_QUEUE]; struct skl_dfw_module_pin in_pin[MAX_IN_QUEUE]; struct skl_dfw_module_pin out_pin[MAX_OUT_QUEUE]; struct skl_dfw_module_caps caps;
} __packed;
OK, but how did you create it? Via a hex editor? If you used some converter, you'd better provide the readable source, too.
IMO, this should go to firmware tree instead, unless you can give the source code to build the binary.
Okay that should be fine, where do we add the source?
In alsa-lib. It's not necessarily to be in form as all build-ready there, but providing the capability is important for future development.
Okay so we will add a intel-topology.c file to alsa-lib, this will also include a file which will contain the above structure values for each module in C style.
This way anyone can edit it easily and we can build blobs from alsa lib and then run topology tool on it.
Do you have recommendation for location of these two files in alsa-lib?
Thanks
On Thu, 11 Feb 2016 04:52:58 +0100, Vinod Koul wrote:
On Tue, Feb 09, 2016 at 02:48:36PM +0100, Takashi Iwai wrote:
Well, the question is whether this IP is a programmed data block, not some simple numbers. If yes, it's always a question whether it's compatible with GPL. Although alsa-lib is LGPL, putting the binary blob in the *code tree* doesn't look good to me.
Hi Takashi,
This is simple numbers only. Numbers which identify the data for firmware, its resources, ids, pipe number, module number and for controls default values etc. Basically this struct
struct skl_dfw_module { char uuid[SKL_UUID_STR_SZ];
u16 module_id; u16 instance_id; u32 max_mcps; u32 mem_pages; u32 obs; u32 ibs; u32 vbus_id; u32 max_in_queue:8; u32 max_out_queue:8; u32 time_slot:8; u32 core_id:4; u32 rsvd1:4; u32 module_type:8; u32 conn_type:4; u32 dev_type:4; u32 hw_conn_type:4; u32 rsvd2:12; u32 params_fixup:8; u32 converter:8; u32 input_pin_type:1; u32 output_pin_type:1; u32 is_dynamic_in_pin:1; u32 is_dynamic_out_pin:1; u32 is_loadable:1; u32 rsvd3:11; struct skl_dfw_pipe pipe; struct skl_dfw_module_fmt in_fmt[MAX_IN_QUEUE]; struct skl_dfw_module_fmt out_fmt[MAX_OUT_QUEUE]; struct skl_dfw_module_pin in_pin[MAX_IN_QUEUE]; struct skl_dfw_module_pin out_pin[MAX_OUT_QUEUE]; struct skl_dfw_module_caps caps;
} __packed;
OK, but how did you create it? Via a hex editor? If you used some converter, you'd better provide the readable source, too.
IMO, this should go to firmware tree instead, unless you can give the source code to build the binary.
Okay that should be fine, where do we add the source?
In alsa-lib. It's not necessarily to be in form as all build-ready there, but providing the capability is important for future development.
Okay so we will add a intel-topology.c file to alsa-lib, this will also include a file which will contain the above structure values for each module in C style.
This way anyone can edit it easily and we can build blobs from alsa lib and then run topology tool on it.
It's much better, indeed.
Do you have recommendation for location of these two files in alsa-lib?
Just put in the same directory?
Takashi
Hi,
On Feb 11 2016 17:38, Takashi Iwai wrote:
On Thu, 11 Feb 2016 04:52:58 +0100, Vinod Koul wrote:
On Tue, Feb 09, 2016 at 02:48:36PM +0100, Takashi Iwai wrote:
Well, the question is whether this IP is a programmed data block, not some simple numbers. If yes, it's always a question whether it's compatible with GPL. Although alsa-lib is LGPL, putting the binary blob in the *code tree* doesn't look good to me.
Hi Takashi,
This is simple numbers only. Numbers which identify the data for firmware, its resources, ids, pipe number, module number and for controls default values etc. Basically this struct
struct skl_dfw_module { char uuid[SKL_UUID_STR_SZ];
u16 module_id; u16 instance_id; u32 max_mcps; u32 mem_pages; u32 obs; u32 ibs; u32 vbus_id; u32 max_in_queue:8; u32 max_out_queue:8; u32 time_slot:8; u32 core_id:4; u32 rsvd1:4; u32 module_type:8; u32 conn_type:4; u32 dev_type:4; u32 hw_conn_type:4; u32 rsvd2:12; u32 params_fixup:8; u32 converter:8; u32 input_pin_type:1; u32 output_pin_type:1; u32 is_dynamic_in_pin:1; u32 is_dynamic_out_pin:1; u32 is_loadable:1; u32 rsvd3:11; struct skl_dfw_pipe pipe; struct skl_dfw_module_fmt in_fmt[MAX_IN_QUEUE]; struct skl_dfw_module_fmt out_fmt[MAX_OUT_QUEUE]; struct skl_dfw_module_pin in_pin[MAX_IN_QUEUE]; struct skl_dfw_module_pin out_pin[MAX_OUT_QUEUE]; struct skl_dfw_module_caps caps;
} __packed;
OK, but how did you create it? Via a hex editor? If you used some converter, you'd better provide the readable source, too.
IMO, this should go to firmware tree instead, unless you can give the source code to build the binary.
Okay that should be fine, where do we add the source?
In alsa-lib. It's not necessarily to be in form as all build-ready there, but providing the capability is important for future development.
Okay so we will add a intel-topology.c file to alsa-lib, this will also include a file which will contain the above structure values for each module in C style.
This way anyone can edit it easily and we can build blobs from alsa lib and then run topology tool on it.
It's much better, indeed.
Do you have recommendation for location of these two files in alsa-lib?
Just put in the same directory?
Could I ask your opinion about device-dependent codes in common library?
The alsa-lib is designed for generic ALSA applications. So codes in alsa-lib can be used by the applications. On the other hand, your codes are not completely common. Even if Intel SoCs are widely used in this world, I think there's rest of consideration about merging it.
And when you include device-dependent code into such common library, I think it increases maintenance cost, because no one except you can understand it. I think it's not so better shape of shared library. In short, IF Interl corp. lost their interests in ALSA, your codes might not be mainteined anymore. (And I can remember some OSS projects got by Intel corp.)
For example, simple mixer API has backend modules for AC97/HDA/python2 and the modules are not currently maintained. Near future, your codes will join in such bothersome stuffs, won't they?
Well. I'm not so goot at what you achieve with this patch and a series of your work for TLV extensions of ALSA ctl interface. So could I request your intension about this patch? At least, I cannot still understand what your codes works with kernel implementation for features integrated into skl SoC.
I believe we should take more time to this patch, at least for some developers who select alternative ways to control devices for which they currently work.
Of cource, I believe that your work will reach more users than our effort. We can judge that it's more reasonable to merge your codes into common library. But to reach the decision, more explainations and discussions are required.
Regards
Takashi Sakamoto
On Thu, 11 Feb 2016 14:56:03 +0100, Takashi Sakamoto wrote:
Hi,
On Feb 11 2016 17:38, Takashi Iwai wrote:
On Thu, 11 Feb 2016 04:52:58 +0100, Vinod Koul wrote:
On Tue, Feb 09, 2016 at 02:48:36PM +0100, Takashi Iwai wrote:
Well, the question is whether this IP is a programmed data block, not some simple numbers. If yes, it's always a question whether it's compatible with GPL. Although alsa-lib is LGPL, putting the binary blob in the *code tree* doesn't look good to me.
Hi Takashi,
This is simple numbers only. Numbers which identify the data for firmware, its resources, ids, pipe number, module number and for controls default values etc. Basically this struct
struct skl_dfw_module { char uuid[SKL_UUID_STR_SZ];
u16 module_id; u16 instance_id; u32 max_mcps; u32 mem_pages; u32 obs; u32 ibs; u32 vbus_id; u32 max_in_queue:8; u32 max_out_queue:8; u32 time_slot:8; u32 core_id:4; u32 rsvd1:4; u32 module_type:8; u32 conn_type:4; u32 dev_type:4; u32 hw_conn_type:4; u32 rsvd2:12; u32 params_fixup:8; u32 converter:8; u32 input_pin_type:1; u32 output_pin_type:1; u32 is_dynamic_in_pin:1; u32 is_dynamic_out_pin:1; u32 is_loadable:1; u32 rsvd3:11; struct skl_dfw_pipe pipe; struct skl_dfw_module_fmt in_fmt[MAX_IN_QUEUE]; struct skl_dfw_module_fmt out_fmt[MAX_OUT_QUEUE]; struct skl_dfw_module_pin in_pin[MAX_IN_QUEUE]; struct skl_dfw_module_pin out_pin[MAX_OUT_QUEUE]; struct skl_dfw_module_caps caps;
} __packed;
OK, but how did you create it? Via a hex editor? If you used some converter, you'd better provide the readable source, too.
IMO, this should go to firmware tree instead, unless you can give the source code to build the binary.
Okay that should be fine, where do we add the source?
In alsa-lib. It's not necessarily to be in form as all build-ready there, but providing the capability is important for future development.
Okay so we will add a intel-topology.c file to alsa-lib, this will also include a file which will contain the above structure values for each module in C style.
This way anyone can edit it easily and we can build blobs from alsa lib and then run topology tool on it.
It's much better, indeed.
Do you have recommendation for location of these two files in alsa-lib?
Just put in the same directory?
Could I ask your opinion about device-dependent codes in common library?
The alsa-lib is designed for generic ALSA applications. So codes in alsa-lib can be used by the applications. On the other hand, your codes are not completely common. Even if Intel SoCs are widely used in this world, I think there's rest of consideration about merging it.
The code isn't about inclusion into the library itself, but it's a code (a la helper binary) to generate a card-specific external data. So it's rather a kind of config data, just represented in a binary form.
Takashi
participants (4)
-
Subhransu S. Prusty
-
Takashi Iwai
-
Takashi Sakamoto
-
Vinod Koul