Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3293951pxf; Mon, 15 Mar 2021 06:29:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxsWb66/x51OBfEVrzxKy1/SH8bEitQxtPYSbsu560YEuF5/uUMavrTfaCt/yRxU1bAKhCR X-Received: by 2002:a05:6402:12cf:: with SMTP id k15mr29195692edx.192.1615814977015; Mon, 15 Mar 2021 06:29:37 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1615814977; cv=pass; d=google.com; s=arc-20160816; b=jomFssiPq+3sWfwhnkosen8saeVoH5zThZ0d2gUsSYFUJTRYcdzUyUgN+S+PeimQGw sMyJcE6uKT3F475UkWUE4Pb1zlLFzddDNAaw3rKytGG2+5Rk5p8CyJTzH4AEASbdm/IO FCR/Lxg0T4mNqZhc84gKSjL2RZdUPs0uJQHnekzRTgSyQkSH3a++ew7OwvUkr87AVleZ xaYThJ/C5glW2+sS07JzRsFDhidFaXG0yotzkBM03z9aKRP7VfXzkliH5FXmHhIamAlw 6RhJyKVFoGiaYsjdcSwdaoFKxtjhukoE7KMHUQhPtjZHr0hY1rsTULfToUDweTAoOs5L QOMA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=HE9qpTIHbkJvCj7PV9cILnllRgQW9KyY3MO8fZz9G+c=; b=D5khcOduyCJXSZrnP69kux8HsTfZdzICTB8K8TiDM/t57i0dQGAJuFXINjImSr43bj FwXJH/OdTLEul08x+s85a7FkBy1xnlxSo7Qne/AWDB+NixbUbcjrF9SG/Bbd314Jz5b1 4inExJ2J6swxk6rqp3W2a1ISOXUwj6+xdP7QOBXiKfgiwWDxkHAYp+xPJvZ3X2UMjvf8 hdNHtXpwAvyM1YNQLcDXQaqti+FPtg6P3t0cJc26xm1fc9x9JCO3j1UUbPgjJstwQPcL 6c39AQuZwq/B68dbMZ53Qele/eTA1cK7OuamT79U+tz4+zr8/0bjViZHRZDNJUVJdLvq w+cA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@silabs.onmicrosoft.com header.s=selector2-silabs-onmicrosoft-com header.b=VFFh3BHY; arc=pass (i=1 spf=pass spfdomain=silabs.com dkim=pass dkdomain=silabs.com dmarc=pass fromdomain=silabs.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h1si11044921edn.233.2021.03.15.06.29.14; Mon, 15 Mar 2021 06:29:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@silabs.onmicrosoft.com header.s=selector2-silabs-onmicrosoft-com header.b=VFFh3BHY; arc=pass (i=1 spf=pass spfdomain=silabs.com dkim=pass dkdomain=silabs.com dmarc=pass fromdomain=silabs.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231278AbhCON0a (ORCPT + 99 others); Mon, 15 Mar 2021 09:26:30 -0400 Received: from mail-mw2nam10on2048.outbound.protection.outlook.com ([40.107.94.48]:59751 "EHLO NAM10-MW2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S230386AbhCONZq (ORCPT ); Mon, 15 Mar 2021 09:25:46 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iS/iDaDnkJjvxoq7UhCKFiE2lScvLkPO4lnf29xp1orNNVgN7Jn8RwdB0kuQmwdk5O3GJVtj55qRLQjupNuKVDnUHUFzvHqAFtqCfL09FXx6yQrj2zBGfIJE7eYyqYmzs02XWdYV8t6FxAQSHKg85HFDorVBSB+JUckXhglbu41X1SlVihl7l4+AYpsDNnui01XjRFpa58RtL0l+l7NUKa+rv6TZxRh2HUSD9ZF1cr++nwXUFzC3twB0IPMyv5YJraR02qhukFVr15q92gCGkfQkxxOGNWPPKvv3TodDs/5iL770rzhklggFCBPs1OJ07IcoequJxR00BYyEZfZjXw== 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-SenderADCheck; bh=HE9qpTIHbkJvCj7PV9cILnllRgQW9KyY3MO8fZz9G+c=; b=hAtfk0JJKBnY+0TvRIVmy5uY9RrvwCdG4Y3HDTJhD8ZQwPBpwa0AyrzEBRd0p8IEfGJW++n0JZdZ8TWjbCnOT8wxe7VtaIl1khRBY6pCGir4ErzLxq2EqlZc1JhDgmZu6rc7AGGGMnap4hW8ZqTgRIbe7cveKhHoVmR4kzuaC7ZlBATBmAvP45/mHoWdqqZuUg1yJZl3rRXSCau07TGqpCL2yJRnQmf4WL08tHXDh6ZveFBDWyFyl/XG2XJrIKZxgJudOMoRpQkmLblo6sO3C8UbfcKvVRVgT5LcMXPDfAlyFso+Ao5ep2zPz1wodtPEPtCZz6MgFWhXFuACrEXcIg== 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=HE9qpTIHbkJvCj7PV9cILnllRgQW9KyY3MO8fZz9G+c=; b=VFFh3BHYvfDn6mfhSjb0p3N1z8Or8RQLivXPcVQkewHo/yjlVNR6O8SkZ4g73mzPOn+PTV1SNaBCxaP8QuwW5toLUb6d3JoJjslbY7b9eF4E36ZSo0Re6bGKVQIwzRC41VPGoKJ9F3Ato+xTOHzV+j/Pmr0T2bDW5YXGi/OjgeY= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SA0PR11MB4544.namprd11.prod.outlook.com (2603:10b6:806:92::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32; Mon, 15 Mar 2021 13:25:44 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::41bc:5ce:dfa0:9701]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::41bc:5ce:dfa0:9701%7]) with mapi id 15.20.3933.032; Mon, 15 Mar 2021 13:25:44 +0000 From: Jerome Pouiller To: linux-wireless@vger.kernel.org, netdev@vger.kernel.org Cc: devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "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 v5 08/24] wfx: add bus_sdio.c Date: Mon, 15 Mar 2021 14:24:45 +0100 Message-Id: <20210315132501.441681-9-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210315132501.441681-1-Jerome.Pouiller@silabs.com> References: <20210315132501.441681-1-Jerome.Pouiller@silabs.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-ClientProxiedBy: SN4PR0801CA0014.namprd08.prod.outlook.com (2603:10b6:803:29::24) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.silabs.com (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by SN4PR0801CA0014.namprd08.prod.outlook.com (2603:10b6:803:29::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32 via Frontend Transport; Mon, 15 Mar 2021 13:25:42 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dd02f314-73c6-4f71-704d-08d8e7b5d643 X-MS-TrafficTypeDiagnostic: SA0PR11MB4544: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3968; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iWi3JNv/aMBR83LiwymqnXdluLsYT7oqLiYWDJUmI+1hkKimG+o9uNd0N8FfqY29T4E+nRwz1UZvguyPMfMtgJQ72hyPVi7r2HTDXisyIx+J6zNKLRBgwOxXIW8A7PY3tzZ21h1V8uc0UVugsx2X26ScDVbiyW0pUhrRyPCo85f/7ztRgqUsJQhXKDuZ8vpS7N1OqxG5b5kgXILh+BeiDyeSFt91Ny/q0fWYqTPPBQoIiCsgXMUG5XZTxR0j3miN8yN/g6ls5DVLi9gOwroYmWJEiRgVz1Go0yv077BmKxTGuKSWs134hROQPq4RWF9qeTfzOQCVUJvdDI+txf/EL3niQEi1cVK7zNmh5VYIV1uyjZ0+LGAyzlK2CroC/L1HBWKj8CjoKF2gpCaxLxEp0vDskNENrpSl5s27TSoY9/pN025/OCgtrkVuxFL/od8JWFOihluKXPEuFxIQW4a4wZFZIzGXsP2NVjcX/OD4TIqOLSejBn0OjgmcVJCXC0vmF6uusV4jFsrdnOIWi277rumXeWoUjr7S7AAj2se1PVSetksHipZkCuG9h32oyMpE X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(346002)(396003)(366004)(376002)(39850400004)(136003)(66574015)(8676002)(186003)(52116002)(86362001)(5660300002)(6486002)(7696005)(2906002)(83380400001)(4326008)(66476007)(16526019)(2616005)(107886003)(66946007)(8936002)(66556008)(1076003)(478600001)(36756003)(7416002)(316002)(54906003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?VmFXL0VacWJaVGxLRlUvd3h5NE8ranUzazBQWDlkOFUwYURLQ2kyWWdhaWpL?= =?utf-8?B?c0pveUF1OHV4N3pGZm9HdDJ2amgwaGN1RGV3emRCWndNNEVtM0ZiblpTZ3kw?= =?utf-8?B?Y2lnQ0NRVG15UlhUQXkva0lXc2dReGh3RkZrTU56NytEV1JRdmJrc3huVG5H?= =?utf-8?B?bWR1blh1QUg5eWlGcGJxOFNXc0VJampBejFTbjltRVJuMGxEbXVOL0JFVjVU?= =?utf-8?B?TktQWmFFalp5QTNpazkwelpLTDRQNWNBNGtENjFCSk1JSndhbVJQYXZvVDBT?= =?utf-8?B?dkhjd0NlTEpUWlJVb0RtOTlSS3l5R1pXSThkOTR4RUZFL090TENKZVdtV1E4?= =?utf-8?B?RzRnRDdFTVFlTzl2NjJkVDlMSWtzbHBWcmFEMXAzbVJkV2dmMFJ1dmQ4MStD?= =?utf-8?B?UXdsWURBcjFMaktRcVY4T3dqcHAvUnhtSE5nTUJJNHNCdjlkVml2ZzBMbTg1?= =?utf-8?B?U3ZuM2RXS0VqWXRSNXFvVk1JVWkwN1dycE16UlZIaHp5b2RLeVhnSGxoSHZK?= =?utf-8?B?Z0tZOVJoUTN4dk1qU0RlK0d0SHVSN3VETC9LVlVtRTd2Y3pMOWhmQldlVHRD?= =?utf-8?B?YXVNUHh5dGVyNlZaRnJnYzlvV2praHBZQ3VlbHFZSzhMbzdrVDJTYldBMmtS?= =?utf-8?B?R1ZQM1N3bEM5MVMwMC9udjlrUlRDNlg4VHJtcC9RR2J5NDM3UEd6cEZJalB0?= =?utf-8?B?UWVDUUNTVnFDblArT2ROR1Fjamd1a3dYZyt2WUxVQjVxMWd4b05kQkcxVHdD?= =?utf-8?B?Q0JQNDJ6TWNTWGRFRzVzMDVqYUhGa2Z1ZUs0K3g4U01hQ1kvcnpPRnAvSkFN?= =?utf-8?B?VTRDMjdJTTdkbXRYc1JkYUVleTQ3UEZJd2VrOFNiZWxXNVk0WTd5b0hZWWNr?= =?utf-8?B?aERLc3hyd1ZkaE1RcTVnR1BNeHcxcE9GdkxqdjNjZE8zWnZMenlRVXZiMXB5?= =?utf-8?B?TjB1TWk5dXJ0b3BkM0JlZ3FjQ2VVU0VRQjVndmpDOXk0c0VxZnVXaXVPQXNS?= =?utf-8?B?Um9ndWV3KzNIS2xTY09oMnBycjgrRUZKYk5DejM5YmhXSXRoM1JuVlVESERN?= =?utf-8?B?WHFkbk1BVGtmcm1rRmhEcEJiV25ESjQzTDZnb000WUJUWkVWelpOb0s5NzMx?= =?utf-8?B?L2RtSmhFaFJqTnc3d0xrb1dzMTR5R25zaTk1L0xhY01rMHY1dk92U1RnMWRj?= =?utf-8?B?UlQvOVhyUjVGWENiTVZZS01jTXQ3cDByVENUK0RKaVNuckxpNUdTMmUvRnNa?= =?utf-8?B?clRuOTBpdlM4YjRyZlRmVzV3M1dBNFlPMUMwNjZIUWhxeUFFZmZvcmNodU9k?= =?utf-8?B?dDRtSUo1UkxvQVZMazhqQUNzdENWeEY3SzVZemJWZXFlY1BtRE1CNGRWT3Rl?= =?utf-8?B?cmtLcnc1bjl6cXhkazJMY3o5OGVRZkpxMUlvMW9ycVlHL0xkWUlxTC83RDQx?= =?utf-8?B?TXRpWjJxQWtpOG8rK1dlK1hYdWNsVWdCdnNMTTdRM1VKRzFzMStIRHFJWW5K?= =?utf-8?B?SjMzVCsrbTU2NzF5WkdoVHlBQmhFR05VNVMvSW9NMnhHd2FjSTRyNGg0c0pT?= =?utf-8?B?VGhxU0tKN2oxZURscjBVU05nUzFQTDhtMXVKdjVxQitMMFNiS1F1aUpsbGp4?= =?utf-8?B?cHJwSHlhT3BiTU4zcS9nODk4ZkFqcGNIakluNmFHdnZwbCttblM1Yk9wRTNU?= =?utf-8?B?a29pT0QvRzQ3d3BqYTNDUHdnNklEQUVVNnZ6cURDUjBaWk80U0pldi83VHlW?= =?utf-8?B?bVZHb3ZXVWRQUTVRL0JlY1NwcjJ6bENUYUVjTHFIcmdIWHNMcHFZaHNDYXNl?= =?utf-8?B?NFhkZGVuVUR6ejl0amM5c0RuYUVoWHc4a2lBbVA2UGFyTnBRQnR1a0Z3c281?= =?utf-8?Q?7aWKQ5OlyoAg9?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: dd02f314-73c6-4f71-704d-08d8e7b5d643 X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2718.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Mar 2021 13:25:44.5204 (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: ip7t16nqNn7jxkJIbULJcZi/jp6d9oFmto+dr7HwGKmODbAxNT8o/bInCY293JVGesRwC/J2BtzHu16cKPGOWg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR11MB4544 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKU2ln bmVkLW9mZi1ieTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29t PgotLS0KIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvYnVzX3NkaW8uYyB8IDI1OSAr KysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyNTkgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvYnVzX3Nk aW8uYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvYnVzX3Nk aW8uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvYnVzX3NkaW8uYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU1YjY3Mjg0MTZiYQotLS0gL2Rldi9u dWxsCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvYnVzX3NkaW8uYwpAQCAt MCwwICsxLDI1OSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQor LyoKKyAqIFNESU8gaW50ZXJmYWNlLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxNy0yMDIwLCBT aWxpY29uIExhYm9yYXRvcmllcywgSW5jLgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBTVC1Fcmlj c3NvbgorICovCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW1j L3NkaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9tbWMvc2Rpb19mdW5jLmg+CisjaW5jbHVkZSA8bGlu dXgvbW1jL3NkaW9faWRzLmg+CisjaW5jbHVkZSA8bGludXgvbW1jL2NhcmQuaD4KKyNpbmNsdWRl IDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9pcnEuaD4KKyNpbmNsdWRl IDxsaW51eC9pcnEuaD4KKworI2luY2x1ZGUgImJ1cy5oIgorI2luY2x1ZGUgIndmeC5oIgorI2lu Y2x1ZGUgImh3aW8uaCIKKyNpbmNsdWRlICJtYWluLmgiCisjaW5jbHVkZSAiYmguaCIKKworc3Rh dGljIGNvbnN0IHN0cnVjdCB3ZnhfcGxhdGZvcm1fZGF0YSB3Znhfc2Rpb19wZGF0YSA9IHsKKwku ZmlsZV9mdyA9ICJ3Zm1fd2YyMDAiLAorCS5maWxlX3BkcyA9ICJ3ZjIwMC5wZHMiLAorfTsKKwor c3RydWN0IHdmeF9zZGlvX3ByaXYgeworCXN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmM7CisJc3RydWN0 IHdmeF9kZXYgKmNvcmU7CisJdTggYnVmX2lkX3R4OworCXU4IGJ1Zl9pZF9yeDsKKwlpbnQgb2Zf aXJxOworfTsKKworc3RhdGljIGludCB3Znhfc2Rpb19jb3B5X2Zyb21faW8odm9pZCAqcHJpdiwg dW5zaWduZWQgaW50IHJlZ19pZCwKKwkJCQkgdm9pZCAqZHN0LCBzaXplX3QgY291bnQpCit7CisJ c3RydWN0IHdmeF9zZGlvX3ByaXYgKmJ1cyA9IHByaXY7CisJdW5zaWduZWQgaW50IHNkaW9fYWRk ciA9IHJlZ19pZCA8PCAyOworCWludCByZXQ7CisKKwlXQVJOKHJlZ19pZCA+IDcsICJjaGlwIG9u bHkgaGFzIDcgcmVnaXN0ZXJzIik7CisJV0FSTigoKHVpbnRwdHJfdClkc3QpICYgMywgInVuYWxp Z25lZCBidWZmZXIgc2l6ZSIpOworCVdBUk4oY291bnQgJiAzLCAidW5hbGlnbmVkIGJ1ZmZlciBh ZGRyZXNzIik7CisKKwkvKiBVc2UgcXVldWUgbW9kZSBidWZmZXJzICovCisJaWYgKHJlZ19pZCA9 PSBXRlhfUkVHX0lOX09VVF9RVUVVRSkKKwkJc2Rpb19hZGRyIHw9IChidXMtPmJ1Zl9pZF9yeCAr IDEpIDw8IDc7CisJcmV0ID0gc2Rpb19tZW1jcHlfZnJvbWlvKGJ1cy0+ZnVuYywgZHN0LCBzZGlv X2FkZHIsIGNvdW50KTsKKwlpZiAoIXJldCAmJiByZWdfaWQgPT0gV0ZYX1JFR19JTl9PVVRfUVVF VUUpCisJCWJ1cy0+YnVmX2lkX3J4ID0gKGJ1cy0+YnVmX2lkX3J4ICsgMSkgJSA0OworCisJcmV0 dXJuIHJldDsKK30KKworc3RhdGljIGludCB3Znhfc2Rpb19jb3B5X3RvX2lvKHZvaWQgKnByaXYs IHVuc2lnbmVkIGludCByZWdfaWQsCisJCQkgICAgICAgY29uc3Qgdm9pZCAqc3JjLCBzaXplX3Qg Y291bnQpCit7CisJc3RydWN0IHdmeF9zZGlvX3ByaXYgKmJ1cyA9IHByaXY7CisJdW5zaWduZWQg aW50IHNkaW9fYWRkciA9IHJlZ19pZCA8PCAyOworCWludCByZXQ7CisKKwlXQVJOKHJlZ19pZCA+ IDcsICJjaGlwIG9ubHkgaGFzIDcgcmVnaXN0ZXJzIik7CisJV0FSTigoKHVpbnRwdHJfdClzcmMp ICYgMywgInVuYWxpZ25lZCBidWZmZXIgc2l6ZSIpOworCVdBUk4oY291bnQgJiAzLCAidW5hbGln bmVkIGJ1ZmZlciBhZGRyZXNzIik7CisKKwkvKiBVc2UgcXVldWUgbW9kZSBidWZmZXJzICovCisJ aWYgKHJlZ19pZCA9PSBXRlhfUkVHX0lOX09VVF9RVUVVRSkKKwkJc2Rpb19hZGRyIHw9IGJ1cy0+ YnVmX2lkX3R4IDw8IDc7CisJLyogRklYTUU6IGRpc2NhcmRzICdjb25zdCcgcXVhbGlmaWVyIGZv ciBzcmMgKi8KKwlyZXQgPSBzZGlvX21lbWNweV90b2lvKGJ1cy0+ZnVuYywgc2Rpb19hZGRyLCAo dm9pZCAqKXNyYywgY291bnQpOworCWlmICghcmV0ICYmIHJlZ19pZCA9PSBXRlhfUkVHX0lOX09V VF9RVUVVRSkKKwkJYnVzLT5idWZfaWRfdHggPSAoYnVzLT5idWZfaWRfdHggKyAxKSAlIDMyOwor CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgd2Z4X3NkaW9fbG9jayh2b2lkICpwcml2 KQoreworCXN0cnVjdCB3Znhfc2Rpb19wcml2ICpidXMgPSBwcml2OworCisJc2Rpb19jbGFpbV9o b3N0KGJ1cy0+ZnVuYyk7Cit9CisKK3N0YXRpYyB2b2lkIHdmeF9zZGlvX3VubG9jayh2b2lkICpw cml2KQoreworCXN0cnVjdCB3Znhfc2Rpb19wcml2ICpidXMgPSBwcml2OworCisJc2Rpb19yZWxl YXNlX2hvc3QoYnVzLT5mdW5jKTsKK30KKworc3RhdGljIHZvaWQgd2Z4X3NkaW9faXJxX2hhbmRs ZXIoc3RydWN0IHNkaW9fZnVuYyAqZnVuYykKK3sKKwlzdHJ1Y3Qgd2Z4X3NkaW9fcHJpdiAqYnVz ID0gc2Rpb19nZXRfZHJ2ZGF0YShmdW5jKTsKKworCXdmeF9iaF9yZXF1ZXN0X3J4KGJ1cy0+Y29y ZSk7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCB3Znhfc2Rpb19pcnFfaGFuZGxlcl9leHQoaW50 IGlycSwgdm9pZCAqcHJpdikKK3sKKwlzdHJ1Y3Qgd2Z4X3NkaW9fcHJpdiAqYnVzID0gcHJpdjsK KworCXNkaW9fY2xhaW1faG9zdChidXMtPmZ1bmMpOworCXdmeF9iaF9yZXF1ZXN0X3J4KGJ1cy0+ Y29yZSk7CisJc2Rpb19yZWxlYXNlX2hvc3QoYnVzLT5mdW5jKTsKKwlyZXR1cm4gSVJRX0hBTkRM RUQ7Cit9CisKK3N0YXRpYyBpbnQgd2Z4X3NkaW9faXJxX3N1YnNjcmliZSh2b2lkICpwcml2KQor eworCXN0cnVjdCB3Znhfc2Rpb19wcml2ICpidXMgPSBwcml2OworCXUzMiBmbGFnczsKKwlpbnQg cmV0OworCXU4IGNjY3I7CisKKwlpZiAoIWJ1cy0+b2ZfaXJxKSB7CisJCXNkaW9fY2xhaW1faG9z dChidXMtPmZ1bmMpOworCQlyZXQgPSBzZGlvX2NsYWltX2lycShidXMtPmZ1bmMsIHdmeF9zZGlv X2lycV9oYW5kbGVyKTsKKwkJc2Rpb19yZWxlYXNlX2hvc3QoYnVzLT5mdW5jKTsKKwkJcmV0dXJu IHJldDsKKwl9CisKKwlzZGlvX2NsYWltX2hvc3QoYnVzLT5mdW5jKTsKKwljY2NyID0gc2Rpb19m MF9yZWFkYihidXMtPmZ1bmMsIFNESU9fQ0NDUl9JRU54LCBOVUxMKTsKKwljY2NyIHw9IEJJVCgw KTsKKwljY2NyIHw9IEJJVChidXMtPmZ1bmMtPm51bSk7CisJc2Rpb19mMF93cml0ZWIoYnVzLT5m dW5jLCBjY2NyLCBTRElPX0NDQ1JfSUVOeCwgTlVMTCk7CisJc2Rpb19yZWxlYXNlX2hvc3QoYnVz LT5mdW5jKTsKKwlmbGFncyA9IGlycV9nZXRfdHJpZ2dlcl90eXBlKGJ1cy0+b2ZfaXJxKTsKKwlp ZiAoIWZsYWdzKQorCQlmbGFncyA9IElSUUZfVFJJR0dFUl9ISUdIOworCWZsYWdzIHw9IElSUUZf T05FU0hPVDsKKwlyZXR1cm4gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycSgmYnVzLT5mdW5jLT5k ZXYsIGJ1cy0+b2ZfaXJxLCBOVUxMLAorCQkJCQkgd2Z4X3NkaW9faXJxX2hhbmRsZXJfZXh0LCBm bGFncywKKwkJCQkJICJ3ZngiLCBidXMpOworfQorCitzdGF0aWMgaW50IHdmeF9zZGlvX2lycV91 bnN1YnNjcmliZSh2b2lkICpwcml2KQoreworCXN0cnVjdCB3Znhfc2Rpb19wcml2ICpidXMgPSBw cml2OworCWludCByZXQ7CisKKwlpZiAoYnVzLT5vZl9pcnEpCisJCWRldm1fZnJlZV9pcnEoJmJ1 cy0+ZnVuYy0+ZGV2LCBidXMtPm9mX2lycSwgYnVzKTsKKwlzZGlvX2NsYWltX2hvc3QoYnVzLT5m dW5jKTsKKwlyZXQgPSBzZGlvX3JlbGVhc2VfaXJxKGJ1cy0+ZnVuYyk7CisJc2Rpb19yZWxlYXNl X2hvc3QoYnVzLT5mdW5jKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgc2l6ZV90IHdmeF9z ZGlvX2FsaWduX3NpemUodm9pZCAqcHJpdiwgc2l6ZV90IHNpemUpCit7CisJc3RydWN0IHdmeF9z ZGlvX3ByaXYgKmJ1cyA9IHByaXY7CisKKwlyZXR1cm4gc2Rpb19hbGlnbl9zaXplKGJ1cy0+ZnVu Yywgc2l6ZSk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHdidXNfb3BzIHdmeF9zZGlvX2h3 YnVzX29wcyA9IHsKKwkuY29weV9mcm9tX2lvID0gd2Z4X3NkaW9fY29weV9mcm9tX2lvLAorCS5j b3B5X3RvX2lvID0gd2Z4X3NkaW9fY29weV90b19pbywKKwkuaXJxX3N1YnNjcmliZSA9IHdmeF9z ZGlvX2lycV9zdWJzY3JpYmUsCisJLmlycV91bnN1YnNjcmliZSA9IHdmeF9zZGlvX2lycV91bnN1 YnNjcmliZSwKKwkubG9jawkJCT0gd2Z4X3NkaW9fbG9jaywKKwkudW5sb2NrCQkJPSB3Znhfc2Rp b191bmxvY2ssCisJLmFsaWduX3NpemUJCT0gd2Z4X3NkaW9fYWxpZ25fc2l6ZSwKK307CisKK3N0 YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHdmeF9zZGlvX29mX21hdGNoW10gPSB7CisJ eyAuY29tcGF0aWJsZSA9ICJzaWxhYnMsd2Z4LXNkaW8iIH0sCisJeyAuY29tcGF0aWJsZSA9ICJz aWxhYnMsd2YyMDAiIH0sCisJeyB9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHdmeF9z ZGlvX29mX21hdGNoKTsKKworc3RhdGljIGludCB3Znhfc2Rpb19wcm9iZShzdHJ1Y3Qgc2Rpb19m dW5jICpmdW5jLAorCQkJICBjb25zdCBzdHJ1Y3Qgc2Rpb19kZXZpY2VfaWQgKmlkKQoreworCXN0 cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBmdW5jLT5kZXYub2Zfbm9kZTsKKwlzdHJ1Y3Qgd2Z4X3Nk aW9fcHJpdiAqYnVzOworCWludCByZXQ7CisKKwlpZiAoZnVuYy0+bnVtICE9IDEpIHsKKwkJZGV2 X2VycigmZnVuYy0+ZGV2LCAiU0RJTyBmdW5jdGlvbiBudW1iZXIgaXMgJWQgd2hpbGUgaXQgc2hv dWxkIGFsd2F5cyBiZSAxICh1bnN1cHBvcnRlZCBjaGlwPylcbiIsCisJCQlmdW5jLT5udW0pOwor CQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlidXMgPSBkZXZtX2t6YWxsb2MoJmZ1bmMtPmRldiwg c2l6ZW9mKCpidXMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWJ1cykKKwkJcmV0dXJuIC1FTk9NRU07 CisKKwlpZiAoIW5wIHx8ICFvZl9tYXRjaF9ub2RlKHdmeF9zZGlvX29mX21hdGNoLCBucCkpIHsK KwkJZGV2X3dhcm4oJmZ1bmMtPmRldiwgIm5vIGNvbXBhdGlibGUgZGV2aWNlIGZvdW5kIGluIERU XG4iKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJYnVzLT5mdW5jID0gZnVuYzsKKwlidXMt Pm9mX2lycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAwKTsKKwlzZGlvX3NldF9kcnZkYXRh KGZ1bmMsIGJ1cyk7CisJZnVuYy0+Y2FyZC0+cXVpcmtzIHw9IE1NQ19RVUlSS19MRU5JRU5UX0ZO MCB8CisJCQkgICAgICBNTUNfUVVJUktfQkxLU1pfRk9SX0JZVEVfTU9ERSB8CisJCQkgICAgICBN TUNfUVVJUktfQlJPS0VOX0JZVEVfTU9ERV81MTI7CisKKwlzZGlvX2NsYWltX2hvc3QoZnVuYyk7 CisJcmV0ID0gc2Rpb19lbmFibGVfZnVuYyhmdW5jKTsKKwkvKiBCbG9jayBvZiA2NCBieXRlcyBp cyBtb3JlIGVmZmljaWVudCB0aGFuIDUxMkIgZm9yIGZyYW1lIHNpemVzIDwgNGsgKi8KKwlzZGlv X3NldF9ibG9ja19zaXplKGZ1bmMsIDY0KTsKKwlzZGlvX3JlbGVhc2VfaG9zdChmdW5jKTsKKwlp ZiAocmV0KQorCQlnb3RvIGVycjA7CisKKwlidXMtPmNvcmUgPSB3ZnhfaW5pdF9jb21tb24oJmZ1 bmMtPmRldiwgJndmeF9zZGlvX3BkYXRhLAorCQkJCSAgICAmd2Z4X3NkaW9faHdidXNfb3BzLCBi dXMpOworCWlmICghYnVzLT5jb3JlKSB7CisJCXJldCA9IC1FSU87CisJCWdvdG8gZXJyMTsKKwl9 CisKKwlyZXQgPSB3ZnhfcHJvYmUoYnVzLT5jb3JlKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycjE7 CisKKwlyZXR1cm4gMDsKKworZXJyMToKKwlzZGlvX2NsYWltX2hvc3QoZnVuYyk7CisJc2Rpb19k aXNhYmxlX2Z1bmMoZnVuYyk7CisJc2Rpb19yZWxlYXNlX2hvc3QoZnVuYyk7CitlcnIwOgorCXJl dHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHdmeF9zZGlvX3JlbW92ZShzdHJ1Y3Qgc2Rpb19m dW5jICpmdW5jKQoreworCXN0cnVjdCB3Znhfc2Rpb19wcml2ICpidXMgPSBzZGlvX2dldF9kcnZk YXRhKGZ1bmMpOworCisJd2Z4X3JlbGVhc2UoYnVzLT5jb3JlKTsKKwlzZGlvX2NsYWltX2hvc3Qo ZnVuYyk7CisJc2Rpb19kaXNhYmxlX2Z1bmMoZnVuYyk7CisJc2Rpb19yZWxlYXNlX2hvc3QoZnVu Yyk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Rpb19kZXZpY2VfaWQgd2Z4X3NkaW9faWRz W10gPSB7CisJeyBTRElPX0RFVklDRShTRElPX1ZFTkRPUl9JRF9TSUxBQlMsIFNESU9fREVWSUNF X0lEX1NJTEFCU19XRjIwMCkgfSwKKwl7IH0sCit9OworTU9EVUxFX0RFVklDRV9UQUJMRShzZGlv LCB3Znhfc2Rpb19pZHMpOworCitzdHJ1Y3Qgc2Rpb19kcml2ZXIgd2Z4X3NkaW9fZHJpdmVyID0g eworCS5uYW1lID0gIndmeC1zZGlvIiwKKwkuaWRfdGFibGUgPSB3Znhfc2Rpb19pZHMsCisJLnBy b2JlID0gd2Z4X3NkaW9fcHJvYmUsCisJLnJlbW92ZSA9IHdmeF9zZGlvX3JlbW92ZSwKKwkuZHJ2 ID0geworCQkub3duZXIgPSBUSElTX01PRFVMRSwKKwkJLm9mX21hdGNoX3RhYmxlID0gd2Z4X3Nk aW9fb2ZfbWF0Y2gsCisJfQorfTsKLS0gCjIuMzAuMgoK