From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010011.outbound.protection.outlook.com [52.101.201.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1D5F930DD30; Wed, 12 Aug 2026 09:39:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.11 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786527568; cv=fail; b=fH+bYTjAoSTS9QrVsYVkkUiDOJgrUxK0P4qMLenTc3CWzcHvmRSEMPnw3igWlOI+VmOax5KhZ4wl77PfTkiyhAVSCvwv4u1j3ORhBJ1ffxe3S6jk5mOVdVxcvi/6l41IMMg+tnSujF78u2liuAP65EZvuV7jRmq0pi7HEjKYJvM= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786527568; c=relaxed/simple; bh=wAEU4a1Sxugywp7ON8lDncYroF2DUFAOTTYy5ijrnS4=; h=Content-Type:Message-ID:Date:Subject:To:Cc:References:From: In-Reply-To:MIME-Version; b=GtyLGNWxzTOWVN2umvcyHHvwuUFR4WHcaYZYfl91c4zUYQmCRK7Zptph3gfsCf2sI1ewMSkIyiqoSjMlPLJ5pnogf7IuR4FkE4j+y+AFqE5FQ6I2e4/9nYZZOD75OSVUV/27uSoza3H7eT1db8Typtvr4pk209FmnMjBLOz8diE= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=G3xGsFBi; arc=fail smtp.client-ip=52.101.201.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="G3xGsFBi" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LZIYFnAuQll+imLxBkorTeO5rbgfi9J8BOguRXb7Y1g+9Mx1fug2/Fz8GdUXIrNoTPO9Oal8yxQixtfZL8cVCjLqAwokGJreuJwNfJnpoY2MeLUUqG8MSwlsof09VEXCa/SGtKzzqaf13RBkxqfs4qF/ZKWLXhvFPcZw7KnOFuoF3EYxAyhf87QYRvTBAlewHrVXH9tLJ/gf/0gUukUuLh4AdcJxfPgJ4lTf1OIcqZDFolMwS6RdreuLaBNttp1qtRNSpQYqbeWBpc88R+QyQoWOltLsDflUNx99mkDI0OoBrVbNHSnSBUlv8TNWwrhv7O55ZaI7WeoVcgm5HYCojQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tl272Z09SeC9KHISzRFLD6XXvl8gs5ho2FcUnJm8oJM=; b=kodBlTSUk8gfUBUQ4+hMGE8WFuQ4VX4p5stApFrJUAVs2YTF8XreL+D6f7IvSJ8O4KBU5P8NvWBkpxOShdL/E2J4NOx86FYlkGHq+UZ4xlpr3fpmmOBVvqyTorutYtx7HHvNV4n9Scl7UGgTke6vdlX4AbV086IfkLQxfJiEUt0kq7UmtbKvw7gh/xh2ayAb4McgAbm+9tCEICKQzm3rLXmay33PRFAHSqFnrDVwjyKfbKUbHBAFynUEHtJm5D4idufSZSlgtMpTyPPXtSywRkgoByhy3ZH+XhS5W8xo5LrkD2HQOoqcrzE+gIJwQfbKU0jqL/8g85+P4L1E/MRlDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tl272Z09SeC9KHISzRFLD6XXvl8gs5ho2FcUnJm8oJM=; b=G3xGsFBiNd/jmNhpA+TXpQ3KtKcFLG2WJ0y8xO1VdAEfJggYlHEfLeTzNQBvdmrj00sOOyqMG4tUB7FnJy40VZfkbD9kL0VtVsl34sX+2WR5EgoDLKVelVQEajj4227X0FrSqOnQ0AwZJKnyG1j/6bK9ODWI6/RV6XrUXWrXjDA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from DS2PR12MB9567.namprd12.prod.outlook.com (2603:10b6:8:27c::8) by BL3PR12MB9052.namprd12.prod.outlook.com (2603:10b6:208:3bb::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.11; Wed, 12 Aug 2026 09:39:22 +0000 Received: from DS2PR12MB9567.namprd12.prod.outlook.com ([fe80::636:1b52:24ca:d7e5]) by DS2PR12MB9567.namprd12.prod.outlook.com ([fe80::636:1b52:24ca:d7e5%2]) with mapi id 15.21.0315.014; Wed, 12 Aug 2026 09:39:21 +0000 Content-Type: multipart/mixed; boundary="------------cSYAifmuCGrxX4soDtEHiINo" Message-ID: <25022e80-1dff-46d8-891e-5fe7219f7331@amd.com> Date: Wed, 12 Aug 2026 15:08:43 +0530 User-Agent: Mozilla Thunderbird Subject: Re: ASoC: amd: acp-pdm: full-scale burst on every DMIC capture start To: Robin Everaars , linux-sound@vger.kernel.org Cc: venkataprasad.potturu@amd.com, lgirdwood@gmail.com, broonie@kernel.org, linux-kernel@vger.kernel.org, Mario Limonciello , "Dommati, Sunil-kumar" , Syed Saba Kareem References: <20260805181130.75314-1-robineveraars@pm.me> <9a5937cc-f4b2-42d7-8564-da81f6cf4e9e@amd.com> <20260811123336.197402-1-robineveraars@pm.me> Content-Language: en-US From: "Mukunda,Vijendar" In-Reply-To: <20260811123336.197402-1-robineveraars@pm.me> X-ClientProxiedBy: PN4PR01CA0092.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:2af::6) To DS2PR12MB9567.namprd12.prod.outlook.com (2603:10b6:8:27c::8) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS2PR12MB9567:EE_|BL3PR12MB9052:EE_ X-MS-Office365-Filtering-Correlation-Id: 58f2813a-bce0-4d87-5bc7-08def85596a1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|6049299003|23010399003|366016|376014|1800799024|56012099006|11063799006|4143699003|3023799007|10067099003|18002099003|22082099003|4053099003; X-Microsoft-Antispam-Message-Info: BCiJ6gjOTaC187R9HZn7/9ErY7Cixb8KSTn5T9Sk8mfsEXZQdAeVm6aWahKu3En8/iGbe8+G0WexHvPFffZ+oKoZ9rFcQffZcrJNs1XZhnLnRPBV2GRDY9eqF6bFXGpgE+sZxE4XY5PlrzO4YY7dTia2ZOyzR/JVOBSOx+PPcK0ytW9VCKBFWVmXHLxZdJyEegLzNxhvGrVK6BSsQjGYfiePvRSRUIRbI12jxEpfv5yiMhWAD++Gik6LiwGK9DuBtgFFvrF2weDXLYlwJcjbAAMvxYA5PvISkNABfheOIjxW2ryoD7SLenDpWZHKvma+orbizTorVqLltnDNhqY/tSHPBtdq/dliah4qZO0QiVSIFsPIchNCmQGGs4j1Yb4EBcjjikJnvYESUX3ZWfTaOktD9W8F2ckCWqxz2GFKgA8VKzJpAeNCQ1DnBS6G++oAf1VZLF+eksYZ32Mp4WUeCFo5g4X0TZqQIJX/QJ9QcXwQoiR0Qge3vPljIK2IGQHszQNh96iscwLpkjpyGEzGxuiwVeqpViVIy1qmyZsKTJXj6C7g2I7Hx/sCjdo15ElsozF6c3wni63SeZ5MEEP9rOcjyE86am4TE16rQ9xUMk3my8KLAac7UcpKQW0uZYnHwtQLK/k5zmJbnmLNTEJ5fiZQpGxyextaDK/5hBdG5+E= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS2PR12MB9567.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(6049299003)(23010399003)(366016)(376014)(1800799024)(56012099006)(11063799006)(4143699003)(3023799007)(10067099003)(18002099003)(22082099003)(4053099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ckZOek1SN0JER2owRHN6anpWQXp6enU3OWFDNjBYNElhbHgxd1lVaENqYmdn?= =?utf-8?B?R0xGTVdrWFl6RFVPa0lyYi9ROHBTVlQxeWpUcjA2dTBqc3hINjhkLzdEekx6?= =?utf-8?B?bnFuTnVoSDB0WXdQZ1BjWEN1N2R3RHhqWE5wZnRlTDNsY0xKTC9JdW9FcHJQ?= =?utf-8?B?MXp4dWhBSHhHcG50MEFNZGptSzB4d2x5WDNKY1hsQ1V3Q3NkWmNSU2MrMmJJ?= =?utf-8?B?QVFLa1RzYnV5amR5Ri9jQWxyUnhtNTZCUUhnSUdHUW43NG5sMm5RU3VwYTRj?= =?utf-8?B?Q0NpRS9WZjVDM0NzcTVBeFBRbWRSQ0U1OEN0NlhhcUJScFBnQm9uR09LdXVN?= =?utf-8?B?M1ZmN2V3YmZOdTFkSGRCMXprNXo0NGpleFRQd0pWUGVaWTJnYmRkdHQvWDNE?= =?utf-8?B?cUNqb3lmU3Vya3hIMThJelA4eHBtMHBRTE9yUnE0MWZhNFQ2enVjbDBNSHJu?= =?utf-8?B?QnozZ2R2SlVtSW9NTVBzb1JCOUJobXVBdWluMmtJd1hIV281d3BWalo4b0FF?= =?utf-8?B?cGo3SXMvTmFPd2hjTmtTY0h0T041UWw3dnVPL1dBUGRiOG16bGlZNjNPZTVm?= =?utf-8?B?TTJiSmlDWUpWdHJyUFUrd1R0NUlNOG1INEFEUklVNEdiakFucWMxbjBEZ1ZX?= =?utf-8?B?NFRFakRTWngxOTdONVZqaXZ6K0lRcnlXeXFVajRSZXNURlM1TmJUdURhNVRa?= =?utf-8?B?RHFReS9Mdm9Gdmd1U25mZkNNaUQwcHpHbHloRnV1OTNYaWRHQlZKbWtmdjJx?= =?utf-8?B?a1lXTjd4YmRiMk90a2pUOU93Sms5Vy9YMTVlVFk0aEJ1SkNROXRaUmJsL0s4?= =?utf-8?B?TjBtT1FqcjZLSTVoZ2FVbjRIS2VqbHU4SmpzYzMwU1BHNHVGTnF3TFhTNFlR?= =?utf-8?B?dEU1RkJHZU1uaUd4WDE5UzBMZEVTeVJDMkw0dmZVekVIYVY5WmhaTDhZWjl2?= =?utf-8?B?STBFbUJucmQrViszSGpWQVhlZ0NiTnJkR2I5OVdoQkYrWVBJc2R2NmZ4d1VP?= =?utf-8?B?ekNPV0ovQjVDbkV3aGpDTG0xdDhWZEVPMzlOTzAxbWg0ZWJOV0drc2NURFlz?= =?utf-8?B?Y0gycEYrK3pTdUJWMzV2cmNzckJkUVJIWjVvS1hLd3FvKzlVSTQ1M2h2RzFu?= =?utf-8?B?Zm1FZFp1bEF3c25ab2FJM0JmMWxNWkZTbmNVYWJsTU5DaUtrNEFqSlhyQlJX?= =?utf-8?B?dFlPdGY4U2RudkVZS3ZpNVdROW14WHdFT3lPNk9vTUxzbHQ5OUtMVVJaUWFY?= =?utf-8?B?VjVRUFQ0SFRiZHN0TjBBQkMvQlY5cGdNWmFVRlRRQUU2VDlCaFlVcG5hRkg1?= =?utf-8?B?YVZUY3A4d1V0Mkcrc3BZeG5jSVA1Y0dKWmVpdEF0dHgwWFp6Z3NVeVE5ZFpH?= =?utf-8?B?dklodCtDMTM1MTdEMFplT0tHU3BNeW9HOGg3dkFYdGFWUEJncWhITFF6WnEz?= =?utf-8?B?akdiWU5OV1pheFhTVnMzc1ZObFdmam4weVEwRkZiMTBhQ1l2bjZXanVjVUV0?= =?utf-8?B?TFkzU3VqR1JCUGN3WXdHR1ZnbmgyeE9kWTdTc0MzdnVPd3h3a3p4WEh1bEU4?= =?utf-8?B?K1A4TDZUejJaUmlBMmswSXhrVmJmdlZhWmFuWWRwbGREbmEvdFdvaTczQWUz?= =?utf-8?B?Z01rdHN6L1VDS3dra3NpaFQ3UEszSmpWOW1DWjlKZm54QXpvM010SHNXT2hT?= =?utf-8?B?d0J2YjNzVzY2RjlUTmwzWVVGajZ3MjN6aWh3dXhMTWtuRmJmQVBUZzFJYlY5?= =?utf-8?B?R2dOZlBQUW55RnJ6alBSVCtURHRlR2d0ZzZMQjFtSDNrRzZaejd3U1haRCtw?= =?utf-8?B?MFRadTE0ZFVERElWclZGZ3F2MUljZk1iQXNlajg4cDduZEZUcTlNRVlFRnlC?= =?utf-8?B?b1R1TmYwcnZKeGp5b2NnL1ZPVmM5cW16b3hKNlNlNitaTWhiUjB1MVhrdjVq?= =?utf-8?B?Y0J2dE1vdmtaaS95UlhNY2pkVjAvMjN2c2l2MWljcHhlNTJhQlNZMEZUWmEy?= =?utf-8?B?OFRSTktkd25GQWxMdWhEZmFnNEJXdEZBRHY0NHlCYTE1TWRtZFpwcVNsV2d6?= =?utf-8?B?MVJXVDFGRXRTZXRyTW5Sczh0eEFLV04xRjdsdTQ2cTFzSW9PVk4zSy9PWURH?= =?utf-8?B?eUxkeldMWFdGN011STRNbDl6T2xKaXd6SVdtcXpMMGJKMG9ZQmZJRjkxTDFQ?= =?utf-8?B?STN4LytnTU1wOHcwN1k1RzcrMFFGUkxlM2VkS1NGQVRESlNrdXVkekNSRjdC?= =?utf-8?B?WnFiNGtDc3BqR3M1SGdnTWJ6UHBJNmFvWC9hQVczMG92cDRCVXZ3cXdvVDZL?= =?utf-8?B?eVNDYk5LZUZoWEkrNm1LZmpwUm5GemU1em1Senlub0VJUjdScmNqdz09?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 58f2813a-bce0-4d87-5bc7-08def85596a1 X-MS-Exchange-CrossTenant-AuthSource: DS2PR12MB9567.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2026 09:39:21.8070 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Bj+6/i8Oor34hUD6clXkqNdi60bZ8nEJUPcNsZNxflrJ4k0O/MfFNGHpepQ8TLtosuqdHGufNBa5HEC+VrJ7mg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB9052 --------------cSYAifmuCGrxX4soDtEHiINo Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 8/11/26 18:03, Robin Everaars wrote: >> Could you please try attached patch? > Thanks. I checked the bound driver before building it and found an error in my > original report: I named acp-pdm.c, but that is not the path used by this > machine. > > The PX13 is bound as follows: > > /sys/bus/platform/devices/acp_ps_pdm_dma.0/driver/module > -> /sys/module/snd_ps_pdm_dma > > snd_ps_pdm_dma: > sound/soc/amd/ps/snd-ps-pdm-dma.ko.xz > platform alias acp_ps_pdm_dma > > The attached patch changes sound/soc/amd/acp/acp-pdm.c, which builds > snd-acp-pdm. That module is installed but does not own this PCM, so applying the > patch as-is would not exercise the reported hardware. > > The corresponding start sequence is acp63_start_pdm_dma() in > sound/soc/amd/ps/ps-pdm-dma.c. It also enables the PDM clock, decimator and DMA > without a settling interval. I can port the 300 ms delay and FIFO flush there > and test it, but I would prefer to test the exact shape you want upstream. Would > you send an equivalent patch for snd-ps-pdm-dma, > or would you like me to prepare > the test diff? > > One detail may also need handling in both versions. PAUSE_PUSH currently takes > the stop path and disables PDM. After moving PDM_ENABLE to prepare(), > PAUSE_RELEASE arms only the DMA, and ALSA does not necessarily call prepare() > between those commands. Should PAUSE_PUSH leave the decimator running, or > should PAUSE_RELEASE use a separate non-sleeping re-enable path? PAUSE_PUSH should leave the decimator running. That is the safer ALSA design and avoids both the transient and a 300 ms pause-resume latency. Try attached patch. > > Sorry for pointing the original report at the wrong driver. The measurements > and PCM are unchanged; only my source attribution was wrong. --------------cSYAifmuCGrxX4soDtEHiINo Content-Type: text/x-patch; charset=UTF-8; name="0001-ASoC-amd-ps-pdm-fix-decimator-transient-on-stream-st.patch" Content-Disposition: attachment; filename*0="0001-ASoC-amd-ps-pdm-fix-decimator-transient-on-stream-st.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBlNTlkNGFlYWQ4NTBjYWZmMmVkMGIyOTNlYmZjZGIxOWFlNWU4NzIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWplbmRhciBNdWt1bmRhIDxWaWplbmRhci5NdWt1bmRhQGFt ZC5jb20+CkRhdGU6IFdlZCwgMTIgQXVnIDIwMjYgMTQ6NDE6NDIgKzA1MzAKU3ViamVjdDogW1BB VENIXSBBU29DOiBhbWQ6IHBzOiBwZG06IGZpeCBkZWNpbWF0b3IgdHJhbnNpZW50IG9uIHN0cmVh bSBzdGFydAoKVGhlIEFDUCBQRE0gRE1JQyBlbWl0cyBhIGZ1bGwtc2NhbGUgTnlxdWlzdC1yYXRl IGJ1cnN0IGF0IHRoZSBiZWdpbm5pbmcKb2YgZXZlcnkgY2FwdHVyZSBzdHJlYW0uICBUaGUgYnVy c3QgbGFzdHMgfjQgbXMgb24gYSB3YXJtIHN0YXJ0IChBQ1AKYWxyZWFkeSBydW5uaW5nKSBhbmQg fjI1MCBtcyBvbiBhIGNvbGQgc3RhcnQgKEFDUCBydW50aW1lLXN1c3BlbmRlZCksCmFuZCBpcyBh dWRpYmxlIHRvIHJlbW90ZSBjYWxsIHBhcnRpY2lwYW50cyBhcyBhIGNsaWNrIG9uIGpvaW4uCgpS b290IGNhdXNlOiBhY3A2M19zdGFydF9wZG1fZG1hKCkgZW5hYmxlcyB0aGUgUERNIGRlY2ltYXRv ciBhbmQgdGhlIERNQQppbiB0aGUgc2FtZSBjYWxsLCBzbyB0aGUgQ0lDIGZpbHRlciBjaGFpbidz IHVuZmx1c2hlZCBpbml0aWFsIHN0YXRlIGdvZXMKZGlyZWN0bHkgdG8gdXNlcnNwYWNlLiAgQW4g ZXhwb25lbnRpYWxseSBncm93aW5nIGFsdGVybmF0aW5nIHBhdHRlcm4KY29sbGFwc2VzIGludG8g ZnVsbC1zY2FsZSBzYXR1cmF0aW9uIG9uIGJvdGggY2hhbm5lbHMgaW4gYW50aXBoYXNlIC0tCnRo ZSBjbGFzc2ljIHNpZ25hdHVyZSBvZiBhIENJQyBpbnRlZ3JhdG9yL2NvbWIgY2hhaW4gcnVubmlu ZyBmcm9tIGEKbm9uLXplcm8gaW5pdGlhbCBjb25kaXRpb24uCgpGaXg6IGFkZCBhIHByZXBhcmUo KSBEQUkgY2FsbGJhY2sgdGhhdCBlbmFibGVzIFBETV9FTkFCTEUgYW5kIHdhaXRzCjMwMCBtcyBi ZWZvcmUgdGhlIERNQSBzdGFydHMuICAzMDAgbXMgaXMgY2hvc2VuIHRvIGNvdmVyIHRoZSBjb2xk LXN0YXJ0CmNhc2U7IHRoZSB3YXJtLXN0YXJ0IHRyYW5zaWVudCBjbGVhcnMgaW4gdW5kZXIgNSBt cy4gIEFmdGVyIHRoZQpzZXR0bGluZyBkZWxheSwgZmx1c2ggQUNQX1dPVl9QRE1fRklGT19GTFVT SCBzbyB0aGUgRE1BIHNlZXMgYSBjbGVhbgpidWZmZXIuICBhY3A2M19zdGFydF9wZG1fZG1hKCkg dGhlbiBvbmx5IGFybXMgdGhlIERNQSwgc2tpcHBpbmcgdGhlClBETV9FTkFCTEUgd3JpdGUgd2hl biBwcmVwYXJlKCkgaGFzIGFscmVhZHkgc2V0IGl0LgoKRm9yIHRoZSBSRVNVTUUgcGF0aCB3aGVy ZSBwcmVwYXJlKCkgaXMgbm90IGNhbGxlZCwgUERNX0VOQUJMRSBpcyBzZXQKY29uZGl0aW9uYWxs eSBpbiBhY3A2M19zdGFydF9wZG1fZG1hKCkgaWYgbm90IGFscmVhZHkgYWN0aXZlLgoKUEFVU0Ug aGFuZGxpbmc6IFBBVVNFX1BVU0ggcHJldmlvdXNseSBkaXNhYmxlZCBib3RoIHRoZSBETUEgYW5k IHRoZSBQRE0KZGVjaW1hdG9yIHZpYSBhY3A2M19zdG9wX3BkbV9kbWEoKS4gIEFmdGVyIG1vdmlu ZyBQRE1fRU5BQkxFIHRvCnByZXBhcmUoKSwgQUxTQSBkb2VzIG5vdCBjYWxsIHByZXBhcmUoKSBi ZXR3ZWVuIFBBVVNFX1BVU0ggYW5kClBBVVNFX1JFTEVBU0UsIHNvIFBBVVNFX1JFTEVBU0Ugd291 bGQgaGF2ZSByZS1lbmFibGVkIFBETSB3aXRob3V0IHRoZQozMDAgbXMgc2V0dGxpbmcgZGVsYXks IHJlcHJvZHVjaW5nIHRoZSB0cmFuc2llbnQgb24gZXZlcnkgcmVzdW1lIGZyb20KcGF1c2UuCgpG aXggdGhlIHBhdXNlIHBhdGggYnkgYWRkaW5nIGFjcDYzX3BhdXNlX3BkbV9kbWEoKSwgd2hpY2gg c3RvcHMgdGhlIERNQQpvbmx5IGFuZCBsZWF2ZXMgdGhlIFBETSBkZWNpbWF0b3IgcnVubmluZy4g IFBBVVNFX1JFTEVBU0UgZmx1c2hlcyB0aGUKRklGTyB0byBkaXNjYXJkIHNhbXBsZXMgYWNjdW11 bGF0ZWQgd2hpbGUgdGhlIERNQSB3YXMgc3RvcHBlZCwgdGhlbgpyZXN0YXJ0cyB0aGUgRE1BLiAg U2luY2UgdGhlIENJQyBmaWx0ZXIgbmV2ZXIgc3RvcHBlZCwgbm8gc2V0dGxpbmcgZGVsYXkKaXMg bmVlZGVkLiAgU1RPUCBhbmQgU1VTUEVORCBjb250aW51ZSB0byB1c2UgYWNwNjNfc3RvcF9wZG1f ZG1hKCksIHdoaWNoCmRpc2FibGVzIGJvdGggRE1BIGFuZCBQRE0uCgpTaWduZWQtb2ZmLWJ5OiBW aWplbmRhciBNdWt1bmRhIDxWaWplbmRhci5NdWt1bmRhQGFtZC5jb20+Ci0tLQogc291bmQvc29j L2FtZC9wcy9wcy1wZG0tZG1hLmMgfCAxMDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLQogMSBmaWxlIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc291bmQvc29jL2FtZC9wcy9wcy1wZG0tZG1hLmMgYi9zb3VuZC9zb2MvYW1k L3BzL3BzLXBkbS1kbWEuYwppbmRleCAwNGMwMTQzNDkzNDcuLjZkMGUwNmI1MDAwMiAxMDA2NDQK LS0tIGEvc291bmQvc29jL2FtZC9wcy9wcy1wZG0tZG1hLmMKKysrIGIvc291bmQvc29jL2FtZC9w cy9wcy1wZG0tZG1hLmMKQEAgLTUsNiArNSw3IEBACiAgKiBDb3B5cmlnaHQgMjAyMiwgMjAyNSBB ZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2RlbGF5 Lmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgv bW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvYml0ZmllbGQuaD4KQEAgLTE5LDYgKzIwLDE3IEBA CiAKICNkZWZpbmUgRFJWX05BTUUgImFjcF9wc19wZG1fZG1hIgogCisvKgorICogVGltZSBpbiBt aWxsaXNlY29uZHMgdG8gd2FpdCBhZnRlciBlbmFibGluZyB0aGUgUERNIGNsb2NrIGJlZm9yZQor ICogc3RhcnRpbmcgdGhlIERNQS4gIFRoZSBQRE0gbWljcm9waG9uZSBhbmQgdGhlIENJQy9kZWNp bWF0aW9uIGZpbHRlcgorICogY2hhaW4gbmVlZCB0aGlzIHRpbWUgdG8gcmVhY2ggYSBzdGFibGUg c3RhdGU7IHdpdGhvdXQgaXQgdGhlIGZpcnN0CisgKiBmcmFtZXMgZGVsaXZlcmVkIHRvIHVzZXJz cGFjZSBjb250YWluIGEgc2F0dXJhdGVkIE55cXVpc3QtcmF0ZQorICogdHJhbnNpZW50ICh1bmZs dXNoZWQgZGVjaW1hdG9yIGluaXRpYWwgc3RhdGUpLiAgMzAwIG1zIGNvdmVycyBib3RoCisgKiB0 aGUgd2FybS1zdGFydCBjYXNlICh+NCBtcykgYW5kIHRoZSBjb2xkLXN0YXJ0IGNhc2UgKH4yNTAg bXMsIHdoZW4KKyAqIHRoZSBBQ1AgaGFzIGJlZW4gcnVudGltZS1zdXNwZW5kZWQpLgorICovCisj ZGVmaW5lIFBETV9TRVRUTElOR19ERUxBWV9NUwkzMDAKKwogc3RhdGljIGludCBwZG1fZ2FpbiA9 IDM7CiBtb2R1bGVfcGFyYW0ocGRtX2dhaW4sIGludCwgMDY0NCk7CiBNT0RVTEVfUEFSTV9ERVND KHBkbV9nYWluLCAiR2FpbiBjb250cm9sICgwLTMpIik7CkBAIC0xMDcsMTIgKzExOSwxOSBAQCBz dGF0aWMgaW50IGFjcDYzX3N0YXJ0X3BkbV9kbWEodm9pZCBfX2lvbWVtICphY3BfYmFzZSkKIAl1 MzIgcGRtX2RtYV9lbmFibGU7CiAJaW50IHRpbWVvdXQ7CiAKLQlwZG1fZW5hYmxlID0gMHgwMTsK LQlwZG1fZG1hX2VuYWJsZSAgPSAweDAxOwotCiAJYWNwNjNfZW5hYmxlX3BkbV9jbG9jayhhY3Bf YmFzZSk7Ci0Jd3JpdGVsKHBkbV9lbmFibGUsIGFjcF9iYXNlICsgQUNQX1dPVl9QRE1fRU5BQkxF KTsKLQl3cml0ZWwocGRtX2RtYV9lbmFibGUsIGFjcF9iYXNlICsgQUNQX1dPVl9QRE1fRE1BX0VO QUJMRSk7CisKKwkvKgorCSAqIFBETV9FTkFCTEUgYW5kIHRoZSBjbG9jayB3ZXJlIGFscmVhZHkg c2V0IGluIHByZXBhcmUoKSBmb3IgdGhlCisJICogaW5pdGlhbCBzdHJlYW0gc3RhcnQgdG8gYWxs b3cgdGhlIENJQyBmaWx0ZXIgdG8gc2V0dGxlLiAgT25seQorCSAqIHdyaXRlIFBETV9FTkFCTEUg aWYgaXQgaXMgbm90IGFscmVhZHkgc2V0LCB0byBjb3ZlciB0aGUKKwkgKiBSRVNVTUUgYW5kIFBB VVNFX1JFTEVBU0UgcGF0aHMgd2hlcmUgcHJlcGFyZSgpIHdhcyBub3QgY2FsbGVkLgorCSAqLwor CXBkbV9lbmFibGUgPSByZWFkbChhY3BfYmFzZSArIEFDUF9XT1ZfUERNX0VOQUJMRSk7CisJaWYg KCEocGRtX2VuYWJsZSAmIEFDUF9QRE1fRU5BQkxFKSkKKwkJd3JpdGVsKEFDUF9QRE1fRU5BQkxF LCBhY3BfYmFzZSArIEFDUF9XT1ZfUERNX0VOQUJMRSk7CisKKwl3cml0ZWwoMHgwMSwgYWNwX2Jh c2UgKyBBQ1BfV09WX1BETV9ETUFfRU5BQkxFKTsKIAl0aW1lb3V0ID0gMDsKIAl3aGlsZSAoKyt0 aW1lb3V0IDwgQUNQX0NPVU5URVIpIHsKIAkJcGRtX2RtYV9lbmFibGUgPSByZWFkbChhY3BfYmFz ZSArIEFDUF9XT1ZfUERNX0RNQV9FTkFCTEUpOwpAQCAtMTU0LDYgKzE3MywzMiBAQCBzdGF0aWMg aW50IGFjcDYzX3N0b3BfcGRtX2RtYSh2b2lkIF9faW9tZW0gKmFjcF9iYXNlKQogCXJldHVybiAw OwogfQogCitzdGF0aWMgaW50IGFjcDYzX3BhdXNlX3BkbV9kbWEodm9pZCBfX2lvbWVtICphY3Bf YmFzZSkKK3sKKwl1MzIgcGRtX2RtYV9lbmFibGU7CisJaW50IHRpbWVvdXQ7CisKKwkvKgorCSAq IFN0b3Agb25seSB0aGUgRE1BOyBsZWF2ZSB0aGUgUERNIGRlY2ltYXRvciBydW5uaW5nIHNvIHRo YXQKKwkgKiBQQVVTRV9SRUxFQVNFIGRvZXMgbm90IG5lZWQgdG8gd2FpdCBmb3IgdGhlIENJQyBm aWx0ZXIgdG8KKwkgKiBzZXR0bGUgYWdhaW4uICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZv ciBmbHVzaGluZyB0aGUgRklGTworCSAqIGJlZm9yZSByZXN0YXJ0aW5nIHRoZSBETUEgb24gUEFV U0VfUkVMRUFTRS4KKwkgKi8KKwlwZG1fZG1hX2VuYWJsZSA9IHJlYWRsKGFjcF9iYXNlICsgQUNQ X1dPVl9QRE1fRE1BX0VOQUJMRSk7CisJaWYgKCEocGRtX2RtYV9lbmFibGUgJiAweDAxKSkKKwkJ cmV0dXJuIDA7CisKKwl3cml0ZWwoMHgwMiwgYWNwX2Jhc2UgKyBBQ1BfV09WX1BETV9ETUFfRU5B QkxFKTsKKwl0aW1lb3V0ID0gMDsKKwl3aGlsZSAoKyt0aW1lb3V0IDwgQUNQX0NPVU5URVIpIHsK KwkJcGRtX2RtYV9lbmFibGUgPSByZWFkbChhY3BfYmFzZSArIEFDUF9XT1ZfUERNX0RNQV9FTkFC TEUpOworCQlpZiAoKHBkbV9kbWFfZW5hYmxlICYgMHgwMikgPT0gMHgwMCkKKwkJCXJldHVybiAw OworCQl1ZGVsYXkoREVMQVlfVVMpOworCX0KKwlyZXR1cm4gLUVUSU1FRE9VVDsKK30KKwogc3Rh dGljIHZvaWQgYWNwNjNfY29uZmlnX2RtYShzdHJ1Y3QgcGRtX3N0cmVhbV9pbnN0YW5jZSAqcnRk LCBpbnQgZGlyZWN0aW9uKQogewogCXUxNiBwYWdlX2lkeDsKQEAgLTI4Niw2ICszMzEsMjkgQEAg c3RhdGljIGludCBhY3A2M19wZG1fZG1hX2Nsb3NlKHN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAq Y29tcG9uZW50LAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGFjcDYzX3BkbV9kbWFfcHJl cGFyZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCQkgIHN0cnVjdCBz bmRfc29jX2RhaSAqZGFpKQoreworCXN0cnVjdCBwZG1fc3RyZWFtX2luc3RhbmNlICpydGQgPSBz dWJzdHJlYW0tPnJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKworCWlmICghcnRkIHx8IHN1YnN0cmVh bS0+c3RyZWFtICE9IFNORFJWX1BDTV9TVFJFQU1fQ0FQVFVSRSkKKwkJcmV0dXJuIDA7CisKKwkv KgorCSAqIEVuYWJsZSB0aGUgUERNIGRlY2ltYXRvciBub3csIGJlZm9yZSB0aGUgRE1BIHN0YXJ0 cy4gIFRoZQorCSAqIENJQyBmaWx0ZXIgY2hhaW4gYW5kIHRoZSBtaWNyb3Bob25lIGl0c2VsZiBu ZWVkIHRpbWUgdG8gcmVhY2gKKwkgKiBhIHN0YWJsZSBzdGF0ZSBhZnRlciB0aGUgY2xvY2sgaXMg YXBwbGllZC4gIFdpdGhvdXQgdGhpcworCSAqIHNldHRsaW5nIHBlcmlvZCB0aGUgZmlyc3QgZnJh bWVzIGNhcHR1cmVkIGJ5IHRoZSBETUEgY29udGFpbgorCSAqIGEgc2F0dXJhdGVkIE55cXVpc3Qt cmF0ZSB0cmFuc2llbnQuICBXYWl0IGZvciB0aGUgZGVjaW1hdG9yCisJICogdG8gZmx1c2gsIHRo ZW4gY2xlYXIgdGhlIEZJRk8gc28gdGhlIERNQSBzZWVzIGEgY2xlYW4gYnVmZmVyLgorCSAqLwor CWFjcDYzX2VuYWJsZV9wZG1fY2xvY2socnRkLT5hY3A2M19iYXNlKTsKKwl3cml0ZWwoQUNQX1BE TV9FTkFCTEUsIHJ0ZC0+YWNwNjNfYmFzZSArIEFDUF9XT1ZfUERNX0VOQUJMRSk7CisJbXNsZWVw KFBETV9TRVRUTElOR19ERUxBWV9NUyk7CisJd3JpdGVsKDB4MDEsIHJ0ZC0+YWNwNjNfYmFzZSAr IEFDUF9XT1ZfUERNX0ZJRk9fRkxVU0gpOworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGFj cDYzX3BkbV9kYWlfdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwK IAkJCQkgaW50IGNtZCwgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CkBAIC0zMDYsMjEgKzM3 NCw0MyBAQCBzdGF0aWMgaW50IGFjcDYzX3BkbV9kYWlfdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9z dWJzdHJlYW0gKnN1YnN0cmVhbSwKIAlzd2l0Y2ggKGNtZCkgewogCWNhc2UgU05EUlZfUENNX1RS SUdHRVJfU1RBUlQ6CiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9SRVNVTUU6CisJCXdyaXRlbChj aF9tYXNrLCBydGQtPmFjcDYzX2Jhc2UgKyBBQ1BfV09WX1BETV9OT19PRl9DSEFOTkVMUyk7CisJ CXdyaXRlbChQRE1fREVDSU1BVElPTl9GQUNUT1IsIHJ0ZC0+YWNwNjNfYmFzZSArIEFDUF9XT1Zf UERNX0RFQ0lNQVRJT05fRkFDVE9SKTsKKwkJcnRkLT5ieXRlc2NvdW50ID0gYWNwNjNfcGRtX2dl dF9ieXRlX2NvdW50KHJ0ZCwgc3Vic3RyZWFtLT5zdHJlYW0pOworCQlwZG1fc3RhdHVzID0gYWNw NjNfY2hlY2tfcGRtX2RtYV9zdGF0dXMocnRkLT5hY3A2M19iYXNlKTsKKwkJaWYgKCFwZG1fc3Rh dHVzKQorCQkJcmV0ID0gYWNwNjNfc3RhcnRfcGRtX2RtYShydGQtPmFjcDYzX2Jhc2UpOworCQli cmVhazsKIAljYXNlIFNORFJWX1BDTV9UUklHR0VSX1BBVVNFX1JFTEVBU0U6CiAJCXdyaXRlbChj aF9tYXNrLCBydGQtPmFjcDYzX2Jhc2UgKyBBQ1BfV09WX1BETV9OT19PRl9DSEFOTkVMUyk7CiAJ CXdyaXRlbChQRE1fREVDSU1BVElPTl9GQUNUT1IsIHJ0ZC0+YWNwNjNfYmFzZSArIEFDUF9XT1Zf UERNX0RFQ0lNQVRJT05fRkFDVE9SKTsKIAkJcnRkLT5ieXRlc2NvdW50ID0gYWNwNjNfcGRtX2dl dF9ieXRlX2NvdW50KHJ0ZCwgc3Vic3RyZWFtLT5zdHJlYW0pOworCQkvKgorCQkgKiBUaGUgUERN IGRlY2ltYXRvciB3YXMgbGVmdCBydW5uaW5nIGR1cmluZyBQQVVTRV9QVVNIIHNvIG5vCisJCSAq IDMwMCBtcyBzZXR0bGluZyBkZWxheSBpcyBuZWVkZWQuICBGbHVzaCB0aGUgRklGTyB0byBkaXNj YXJkCisJCSAqIHNhbXBsZXMgYWNjdW11bGF0ZWQgd2hpbGUgdGhlIERNQSB3YXMgc3RvcHBlZCwg dGhlbiByZXN0YXJ0CisJCSAqIHRoZSBETUEuCisJCSAqLworCQl3cml0ZWwoMHgwMSwgcnRkLT5h Y3A2M19iYXNlICsgQUNQX1dPVl9QRE1fRklGT19GTFVTSCk7CiAJCXBkbV9zdGF0dXMgPSBhY3A2 M19jaGVja19wZG1fZG1hX3N0YXR1cyhydGQtPmFjcDYzX2Jhc2UpOwogCQlpZiAoIXBkbV9zdGF0 dXMpCiAJCQlyZXQgPSBhY3A2M19zdGFydF9wZG1fZG1hKHJ0ZC0+YWNwNjNfYmFzZSk7CiAJCWJy ZWFrOwogCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RPUDoKIAljYXNlIFNORFJWX1BDTV9UUklH R0VSX1NVU1BFTkQ6Ci0JY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9QQVVTRV9QVVNIOgogCQlwZG1f c3RhdHVzID0gYWNwNjNfY2hlY2tfcGRtX2RtYV9zdGF0dXMocnRkLT5hY3A2M19iYXNlKTsKIAkJ aWYgKHBkbV9zdGF0dXMpCiAJCQlyZXQgPSBhY3A2M19zdG9wX3BkbV9kbWEocnRkLT5hY3A2M19i YXNlKTsKIAkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9QQVVTRV9QVVNIOgorCQkv KgorCQkgKiBMZWF2ZSB0aGUgUERNIGRlY2ltYXRvciBydW5uaW5nIHNvIHRoYXQgUEFVU0VfUkVM RUFTRSBkb2VzCisJCSAqIG5vdCBuZWVkIHRoZSAzMDAgbXMgQ0lDIHNldHRsaW5nIGRlbGF5LiAg T25seSBzdG9wIHRoZSBETUEuCisJCSAqLworCQlwZG1fc3RhdHVzID0gYWNwNjNfY2hlY2tfcGRt X2RtYV9zdGF0dXMocnRkLT5hY3A2M19iYXNlKTsKKwkJaWYgKHBkbV9zdGF0dXMpCisJCQlyZXQg PSBhY3A2M19wYXVzZV9wZG1fZG1hKHJ0ZC0+YWNwNjNfYmFzZSk7CisJCWJyZWFrOwogCWRlZmF1 bHQ6CiAJCXJldCA9IC1FSU5WQUw7CiAJCWJyZWFrOwpAQCAtMzI5LDYgKzQxOSw3IEBAIHN0YXRp YyBpbnQgYWNwNjNfcGRtX2RhaV90cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vi c3RyZWFtLAogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFpX29wcyBhY3A2M19w ZG1fZGFpX29wcyA9IHsKKwkucHJlcGFyZSAgID0gYWNwNjNfcGRtX2RtYV9wcmVwYXJlLAogCS50 cmlnZ2VyICAgPSBhY3A2M19wZG1fZGFpX3RyaWdnZXIsCiB9OwogCi0tIAoyLjQ4LjEKCg== --------------cSYAifmuCGrxX4soDtEHiINo--