From a60d908ace17c455bbd56e21f6b673752fad7013 Mon Sep 17 00:00:00 2001 From: Stefan Binding Date: Fri, 3 Feb 2023 15:37:40 +0000 Subject: [PATCH 1/2] linux-firmware: Add missing tuning files for HP Laptops using Cirrus Amps Tuning was missing for laptop SSIDs: 103c8994, 103c8995 Signed-off-by: Stefan Binding --- WHENCE | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/WHENCE b/WHENCE index 47d774e7..5e7ea0de 100644 --- a/WHENCE +++ b/WHENCE @@ -5929,6 +5929,10 @@ Link: cirrus/cs35l41-dsp1-spk-prot-103c8991.bin -> cs35l41-dsp1-spk-prot-103c897 Link: cirrus/cs35l41-dsp1-spk-cali-103c8991.bin -> cs35l41-dsp1-spk-cali-103c8972.bin Link: cirrus/cs35l41-dsp1-spk-prot-103c8992.bin -> cs35l41-dsp1-spk-prot-103c8972.bin Link: cirrus/cs35l41-dsp1-spk-cali-103c8992.bin -> cs35l41-dsp1-spk-cali-103c8972.bin +Link: cirrus/cs35l41-dsp1-spk-prot-103c8994.bin -> cs35l41-dsp1-spk-prot-103c8973.bin +Link: cirrus/cs35l41-dsp1-spk-cali-103c8994.bin -> cs35l41-dsp1-spk-cali-103c8973.bin +Link: cirrus/cs35l41-dsp1-spk-prot-103c8995.bin -> cs35l41-dsp1-spk-prot-103c8973.bin +Link: cirrus/cs35l41-dsp1-spk-cali-103c8995.bin -> cs35l41-dsp1-spk-cali-103c8973.bin File: cirrus/cs35l41-dsp1-spk-prot-103c89c6-r0.bin File: cirrus/cs35l41-dsp1-spk-cali-103c89c6-r0.bin File: cirrus/cs35l41-dsp1-spk-prot-103c89c6-l0.bin From 2fd61bc5d6d33e6804810418da96b58a0f00a41a Mon Sep 17 00:00:00 2001 From: Stefan Binding Date: Thu, 22 Dec 2022 11:50:47 +0000 Subject: [PATCH 2/2] linux-firmware: Add firmware for Cirrus CS35L41 on UM3402 ASUS Laptop This patch adds the firmware files for Cirrus CS35L41 smart amplifier used by UM3402 ASUS Laptop Playback version: 6.61.1 Signed-off-by: Stefan Binding --- WHENCE | 10 ++++++++++ .../cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin | Bin 0 -> 2012 bytes .../cs35l41-dsp1-spk-cali-10431e12-spkid0-r0.bin | Bin 0 -> 2012 bytes .../cs35l41-dsp1-spk-cali-10431e12-spkid1-l0.bin | Bin 0 -> 2012 bytes .../cs35l41-dsp1-spk-cali-10431e12-spkid1-r0.bin | Bin 0 -> 2012 bytes .../cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin | Bin 0 -> 5532 bytes .../cs35l41-dsp1-spk-prot-10431e12-spkid0-r0.bin | Bin 0 -> 5532 bytes .../cs35l41-dsp1-spk-prot-10431e12-spkid1-l0.bin | Bin 0 -> 5532 bytes .../cs35l41-dsp1-spk-prot-10431e12-spkid1-r0.bin | Bin 0 -> 5532 bytes 9 files changed, 10 insertions(+) create mode 100755 cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin create mode 100755 cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid0-r0.bin create mode 100755 cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid1-l0.bin create mode 100755 cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid1-r0.bin create mode 100755 cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin create mode 100755 cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid0-r0.bin create mode 100755 cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid1-l0.bin create mode 100755 cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid1-r0.bin diff --git a/WHENCE b/WHENCE index 5e7ea0de..00d90889 100644 --- a/WHENCE +++ b/WHENCE @@ -6030,6 +6030,16 @@ File: cirrus/cs35l41-dsp1-spk-prot-10431f12-spkid0-l0.bin File: cirrus/cs35l41-dsp1-spk-prot-10431f12-spkid0-r0.bin File: cirrus/cs35l41-dsp1-spk-prot-10431f12-spkid1-l0.bin File: cirrus/cs35l41-dsp1-spk-prot-10431f12-spkid1-r0.bin +Link: cirrus/cs35l41-dsp1-spk-prot-10431e12.wmfw -> cs35l41/v6.61.1/halo_cspl_RAM_revB2_29.63.1.wmfw +Link: cirrus/cs35l41-dsp1-spk-cali-10431e12.wmfw -> cs35l41/v6.61.1/halo_cspl_RAM_revB2_29.63.1.wmfw +File: cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin +File: cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid0-r0.bin +File: cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid1-l0.bin +File: cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid1-r0.bin +File: cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin +File: cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid0-r0.bin +File: cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid1-l0.bin +File: cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid1-r0.bin License: Redistributable. See LICENSE.cirrus for details. diff --git a/cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin b/cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin new file mode 100755 index 0000000000000000000000000000000000000000..613a85fd5f6c6712db75b09a5c295df37df8d928 GIT binary patch literal 2012 zcmb7F&u<%55T1=4I}Ic>;ZUU#qdf-@ze}GfO0i}HNY^NzoBe5&*KF@sf&3yC5 z&mS(8tLKTxc#jOCR2s`8e2%X@tV;9sl~_h`U2Qr+t6rAzx(Yk>^m}84a4>N%2ILKEYxo$0f2T@deVtyy-+ZV=5!a?Mc5Tvbul-~ zH$DQeT(TG4z>VAX^377kuHLHH9Ah^eZ)(*Ih^CEk`kkvauD-#q8!4hR85i-w;t6e2 z=FjFB(V#InzCHSOngsnyG(=eqW6%%*Yp{AY;WB{fU!uQ8j|9C6bLuPlky87q9}t$_ zrc0FGO231^)P4GiQa`7@X1YrpKh~uiqrqcNP+#zWp#gSJFi<4#^IFgqPA({eO7Xh1 zrE|dpgY2%eTyth|pYe1R_6c?pnfP3I_uR+4PO&NT1e{;qd2<`kecZUxY|nP_=Q(|b zc+>H+IEXWM*FvWUw7^B_c4X+${cl%B@^@WhByVK#=<;pU=|F*LR_hz0k z0J2>>HE@ByW%k}8^1q+>=Fm7eJir4aM!z-o2hYuSb!6iT2l-pJ)_AXgnR@xrOLaqN3JLui+*=c|^nX3eh<&79H85 z$)}ks7+?(M--DSKep}oRTobhQ>>1ww=x@EpcNpf+hjWhK@!X~>BfI6eL2h1Hm#1d( zC+&W?COtTErCM>OGGpc7ZFsH>lpQ#}WKYFettGCKCtST#p^xAb#{Pdt#tE`dahACu zSC^Zenzg2M4Nd8&B$D>37dF;oU0@ghsl*3jF^qgi2^ESO3zVWFn<_6#F9%fJR{Lzk z?a)(BOPpj$%`d-BQJ2?Dv9&9g4X24^}C7Vxu3}>FUp(fi`x)YoX!$e`JG6{ zaR^V|?!tfdDb)>~{x4hC>uOwXC734H9fIAx>V9qaz|ils2XR3sgYlvJGUB+x!F zX>(Jib_Y%;Zimkko7W5YLt|HO#&wmb$eb}PbA}yjvg3uDb}I^#4h!?pGX4i-U!yHC Vu89_G%~|H$^kv++;V$ z*9z2?#ihoT`f^<_<}K;1`2JdBd9hf^6&g1p4?wdf9chKKQ7Gh!xl)Xb5oXO)G3I*Z z+9v>3%I1RY*_`0==6XVxG3F@6g__M-STkuu5AowjWm{+2aJQD0FYxJVtMlW)+*c^S;hd! zcJ0)_dH$5zd6&rjVf@>DV{d;C3rLK9ZA>@ci{RL;?aukV{q+$*jX^Bjfa5qP{vx{f z$JjO*kM^A*#)t!O>V(^H?!$>Acys`#U|pz;ADl~pIU$cA?=j>JYmMA1*bn9DylH~G zhmiL~W3)zQ=>c`&X@a~o`H4m_gvRqzJhu=%LR5^kpP@5Edh&>d=nbONS}Zye(ZuuA zZJHzu=HCOUSH4@^4?N>^|HTWu|Iwd%%l8=OFNQLf+jZ=gEd#S{*psNr^&sLJgIG7Noq zYL-$cw_=CN4-_;b*hP3C@+T&~*>!yn8SSR?64%p?E*y5`)jk{p_)i~>K`@0VTPNqy zG>qa?v^@y$EXQ1lS}jakh%Vr~iUs((j-^^SEk3`F<@k*6+e~{E=6s6wQon zncRB5Ff)_agAnQ?HUkR-I44T8xm*tT&~9_eW+xu&{`87P-@{ZyU5u1eob4#kJThss zQ#tMStZvxxUnb67E#L=@UA-CCRidKYG%`=KV^ww?f5U7Ce$-`Q4qC>)fb45_B*rz; Vg7Y5~OU3-9(rhU+^d-KR{{keM&T;?% literal 0 HcmV?d00001 diff --git a/cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid1-l0.bin b/cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid1-l0.bin new file mode 100755 index 0000000000000000000000000000000000000000..6122d2a804e9201c2b6e71111e731ba48d59b76a GIT binary patch literal 2012 zcmb7F&u<%55T30aI}Ic>;ZUU#7tynZ<96PW# zJUfi9EiE^%HC7txX5E(lY7ne9SC&e1da-#k@d32z(v@~3o5iAD(&zffKEkS5aUXM| z`bh=AYQA znLpc;L?e?UQ`-}7r%BMSM5B~dFb0hhuo|mp6D|#y;U$J^^hnUFFsHtuA1Sq;`T=3- zZJMR@-Sj&MOx>fODD`vdTc(@k_{l!qB#j(%g8HKO3!P*4Gy_HQA+H6QoLo=_mEtkG zp>n|kgY2)fTyth|pYe1R_Gxw!>G)oJ_xz{4PO&NT1e{;resdepeSC1G*`Dp=FL3${ z@uuTpa1dwiuZ2nvXpxIj?a0uhd-qqy^Bayfp4YOt^?ATJ3JL%@_5p5>f7@Audn?Zv z0NJjb3b??(GJ9_kdEZZecc>j49^eKNZCD%AEes+!c4xPH>ELj40#I!fH*UaboHKtB z-T7l`m$Zk6?igdl5ja)CT{sWn#1=d}f>W?AR7RT1`%+|1$Ro&m1bO31BlimSV|glX zmLTr|yYy+`KR@7s~mQ zb}v|yE*!Z^qg1YyjU2o!*O7i~`L-w7Q?pkai4)5cuED7=MDPh?{l6pQ1li{}%bb9# z%b5k!D5x6R(vFi*TB~l*T8~tLfe&OXJ`#&T=-IJ|1JPiCQq*KS&Wp;+0d=R-JsWW= zaAUh8&t$12VTi`$#gem`7dUTYiSxFG*5t+Yjl_1HFJzb()h+bJX^A>cXNju3UMQm| zfTwQ9G0LqvQ5=LZG$YtUcqoiB6W{82fsc$%%YBX;Xh#>0JMv;5P67O<52qlQLR9Rt z^C%id@h&<(1o*aVttRa@CM`l2uwSJjd_C8W+t@AMzpm{Dj33%8XANefSTfld2A`ps zeOpf7G>WEas6mL-7F(f>0h||eS9DzmK5{yoveoU6^>BK{Qs84Mk{(7%#+>aW&^j?` zR|>jv`*ttt2G0}g*NgZ=W7lBDRh6hnFB^tlX2+WBxxtpz34^4^!d$eB{{h+8>Pn1j Uq6C|!dAVGA-!yV#U-4`CFNeU+S^xk5 literal 0 HcmV?d00001 diff --git a/cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid1-r0.bin b/cirrus/cs35l41-dsp1-spk-cali-10431e12-spkid1-r0.bin new file mode 100755 index 0000000000000000000000000000000000000000..e66f298198f496e8ecf35f5dd7b236edd954e4fa GIT binary patch literal 2012 zcmb7F&u<%55T30aI}IdF!l6nf$irL+Skc;!-H=17%5Fp@M+CbmqO!DXoM(H<{&07n zQ38cVN}%FUsZwvbajS$>4iRwR&=W^a?V-m?`~#dK4k+cDw|1JMG!h%-?eokx-^@2} z{QSvsr8Z7P#`|OtC6d@4;{WK`!>+v0SdC;DHPn{vw;L51ZK$BzSP6smUQ>y>RLX(9 z?%AQbyu8x5Twks0#kwK=wIJANtS%Sk%zWco&j-+|NmtsDY~=H1!JLbcF~X`@D#l!` zd|C#uQnr>H--$Zb%GGk!s$HvE9AhpadJT^REpQk zW1R~g7-YOpbIqxxhm5C7uurj*$i)Bo_s)LC`vjX(Pr&)jjkmS|eTY9iNw%kB{5Ypi z5g$5UIS%5?@m}ckfabX<-HsGJxN~=PG<(xAMzcm5OUwhtVNd|bvG=e%`h8~|?yW3i z0A#y%YTzP&O6|Q(57H+^voYQ|1 z-FiB?OUC^JcZ4zG5S%*UE}RE&;t1{^!YNo6D&q&|l4nlHBglIId81k*_X_qSc{*>J zAnzXJJ<=Ghky-jcU3i)xFAaHnDA!|+kOz&LPO~6j7@I{7gFJ$~9qt2b)Jz(scl~Ch z3G&jAHw}5W`tsa9Mfw%m-(Y^CF$|&c>M2`^_V(sVX9Fd+pq7izH=&Tltjy$I6 zXQ?F&Fb4DQq0~#?E$#=NDZ2gqIo|*1PyOXChWV?JjO}$@r{&1dYTJ&VSrEC4v&HOj zyBDlW7miH1UMN-R6}WGe#C=;uYqH|X&7SQ#U&=5mDqHA_(-bw_&JtC5-B3nR z08hS4p_{eE<%4R1X>%sJj<-o^O^tu=+sW{tlpml80 z=4Vaq_U&%e30@>NujKKA#;*R1>nc%^Sjqm^I}CbV7UrU5{0qpwW=CRN Wds^`P+y{ly#ZsY|8Tp#Omj41LGtS)r literal 0 HcmV?d00001 diff --git a/cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin b/cirrus/cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin new file mode 100755 index 0000000000000000000000000000000000000000..d47b65fa7ac0f20986147be6984d91db11b58b5d GIT binary patch literal 5532 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 Msk+zvC|(Ue#fYFpM+V|J`a#M+zc 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