Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C01CFC43219 for ; Tue, 11 Jan 2022 17:15:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344138AbiAKRPo (ORCPT ); Tue, 11 Jan 2022 12:15:44 -0500 Received: from mail-dm3nam07on2065.outbound.protection.outlook.com ([40.107.95.65]:38465 "EHLO NAM02-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S243511AbiAKRPO (ORCPT ); Tue, 11 Jan 2022 12:15:14 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YM3HIPaoL5ZCcslo3kbqqqbgXVqOKwI+f9zTj9QbHLUD4GcEyNa5pFlmwT09wSjAR4ZcVGT236efxP0FC/3gPdDBOaFyD0aysRZgT+XUAqPE7hKD+M0eCP34dyJFms0bXjeho3EMctNZc8VhM1VrJS1zSGrQy9aiv9F2zQArEnGbm6z2s9rhvBt6jLJBn98PWHxShF/1tXpXWbpKfU/F8XJc2cUN+Kg+kFDWGH7XZxvT/cPty5AuJSqHxHkNDocogaykSAgb9rDtN8UOof8LWx1XRxDWA/hFD6+xHPAWcuaZj9JJp3lrt4bQcLNk2IP8/FcXTHIHJzajaQmyq4fLJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=uCUwDbWm0uJN3sDp7eVyxcRaovudcTeFgnibytCBZWY=; b=ClP3WoourTzWDCfU27i+/c+QZ+Tauds/sl03fTzGc0GRNmn6EVmtJXJYXK6319gFK3rpSnjrh8qKHsrngijP7G1kOKshNKEOzjYlQ4CpLGjZ9N7Nsh72n8INQ2ML4dW3/eEMnm96dGBlf/0sB9R0ZKuYn5AHm27SpTrd5tOvqttwghls77DiH5TAX9YPRzvvdHmQSAEL2KGKicgtm6vkjTYDmIMbZ2huhMUqZB8IISesfrIyC7TNcEzOO4lIkNhqgpmqEkpXBVp8QdR+QTu5+h6jPXHRpC7nuQAhVJ/008Kp8a9Dubk+qTQRMEm1L/1pY5aC1nyhkayLQGxTH571Qw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uCUwDbWm0uJN3sDp7eVyxcRaovudcTeFgnibytCBZWY=; b=j0Z6EhK8uGRwrc0dwfVUH3jq0KgHTlg+bopH+V/hiSVybdMoX6JQT6ay7wmBVl1skn0Ysvh04LnAhNOANfThBgvGP4S8Jdw8irQazWKnbMC57FW2k0ie+j07qw6mkHz0zDOHFQzCADJXQbfcNBhX4aGnmJwaEqD7BNsu/GDeWi0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=silabs.com; Received: from PH0PR11MB5657.namprd11.prod.outlook.com (2603:10b6:510:ee::19) by PH0PR11MB5674.namprd11.prod.outlook.com (2603:10b6:510:ec::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.11; Tue, 11 Jan 2022 17:15:09 +0000 Received: from PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::d031:da9e:71a:73e4]) by PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::d031:da9e:71a:73e4%6]) with mapi id 15.20.4867.012; Tue, 11 Jan 2022 17:15:09 +0000 From: Jerome Pouiller To: linux-wireless@vger.kernel.org, netdev@vger.kernel.org, Kalle Valo Cc: devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , "David S . Miller" , devicetree@vger.kernel.org, Rob Herring , linux-mmc@vger.kernel.org, =?UTF-8?q?Pali=20Roh=C3=A1r?= , Ulf Hansson , =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= Subject: [PATCH v9 09/24] wfx: add hwio.c/hwio.h Date: Tue, 11 Jan 2022 18:14:09 +0100 Message-Id: <20220111171424.862764-10-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220111171424.862764-1-Jerome.Pouiller@silabs.com> References: <20220111171424.862764-1-Jerome.Pouiller@silabs.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-ClientProxiedBy: SN1PR12CA0099.namprd12.prod.outlook.com (2603:10b6:802:21::34) To PH0PR11MB5657.namprd11.prod.outlook.com (2603:10b6:510:ee::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 83c6cfb9-d3f0-41dc-4f13-08d9d525eba5 X-MS-TrafficTypeDiagnostic: PH0PR11MB5674:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:346; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DKI2wnVvdBbovJTXxVFd9fpUPjocQyRfWQ36mX9gLp6EcX8XtK/d9cF1j/MxzwnneIEkp2rmPSTRzoc5grbGvkRJp239dfFKh/xwiOwY0CMRgRVNACNrop+J6xunKreNjpay+1JvyDRUNGH2UxRt4bt2GTj1fCCgOgK/3Z51Nc3onR0YIota62caOPNQZS0X1ojQ3UqiQuWvd7aZobDSBSsooKTDUlG2OzxvY5afvT5nwH9/GH1OojHJrrtkh0NuAF+ZRv4JWEb16Bahn0SNTQdCt8QFTT9BLyeVmNzAdQzJElF4q6hMk5ypYfIz7MmQRYHmiaYhk6TcNgKwFTLu7tlp3WuDSzhcSJgV+Dm3A6L16J5QJxa5rz0uJU69FqMCFCRMg0jzI8a/zp69dx2TF5ATpP+ycggZrQisK4Wm/4jnHHsAjFFc3QXSsxsIR30nXvG3BkTzah4kHnPtbGOntFSfre2ANOnPn68dyVSs0n8kc8bwC0+fneeN7WAuIzS1G6Akq7aovy+ptDQbFwZ/649AT5bgTijcWMJYLGeckynYCdVq3g4MBt7bfIGlmuC6rqjaiDHzubuRhlOWE6tGGHvr58tK1UN6pQivl8kTAzF/lHRjd4sTe4wKWWll3SojdkeWDgjoAZM29um7mX0A4A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5657.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6506007)(66946007)(66574015)(8936002)(107886003)(4326008)(66476007)(508600001)(36756003)(7416002)(8676002)(86362001)(6916009)(83380400001)(52116002)(316002)(6512007)(2906002)(30864003)(6486002)(1076003)(186003)(66556008)(54906003)(38100700002)(2616005)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Tjg2dnduQXRvZDFzY3dSSHJIMitoMm9SeFhSVFpVaGhiUnpNcGxPZWl5MDlZ?= =?utf-8?B?YzZaYngyMEZqS29jekhTbW4zZVAwWDVIQzBsTzJ2MlAxTGxpK3RhYjU4elIw?= =?utf-8?B?UzhtZXJJalAydmJ0QW5MdWpWVUhUVkZyejZhUlJHT2lNN0E4UXpDME9scU5N?= =?utf-8?B?L2V1SjFhWDB6LzV6VEhPVUZGb25pK1lqbWdtdENqVUpBK0NIcDgydit6ellS?= =?utf-8?B?VElIREZmeStlS3FVbTdmMXo3cXJ5QTNRUWk5MEtUWnpJdVkxUVRSRmNVVTI2?= =?utf-8?B?ZUFiVHVnQ0hjMVdpbXUwUEExV2lXaWtZQTVIbEdhWnFmSDNHR3R2L0tIZXhB?= =?utf-8?B?QzJhSHQvTWlqU0ZnbENJekNMcnZyWFYxSy9ST2xTT09PQWgwdFZXKzFVR3VP?= =?utf-8?B?a29ldkdLQWNZYVVJNGVHdXpSa1RXZzByeC9HN0JURUlrOTdMRTRuTkJFcXhn?= =?utf-8?B?OURWYWlpdEcwMGo0MTNVQ2NFN1IxN3ZHLzlUZnRzMytKM3dqaHcrVmcxYnk4?= =?utf-8?B?azFKM3d2eFplNEptRDRySEFGTHIyT0dURFlHYkFxZ29wRWF1dFZadnRsTkZB?= =?utf-8?B?SjNZazJObFl3eU1UdkMzY0hZMXlmZGF3S1g1UEdGZFpCWmNLc2F1UVF0ZW1u?= =?utf-8?B?YU5VUjlIb3pGbk5CL2pSSE5nemU5THNaOFYxZDZaak50Rmw0aGo3U3JOR09o?= =?utf-8?B?ZUtSY2lBL3J4cVpRVGhBTXdBYUpyNWpaK01pdUZDU0s0d0w5Z2RyK1QvV0l5?= =?utf-8?B?TXV2K2kvQU01ZnpuNTRvMjV3SU9xT3FUY1FLQVhGYWZVQUlWS3QvdWt1TTBF?= =?utf-8?B?SUJyREtaSURGZWtybDZmQkVqSWlqaGZXcmY4LzZaL1I5bVg1RlcxVEViRDFn?= =?utf-8?B?NnFnS0NURitqUGttU1NUR2xlaWVLMXd4NTluODgxNExvaEVKdFVGYmtsMXpU?= =?utf-8?B?WlJDNENCc0NoNHFJWTNLR29hTlB6NFBPTHpRN2g2cDdZbmVkbnJ3b0pNM3Bj?= =?utf-8?B?QjZSb1pzM2FrOVhxOEZXdVVXZk5HK1VlOEROdUJSaXNSYzJoZHk0aHM3aEc4?= =?utf-8?B?WS9VUkJVZmV3bHA5UVJ4R2FCYitMNTBSUXQzRG80SW1iT1lUalNZdUNnaldr?= =?utf-8?B?Mm80YnlZMGdMOWVJUzZXd1lBWkZkdTd3TGxWenQ1enAzTGhTTjlYQzE2eE5K?= =?utf-8?B?R1hPQzNJSFVsdmtIdzlnaTMxR09HMkozNDQxMmZqeWYxTmtvb1pSM05jUzF4?= =?utf-8?B?TytXaVVqTVJ1K0U4dnlucGdPdForU3BEUTkvTDdTMGdGTHlLOWFvd292T1Ji?= =?utf-8?B?eXdtUThGTXBseVh2b1B2T0lrYnFOZERHYisxRGNaTmo2cHpwb25iRVovL3A3?= =?utf-8?B?T0I5WHNoMzBMelNvbXVCQWZxekdZR1pXVlpPdmwvN1k0SWRLdDVsbnVvYU1L?= =?utf-8?B?ZTEyaDlsNU43ZWJyU2xwclQzNWwraEJZQ1A0THZBV3J0OGY1NDlUSmV1eGV5?= =?utf-8?B?MEp6VnMxTUp0bk92RUllalBkWjdNckJMSE0renBKaXJSSFlaUFNOVWQ1OWpG?= =?utf-8?B?aENJc0FrOGJENG1WZUpTOGFCOFM4VzgrMmd0UlhOc2V6Y0IyampyYUdZWjhF?= =?utf-8?B?a3BNUzhKL2t2dGZzNTJGTDJvTStDVVJHTWpZWEJZQmdEZFJCdVkxSzFXL3FQ?= =?utf-8?B?aVZQTWZwaUNDdCtNUFVsR3I0NElla04zTUJ0NUg0ZjBGLzh5NkVzYkxuRUVt?= =?utf-8?B?WjY2aWs0Q1Yxdm5LbTFjQ2dmSjdhaTF6N3c3bGJWZThZOTVzTGNWRnlkQm9O?= =?utf-8?B?YnpzbzVlNVBXbi95VVlDNi9JZ0UrS3BmUW1PSU1OVTRZQnhpWWpIRmpPVnNw?= =?utf-8?B?MytOUk5SYk1veWg2U2NIUWNXTmw1VEIxNmFjYkJLbmV4OFZFSHBlQTRpUmZi?= =?utf-8?B?Zlo0STJKRTRqMy9kK2cvRnJUSjFsMlNheThyeTMvWmVMWnRGNDFQOTdITUxU?= =?utf-8?B?U1J0T1FMdHdJZ3VNdXdHZ0FRREFFRVpmYjlCQ3Z0Q0drYjdNSzMzdWNsbEtS?= =?utf-8?B?M05ZNVFqcG9kZktFeVdPb1kzTjJaQnV1bm5xTDFaNkZaSU9UTTJWSUZTUVhh?= =?utf-8?B?ZGlmMHVhV0FKaXJPZjRWTFg0TE1xVzU2NWJoVlVqa2R0d2RkMXowblNzTHFR?= =?utf-8?B?KzdXbXcwMEpyQTNPUnVETXVkVjYyY0NLcTRISDdTWHZoZGxyWFh2bjBtSERF?= =?utf-8?Q?esFW3Gdow5yVp2sbb0z0cwdVTaVL40oxk83tmZsf+I=3D?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83c6cfb9-d3f0-41dc-4f13-08d9d525eba5 X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5657.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2022 17:15:09.5652 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UZYxG3wmAbNOVaJ8kAt+XgfWWkugERnrVuJWEGq6XBUi8EuCHUOKCarHHGFzmUiEwxykX64JhDQk85fOIUvCFg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5674 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKU2ln bmVkLW9mZi1ieTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29t PgotLS0KIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvaHdpby5jIHwgMzM1ICsrKysr KysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvaHdp by5oIHwgIDc4ICsrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA0MTMgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvaHdpby5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvd2lyZWxlc3Mvc2lsYWJzL3dmeC9od2lvLmgK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9zaWxhYnMvd2Z4L2h3aW8uYyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvaHdpby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uYzE1ODEwYmRhZWNiCi0tLSAvZGV2L251bGwKKysrIGIvZHJp dmVycy9uZXQvd2lyZWxlc3Mvc2lsYWJzL3dmeC9od2lvLmMKQEAgLTAsMCArMSwzMzUgQEAKKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKy8qCisgKiBMb3ctbGV2ZWwg SS9PIGZ1bmN0aW9ucy4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTctMjAyMCwgU2lsaWNvbiBM YWJvcmF0b3JpZXMsIEluYy4KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgU1QtRXJpY3Nzb24KKyAq LworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Cisj aW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L2FsaWduLmg+CisKKyNpbmNs dWRlICJod2lvLmgiCisjaW5jbHVkZSAid2Z4LmgiCisjaW5jbHVkZSAiYnVzLmgiCisjaW5jbHVk ZSAidHJhY2VzLmgiCisKKyNkZWZpbmUgV0ZYX0hJRl9CVUZGRVJfU0laRSAweDIwMDAKKworc3Rh dGljIGludCB3ZnhfcmVhZDMyKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIgKnZh bCkKK3sKKwlpbnQgcmV0OworCV9fbGUzMiAqdG1wID0ga21hbGxvYyhzaXplb2YodTMyKSwgR0ZQ X0tFUk5FTCk7CisKKwkqdmFsID0gfjA7IC8qIE5ldmVyIHJldHVybiB1bmRlZmluZWQgdmFsdWUg Ki8KKwlpZiAoIXRtcCkKKwkJcmV0dXJuIC1FTk9NRU07CisJcmV0ID0gd2Rldi0+aHdidXNfb3Bz LT5jb3B5X2Zyb21faW8od2Rldi0+aHdidXNfcHJpdiwgcmVnLCB0bXAsIHNpemVvZih1MzIpKTsK KwlpZiAocmV0ID49IDApCisJCSp2YWwgPSBsZTMyX3RvX2NwdSgqdG1wKTsKKwlrZnJlZSh0bXAp OworCWlmIChyZXQpCisJCWRldl9lcnIod2Rldi0+ZGV2LCAiJXM6IGJ1cyBjb21tdW5pY2F0aW9u IGVycm9yOiAlZFxuIiwgX19mdW5jX18sIHJldCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGlj IGludCB3Znhfd3JpdGUzMihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHJlZywgdTMyIHZhbCkK K3sKKwlpbnQgcmV0OworCV9fbGUzMiAqdG1wID0ga21hbGxvYyhzaXplb2YodTMyKSwgR0ZQX0tF Uk5FTCk7CisKKwlpZiAoIXRtcCkKKwkJcmV0dXJuIC1FTk9NRU07CisJKnRtcCA9IGNwdV90b19s ZTMyKHZhbCk7CisJcmV0ID0gd2Rldi0+aHdidXNfb3BzLT5jb3B5X3RvX2lvKHdkZXYtPmh3YnVz X3ByaXYsIHJlZywgdG1wLCBzaXplb2YodTMyKSk7CisJa2ZyZWUodG1wKTsKKwlpZiAocmV0KQor CQlkZXZfZXJyKHdkZXYtPmRldiwgIiVzOiBidXMgY29tbXVuaWNhdGlvbiBlcnJvcjogJWRcbiIs IF9fZnVuY19fLCByZXQpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgd2Z4X3JlYWQz Ml9sb2NrZWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCByZWcsIHUzMiAqdmFsKQoreworCWlu dCByZXQ7CisKKwl3ZGV2LT5od2J1c19vcHMtPmxvY2sod2Rldi0+aHdidXNfcHJpdik7CisJcmV0 ID0gd2Z4X3JlYWQzMih3ZGV2LCByZWcsIHZhbCk7CisJX3RyYWNlX2lvX3JlYWQzMihyZWcsICp2 YWwpOworCXdkZXYtPmh3YnVzX29wcy0+dW5sb2NrKHdkZXYtPmh3YnVzX3ByaXYpOworCXJldHVy biByZXQ7Cit9CisKK3N0YXRpYyBpbnQgd2Z4X3dyaXRlMzJfbG9ja2VkKHN0cnVjdCB3ZnhfZGV2 ICp3ZGV2LCBpbnQgcmVnLCB1MzIgdmFsKQoreworCWludCByZXQ7CisKKwl3ZGV2LT5od2J1c19v cHMtPmxvY2sod2Rldi0+aHdidXNfcHJpdik7CisJcmV0ID0gd2Z4X3dyaXRlMzIod2RldiwgcmVn LCB2YWwpOworCV90cmFjZV9pb193cml0ZTMyKHJlZywgdmFsKTsKKwl3ZGV2LT5od2J1c19vcHMt PnVubG9jayh3ZGV2LT5od2J1c19wcml2KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50 IHdmeF93cml0ZTMyX2JpdHNfbG9ja2VkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAorCQkJCSAgIGlu dCByZWcsIHUzMiBtYXNrLCB1MzIgdmFsKQoreworCWludCByZXQ7CisJdTMyIHZhbF9yLCB2YWxf dzsKKworCVdBUk5fT04ofm1hc2sgJiB2YWwpOworCXZhbCAmPSBtYXNrOworCXdkZXYtPmh3YnVz X29wcy0+bG9jayh3ZGV2LT5od2J1c19wcml2KTsKKwlyZXQgPSB3ZnhfcmVhZDMyKHdkZXYsIHJl ZywgJnZhbF9yKTsKKwlfdHJhY2VfaW9fcmVhZDMyKHJlZywgdmFsX3IpOworCWlmIChyZXQgPCAw KQorCQlnb3RvIGVycjsKKwl2YWxfdyA9ICh2YWxfciAmIH5tYXNrKSB8IHZhbDsKKwlpZiAodmFs X3cgIT0gdmFsX3IpIHsKKwkJcmV0ID0gd2Z4X3dyaXRlMzIod2RldiwgcmVnLCB2YWxfdyk7CisJ CV90cmFjZV9pb193cml0ZTMyKHJlZywgdmFsX3cpOworCX0KK2VycjoKKwl3ZGV2LT5od2J1c19v cHMtPnVubG9jayh3ZGV2LT5od2J1c19wcml2KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMg aW50IHdmeF9pbmRpcmVjdF9yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIg YWRkciwKKwkJCSAgICAgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQoreworCWludCByZXQ7CisJaW50 IGk7CisJdTMyIGNmZzsKKwl1MzIgcHJlZmV0Y2g7CisKKwlXQVJOX09OKGxlbiA+PSBXRlhfSElG X0JVRkZFUl9TSVpFKTsKKwlXQVJOX09OKHJlZyAhPSBXRlhfUkVHX0FIQl9EUE9SVCAmJiByZWcg IT0gV0ZYX1JFR19TUkFNX0RQT1JUKTsKKworCWlmIChyZWcgPT0gV0ZYX1JFR19BSEJfRFBPUlQp CisJCXByZWZldGNoID0gQ0ZHX1BSRUZFVENIX0FIQjsKKwllbHNlIGlmIChyZWcgPT0gV0ZYX1JF R19TUkFNX0RQT1JUKQorCQlwcmVmZXRjaCA9IENGR19QUkVGRVRDSF9TUkFNOworCWVsc2UKKwkJ cmV0dXJuIC1FTk9ERVY7CisKKwlyZXQgPSB3Znhfd3JpdGUzMih3ZGV2LCBXRlhfUkVHX0JBU0Vf QUREUiwgYWRkcik7CisJaWYgKHJldCA8IDApCisJCWdvdG8gZXJyOworCisJcmV0ID0gd2Z4X3Jl YWQzMih3ZGV2LCBXRlhfUkVHX0NPTkZJRywgJmNmZyk7CisJaWYgKHJldCA8IDApCisJCWdvdG8g ZXJyOworCisJcmV0ID0gd2Z4X3dyaXRlMzIod2RldiwgV0ZYX1JFR19DT05GSUcsIGNmZyB8IHBy ZWZldGNoKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBlcnI7CisKKwlmb3IgKGkgPSAwOyBpIDwg MjA7IGkrKykgeworCQlyZXQgPSB3ZnhfcmVhZDMyKHdkZXYsIFdGWF9SRUdfQ09ORklHLCAmY2Zn KTsKKwkJaWYgKHJldCA8IDApCisJCQlnb3RvIGVycjsKKwkJaWYgKCEoY2ZnICYgcHJlZmV0Y2gp KQorCQkJYnJlYWs7CisJCXVzbGVlcF9yYW5nZSgyMDAsIDI1MCk7CisJfQorCWlmIChpID09IDIw KSB7CisJCXJldCA9IC1FVElNRURPVVQ7CisJCWdvdG8gZXJyOworCX0KKworCXJldCA9IHdkZXYt Pmh3YnVzX29wcy0+Y29weV9mcm9tX2lvKHdkZXYtPmh3YnVzX3ByaXYsIHJlZywgYnVmLCBsZW4p OworCitlcnI6CisJaWYgKHJldCA8IDApCisJCW1lbXNldChidWYsIDB4RkYsIGxlbik7IC8qIE5l dmVyIHJldHVybiB1bmRlZmluZWQgdmFsdWUgKi8KKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMg aW50IHdmeF9pbmRpcmVjdF93cml0ZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHJlZywgdTMy IGFkZHIsCisJCQkgICAgICBjb25zdCB2b2lkICpidWYsIHNpemVfdCBsZW4pCit7CisJaW50IHJl dDsKKworCVdBUk5fT04obGVuID49IFdGWF9ISUZfQlVGRkVSX1NJWkUpOworCVdBUk5fT04ocmVn ICE9IFdGWF9SRUdfQUhCX0RQT1JUICYmIHJlZyAhPSBXRlhfUkVHX1NSQU1fRFBPUlQpOworCXJl dCA9IHdmeF93cml0ZTMyKHdkZXYsIFdGWF9SRUdfQkFTRV9BRERSLCBhZGRyKTsKKwlpZiAocmV0 IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiB3ZGV2LT5od2J1c19vcHMtPmNvcHlfdG9f aW8od2Rldi0+aHdidXNfcHJpdiwgcmVnLCBidWYsIGxlbik7Cit9CisKK3N0YXRpYyBpbnQgd2Z4 X2luZGlyZWN0X3JlYWRfbG9ja2VkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIg YWRkciwKKwkJCQkgICAgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQoreworCWludCByZXQ7CisKKwl3 ZGV2LT5od2J1c19vcHMtPmxvY2sod2Rldi0+aHdidXNfcHJpdik7CisJcmV0ID0gd2Z4X2luZGly ZWN0X3JlYWQod2RldiwgcmVnLCBhZGRyLCBidWYsIGxlbik7CisJX3RyYWNlX2lvX2luZF9yZWFk KHJlZywgYWRkciwgYnVmLCBsZW4pOworCXdkZXYtPmh3YnVzX29wcy0+dW5sb2NrKHdkZXYtPmh3 YnVzX3ByaXYpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgd2Z4X2luZGlyZWN0X3dy aXRlX2xvY2tlZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHJlZywgdTMyIGFkZHIsCisJCQkJ ICAgICBjb25zdCB2b2lkICpidWYsIHNpemVfdCBsZW4pCit7CisJaW50IHJldDsKKworCXdkZXYt Pmh3YnVzX29wcy0+bG9jayh3ZGV2LT5od2J1c19wcml2KTsKKwlyZXQgPSB3ZnhfaW5kaXJlY3Rf d3JpdGUod2RldiwgcmVnLCBhZGRyLCBidWYsIGxlbik7CisJX3RyYWNlX2lvX2luZF93cml0ZShy ZWcsIGFkZHIsIGJ1ZiwgbGVuKTsKKwl3ZGV2LT5od2J1c19vcHMtPnVubG9jayh3ZGV2LT5od2J1 c19wcml2KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHdmeF9pbmRpcmVjdF9yZWFk MzJfbG9ja2VkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIgYWRkciwgdTMyICp2 YWwpCit7CisJaW50IHJldDsKKwlfX2xlMzIgKnRtcCA9IGttYWxsb2Moc2l6ZW9mKHUzMiksIEdG UF9LRVJORUwpOworCisJaWYgKCF0bXApCisJCXJldHVybiAtRU5PTUVNOworCXdkZXYtPmh3YnVz X29wcy0+bG9jayh3ZGV2LT5od2J1c19wcml2KTsKKwlyZXQgPSB3ZnhfaW5kaXJlY3RfcmVhZCh3 ZGV2LCByZWcsIGFkZHIsIHRtcCwgc2l6ZW9mKHUzMikpOworCSp2YWwgPSBsZTMyX3RvX2NwdSgq dG1wKTsKKwlfdHJhY2VfaW9faW5kX3JlYWQzMihyZWcsIGFkZHIsICp2YWwpOworCXdkZXYtPmh3 YnVzX29wcy0+dW5sb2NrKHdkZXYtPmh3YnVzX3ByaXYpOworCWtmcmVlKHRtcCk7CisJcmV0dXJu IHJldDsKK30KKworc3RhdGljIGludCB3ZnhfaW5kaXJlY3Rfd3JpdGUzMl9sb2NrZWQoc3RydWN0 IHdmeF9kZXYgKndkZXYsIGludCByZWcsCisJCQkJICAgICAgIHUzMiBhZGRyLCB1MzIgdmFsKQor eworCWludCByZXQ7CisJX19sZTMyICp0bXAgPSBrbWFsbG9jKHNpemVvZih1MzIpLCBHRlBfS0VS TkVMKTsKKworCWlmICghdG1wKQorCQlyZXR1cm4gLUVOT01FTTsKKwkqdG1wID0gY3B1X3RvX2xl MzIodmFsKTsKKwl3ZGV2LT5od2J1c19vcHMtPmxvY2sod2Rldi0+aHdidXNfcHJpdik7CisJcmV0 ID0gd2Z4X2luZGlyZWN0X3dyaXRlKHdkZXYsIHJlZywgYWRkciwgdG1wLCBzaXplb2YodTMyKSk7 CisJX3RyYWNlX2lvX2luZF93cml0ZTMyKHJlZywgYWRkciwgdmFsKTsKKwl3ZGV2LT5od2J1c19v cHMtPnVubG9jayh3ZGV2LT5od2J1c19wcml2KTsKKwlrZnJlZSh0bXApOworCXJldHVybiByZXQ7 Cit9CisKK2ludCB3ZnhfZGF0YV9yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB2b2lkICpidWYs IHNpemVfdCBsZW4pCit7CisJaW50IHJldDsKKworCVdBUk4oIUlTX0FMSUdORUQoKHVpbnRwdHJf dClidWYsIDQpLCAidW5hbGlnbmVkIGJ1ZmZlciIpOworCXdkZXYtPmh3YnVzX29wcy0+bG9jayh3 ZGV2LT5od2J1c19wcml2KTsKKwlyZXQgPSB3ZGV2LT5od2J1c19vcHMtPmNvcHlfZnJvbV9pbyh3 ZGV2LT5od2J1c19wcml2LCBXRlhfUkVHX0lOX09VVF9RVUVVRSwgYnVmLCBsZW4pOworCV90cmFj ZV9pb19yZWFkKFdGWF9SRUdfSU5fT1VUX1FVRVVFLCBidWYsIGxlbik7CisJd2Rldi0+aHdidXNf b3BzLT51bmxvY2sod2Rldi0+aHdidXNfcHJpdik7CisJaWYgKHJldCkKKwkJZGV2X2Vycih3ZGV2 LT5kZXYsICIlczogYnVzIGNvbW11bmljYXRpb24gZXJyb3I6ICVkXG4iLCBfX2Z1bmNfXywgcmV0 KTsKKwlyZXR1cm4gcmV0OworfQorCitpbnQgd2Z4X2RhdGFfd3JpdGUoc3RydWN0IHdmeF9kZXYg KndkZXYsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlpbnQgcmV0OworCisJV0FS TighSVNfQUxJR05FRCgodWludHB0cl90KWJ1ZiwgNCksICJ1bmFsaWduZWQgYnVmZmVyIik7CisJ d2Rldi0+aHdidXNfb3BzLT5sb2NrKHdkZXYtPmh3YnVzX3ByaXYpOworCXJldCA9IHdkZXYtPmh3 YnVzX29wcy0+Y29weV90b19pbyh3ZGV2LT5od2J1c19wcml2LCBXRlhfUkVHX0lOX09VVF9RVUVV RSwgYnVmLCBsZW4pOworCV90cmFjZV9pb193cml0ZShXRlhfUkVHX0lOX09VVF9RVUVVRSwgYnVm LCBsZW4pOworCXdkZXYtPmh3YnVzX29wcy0+dW5sb2NrKHdkZXYtPmh3YnVzX3ByaXYpOworCWlm IChyZXQpCisJCWRldl9lcnIod2Rldi0+ZGV2LCAiJXM6IGJ1cyBjb21tdW5pY2F0aW9uIGVycm9y OiAlZFxuIiwgX19mdW5jX18sIHJldCk7CisJcmV0dXJuIHJldDsKK30KKworaW50IHdmeF9zcmFt X2J1Zl9yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgdm9pZCAqYnVmLCBzaXpl X3QgbGVuKQoreworCXJldHVybiB3ZnhfaW5kaXJlY3RfcmVhZF9sb2NrZWQod2RldiwgV0ZYX1JF R19TUkFNX0RQT1JULCBhZGRyLCBidWYsIGxlbik7Cit9CisKK2ludCB3ZnhfYWhiX2J1Zl9yZWFk KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQor eworCXJldHVybiB3ZnhfaW5kaXJlY3RfcmVhZF9sb2NrZWQod2RldiwgV0ZYX1JFR19BSEJfRFBP UlQsIGFkZHIsIGJ1ZiwgbGVuKTsKK30KKworaW50IHdmeF9zcmFtX2J1Zl93cml0ZShzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwgdTMyIGFkZHIsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikKK3sK KwlyZXR1cm4gd2Z4X2luZGlyZWN0X3dyaXRlX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX1NSQU1fRFBP UlQsIGFkZHIsIGJ1ZiwgbGVuKTsKK30KKworaW50IHdmeF9haGJfYnVmX3dyaXRlKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQorewor CXJldHVybiB3ZnhfaW5kaXJlY3Rfd3JpdGVfbG9ja2VkKHdkZXYsIFdGWF9SRUdfQUhCX0RQT1JU LCBhZGRyLCBidWYsIGxlbik7Cit9CisKK2ludCB3Znhfc3JhbV9yZWdfcmVhZChzdHJ1Y3Qgd2Z4 X2RldiAqd2RldiwgdTMyIGFkZHIsIHUzMiAqdmFsKQoreworCXJldHVybiB3ZnhfaW5kaXJlY3Rf cmVhZDMyX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX1NSQU1fRFBPUlQsIGFkZHIsIHZhbCk7Cit9CisK K2ludCB3ZnhfYWhiX3JlZ19yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgdTMy ICp2YWwpCit7CisJcmV0dXJuIHdmeF9pbmRpcmVjdF9yZWFkMzJfbG9ja2VkKHdkZXYsIFdGWF9S RUdfQUhCX0RQT1JULCBhZGRyLCB2YWwpOworfQorCitpbnQgd2Z4X3NyYW1fcmVnX3dyaXRlKHN0 cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgdTMyIHZhbCkKK3sKKwlyZXR1cm4gd2Z4X2lu ZGlyZWN0X3dyaXRlMzJfbG9ja2VkKHdkZXYsIFdGWF9SRUdfU1JBTV9EUE9SVCwgYWRkciwgdmFs KTsKK30KKworaW50IHdmeF9haGJfcmVnX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIg YWRkciwgdTMyIHZhbCkKK3sKKwlyZXR1cm4gd2Z4X2luZGlyZWN0X3dyaXRlMzJfbG9ja2VkKHdk ZXYsIFdGWF9SRUdfQUhCX0RQT1JULCBhZGRyLCB2YWwpOworfQorCitpbnQgd2Z4X2NvbmZpZ19y ZWdfcmVhZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyICp2YWwpCit7CisJcmV0dXJuIHdmeF9y ZWFkMzJfbG9ja2VkKHdkZXYsIFdGWF9SRUdfQ09ORklHLCB2YWwpOworfQorCitpbnQgd2Z4X2Nv bmZpZ19yZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiB2YWwpCit7CisJcmV0dXJu IHdmeF93cml0ZTMyX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX0NPTkZJRywgdmFsKTsKK30KKworaW50 IHdmeF9jb25maWdfcmVnX3dyaXRlX2JpdHMoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBtYXNr LCB1MzIgdmFsKQoreworCXJldHVybiB3Znhfd3JpdGUzMl9iaXRzX2xvY2tlZCh3ZGV2LCBXRlhf UkVHX0NPTkZJRywgbWFzaywgdmFsKTsKK30KKworaW50IHdmeF9jb250cm9sX3JlZ19yZWFkKHN0 cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgKnZhbCkKK3sKKwlyZXR1cm4gd2Z4X3JlYWQzMl9sb2Nr ZWQod2RldiwgV0ZYX1JFR19DT05UUk9MLCB2YWwpOworfQorCitpbnQgd2Z4X2NvbnRyb2xfcmVn X3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgdmFsKQoreworCXJldHVybiB3Znhfd3Jp dGUzMl9sb2NrZWQod2RldiwgV0ZYX1JFR19DT05UUk9MLCB2YWwpOworfQorCitpbnQgd2Z4X2Nv bnRyb2xfcmVnX3dyaXRlX2JpdHMoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBtYXNrLCB1MzIg dmFsKQoreworCXJldHVybiB3Znhfd3JpdGUzMl9iaXRzX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX0NP TlRST0wsIG1hc2ssIHZhbCk7Cit9CisKK2ludCB3ZnhfaWdwcl9yZWdfcmVhZChzdHJ1Y3Qgd2Z4 X2RldiAqd2RldiwgaW50IGluZGV4LCB1MzIgKnZhbCkKK3sKKwlpbnQgcmV0OworCisJKnZhbCA9 IH4wOyAvKiBOZXZlciByZXR1cm4gdW5kZWZpbmVkIHZhbHVlICovCisJcmV0ID0gd2Z4X3dyaXRl MzJfbG9ja2VkKHdkZXYsIFdGWF9SRUdfU0VUX0dFTl9SX1csIElHUFJfUlcgfCBpbmRleCA8PCAy NCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwlyZXQgPSB3ZnhfcmVhZDMyX2xvY2tlZCh3 ZGV2LCBXRlhfUkVHX1NFVF9HRU5fUl9XLCB2YWwpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7 CisJKnZhbCAmPSBJR1BSX1ZBTFVFOworCXJldHVybiByZXQ7Cit9CisKK2ludCB3ZnhfaWdwcl9y ZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCBpbmRleCwgdTMyIHZhbCkKK3sKKwly ZXR1cm4gd2Z4X3dyaXRlMzJfbG9ja2VkKHdkZXYsIFdGWF9SRUdfU0VUX0dFTl9SX1csIGluZGV4 IDw8IDI0IHwgdmFsKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFi cy93ZngvaHdpby5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mvc2lsYWJzL3dmeC9od2lvLmgKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jNmU3YjA2NWI3ZmYKLS0tIC9k ZXYvbnVsbAorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9zaWxhYnMvd2Z4L2h3aW8uaApAQCAt MCwwICsxLDc4IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICov CisvKgorICogTG93LWxldmVsIEkvTyBmdW5jdGlvbnMuCisgKgorICogQ29weXJpZ2h0IChjKSAy MDE3LTIwMjAsIFNpbGljb24gTGFib3JhdG9yaWVzLCBJbmMuCisgKiBDb3B5cmlnaHQgKGMpIDIw MTAsIFNULUVyaWNzc29uCisgKi8KKyNpZm5kZWYgV0ZYX0hXSU9fSAorI2RlZmluZSBXRlhfSFdJ T19ICisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCitzdHJ1Y3Qgd2Z4X2RldjsKKworLyog Q2F1dGlvbjogaW4gdGhlIGZ1bmN0aW9ucyBiZWxvdywgJ2J1Zicgd2lsbCB1c2VkIHdpdGggYSBE TUEuIFNvLCBpdCBtdXN0IGJlIGttYWxsb2MnZCAoZG8gbm90IHVzZQorICogc3RhY2sgYWxsb2Nh dGVkIGJ1ZmZlcnMpLiBJbiBkb3VidCwgZW5hYmxlIENPTkZJR19ERUJVR19TRyB0byBkZXRlY3Qg YmFkbHkgbG9jYXRlZCBidWZmZXIuCisgKi8KK2ludCB3ZnhfZGF0YV9yZWFkKHN0cnVjdCB3Znhf ZGV2ICp3ZGV2LCB2b2lkICpidWYsIHNpemVfdCBidWZfbGVuKTsKK2ludCB3ZnhfZGF0YV93cml0 ZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgYnVmX2xlbik7 CisKK2ludCB3Znhfc3JhbV9idWZfcmVhZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFkZHIs IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbik7CitpbnQgd2Z4X3NyYW1fYnVmX3dyaXRlKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKTsKKwor aW50IHdmeF9haGJfYnVmX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB2b2lk ICpidWYsIHNpemVfdCBsZW4pOworaW50IHdmeF9haGJfYnVmX3dyaXRlKHN0cnVjdCB3ZnhfZGV2 ICp3ZGV2LCB1MzIgYWRkciwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKTsKKworaW50IHdm eF9zcmFtX3JlZ19yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgdTMyICp2YWwp OworaW50IHdmeF9zcmFtX3JlZ193cml0ZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFkZHIs IHUzMiB2YWwpOworCitpbnQgd2Z4X2FoYl9yZWdfcmVhZChzdHJ1Y3Qgd2Z4X2RldiAqd2Rldiwg dTMyIGFkZHIsIHUzMiAqdmFsKTsKK2ludCB3ZnhfYWhiX3JlZ193cml0ZShzdHJ1Y3Qgd2Z4X2Rl diAqd2RldiwgdTMyIGFkZHIsIHUzMiB2YWwpOworCisjZGVmaW5lIENGR19FUlJfU1BJX0ZSQU1F ICAgICAgICAgIDB4MDAwMDAwMDEgLyogb25seSB3aXRoIFNQSSAqLworI2RlZmluZSBDRkdfRVJS X1NESU9fQlVGX01JU01BVENIICAweDAwMDAwMDAxIC8qIG9ubHkgd2l0aCBTRElPICovCisjZGVm aW5lIENGR19FUlJfQlVGX1VOREVSUlVOICAgICAgIDB4MDAwMDAwMDIKKyNkZWZpbmUgQ0ZHX0VS Ul9EQVRBX0lOX1RPT19MQVJHRSAgMHgwMDAwMDAwNAorI2RlZmluZSBDRkdfRVJSX0hPU1RfTk9f T1VUX1FVRVVFICAweDAwMDAwMDA4CisjZGVmaW5lIENGR19FUlJfQlVGX09WRVJSVU4gICAgICAg IDB4MDAwMDAwMTAKKyNkZWZpbmUgQ0ZHX0VSUl9EQVRBX09VVF9UT09fTEFSR0UgMHgwMDAwMDAy MAorI2RlZmluZSBDRkdfRVJSX0hPU1RfTk9fSU5fUVVFVUUgICAweDAwMDAwMDQwCisjZGVmaW5l IENGR19FUlJfSE9TVF9DUkNfTUlTUyAgICAgIDB4MDAwMDAwODAgLyogb25seSB3aXRoIFNESU8g Ki8KKyNkZWZpbmUgQ0ZHX1NQSV9JR05PUkVfQ1MgICAgICAgICAgMHgwMDAwMDA4MCAvKiBvbmx5 IHdpdGggU1BJICovCisjZGVmaW5lIENGR19CWVRFX09SREVSX01BU0sgICAgICAgIDB4MDAwMDAz MDAgLyogb25seSB3cml0YWJsZSB3aXRoIFNQSSAqLworI2RlZmluZSAgICAgQ0ZHX0JZVEVfT1JE RVJfQkFEQyAgICAweDAwMDAwMDAwCisjZGVmaW5lICAgICBDRkdfQllURV9PUkRFUl9EQ0JBICAg IDB4MDAwMDAxMDAKKyNkZWZpbmUgICAgIENGR19CWVRFX09SREVSX0FCQ0QgICAgMHgwMDAwMDIw MCAvKiBTRElPIGFsd2F5cyB1c2UgdGhpcyB2YWx1ZSAqLworI2RlZmluZSBDRkdfRElSRUNUX0FD Q0VTU19NT0RFICAgICAweDAwMDAwNDAwCisjZGVmaW5lIENGR19QUkVGRVRDSF9BSEIgICAgICAg ICAgIDB4MDAwMDA4MDAKKyNkZWZpbmUgQ0ZHX0RJU0FCTEVfQ1BVX0NMSyAgICAgICAgMHgwMDAw MTAwMAorI2RlZmluZSBDRkdfUFJFRkVUQ0hfU1JBTSAgICAgICAgICAweDAwMDAyMDAwCisjZGVm aW5lIENGR19DUFVfUkVTRVQgICAgICAgICAgICAgIDB4MDAwMDQwMDAKKyNkZWZpbmUgQ0ZHX1NE SU9fRElTQUJMRV9JUlEgICAgICAgMHgwMDAwODAwMCAvKiBvbmx5IHdpdGggU0RJTyAqLworI2Rl ZmluZSBDRkdfSVJRX0VOQUJMRV9EQVRBICAgICAgICAweDAwMDEwMDAwCisjZGVmaW5lIENGR19J UlFfRU5BQkxFX1dSRFkgICAgICAgIDB4MDAwMjAwMDAKKyNkZWZpbmUgQ0ZHX0NMS19SSVNFX0VE R0UgICAgICAgICAgMHgwMDA0MDAwMAorI2RlZmluZSBDRkdfU0RJT19ESVNBQkxFX0NSQ19DSEsg ICAweDAwMDgwMDAwIC8qIG9ubHkgd2l0aCBTRElPICovCisjZGVmaW5lIENGR19SRVNFUlZFRCAg ICAgICAgICAgICAgIDB4MDBGMDAwMDAKKyNkZWZpbmUgQ0ZHX0RFVklDRV9JRF9NQUpPUiAgICAg ICAgMHgwNzAwMDAwMAorI2RlZmluZSBDRkdfREVWSUNFX0lEX1JFU0VSVkVEICAgICAweDc4MDAw MDAwCisjZGVmaW5lIENGR19ERVZJQ0VfSURfVFlQRSAgICAgICAgIDB4ODAwMDAwMDAKK2ludCB3 ZnhfY29uZmlnX3JlZ19yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgKnZhbCk7CitpbnQg d2Z4X2NvbmZpZ19yZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiB2YWwpOworaW50 IHdmeF9jb25maWdfcmVnX3dyaXRlX2JpdHMoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBtYXNr LCB1MzIgdmFsKTsKKworI2RlZmluZSBDVFJMX05FWFRfTEVOX01BU0sgICAweDAwMDAwRkZGCisj ZGVmaW5lIENUUkxfV0xBTl9XQUtFVVAgICAgIDB4MDAwMDEwMDAKKyNkZWZpbmUgQ1RSTF9XTEFO X1JFQURZICAgICAgMHgwMDAwMjAwMAoraW50IHdmeF9jb250cm9sX3JlZ19yZWFkKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LCB1MzIgKnZhbCk7CitpbnQgd2Z4X2NvbnRyb2xfcmVnX3dyaXRlKHN0cnVj dCB3ZnhfZGV2ICp3ZGV2LCB1MzIgdmFsKTsKK2ludCB3ZnhfY29udHJvbF9yZWdfd3JpdGVfYml0 cyhzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIG1hc2ssIHUzMiB2YWwpOworCisjZGVmaW5lIElH UFJfUlcgICAgICAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBJR1BSX0lOREVYICAgICAgIDB4N0Yw MDAwMDAKKyNkZWZpbmUgSUdQUl9WQUxVRSAgICAgICAweDAwRkZGRkZGCitpbnQgd2Z4X2lncHJf cmVnX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCBpbmRleCwgdTMyICp2YWwpOworaW50 IHdmeF9pZ3ByX3JlZ193cml0ZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IGluZGV4LCB1MzIg dmFsKTsKKworI2VuZGlmCi0tIAoyLjM0LjEKCg==