From nobody Fri Sep 25 08:46:25 2026 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4880B35C684; Tue, 15 Sep 2026 03:44:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=211.75.126.72 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789443889; cv=none; b=MVen3sN+wY+VEyiVwQDizK/MzfEl0Cy07/m9rFrn3treUI7OwRbs952G3otmafPwcWeQpH6BUBzK1QVI68KwoaZn3cTp94lUSx1dOSdUPlM3iEMDya5UDMDpkU/JqfN+9krAxBBAlYV9bW+FxR5Xn7wnFgzefQKHq0jwqV02MeU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789443889; c=relaxed/simple; bh=nGewic4xbXL4wXsjZKAkn3CCzwwQ+gjHgsZS7ozoGmA=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=i5nkFM+ZEpTjtSFoyKVcTnlXIxzFRIekWf4auk/XDqpWIcB5EBnzTQE1lxurX6xuTBgxB3mOfpIEXPnjvp7j2H7hOVgEGvtptBGEtoEbHrEaZ+Vh9L/zdYwE7QyuuJbV5BOXq3BE/8FzJIT1zVcurr5Q+f6rd3Su70E+LtsQumA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=realtek.com; spf=pass smtp.mailfrom=realtek.com; dkim=pass (2048-bit key) header.d=realtek.com header.i=@realtek.com header.b=pW2HOh4v; arc=none smtp.client-ip=211.75.126.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=realtek.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=realtek.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=realtek.com header.i=@realtek.com header.b="pW2HOh4v" X-SpamFilter-By: ArmorX SpamTrap 5.80 with qID 68F3iCnlD1245477, This message is accepted by code: ctloc85258 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=realtek.com; s=dkim; t=1789443852; bh=gSHBAC4gp+4RAOLquPRFRCSjNouPFpr9w/O456YqYE8=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=pW2HOh4vyyRqzKjngG80RbnTEpThHifk5FzC/XIB1lQk8a5H0Fl/Ze4yCTHavulhT dsCREHWqRCpvHsVcfYHjvfQUAaQYsW394uwKPmb0TiTCgt4NO0hATku2jbLQx61u2t VyJb4wtq1VNFvcl+qM9Uhjo7cZzCkMdSVaGJ8ln8ZWSH6D/UI1bM4Ct1X3MYRo2GGC sxTXa/5AGjDD2G8e1kM8UbEQjLLc4aY2BN72NKhmzBgcYoiQEHmQF8/hZCqAvWnD23 TxVddnLW4Plb/cCgGdH9N5PALtuiP2tciJjgLNEEbvE5bQlVZ59D8/4YtpYeWCNOrD 7YFVwjhoEb+cg== Received: from mail.realtek.com (rtkexhmbs02.realtek.com.tw[172.21.6.41]) by rtits2.realtek.com.tw (8.15.2/3.29/5.94) with ESMTPS id 68F3iCnlD1245477 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 15 Sep 2026 11:44:12 +0800 Received: from RTKEXHMBS06.realtek.com.tw (10.21.1.56) by RTKEXHMBS02.realtek.com.tw (172.21.6.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Tue, 15 Sep 2026 11:44:12 +0800 Received: from RTKEXHMBS04.realtek.com.tw (10.21.1.54) by RTKEXHMBS06.realtek.com.tw (10.21.1.56) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Tue, 15 Sep 2026 11:44:12 +0800 Received: from RTKEXHMBS04.realtek.com.tw ([::1]) by RTKEXHMBS04.realtek.com.tw ([fe80::bb07:3e09:fb44:8906%6]) with mapi id 15.02.2562.049; Tue, 15 Sep 2026 11:44:11 +0800 From: Jack Yu To: Cristian Timohi , Mark Brown CC: Shengyu Qu , Syed Saba Kareem , "Mukunda,Vijendar" , "Flove(HsinFu)" , "venkataprasad.potturu@amd.com" , "linux-sound@vger.kernel.org" , Oder Chiou , "vkoul@kernel.org" , "yung-chuan.liao@linux.intel.com" , "pierre-louis.bossart@linux.dev" , "lgirdwood@gmail.com" , "linux-kernel@vger.kernel.org" , "Dommati, Sunil-kumar" , Fish690103 , =?utf-8?B?TWlrZSBMaW4gKOael+abieiDvSk=?= Subject: RE: [BUG] ASoC/AMD ACP70/RT721: ASUS TUF Gaming A14 FA401EA speakers silent and headphone jack buzzes on playback Thread-Topic: [BUG] ASoC/AMD ACP70/RT721: ASUS TUF Gaming A14 FA401EA speakers silent and headphone jack buzzes on playback Thread-Index: AQHdO3/3gPlGg9kIl0aXWHswUOmXNra955qggAbCZICAAUUYYIAEB9+AgANnOFCAACpsAIAAY7SAgAAK6wCAARoXsA== Date: Tue, 15 Sep 2026 03:44:11 +0000 Message-ID: References: <1fdd17c6-a0ab-42de-8362-8e1374d42fac@amd.com> <30fed968a6f54a6c81eca4ee23ea4166@realtek.com> <3fa3de8f2bf24041ba9c029e0984abfb@realtek.com> <99e1afd842c4466ea562c83bb736fa74@realtek.com> In-Reply-To: Accept-Language: zh-TW, en-US Content-Language: zh-TW X-MS-Has-Attach: yes Content-Type: multipart/mixed; boundary="_002_a61ca5276d914235808711d7935e0f3erealtekcom_" Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 --_002_a61ca5276d914235808711d7935e0f3erealtekcom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Hi Cristian, Could you check if the attached patch fix the issue? Thanks. Regards, Jack > -----Original Message----- > From: Cristian Timohi > Sent: Tuesday, September 15, 2026 2:52 AM > To: Mark Brown > Cc: Shengyu Qu ; Jack Yu ; > Syed Saba Kareem ; Mukunda,Vijendar > ; Flove(HsinFu) ; > venkataprasad.potturu@amd.com; linux-sound@vger.kernel.org; Oder Chiou > ; vkoul@kernel.org; > yung-chuan.liao@linux.intel.com; pierre-louis.bossart@linux.dev; > lgirdwood@gmail.com; linux-kernel@vger.kernel.org; Dommati, Sunil-kumar > ; Fish690103 ; > Mike Lin (=E6=9E=97=E6=9B=89=E8=83=BD) > Subject: Re: [BUG] ASoC/AMD ACP70/RT721: ASUS TUF Gaming A14 FA401EA > speakers silent and headphone jack buzzes on playback >=20 >=20 > External mail : This email originated from outside the organization. Do n= ot > reply, click links, or open attachments unless you recognize the sender a= nd > know the content is safe. >=20 >=20 >=20 > Hi Mark, Jack, Shengyu, all, >=20 > I performed the test Jack requested for NID 0x5f / index 0x30 on my affec= ted > ASUS TUF Gaming A14 FA401EA. >=20 > I am including all details below because there were a few important > observations during the test. >=20 > One note before the technical details: I am not a Linux kernel/audio deve= loper, > and this level of ASoC/SoundWire/RT721 debugging is beyond my normal area > of expertise. I am working through these tests with ChatGPT helping me > understand the driver code, build temporary diagnostic modules, and perfo= rm > the tests carefully. >=20 > I am trying to keep every experiment minimal, reversible, and verified by > readback where possible. I hope the results are still useful for debuggin= g the > actual issue. >=20 > --- >=20 > ## SYSTEM >=20 > Laptop: > ASUS TUF Gaming A14 FA401EA >=20 > CPU/platform: > Ryzen AI MAX+ 392 > AMD ACP 7.0 >=20 > Codec: > Realtek RT721 SDCA >=20 > BIOS: > FA401EA.304 >=20 > This machine is already running the latest firmware/BIOS currently availa= ble > for the FA401EA. Therefore, at least on this unit, the issue is reproduci= ble with > the latest available ASUS firmware installed. >=20 > Running kernel: > 7.3.0-rc2-fa401ea-rt721+ >=20 > Kernel source tree HEAD: > 1a3fdcb408 ASoC: rt721-sdca: Adjust latency control to fix no-sound issue >=20 > This includes the a20afec40ea1 fix. >=20 > The following patch was NOT present during this test: >=20 > ASoC: rt721-sdca: Update preset for all functions >=20 > Audio card: >=20 > amd-soundwire > ASUSTeKCOMPUTERINC.-TUFGamingA14FA401EA-1.0-FA401EA >=20 > SmartMic capture PCM: >=20 > card: amdsoundwire > device 4: SDW1-PIN5-CAPTURE-SmartMic > DAI: rt721-sdca-aif3-4 >=20 > --- >=20 > ## DIAGNOSTIC MODULE >=20 > I built a temporary out-of-tree snd-soc-rt721-sdca module matching the > running kernel. >=20 > No DKMS installation was performed and no permanent module replacement > was made. >=20 > The temporary module initially only did the following: >=20 > 1. Added MBQ address 0x5f00030 to the readable and volatile register list= s. >=20 > 2. Added rt_sdca_index_read() calls inside: >=20 > rt721_sdca_pde11_event() >=20 > to read: >=20 > NID: 0x5f > index: 0x30 >=20 > at three points: >=20 > * before requesting mic-path PS0 > * after requesting mic-path PS0 > * before requesting PS3 >=20 > The existing PDE2A power-state request itself was left unchanged. >=20 > --- >=20 > ## BASELINE READ-ONLY TEST >=20 > Before capture I enabled: >=20 > rt721 FU1E Capture Switch =3D on,on,on,on >=20 > Capture command: >=20 > arecord -D hw:amdsoundwire,4 > -f S16_LE > -r 48000 > -c 2 > -d 3 > /tmp/rt721-mic-test.wav >=20 > The register values were: >=20 > RT721TEST mic 5f:30 before PS0: 0xffb7 > RT721TEST mic 5f:30 after PS0: 0xffb7 > RT721TEST mic 5f:30 before PS3: 0xffb7 >=20 > Therefore, on my affected FA401EA: >=20 > 0x5f:0x30 =3D 0xffb7 >=20 > and requesting PDE2A PS0 does NOT change it. >=20 > I then analyzed the raw PCM samples. >=20 > Capture: >=20 > 144000 frames > 48000 Hz > stereo > S16_LE > 3 seconds >=20 > Channel 0: >=20 > min=3D0 > max=3D0 > RMS=3D0.00 > nonzero samples=3D0/144000 > nonzero percentage=3D0.00% > distinct sample values=3D1 >=20 > Channel 1: >=20 > min=3D0 > max=3D0 > RMS=3D0.00 > nonzero samples=3D0/144000 > nonzero percentage=3D0.00% > distinct sample values=3D1 >=20 > So the SmartMic capture is exact digital zero on both channels. >=20 > --- >=20 > ## 0xFFB7 VS 0xFFF7 >=20 > Jack mentioned that the default value according to the RT721 specificatio= n for: >=20 > NID 0x5f > index 0x30 >=20 > is: >=20 > 0xfff7 >=20 > My hardware returns: >=20 > 0xffb7 >=20 > Difference: >=20 > 0xfff7 > 0xffb7 > ------ >=20 > 0x0040 >=20 > So BIT(6) is the only difference between the value observed on my unit and > 0xfff7. >=20 > --- >=20 > ## FIRST ATTEMPT TO FORCE BIT(6) >=20 > I then modified the temporary module to set only BIT(6) using: >=20 > rt_sdca_index_update_bits(..., BIT(6), BIT(6)) >=20 > rather than overwriting the entire register. >=20 > This should change: >=20 > 0xffb7 -> 0xfff7 >=20 > In the first attempt I performed this before requesting PS0. >=20 > That attempt failed safely: >=20 > RT721TEST mic 5f:30 before PS0: read failed: -16 RT721TEST force BIT6 fai= led: > -16 >=20 > -16 is EBUSY. >=20 > Since rt_sdca_index_update_bits() first reads the register and returns > immediately if the read fails, no register write occurred during this fir= st > attempt. >=20 > After PS0 the register became readable and still contained: >=20 > 0xffb7 >=20 > There was also a runtime PM issue during this attempt: >=20 > runtime PM trying to activate child device sdw:0:1:025d:0721:01 but parent > (sdw-master-0-1) is not active >=20 > followed by: >=20 > Failed to resume device: -61 > Slave 1 alert handling failed: -61 >=20 > Because of this I did not consider the first attempt authoritative. >=20 > --- >=20 > ## FINAL CONTROLLED TEST >=20 > For the second attempt I moved the BIT(6) update until AFTER PDE2A had be= en > requested to PS0. >=20 > I also explicitly kept the complete relevant path runtime-active during t= he > experiment. >=20 > ACP PCI device: >=20 > /sys/bus/pci/devices/0000:64:00.5 >=20 > SoundWire manager: >=20 > /sys/devices/pci0000:00/0000:00:08.1/0000:64:00.5/amd_sdw_manager.1 >=20 > RT721 codec: >=20 > /sys/bus/soundwire/devices/sdw:0:1:025d:0721:01 >=20 > For all three: >=20 > power/control =3D on > runtime_status =3D active >=20 > PipeWire, WirePlumber and alsa-state were stopped during the experiment so > nothing else held the ALSA devices. >=20 > RT721 status before capture: >=20 > Attached >=20 > The sequence inside rt721_sdca_pde11_event() was: >=20 > 1. Read 0x5f:0x30 > 2. Request PDE2A PS0 > 3. Wait 10-20 ms > 4. Read 0x5f:0x30 again > 5. Set only BIT(6) > 6. Read 0x5f:0x30 again to verify the write 7. Perform SmartMic capture 8. > Read 0x5f:0x30 before PS3 9. Clear BIT(6) again 10. Read back the registe= r to > verify restoration 11. Request PS3 >=20 > The resulting kernel log was: >=20 > RT721_BIT6_V2_BEGIN >=20 > RT721TEST mic 5f:30 before PS0: 0xffb7 > RT721TEST mic 5f:30 after PS0: 0xffb7 > RT721TEST mic 5f:30 after BIT6 set: 0xfff7 RT721TEST mic 5f:30 before PS3: > 0xfff7 RT721TEST mic 5f:30 after BIT6 restore: 0xffb7 >=20 > RT721_BIT6_V2_END >=20 > So the requested value was successfully written and verified by hardware > readback. >=20 > During the entire three-second capture: >=20 > 0x5f:0x30 =3D 0xfff7 >=20 > After capture, BIT(6) was cleared again and readback confirmed that the > original value was restored: >=20 > 0x5f:0x30 =3D 0xffb7 >=20 > --- >=20 > ## CAPTURE RESULT WITH 0x5F:0x30 =3D 0xFFF7 >=20 > Capture command: >=20 > arecord -D hw:amdsoundwire,4 > -f S16_LE > -r 48000 > -c 2 > -d 3 > /tmp/rt721-mic-bit6-v2.wav >=20 > Capture: >=20 > 144000 frames > 48000 Hz > stereo > S16_LE >=20 > Channel 0: >=20 > min=3D0 > max=3D0 > RMS=3D0.00 > nonzero samples=3D0/144000 > nonzero percentage=3D0.00% > distinct sample values=3D1 >=20 > Channel 1: >=20 > min=3D0 > max=3D0 > RMS=3D0.00 > nonzero samples=3D0/144000 > nonzero percentage=3D0.00% > distinct sample values=3D1 >=20 > Therefore the microphone capture remained exact digital zero on both > channels even while 0x5f:0x30 was verified to be 0xfff7. >=20 > --- >=20 > ## SUMMARY >=20 > Firmware: >=20 > BIOS FA401EA.304 > Latest currently available firmware for FA401EA Issue still reproducible >=20 > Baseline: >=20 > 0x5f:0x30 =3D 0xffb7 > DMIC =3D exact digital zero >=20 > Normal PDE2A -> PS0: >=20 > 0x5f:0x30 remains 0xffb7 >=20 > Explicit BIT(6) set: >=20 > 0x5f:0x30 becomes 0xfff7 > hardware readback confirms 0xfff7 >=20 > SmartMic capture while register is 0xfff7: >=20 > Channel 0 =3D exact digital zero > Channel 1 =3D exact digital zero >=20 > After capture: >=20 > BIT(6) cleared > 0x5f:0x30 returns to 0xffb7 >=20 > --- >=20 > ## CONCLUSION >=20 > On my affected FA401EA, explicitly setting NID 0x5f / index 0x30 to the > specification default value 0xfff7 is NOT sufficient to make the micropho= nes > work. >=20 > The machine is already running BIOS FA401EA.304, which is the latest > firmware currently available for this model, and the issue is still repro= ducible. > Therefore there is no newer ASUS firmware currently available for me to t= est > against this behavior. >=20 > One interesting difference from the earlier reported register dump is tha= t my > unit does not currently show 0x01c2 at 0x5f:0x30. >=20 > It shows: >=20 > 0xffb7 >=20 > both before and after the normal PDE2A PS0 request. >=20 > The only difference from the documented default value 0xfff7 is BIT(6). >=20 > However, setting BIT(6), verifying 0xfff7 by hardware readback, and keepi= ng > that value for the entire capture still leaves both microphone channels > producing exact digital zeros. >=20 > This seems to suggest that some other part of the analog/vendor power > sequence is still required. >=20 > This could also explain why the community workaround which writes several > RT721 vendor analog power registers succeeds: that workaround modifies > considerably more than 0x5f:0x30, including codec-wide power state at > 0x5f:0x00 and other analog power registers. >=20 > I intentionally did NOT apply the complete vendor power sequence during t= his > test because I wanted to test Jack's 0x5f:0x30 question independently and > provide a clean result. >=20 > For reference, the internal speakers also remain completely silent on this > machine with a20afec40ea1 alone, as previously reported. >=20 > If you would like me to perform another targeted test, please specify the= exact > register/value and at what state it should be read or written, and I will= try to > reproduce it carefully. >=20 > Again, I am not experienced with Linux audio driver development and I am > relying on ChatGPT to help me understand the kernel code and construct th= ese > diagnostic tests. I wanted to be transparent about that. >=20 > Nevertheless, I have tried to keep the experiments minimal and reversible= and > to verify register changes by hardware readback wherever possible. >=20 > I hope these results help narrow down the issue. >=20 > Thanks, > Cristian >=20 >=20 > On Mon, Sep 14, 2026 at 9:13=E2=80=AFPM Mark Brown w= rote: > > > > On Mon, Sep 14, 2026 at 08:16:22PM +0800, Shengyu Qu wrote: > > > > > On my FA401EA this issue doesn't exist so I can't test. Maybe you > > > can ask at bugzilla so other users with this issue could test? > > > > > PS: maybe this is the issue for some old batches of RT721 chip? My > > > device is very new and this might be why I don't have this issue? > > > > Could some firmware update have done something that helps somehow? --_002_a61ca5276d914235808711d7935e0f3erealtekcom_ Content-Type: application/octet-stream; name="0001-ASoC-rt721-sdca-power-up-the-vendor-analog-gates.patch" Content-Description: 0001-ASoC-rt721-sdca-power-up-the-vendor-analog-gates.patch Content-Disposition: attachment; filename="0001-ASoC-rt721-sdca-power-up-the-vendor-analog-gates.patch"; size=8056; creation-date="Tue, 15 Sep 2026 03:42:42 GMT"; modification-date="Tue, 15 Sep 2026 03:40:47 GMT" Content-Transfer-Encoding: base64 RnJvbSAyNTc1MjAyZDVlNzZlNWIyNDhmOTEyOWY1YTQxODA5NTBkNzU1OTk3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNrIFl1IDxqYWNrLnl1QHJlYWx0ZWsuY29tPgpEYXRlOiBU dWUsIDE1IFNlcCAyMDI2IDExOjM2OjQ5ICswODAwClN1YmplY3Q6IFtQQVRDSF0gQVNvQzogcnQ3 MjEtc2RjYTogcG93ZXIgdXAgdGhlIHZlbmRvciBhbmFsb2cgZ2F0ZXMKCk9uIHNvbWUgYm9hcmRz IGZpcm13YXJlIGxlYXZlcyB0aGUgUlQ3MjEncyB2ZW5kb3IgYW5hbG9nIHBvd2VyIGdhdGVzCm9m Ziwgd2hpY2ggdGhlIFNEQ0EgcG93ZXItZG9tYWluIHJlcXVlc3RzIGRvIG5vdCB0b3VjaCwKc28g dGhlIGNvZGVjIGlzIGRpZ2l0YWxseSBjb25maWd1cmVkIGJ1dCBhbmFsb2ctZGVhZC4KClByb2dy YW0gdGhlc2UgZ2F0ZXMgaW4gdGhlIGphY2svYW1wL21pYyBwcmVzZXRzLCBnYXRlZCBvbiBhIERN SSBxdWlyawp0YWJsZSAocGx1cyBhIHZlbmRvcl9wb3dlcl9zZXEgbW9kdWxlIHBhcmFtZXRlcikg c28gb3RoZXIgUlQ3MjEgYm9hcmRzCmtlZXAgdGhlIHN0b2NrIGJlaGF2aW91ci4KClNpZ25lZC1v ZmYtYnk6IEphY2sgWXUgPGphY2sueXVAcmVhbHRlay5jb20+Ci0tLQogc291bmQvc29jL2NvZGVj cy9ydDcyMS1zZGNhLXNkdy5jIHwgIDcgKysrCiBzb3VuZC9zb2MvY29kZWNzL3J0NzIxLXNkY2Eu YyAgICAgfCA5NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzb3VuZC9zb2MvY29k ZWNzL3J0NzIxLXNkY2EuaCAgICAgfCAxMCArKysrCiAzIGZpbGVzIGNoYW5nZWQsIDExNCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9ydDcyMS1zZGNhLXNkdy5j IGIvc291bmQvc29jL2NvZGVjcy9ydDcyMS1zZGNhLXNkdy5jCmluZGV4IGVhZTdkNjYyZWZhZS4u YmI3Yzc3MjE4ZmRmIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3J0NzIxLXNkY2Etc2R3 LmMKKysrIGIvc291bmQvc29jL2NvZGVjcy9ydDcyMS1zZGNhLXNkdy5jCkBAIC02Myw2ICs2Mywx MCBAQCBzdGF0aWMgYm9vbCBydDcyMV9zZGNhX3ZvbGF0aWxlX3JlZ2lzdGVyKHN0cnVjdCBkZXZp Y2UgKmRldiwgdW5zaWduZWQgaW50IHJlZykKIHN0YXRpYyBib29sIHJ0NzIxX3NkY2FfbWJxX3Jl YWRhYmxlX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHJlZykKIHsK IAlzd2l0Y2ggKHJlZykgeworCWNhc2UgMHgwMTAwMDBjOgorCWNhc2UgMHgwMTAwMDBlOgorCWNh c2UgMHgwMTAwMDExOgorCWNhc2UgMHgwMTAwMDEzOgogCWNhc2UgMHgwOTAwMDA0IC4uLiAweDA5 MDAwMDk6CiAJY2FzZSAweDBhMDAwMDU6CiAJY2FzZSAweDBjMDAwMDU6CkBAIC04MCw2ICs4NCw5 IEBAIHN0YXRpYyBib29sIHJ0NzIxX3NkY2FfbWJxX3JlYWRhYmxlX3JlZ2lzdGVyKHN0cnVjdCBk ZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHJlCiAJY2FzZSAweDU4MTAwMzk6CiAJY2FzZSAweDVi MTAwMTg6CiAJY2FzZSAweDViMTAwMTk6CisJY2FzZSAweDVmMDAwMDA6CisJY2FzZSAweDVmMDAw MjA6CisJY2FzZSAweDVmMDAwMzA6CiAJY2FzZSAweDVmMDAwNDU6CiAJY2FzZSAweDVmMDAwNDg6 CiAJY2FzZSAweDYxMDAwMDA6CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3J0NzIxLXNk Y2EuYyBiL3NvdW5kL3NvYy9jb2RlY3MvcnQ3MjEtc2RjYS5jCmluZGV4IGE5NDc5ZDBlNDk0MS4u ZGE2NzRjMDI2MTAxIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3J0NzIxLXNkY2EuYwor KysgYi9zb3VuZC9zb2MvY29kZWNzL3J0NzIxLXNkY2EuYwpAQCAtOSw2ICs5LDcgQEAKICNpbmNs dWRlIDxsaW51eC9iaXRvcHMuaD4KICNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CiAjaW5jbHVkZSA8 bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWkuaD4KICNpbmNsdWRlIDxsaW51eC9p bml0Lmg+CiAjaW5jbHVkZSA8c291bmQvaW5pdHZhbC5oPgogI2luY2x1ZGUgPHNvdW5kL2phY2su aD4KQEAgLTE0MCw2ICsxNDEsOTAgQEAgc3RhdGljIHZvaWQgcnQ3MjFfc2RjYV9idG5fY2hlY2tf aGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJcHJfZXJyX3JhdGVsaW1pdGVkKCJJ TyBlcnJvciBpbiAlcywgcmV0ICVkXG4iLCBfX2Z1bmNfXywgcmV0KTsKIH0KIAorc3RhdGljIGlu dCB2ZW5kb3JfcG93ZXJfc2VxID0gLTE7Cittb2R1bGVfcGFyYW0odmVuZG9yX3Bvd2VyX3NlcSwg aW50LCAwNDQ0KTsKK01PRFVMRV9QQVJNX0RFU0ModmVuZG9yX3Bvd2VyX3NlcSwKKwkiUlQ3MjEg dmVuZG9yIGFuYWxvZyBwb3dlciBzZXF1ZW5jZTogLTEgPSBETUkgbWF0Y2gsIDAgPSBvZmYsIDEg PSBvbiIpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgcnQ3MjFfc2RjYV9x dWlya190YWJsZVtdID0geworCXsKKwkJLyogQVNVUyBUVUYgR2FtaW5nIEExNCBGQTQwMUVBICov CisJCS5tYXRjaGVzID0geworCQkJRE1JX0VYQUNUX01BVENIKERNSV9CT0FSRF9WRU5ET1IsICJB U1VTVGVLIENPTVBVVEVSIElOQy4iKSwKKwkJCURNSV9FWEFDVF9NQVRDSChETUlfQk9BUkRfTkFN RSwgIkZBNDAxRUEiKSwKKwkJfSwKKwkJLmRyaXZlcl9kYXRhID0gKHZvaWQgKilSVDcyMV9TRENB X1FVSVJLX1ZFTkRPUl9QT1dFUl9TRVEsCisJfSwKKwl7CisJCS8qIE1TSSBDbGF3IDggRVggQUkr ICovCisJCS5tYXRjaGVzID0geworCQkJRE1JX0VYQUNUX01BVENIKERNSV9TWVNfVkVORE9SLCAi TWljcm8tU3RhciBJbnRlcm5hdGlvbmFsIENvLiwgTHRkLiIpLAorCQkJRE1JX0VYQUNUX01BVENI KERNSV9CT0FSRF9OQU1FLCAiTVMtMVQ5MSIpLAorCQl9LAorCQkuZHJpdmVyX2RhdGEgPSAodm9p ZCAqKVJUNzIxX1NEQ0FfUVVJUktfVkVORE9SX1BPV0VSX1NFUSwKKwl9LAorCXt9Cit9OworCitz dHJ1Y3QgcnQ3MjFfc2RjYV9wb3dlcl9zdGVwIHsKKwl1OCBuaWQ7CisJdTggcmVnOworCXUxNiBt YXNrOworCXUxNiB2YWw7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHJ0NzIxX3NkY2FfcG93 ZXJfc3RlcCBydDcyMV9zZGNhX2NvZGVjX3Bvd2VyW10gPSB7CisJeyBSVDcyMV9WRU5ET1JfQU5B X0NUTCwgUlQ3MjFfTUlTQ19QT1dFUl9DVEwwLCBCSVQoMTUpLCBCSVQoMTUpIH0sCisJeyBSVDcy MV9WRU5ET1JfQU5BX0NUTCwgUlQ3MjFfTUlTQ19QT1dFUl9DVEwwLCBCSVQoMTQpLCBCSVQoMTQp IH0sCisJeyBSVDcyMV9WRU5ET1JfQU5BX0NUTCwgUlQ3MjFfTUlTQ19QT1dFUl9DVEwwLCBCSVQo MTMpLCBCSVQoMTMpIH0sCisJeyBSVDcyMV9WRU5ET1JfQU5BX0NUTCwgUlQ3MjFfTUlTQ19QT1dF Ul9DVEwwLCBCSVQoMTIpLCBCSVQoMTIpIH0sCisJeyBSVDcyMV9BTkFfUE9XX1BBUlQsICAgUlQ3 MjFfQU5BX1BPV19QQVJUXzExLCBCSVQoMTUpLCBCSVQoMTUpIH0sCisJeyBSVDcyMV9BTkFfUE9X X1BBUlQsICAgUlQ3MjFfQU5BX1BPV19QQVJUXzBDLCBCSVQoMTUpLCBCSVQoMTUpIH0sCisJeyBS VDcyMV9WRU5ET1JfQU5BX0NUTCwgUlQ3MjFfTUlTQ19QT1dFUl9DVEwwLCBCSVQoMyksICBCSVQo MykgIH0sCisJeyBSVDcyMV9WRU5ET1JfQU5BX0NUTCwgUlQ3MjFfTUlTQ19QT1dFUl9DVEwwLCBC SVQoMTApLCBCSVQoMTApIH0sCisJeyBSVDcyMV9BTkFfUE9XX1BBUlQsICAgUlQ3MjFfQU5BX1BP V19QQVJUXzEzLCBCSVQoNiksICBCSVQoNikgIH0sCisJeyBSVDcyMV9BTkFfUE9XX1BBUlQsICAg UlQ3MjFfQU5BX1BPV19QQVJUXzBFLCBCSVQoMyksICBCSVQoMykgIH0sCisJeyBSVDcyMV9WRU5E T1JfQU5BX0NUTCwgUlQ3MjFfTUlTQ19QT1dFUl9DVEwwLCBCSVQoMiksICBCSVQoMikgIH0sCisJ eyBSVDcyMV9WRU5ET1JfQU5BX0NUTCwgUlQ3MjFfTUlTQ19QT1dFUl9DVEwwLCBCSVQoOSksICBC SVQoOSkgIH0sCit9OworCitzdGF0aWMgdm9pZCBydDcyMV9zZGNhX2NvZGVjX2FuYWxvZ19wb3dl cihzdHJ1Y3QgcnQ3MjFfc2RjYV9wcml2ICpydDcyMSkKK3sKKwlzaXplX3QgaTsKKwlpbnQgcmV0 OworCisJaWYgKCEocnQ3MjEtPnF1aXJrcyAmIFJUNzIxX1NEQ0FfUVVJUktfVkVORE9SX1BPV0VS X1NFUSkpCisJCXJldHVybjsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHJ0NzIxX3Nk Y2FfY29kZWNfcG93ZXIpOyBpKyspIHsKKwkJcmV0ID0gcnRfc2RjYV9pbmRleF91cGRhdGVfYml0 cyhydDcyMS0+bWJxX3JlZ21hcCwKKwkJCQlydDcyMV9zZGNhX2NvZGVjX3Bvd2VyW2ldLm5pZCwK KwkJCQlydDcyMV9zZGNhX2NvZGVjX3Bvd2VyW2ldLnJlZywKKwkJCQlydDcyMV9zZGNhX2NvZGVj X3Bvd2VyW2ldLm1hc2ssCisJCQkJcnQ3MjFfc2RjYV9jb2RlY19wb3dlcltpXS52YWwpOworCQlp ZiAocmV0KQorCQkJZGV2X3dhcm4oJnJ0NzIxLT5zbGF2ZS0+ZGV2LAorCQkJCSAiY29kZWMgYW5h bG9nIHBvd2VyIHN0ZXAgJXp1IGZhaWxlZDogJWRcbiIsIGksIHJldCk7CisJfQorfQorCisvKgor ICogRGVjaWRlIHdoZXRoZXIgdGhlIHZlbmRvciBhbmFsb2cgcG93ZXIgc2VxdWVuY2UgaXMgbmVl ZGVkLiBBIG1vZHVsZQorICogcGFyYW1ldGVyIGZvcmNlcyBpdCBvbiBvciBvZmY7IG90aGVyd2lz ZSBpdCBpcyBlbmFibGVkIG9ubHkgb24gYm9hcmRzIGluCisgKiB0aGUgRE1JIHF1aXJrIHRhYmxl LgorICovCitzdGF0aWMgdm9pZCBydDcyMV9zZGNhX2RldGVjdF92ZW5kb3JfcG93ZXIoc3RydWN0 IHJ0NzIxX3NkY2FfcHJpdiAqcnQ3MjEpCit7CisJaWYgKHZlbmRvcl9wb3dlcl9zZXEgPT0gMCkK KwkJcmV0dXJuOworCisJaWYgKHZlbmRvcl9wb3dlcl9zZXEgPiAwIHx8IGRtaV9maXJzdF9tYXRj aChydDcyMV9zZGNhX3F1aXJrX3RhYmxlKSkgeworCQlydDcyMS0+cXVpcmtzIHw9IFJUNzIxX1NE Q0FfUVVJUktfVkVORE9SX1BPV0VSX1NFUTsKKwkJZGV2X2luZm8oJnJ0NzIxLT5zbGF2ZS0+ZGV2 LAorCQkJICJlbmFibGluZyB2ZW5kb3IgYW5hbG9nIHBvd2VyIHNlcXVlbmNlXG4iKTsKKwl9Cit9 CisKIHN0YXRpYyB2b2lkIHJ0NzIxX3NkY2FfZG1pY19wcmVzZXQoc3RydWN0IHJ0NzIxX3NkY2Ff cHJpdiAqcnQ3MjEpCiB7CiAJcnRfc2RjYV9pbmRleF93cml0ZShydDcyMS0+bWJxX3JlZ21hcCwg UlQ3MjFfVkVORE9SX0FOQV9DVEwsCkBAIC0xNzUsNiArMjYwLDEwIEBAIHN0YXRpYyB2b2lkIHJ0 NzIxX3NkY2FfZG1pY19wcmVzZXQoc3RydWN0IHJ0NzIxX3NkY2FfcHJpdiAqcnQ3MjEpCiAJcnRf c2RjYV9pbmRleF93cml0ZShydDcyMS0+bWJxX3JlZ21hcCwgUlQ3MjFfUkNfQ0FMSUJfQ1RSTCwK IAkJUlQ3MjFfUkNfQ0FMSUJfQ1RSTDAsIDB4MGI0MCk7CiAJcmVnbWFwX3dyaXRlKHJ0NzIxLT5y ZWdtYXAsIDB4MmY1YywgMHgyNSk7CisKKwlpZiAocnQ3MjEtPnF1aXJrcyAmIFJUNzIxX1NEQ0Ff UVVJUktfVkVORE9SX1BPV0VSX1NFUSkKKwkJcnRfc2RjYV9pbmRleF93cml0ZShydDcyMS0+bWJx X3JlZ21hcCwgUlQ3MjFfVkVORE9SX0FOQV9DVEwsCisJCQlSVDcyMV9NSVNDX1BPV0VSX0NUTDMw LCAweGZmZjcpOwogfQogCiBzdGF0aWMgdm9pZCBydDcyMV9zZGNhX2FtcF9wcmVzZXQoc3RydWN0 IHJ0NzIxX3NkY2FfcHJpdiAqcnQ3MjEpCkBAIC0yMDgsNiArMjk3LDEwIEBAIHN0YXRpYyB2b2lk IHJ0NzIxX3NkY2FfYW1wX3ByZXNldChzdHJ1Y3QgcnQ3MjFfc2RjYV9wcml2ICpydDcyMSkKIAkJ U0RXX1NEQ0FfQ1RMKEZVTkNfTlVNX0FNUCwgUlQ3MjFfU0RDQV9FTlRfRlU1NSwKIAkJCVJUNzIx X1NEQ0FfQ1RMX0ZVX01VVEUsIENIXzAyKSwgMHgwMCk7CiAJcmVnbWFwX3dyaXRlKHJ0NzIxLT5y ZWdtYXAsIDB4MmY1ZCwgMHgxKTsKKworCWlmIChydDcyMS0+cXVpcmtzICYgUlQ3MjFfU0RDQV9R VUlSS19WRU5ET1JfUE9XRVJfU0VRKQorCQlydF9zZGNhX2luZGV4X3dyaXRlKHJ0NzIxLT5tYnFf cmVnbWFwLCBSVDcyMV9WRU5ET1JfQU5BX0NUTCwKKwkJCVJUNzIxX01JU0NfUE9XRVJfQ1RMMjAs IDB4ZmZmNyk7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0NzIxX3NkY2FfamFja19wcmVzZXQoc3RydWN0 IHJ0NzIxX3NkY2FfcHJpdiAqcnQ3MjEpCkBAIC0yODcsNiArMzgwLDggQEAgc3RhdGljIHZvaWQg cnQ3MjFfc2RjYV9qYWNrX3ByZXNldChzdHJ1Y3QgcnQ3MjFfc2RjYV9wcml2ICpydDcyMSkKIAly ZWdtYXBfd3JpdGUocnQ3MjEtPnJlZ21hcCwgMHgyZjUxLCAweDAwKTsKIAlydF9zZGNhX2luZGV4 X3dyaXRlKHJ0NzIxLT5tYnFfcmVnbWFwLCBSVDcyMV9IREFfU0RDQV9GTE9BVCwKIAkJUlQ3MjFf TUlTQ19DVEwsIDB4MDAwNCk7CisKKwlydDcyMV9zZGNhX2NvZGVjX2FuYWxvZ19wb3dlcihydDcy MSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0NzIxX3NkY2FfamFja19pbml0KHN0cnVjdCBydDcyMV9z ZGNhX3ByaXYgKnJ0NzIxKQpAQCAtMTQ3Miw2ICsxNTY3LDggQEAgaW50IHJ0NzIxX3NkY2FfaW5p dChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCByZWdtYXAgKnJlZ21hcCwKIAlydDcyMS0+cmVn bWFwID0gcmVnbWFwOwogCXJ0NzIxLT5tYnFfcmVnbWFwID0gbWJxX3JlZ21hcDsKIAorCXJ0NzIx X3NkY2FfZGV0ZWN0X3ZlbmRvcl9wb3dlcihydDcyMSk7CisKIAlyZWdjYWNoZV9jYWNoZV9vbmx5 KHJ0NzIxLT5yZWdtYXAsIHRydWUpOwogCXJlZ2NhY2hlX2NhY2hlX29ubHkocnQ3MjEtPm1icV9y ZWdtYXAsIHRydWUpOwogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3J0NzIxLXNkY2Eu aCBiL3NvdW5kL3NvYy9jb2RlY3MvcnQ3MjEtc2RjYS5oCmluZGV4IDI0Y2UxODg1NjJiYS4uZDY4 NzkwMThkM2IzIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3J0NzIxLXNkY2EuaAorKysg Yi9zb3VuZC9zb2MvY29kZWNzL3J0NzIxLXNkY2EuaApAQCAtMjEsNiArMjEsNyBAQCBzdHJ1Y3Qg IHJ0NzIxX3NkY2FfcHJpdiB7CiAJc3RydWN0IHNuZF9zb2NfY29tcG9uZW50ICpjb21wb25lbnQ7 CiAJc3RydWN0IHNkd19zbGF2ZSAqc2xhdmU7CiAJc3RydWN0IHNkd19idXNfcGFyYW1zIHBhcmFt czsKKwl1bnNpZ25lZCBsb25nIHF1aXJrczsKIAlib29sIGh3X2luaXQ7CiAJYm9vbCBmaXJzdF9o d19pbml0OwogCXN0cnVjdCBtdXRleCBjYWxpYnJhdGVfbXV0ZXg7CkBAIC03NCw2ICs3NSwxMCBA QCBzdHJ1Y3QgcnQ3MjFfc2RjYV9kbWljX2tjdHJsX3ByaXYgewogI2RlZmluZSBSVDcyMV9NQklB U19MVl9DVFJMMgkJCTB4MDcKICNkZWZpbmUgUlQ3MjFfVlJFRjFfSFZfQ1RSTDEJCQkweDBhCiAj ZGVmaW5lIFJUNzIxX1ZSRUYyX0xWX0NUUkwxCQkJMHgwYgorI2RlZmluZSBSVDcyMV9BTkFfUE9X X1BBUlRfMEMJCQkweDBjCisjZGVmaW5lIFJUNzIxX0FOQV9QT1dfUEFSVF8wRQkJCTB4MGUKKyNk ZWZpbmUgUlQ3MjFfQU5BX1BPV19QQVJUXzExCQkJMHgxMQorI2RlZmluZSBSVDcyMV9BTkFfUE9X X1BBUlRfMTMJCQkweDEzCiAKIC8qIEluZGV4IChOSUQ6MDRoKSAqLwogI2RlZmluZSBSVDcyMV9E QUNfMkNIX0NUUkwzCQkJMHgwMgpAQCAtMTI3LDYgKzEzMiw4IEBAIHN0cnVjdCBydDcyMV9zZGNh X2RtaWNfa2N0cmxfcHJpdiB7CiAKIC8qIEluZGV4IChOSUQ6NWZoKSAqLwogI2RlZmluZSBSVDcy MV9NSVNDX1BPV0VSX0NUTDAJCQkweDAwCisjZGVmaW5lIFJUNzIxX01JU0NfUE9XRVJfQ1RMMjAJ CQkweDIwCisjZGVmaW5lIFJUNzIxX01JU0NfUE9XRVJfQ1RMMzAJCQkweDMwCiAjZGVmaW5lIFJU NzIxX01JU0NfUE9XRVJfQ1RMMzEJCQkweDMxCiAjZGVmaW5lIFJUNzIxX1VBSl9UT1BfVENPTjEz CQkJMHg0NAogI2RlZmluZSBSVDcyMV9VQUpfVE9QX1RDT04xNAkJCTB4NDUKQEAgLTI2OCw2ICsy NzUsOSBAQCBlbnVtIHsKIAlSVDcyMV9BSUZTLAogfTsKIAorLyogcXVpcmtzICovCisjZGVmaW5l IFJUNzIxX1NEQ0FfUVVJUktfVkVORE9SX1BPV0VSX1NFUQlCSVQoMCkKKwogaW50IHJ0NzIxX3Nk Y2FfaW9faW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzZHdfc2xhdmUgKnNsYXZlKTsK IGludCBydDcyMV9zZGNhX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcmVnbWFwICpy ZWdtYXAsCiAJCQlzdHJ1Y3QgcmVnbWFwICptYnFfcmVnbWFwLCBzdHJ1Y3Qgc2R3X3NsYXZlICpz bGF2ZSk7Ci0tIAoyLjU0LjAKCg== --_002_a61ca5276d914235808711d7935e0f3erealtekcom_--