Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp17448595rwd; Tue, 27 Jun 2023 03:13:42 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6vF/1F7tP83OhXLIbanEdeRnBdawvcKcitMpObkpPT6JR2tT84BU0FHnCcOF2IiKA/CiKl X-Received: by 2002:a05:6870:4155:b0:1a2:8e53:c418 with SMTP id r21-20020a056870415500b001a28e53c418mr27328317oad.57.1687860822160; Tue, 27 Jun 2023 03:13:42 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1687860822; cv=pass; d=google.com; s=arc-20160816; b=hy8gDfKXAuP6JDcNkUTogjWsr4qyh0n0gyyYQrfZJelaZ9PcQ7FEaj6Wf8UF89AviV 7vpsGrahmw81BYum5zyRAO1fS4M8J6N1CaDOkw05onDCOmM7GIzUKm02voqviCYL4ci7 BnyoMu5URm4XercZXo6mTBc+J6n4aue+asjBGsZ6ZLXcqz+okSMyie/KgpwuKNYQYzZ2 O3IOqSDWdZLgqEHRJb1fL/bPBHHiB6GjoQLui6HNM1dQw1/q1oIcLho3iQotij9O3RLy 27bWQ0AS2Tzrj+W6Upo2Uq6CSxXf4abtdg4a6kVbH5ykOUG96jQID+qbfKILmtXCSs70 LyuQ== 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 :content-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature; bh=XjH6ecw54nNPADpQTQCccikqyUdnr+iORaDlcTxgGVw=; fh=r0GOl999s2WU8CKHyVxjMlG0Je+ed6XFCe7yIzsUJXg=; b=SALBbARsYAWCzWlpV9ggbjMjnqTNIipQscsmbs5e4i7tPbqTC9uwAqzDeG4Ft9Bmkm maZHArqT8F+QpXqrBt/6ZSoqCkGg0DxYgchzgBhof1FnnOc+X+FqoxIVJB/e+spNktKR 8znspUMqZoPEW4+1PRZPsPeObQvSR6SxudUXF12fPEtZxTLqRJLp7gHvA0cgTP9hXCOn WH7FjNAIUB5TCX1BxkCHHWTT6hYFC2ktTevd5kTrMR3QzOG0HR1QgFnw801CBlO2peqe LD6sdKIlqbwpP2iVJubjxZF6a9mKy965TwY1wNPuYA5wSbAJFKL9HX6pBayCeNVoH5mX XoZg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@csgroup.eu header.s=selector2 header.b=byCE7ybS; arc=pass (i=1 spf=pass spfdomain=csgroup.eu dkim=pass dkdomain=csgroup.eu dmarc=pass fromdomain=csgroup.eu); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=csgroup.eu Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f8-20020a17090a638800b0025e81e3e0c1si6641388pjj.187.2023.06.27.03.13.25; Tue, 27 Jun 2023 03:13:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@csgroup.eu header.s=selector2 header.b=byCE7ybS; arc=pass (i=1 spf=pass spfdomain=csgroup.eu dkim=pass dkdomain=csgroup.eu dmarc=pass fromdomain=csgroup.eu); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=csgroup.eu Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231923AbjF0KFt (ORCPT + 99 others); Tue, 27 Jun 2023 06:05:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60940 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232284AbjF0KFU (ORCPT ); Tue, 27 Jun 2023 06:05:20 -0400 Received: from FRA01-PR2-obe.outbound.protection.outlook.com (mail-pr2fra01on2042.outbound.protection.outlook.com [40.107.12.42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6746E3AB5; Tue, 27 Jun 2023 03:01:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KXT7Nm7hv5IOBHNrof9EjH65MFsNtFHY/lY3SZinciihZJ3wKv7/wBYp3Vz2KSu03LiKZUgsEpjXhTXJmALrOg0OXe8O2f+6KH7fuivZ7IOWFqq6fQ0FIV+O3fMQRIFJ4lnFUFW6nK8JURTX3JBxSdf2zhe3Wij9Za9ehXUN+lRtvfzk24rV8aY7VziErbFbd+BDJxE796+eCQ6GvOxuwFVbaF0q2gISkzs6p9sJzjqJj4SEi/yf++tpWdZyMUBCtyZpIFydeQaGd+SMHAaPWcO2cpyULH0wsJO7iVLZStH+FWU8qOkb1g/zGYZVjoI3Ir8Bcsol9N0XyVGlPK4cmQ== 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=XjH6ecw54nNPADpQTQCccikqyUdnr+iORaDlcTxgGVw=; b=nfmrG6yjtsV9rQfr+o6+OZIIYOtyEVkVwlU2Vpz9Ag7Y/75lYurwQAVWkocFA2F9JLohDEKBKxj3K05irkMxMyQYH1JmX7+HiZKxAlaQmRLN3UlSz+RMBQj/cUb49jc9j/wyX/d7pvYweMlBEzERg4mbElvE+usCx63/L11J6MXeLZ6WcXtqM4mi45pYZO5/zzPs4w/+SDFXm6USHqg+q5qYCPlqL3yAuOj69TVt9wC4qTbNrZqNPsX1oUuadoOeBqMHbgRyoBws6cIXQc3rDm8TYnGtTG8ekJ4DNk8eTYlzsmdWzy95ccN9Df91BLgVHMhpiWxzY0Os0pWvWRkRVg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=csgroup.eu; dmarc=pass action=none header.from=csgroup.eu; dkim=pass header.d=csgroup.eu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=csgroup.eu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XjH6ecw54nNPADpQTQCccikqyUdnr+iORaDlcTxgGVw=; b=byCE7ybSxBr0rt64357j3TOjJ9XRrU2Vgqv0+A0H62RjZHPXI6plXM9ivQ0Mma16L5X8I8f6uxPUq0UnsdiJFojxdqI/ukHgijSeCnn32Sf1SYFRMeUcRdD5bI98mSBvTya75uTCz4obQ1/DykqNKhEaBRAAjumaLXzIiZHyrZ6ac8mQhS0n+mX0mNyXjfaEMmyqO72O9UZt66sCji6ggJKm5AV5CkOUxMwIo1r/R9kzwMrnxnLujDs4R75aSZS/B0jo3Wo/GtCO/GAiyK66gekhrQMa/TQLRsKMLsgeqhx+wAZbNtcOwlW6Bc4ZhClGA4C2GKZ+oLbK7PdVG6mbXg== Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by PR1P264MB2176.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:1b1::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Tue, 27 Jun 2023 10:01:30 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::802b:33:561c:4217]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::802b:33:561c:4217%4]) with mapi id 15.20.6521.026; Tue, 27 Jun 2023 10:01:30 +0000 From: Christophe Leroy To: Herve Codina , Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jonathan Cameron , Lars-Peter Clausen , Jaroslav Kysela , Takashi Iwai , Kuninori Morimoto , Andy Shevchenko CC: "alsa-devel@alsa-project.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-iio@vger.kernel.org" , Wojciech Ziemba , Thomas Petazzoni , Jonathan Cameron Subject: Re: [PATCH v6 12/13] ASoC: codecs: Add support for the generic IIO auxiliary devices Thread-Topic: [PATCH v6 12/13] ASoC: codecs: Add support for the generic IIO auxiliary devices Thread-Index: AQHZpbD3+gvImvYzqkGFJKb3IsEp9q+ecU2A Date: Tue, 27 Jun 2023 10:01:30 +0000 Message-ID: <29a88094-56c2-5a08-6563-a18d82e535a4@csgroup.eu> References: <20230623085830.749991-1-herve.codina@bootlin.com> <20230623085830.749991-13-herve.codina@bootlin.com> In-Reply-To: <20230623085830.749991-13-herve.codina@bootlin.com> Accept-Language: fr-FR, en-US Content-Language: fr-FR X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=csgroup.eu; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MRZP264MB2988:EE_|PR1P264MB2176:EE_ x-ms-office365-filtering-correlation-id: b9adcb8b-1bbc-4a09-ed7b-08db76f57b06 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: w4KvBWTV9a9fZjWIroWn5gWEFvUzJtugRjo/iLUlC9FeDZ02ZDU7hWyNh6s5Z6iJQCJTEjcg9avpPMQB8Jqu32T8aeFWsfQgO8f9WmDbEApH4at4sE5KKHnXwvy0ErP/cM2hqPiwg7WWGTHrIDrpYtXu1GOAW8dEuKa6Aq5l6u2s+UReZH1vy4iJOryxzttKq/od/ita3SHXP2sFji01QpKKq7ecUW314GQaA0Y5FGqvDHkea8DQ8uQnO4JqDgIKhbcCfITMC6BDCqEQxU9jyLzHeHiNgdhHUgZ8/Kt8DLUKmC5tqar7Ln9a55elo/5ykMenscj6ktAIodAFbdFSgDrKDh7MO7cATT8IVW6S0dh0KMJfBtKtVRxYkmiVeoPR8HCrI3PcnQEgCshE4ijANSvvPLRuel4/vxlBDh2yIZQ/TNBdp3sb/Q16dgPJ43nelIIl3rjgAqum/4YBGLq1TW44cJVHNVyB2rP/sk3Y6tOK5BoyZM5mxB0hG4DGfilP1iV/g3RxG5zbpojsjKQ5zJvOcukBabZ21A1xVBF2oz+6kqvVusEl8kz4Qs6iCQOHHD7mjssQu/Dytsu7FdyaRa126B4e4ZYEsXvSo6AuQ2QwZZlbgeU2jGBfBupS+YWQ1zco5JegPpUgzaKmqu8D1ea8ZsrLolqFeG9BBlKH1ao6yMi+POhWQFaEgJrB8orYwO3YNot2ag7djBgmWp5Enk9lJusUocqN4k7hQLNK85s= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230028)(4636009)(39860400002)(366004)(346002)(376002)(396003)(136003)(451199021)(66574015)(2906002)(30864003)(6486002)(921005)(38100700002)(26005)(83380400001)(122000001)(71200400001)(2616005)(186003)(6506007)(6512007)(41300700001)(110136005)(31696002)(86362001)(54906003)(38070700005)(4326008)(478600001)(316002)(76116006)(66556008)(66946007)(66446008)(66476007)(64756008)(8936002)(8676002)(5660300002)(91956017)(36756003)(31686004)(44832011)(7416002)(41533002)(43740500002)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NWJGb2R0UU1NcXVjVHpJOTN1elg1RFk0TndzS1VPT2FKYWt0eENobWFnclpP?= =?utf-8?B?ZzdxcS9qaEhJdmZQc0djYUtKN0NoWVI1ZFlMSXVveDBpMFdpd3VDNzZDRGE4?= =?utf-8?B?d0VuNWRLWGxydk9zRUlaQ1dzOWwyTTUyVSswbHJvUHFXdDY5OCtUQUNjTzdY?= =?utf-8?B?MDhQQjUrU0kxL29HSEVFaDJjZmNIdEgwUE40K3hhNzBMQURwcElDckIrMWNq?= =?utf-8?B?NU11RTgvRnoycXpaZ0lYQUtXcmVvd1RnOUhhS0Y4SVdZalBENmR3RG8zUG1y?= =?utf-8?B?ZEUvZ2ZsNHJIc3VlcHVUd0hJdXl3L3hCK0h5cVVON3RqRHNEUDVPNmNTY2pu?= =?utf-8?B?WVFMSUU3M1ZTT1ExL3ZIYVN2TWpjbUZLbDFvRGpMZ0lKZUk1OWxHeHZTWExU?= =?utf-8?B?QTRtMGM4TWlOL0pwWVVMQURlT09rbWJWd3RDbm9veEl2L3NVWXdpN3pzYW1I?= =?utf-8?B?OHNkWjhieEhpVmRCVjBFQWtjKzRML2JBRnlZNGJtc0pza3NnY2VsVEwyNWQ0?= =?utf-8?B?Sklaeis0VThrZi8wbDRiQ2crSlhsZmtDVnNGRU1VV295ZWQ1SlVPVHNrRzFD?= =?utf-8?B?TXB0ZG1mMjBuWlJsSDBiK3ljcmFrUnpRaS9HdHFmT2NybVZtQnIyS3hMUHBi?= =?utf-8?B?c3oyQXR5bVdGd3VyMHU5YzNBUU0yaUhRVGRNTmlQVFY1SjB5SzNSelRjRHl1?= =?utf-8?B?czYxRk5ESURVdC9EVXFOWFZPVGVGVmticzQxR25QaTl3RmxTc1h1blc3Mjhk?= =?utf-8?B?b0pQTGZVcUQ0SlNieldxeEZoWFN2QnF4dlI4MDdsZ0ZaSFMrUGYwNFZscUZ1?= =?utf-8?B?U1BFZytEL3MwbFkwOWUzZjF3ZWtGYlI4cUtKNXdXbklZR0IwTDZCajBoRGtp?= =?utf-8?B?eFFGVXpTcGtEN0Y5eFFDSzI0K0ZCVyt5OHQ2TUx6NUdtZm9DKy8rK1oyMW5h?= =?utf-8?B?eENRL2FFdDEvZnh0T1poMGVDR3I0dURjdWFJYzU0Q3F4bWV1VW9NamFMcDZC?= =?utf-8?B?UFBBQWdLWGxTVFY2UUFDRThnK0JWVTlLb1h0NUZkOXN0SkJaUGtpL21ZbmZk?= =?utf-8?B?eGNNS1hYd3MzRG1vdmlrNDhnWFJYUzJkQlJkWDRIMzFjYkF5TlVZUWJWTHAv?= =?utf-8?B?NGJSeC9tbmtmK2lTMXJaTGNuSldxM1Z5bEczVzNqd2lyeTdyZ0M0T1hLZDlC?= =?utf-8?B?N0pFVFU4RjRYcGxTT0NOOVNNKzRLc2l0RTRKZEJXUjZmVEpYRCtpbTRvV1Fp?= =?utf-8?B?VFZDY25ENjYzT3F3TlNXTVIzR2RkaDVhRHZUWG1VVlBQVU90NzExampGOFo5?= =?utf-8?B?aVI1QjBmT3JTVTRMYVAralZCeElSTVRTVWl3WFBZTU1rM2p4VDJ2RUxjSDZU?= =?utf-8?B?TnpHRXo3bDV0eEtVemxQNnRYT3ZoWCtXZXlOYkJFb001WTBPOU54QU84U3VR?= =?utf-8?B?WXczTzFZNVRFdkU5TjltSkkvZ2E1MnRLODE5Z3pzZ3RCLy9UTy9YeWd0aWFD?= =?utf-8?B?QjFHTmMvb0ZKQzRHS0JhMGRqUi9wRkJBQ2dadWNkeUxxZGh6WVlpdnZRSyti?= =?utf-8?B?bUkxcWJGZHJuRlIvMVZrR0lNRGxmeGJGWTkvQVRpZjhub0pjTi9vT3o5SFc3?= =?utf-8?B?K3djQ2pzN1hHZER1eXZyWDUrOHppZHgxUzVTL09HaEZFK05PeFQ0elBIUFZU?= =?utf-8?B?Q1paMjluaUJRNzg4L3Y4UlQ3dE5FN29TRk1wZHNsZHlENG5nakpJSFFySlAv?= =?utf-8?B?TDFGZVVaV1R1WkxXR1lxSXRLOUtLcEg2RHcrMGswK2phdStDYW1BMnhBWm1w?= =?utf-8?B?dGIvYUR2aFk1MGFITUY5Y0w0bnNFdmUzSjhNV2V4QXp6dDMwRlpHMjlYVU10?= =?utf-8?B?MXg0MlJVWGxGK1R6blYyK2tLaVNxMjZxa1NwaktJbVhmNE03eE9CMGcvR1BD?= =?utf-8?B?ejhoVmowYkMrSmZqYnlMR3JRenArM2dybFpweVFqMVBrV3VxdVFoLzUvaTBi?= =?utf-8?B?bEVxT1VOdVgxTEM0TlpmTHEzbFY0WnpoSWZKa1ZSeDlUdFJxbkhORUVRUytm?= =?utf-8?B?MVZDV3dLZTQ3V1lzdkZrSnlFRWk4QWovSlc1bWt1TVZmbUFHK1diS04zNXBD?= =?utf-8?Q?7U9vZjWmGF94DK/eCjuQ9Zq9R?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: b9adcb8b-1bbc-4a09-ed7b-08db76f57b06 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jun 2023 10:01:30.5886 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: hYkJyy6tsR9sgHB6lt9Nn94FCE+wiWHxfEM64+zoxYOB3jIf2sMxvSnZadywR22VPAYBIydRVTeKVVt3AlZytuo+n33irieCxI61zZxDeMU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR1P264MB2176 X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCkxlIDIzLzA2LzIwMjMgw6AgMTA6NTgsIEhlcnZlIENvZGluYSBhIMOpY3JpdMKgOg0KPiBJ bmR1c3RyaWFsIEkvTyBkZXZpY2VzIGNhbiBiZSBwcmVzZW50IGluIHRoZSBhdWRpbyBwYXRoLg0K PiBUaGVzZSBkZXZpY2VzIG5lZWRzIHRvIGJlIHVzZWQgYXMgYXVkaW8gY29tcG9uZW50cyBpbiBv cmRlciB0byBiZQ0KPiBmdWxseSBpbnRlZ3JhdGVkIGluIHRoZSBhdWRpbyBwYXRoLg0KPiANCj4g VGhpcyBzdXBwb3J0IGFsbG93cyB0byBjb25zaWRlciB0aGVzZSBJbmR1c3RyaWFsIEkvTyBkZXZp Y2VzIGFzDQo+IGF1eGlsaWFyeSBhdWRpbyBkZXZpY2VzIGFuZCBhbGxvd3Mgb25lIHRvIGNvbnRy b2wgdGhlbSB1c2luZyBtaXhlcg0KPiBjb250cm9scy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEhl cnZlIENvZGluYSA8aGVydmUuY29kaW5hQGJvb3RsaW4uY29tPg0KPiBSZXZpZXdlZC1ieTogSm9u YXRoYW4gQ2FtZXJvbiA8Sm9uYXRoYW4uQ2FtZXJvbkBodWF3ZWkuY29tPg0KDQpSZXZpZXdlZC1i eTogQ2hyaXN0b3BoZSBMZXJveSA8Y2hyaXN0b3BoZS5sZXJveUBjc2dyb3VwLmV1Pg0KDQo+IC0t LQ0KPiAgIHNvdW5kL3NvYy9jb2RlY3MvS2NvbmZpZyAgICAgICAgIHwgIDEyICsrDQo+ICAgc291 bmQvc29jL2NvZGVjcy9NYWtlZmlsZSAgICAgICAgfCAgIDIgKw0KPiAgIHNvdW5kL3NvYy9jb2Rl Y3MvYXVkaW8taWlvLWF1eC5jIHwgMzQ0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysN Cj4gICAzIGZpbGVzIGNoYW5nZWQsIDM1OCBpbnNlcnRpb25zKCspDQo+ICAgY3JlYXRlIG1vZGUg MTAwNjQ0IHNvdW5kL3NvYy9jb2RlY3MvYXVkaW8taWlvLWF1eC5jDQo+IA0KPiBkaWZmIC0tZ2l0 IGEvc291bmQvc29jL2NvZGVjcy9LY29uZmlnIGIvc291bmQvc29jL2NvZGVjcy9LY29uZmlnDQo+ IGluZGV4IDQ0ODA2YmZlOGVlNS4uOTJiN2M0MTdmMWIyIDEwMDY0NA0KPiAtLS0gYS9zb3VuZC9z b2MvY29kZWNzL0tjb25maWcNCj4gKysrIGIvc291bmQvc29jL2NvZGVjcy9LY29uZmlnDQo+IEBA IC01Myw2ICs1Myw3IEBAIGNvbmZpZyBTTkRfU09DX0FMTF9DT0RFQ1MNCj4gICAJaW1wbHkgU05E X1NPQ19BSzU1NTgNCj4gICAJaW1wbHkgU05EX1NPQ19BTEM1NjIzDQo+ICAgCWltcGx5IFNORF9T T0NfQUxDNTYzMg0KPiArCWltcGx5IFNORF9TT0NfQVVESU9fSUlPX0FVWA0KPiAgIAlpbXBseSBT TkRfU09DX0FXODczOA0KPiAgIAlpbXBseSBTTkRfU09DX0FXODgzOTUNCj4gICAJaW1wbHkgU05E X1NPQ19CVF9TQ08NCj4gQEAgLTYwOCw2ICs2MDksMTcgQEAgY29uZmlnIFNORF9TT0NfQUxDNTYz Mg0KPiAgIAl0cmlzdGF0ZQ0KPiAgIAlkZXBlbmRzIG9uIEkyQw0KPiAgIA0KPiArY29uZmlnIFNO RF9TT0NfQVVESU9fSUlPX0FVWA0KPiArCXRyaXN0YXRlICJBdWRpbyBJSU8gQXV4aWxpYXJ5IGRl dmljZSINCj4gKwlkZXBlbmRzIG9uIElJTw0KPiArCWhlbHANCj4gKwkgIEVuYWJsZSBzdXBwb3J0 IGZvciBJbmR1c3RyaWFsIEkvTyBkZXZpY2VzIGFzIGF1ZGlvIGF1eGlsaWFyeSBkZXZpY2VzLg0K PiArCSAgVGhpcyBhbGxvd3MgdG8gaGF2ZSBhbiBJSU8gZGV2aWNlIHByZXNlbnQgaW4gdGhlIGF1 ZGlvIHBhdGggYW5kDQo+ICsJICBjb250cm9sbGVkIHVzaW5nIG1peGVyIGNvbnRyb2xzLg0KPiAr DQo+ICsJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJl OiB0aGUgbW9kdWxlDQo+ICsJICB3aWxsIGJlIGNhbGxlZCBzbmQtc29jLWF1ZGlvLWlpby1hdXgu DQo+ICsNCj4gICBjb25maWcgU05EX1NPQ19BVzg3MzgNCj4gICAJdHJpc3RhdGUgIkF3aW5pYyBB Vzg3MzggQXVkaW8gQW1wbGlmaWVyIg0KPiAgIAlzZWxlY3QgR1BJT0xJQg0KPiBkaWZmIC0tZ2l0 IGEvc291bmQvc29jL2NvZGVjcy9NYWtlZmlsZSBiL3NvdW5kL3NvYy9jb2RlY3MvTWFrZWZpbGUN Cj4gaW5kZXggMmM0NWMyZjk3ZTRlLi5mMjgyOGQzNjE2YzUgMTAwNjQ0DQo+IC0tLSBhL3NvdW5k L3NvYy9jb2RlY3MvTWFrZWZpbGUNCj4gKysrIGIvc291bmQvc29jL2NvZGVjcy9NYWtlZmlsZQ0K PiBAQCAtNDUsNiArNDUsNyBAQCBzbmQtc29jLWFrNDY3MS1vYmpzIDo9IGFrNDY3MS5vDQo+ICAg c25kLXNvYy1hazUzODYtb2JqcyA6PSBhazUzODYubw0KPiAgIHNuZC1zb2MtYWs1NTU4LW9ianMg Oj0gYWs1NTU4Lm8NCj4gICBzbmQtc29jLWFyaXpvbmEtb2JqcyA6PSBhcml6b25hLm8gYXJpem9u YS1qYWNrLm8NCj4gK3NuZC1zb2MtYXVkaW8taWlvLWF1eC1vYmpzIDo9IGF1ZGlvLWlpby1hdXgu bw0KPiAgIHNuZC1zb2MtYXc4NzM4LW9ianMgOj0gYXc4NzM4Lm8NCj4gICBzbmQtc29jLWF3ODgz OTUtbGliLW9ianMgOj0gYXc4ODM5NS9hdzg4Mzk1X2xpYi5vDQo+ICAgc25kLXNvYy1hdzg4Mzk1 LW9ianMgOj0gYXc4ODM5NS9hdzg4Mzk1Lm8gXA0KPiBAQCAtNDIxLDYgKzQyMiw3IEBAIG9iai0k KENPTkZJR19TTkRfU09DX0FLNTU1OCkJKz0gc25kLXNvYy1hazU1NTgubw0KPiAgIG9iai0kKENP TkZJR19TTkRfU09DX0FMQzU2MjMpICAgICs9IHNuZC1zb2MtYWxjNTYyMy5vDQo+ICAgb2JqLSQo Q09ORklHX1NORF9TT0NfQUxDNTYzMikJKz0gc25kLXNvYy1hbGM1NjMyLm8NCj4gICBvYmotJChD T05GSUdfU05EX1NPQ19BUklaT05BKQkrPSBzbmQtc29jLWFyaXpvbmEubw0KPiArb2JqLSQoQ09O RklHX1NORF9TT0NfQVVESU9fSUlPX0FVWCkJKz0gc25kLXNvYy1hdWRpby1paW8tYXV4Lm8NCj4g ICBvYmotJChDT05GSUdfU05EX1NPQ19BVzg3MzgpCSs9IHNuZC1zb2MtYXc4NzM4Lm8NCj4gICBv YmotJChDT05GSUdfU05EX1NPQ19BVzg4Mzk1X0xJQikgKz0gc25kLXNvYy1hdzg4Mzk1LWxpYi5v DQo+ICAgb2JqLSQoQ09ORklHX1NORF9TT0NfQVc4ODM5NSkJKz1zbmQtc29jLWF3ODgzOTUubw0K PiBkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9hdWRpby1paW8tYXV4LmMgYi9zb3VuZC9z b2MvY29kZWNzL2F1ZGlvLWlpby1hdXguYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl eCAwMDAwMDAwMDAwMDAuLmE4YmYxNDIzOWJkNw0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3Nv dW5kL3NvYy9jb2RlY3MvYXVkaW8taWlvLWF1eC5jDQo+IEBAIC0wLDAgKzEsMzQ0IEBADQo+ICsv LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5DQo+ICsvLw0KPiArLy8gQUxT QSBTb0MgZ2x1ZSB0byB1c2UgSUlPIGRldmljZXMgYXMgYXVkaW8gY29tcG9uZW50cw0KPiArLy8N Cj4gKy8vIENvcHlyaWdodCAyMDIzIENTIEdST1VQIEZyYW5jZQ0KPiArLy8NCj4gKy8vIEF1dGhv cjogSGVydmUgQ29kaW5hIDxoZXJ2ZS5jb2RpbmFAYm9vdGxpbi5jb20+DQo+ICsNCj4gKyNpbmNs dWRlIDxsaW51eC9paW8vY29uc3VtZXIuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9taW5tYXguaD4N Cj4gKyNpbmNsdWRlIDxsaW51eC9tb2RfZGV2aWNldGFibGUuaD4NCj4gKyNpbmNsdWRlIDxsaW51 eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQo+ICsjaW5j bHVkZSA8bGludXgvc3RyaW5nX2hlbHBlcnMuaD4NCj4gKw0KPiArI2luY2x1ZGUgPHNvdW5kL3Nv Yy5oPg0KPiArI2luY2x1ZGUgPHNvdW5kL3Rsdi5oPg0KPiArDQo+ICtzdHJ1Y3QgYXVkaW9faWlv X2F1eF9jaGFuIHsNCj4gKwlzdHJ1Y3QgaWlvX2NoYW5uZWwgKmlpb19jaGFuOw0KPiArCWNvbnN0 IGNoYXIgKm5hbWU7DQo+ICsJaW50IG1heDsNCj4gKwlpbnQgbWluOw0KPiArCWJvb2wgaXNfaW52 ZXJ0X3JhbmdlOw0KPiArfTsNCj4gKw0KPiArc3RydWN0IGF1ZGlvX2lpb19hdXggew0KPiArCXN0 cnVjdCBkZXZpY2UgKmRldjsNCj4gKwlzdHJ1Y3QgYXVkaW9faWlvX2F1eF9jaGFuICpjaGFuczsN Cj4gKwl1bnNpZ25lZCBpbnQgbnVtX2NoYW5zOw0KPiArfTsNCj4gKw0KPiArc3RhdGljIGludCBh dWRpb19paW9fYXV4X2luZm9fdm9sc3coc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsDQo+ ICsJCQkJICAgIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pDQo+ICt7DQo+ICsJc3Ry dWN0IGF1ZGlvX2lpb19hdXhfY2hhbiAqY2hhbiA9IChzdHJ1Y3QgYXVkaW9faWlvX2F1eF9jaGFu ICopa2NvbnRyb2wtPnByaXZhdGVfdmFsdWU7DQo+ICsNCj4gKwl1aW5mby0+Y291bnQgPSAxOw0K PiArCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1pbiA9IDA7DQo+ICsJdWluZm8tPnZhbHVlLmludGVn ZXIubWF4ID0gY2hhbi0+bWF4IC0gY2hhbi0+bWluOw0KPiArCXVpbmZvLT50eXBlID0gKHVpbmZv LT52YWx1ZS5pbnRlZ2VyLm1heCA9PSAxKSA/DQo+ICsJCQlTTkRSVl9DVExfRUxFTV9UWVBFX0JP T0xFQU4gOiBTTkRSVl9DVExfRUxFTV9UWVBFX0lOVEVHRVI7DQo+ICsJcmV0dXJuIDA7DQo+ICt9 DQo+ICsNCj4gK3N0YXRpYyBpbnQgYXVkaW9faWlvX2F1eF9nZXRfdm9sc3coc3RydWN0IHNuZF9r Y29udHJvbCAqa2NvbnRyb2wsDQo+ICsJCQkJICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAq dWNvbnRyb2wpDQo+ICt7DQo+ICsJc3RydWN0IGF1ZGlvX2lpb19hdXhfY2hhbiAqY2hhbiA9IChz dHJ1Y3QgYXVkaW9faWlvX2F1eF9jaGFuICopa2NvbnRyb2wtPnByaXZhdGVfdmFsdWU7DQo+ICsJ aW50IG1heCA9IGNoYW4tPm1heDsNCj4gKwlpbnQgbWluID0gY2hhbi0+bWluOw0KPiArCWJvb2wg aW52ZXJ0X3JhbmdlID0gY2hhbi0+aXNfaW52ZXJ0X3JhbmdlOw0KPiArCWludCByZXQ7DQo+ICsJ aW50IHZhbDsNCj4gKw0KPiArCXJldCA9IGlpb19yZWFkX2NoYW5uZWxfcmF3KGNoYW4tPmlpb19j aGFuLCAmdmFsKTsNCj4gKwlpZiAocmV0IDwgMCkNCj4gKwkJcmV0dXJuIHJldDsNCj4gKw0KPiAr CXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gdmFsIC0gbWluOw0KPiArCWlmIChp bnZlcnRfcmFuZ2UpDQo+ICsJCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gbWF4 IC0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07DQo+ICsNCj4gKwlyZXR1cm4gMDsN Cj4gK30NCj4gKw0KPiArc3RhdGljIGludCBhdWRpb19paW9fYXV4X3B1dF92b2xzdyhzdHJ1Y3Qg c25kX2tjb250cm9sICprY29udHJvbCwNCj4gKwkJCQkgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3Zh bHVlICp1Y29udHJvbCkNCj4gK3sNCj4gKwlzdHJ1Y3QgYXVkaW9faWlvX2F1eF9jaGFuICpjaGFu ID0gKHN0cnVjdCBhdWRpb19paW9fYXV4X2NoYW4gKilrY29udHJvbC0+cHJpdmF0ZV92YWx1ZTsN Cj4gKwlpbnQgbWF4ID0gY2hhbi0+bWF4Ow0KPiArCWludCBtaW4gPSBjaGFuLT5taW47DQo+ICsJ Ym9vbCBpbnZlcnRfcmFuZ2UgPSBjaGFuLT5pc19pbnZlcnRfcmFuZ2U7DQo+ICsJaW50IHZhbDsN Cj4gKwlpbnQgcmV0Ow0KPiArCWludCB0bXA7DQo+ICsNCj4gKwl2YWwgPSB1Y29udHJvbC0+dmFs dWUuaW50ZWdlci52YWx1ZVswXTsNCj4gKwlpZiAodmFsIDwgMCkNCj4gKwkJcmV0dXJuIC1FSU5W QUw7DQo+ICsJaWYgKHZhbCA+IG1heCAtIG1pbikNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ICsN Cj4gKwl2YWwgPSB2YWwgKyBtaW47DQo+ICsJaWYgKGludmVydF9yYW5nZSkNCj4gKwkJdmFsID0g bWF4IC0gdmFsOw0KPiArDQo+ICsJcmV0ID0gaWlvX3JlYWRfY2hhbm5lbF9yYXcoY2hhbi0+aWlv X2NoYW4sICZ0bXApOw0KPiArCWlmIChyZXQgPCAwKQ0KPiArCQlyZXR1cm4gcmV0Ow0KPiArDQo+ ICsJaWYgKHRtcCA9PSB2YWwpDQo+ICsJCXJldHVybiAwOw0KPiArDQo+ICsJcmV0ID0gaWlvX3dy aXRlX2NoYW5uZWxfcmF3KGNoYW4tPmlpb19jaGFuLCB2YWwpOw0KPiArCWlmIChyZXQpDQo+ICsJ CXJldHVybiByZXQ7DQo+ICsNCj4gKwlyZXR1cm4gMTsgLyogVGhlIHZhbHVlIGNoYW5nZWQgKi8N Cj4gK30NCj4gKw0KPiArc3RhdGljIGludCBhdWRpb19paW9fYXV4X2FkZF9jb250cm9scyhzdHJ1 Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCwNCj4gKwkJCQkgICAgICBzdHJ1Y3QgYXVk aW9faWlvX2F1eF9jaGFuICpjaGFuKQ0KPiArew0KPiArCXN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3 IGNvbnRyb2wgPSB7DQo+ICsJCS5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLA0K PiArCQkubmFtZSA9IGNoYW4tPm5hbWUsDQo+ICsJCS5pbmZvID0gYXVkaW9faWlvX2F1eF9pbmZv X3ZvbHN3LA0KPiArCQkuZ2V0ID0gYXVkaW9faWlvX2F1eF9nZXRfdm9sc3csDQo+ICsJCS5wdXQg PSBhdWRpb19paW9fYXV4X3B1dF92b2xzdywNCj4gKwkJLnByaXZhdGVfdmFsdWUgPSAodW5zaWdu ZWQgbG9uZyljaGFuLA0KPiArCX07DQo+ICsNCj4gKwlyZXR1cm4gc25kX3NvY19hZGRfY29tcG9u ZW50X2NvbnRyb2xzKGNvbXBvbmVudCwgJmNvbnRyb2wsIDEpOw0KPiArfQ0KPiArDQo+ICsvKg0K PiArICogVGhlc2UgZGF0YSBjb3VsZCBiZSBvbiBzdGFjayBidXQgdGhleSBhcmUgcHJldHR5IGJp Zy4NCj4gKyAqIEFzIEFTb0MgaW50ZXJuYWxseSBjb3B5IHRoZW0gYW5kIHByb3RlY3QgdGhlbSBh Z2FpbnN0IGNvbmN1cnJlbnQgYWNjZXNzZXMNCj4gKyAqIChzbmRfc29jX2JpbmRfY2FyZCgpIHBy b3RlY3RzIHVzaW5nIGNsaWVudF9tdXRleCksIGtlZXAgdGhlbSBpbiB0aGUgZ2xvYmFsDQo+ICsg KiBkYXRhIGFyZWEuDQo+ICsgKi8NCj4gK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdl dCB3aWRnZXRzWzNdOw0KPiArc3RhdGljIHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgcm91dGVz WzJdOw0KPiArDQo+ICsvKiBCZSBzdXJlIHNpemVzIGFyZSBjb3JyZWN0IChuZWVkIDMgd2lkZ2V0 cyBhbmQgMiByb3V0ZXMpICovDQo+ICtzdGF0aWNfYXNzZXJ0KEFSUkFZX1NJWkUod2lkZ2V0cykg Pj0gMywgIjMgd2lkZ2V0cyBhcmUgbmVlZGVkIik7DQo+ICtzdGF0aWNfYXNzZXJ0KEFSUkFZX1NJ WkUocm91dGVzKSA+PSAyLCAiMiByb3V0ZXMgYXJlIG5lZWRlZCIpOw0KPiArDQo+ICtzdGF0aWMg aW50IGF1ZGlvX2lpb19hdXhfYWRkX2RhcG1zKHN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAqY29t cG9uZW50LA0KPiArCQkJCSAgIHN0cnVjdCBhdWRpb19paW9fYXV4X2NoYW4gKmNoYW4pDQo+ICt7 DQo+ICsJc3RydWN0IHNuZF9zb2NfZGFwbV9jb250ZXh0ICpkYXBtID0gc25kX3NvY19jb21wb25l bnRfZ2V0X2RhcG0oY29tcG9uZW50KTsNCj4gKwljaGFyICpvdXRwdXRfbmFtZTsNCj4gKwljaGFy ICppbnB1dF9uYW1lOw0KPiArCWNoYXIgKnBnYV9uYW1lOw0KPiArCWludCByZXQ7DQo+ICsNCj4g KwlpbnB1dF9uYW1lID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsICIlcyBJTiIsIGNoYW4tPm5hbWUp Ow0KPiArCWlmICghaW5wdXRfbmFtZSkNCj4gKwkJcmV0dXJuIC1FTk9NRU07DQo+ICsNCj4gKwlv dXRwdXRfbmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCAiJXMgT1VUIiwgY2hhbi0+bmFtZSk7 DQo+ICsJaWYgKCFvdXRwdXRfbmFtZSkgew0KPiArCQlyZXQgPSAtRU5PTUVNOw0KPiArCQlnb3Rv IG91dF9mcmVlX2lucHV0X25hbWU7DQo+ICsJfQ0KPiArDQo+ICsJcGdhX25hbWUgPSBrYXNwcmlu dGYoR0ZQX0tFUk5FTCwgIiVzIFBHQSIsIGNoYW4tPm5hbWUpOw0KPiArCWlmICghcGdhX25hbWUp IHsNCj4gKwkJcmV0ID0gLUVOT01FTTsNCj4gKwkJZ290byBvdXRfZnJlZV9vdXRwdXRfbmFtZTsN Cj4gKwl9DQo+ICsNCj4gKwl3aWRnZXRzWzBdID0gU05EX1NPQ19EQVBNX0lOUFVUKGlucHV0X25h bWUpOw0KPiArCXdpZGdldHNbMV0gPSBTTkRfU09DX0RBUE1fT1VUUFVUKG91dHB1dF9uYW1lKTsN Cj4gKwl3aWRnZXRzWzJdID0gU05EX1NPQ19EQVBNX1BHQShwZ2FfbmFtZSwgU05EX1NPQ19OT1BN LCAwLCAwLCBOVUxMLCAwKTsNCj4gKwlyZXQgPSBzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGRh cG0sIHdpZGdldHMsIDMpOw0KPiArCWlmIChyZXQpDQo+ICsJCWdvdG8gb3V0X2ZyZWVfcGdhX25h bWU7DQo+ICsNCj4gKwlyb3V0ZXNbMF0uc2luayA9IHBnYV9uYW1lOw0KPiArCXJvdXRlc1swXS5j b250cm9sID0gTlVMTDsNCj4gKwlyb3V0ZXNbMF0uc291cmNlID0gaW5wdXRfbmFtZTsNCj4gKwly b3V0ZXNbMV0uc2luayA9IG91dHB1dF9uYW1lOw0KPiArCXJvdXRlc1sxXS5jb250cm9sID0gTlVM TDsNCj4gKwlyb3V0ZXNbMV0uc291cmNlID0gcGdhX25hbWU7DQo+ICsJcmV0ID0gc25kX3NvY19k YXBtX2FkZF9yb3V0ZXMoZGFwbSwgcm91dGVzLCAyKTsNCj4gKw0KPiArCS8qIEFsbG9jYXRlZCBu YW1lcyBhcmUgbm8gbW9yZSBuZWVkZWQgKGR1cGxpY2F0ZWQgaW4gQVNvQyBpbnRlcm5hbHMpICov DQo+ICsNCj4gK291dF9mcmVlX3BnYV9uYW1lOg0KPiArCWtmcmVlKHBnYV9uYW1lKTsNCj4gK291 dF9mcmVlX291dHB1dF9uYW1lOg0KPiArCWtmcmVlKG91dHB1dF9uYW1lKTsNCj4gK291dF9mcmVl X2lucHV0X25hbWU6DQo+ICsJa2ZyZWUoaW5wdXRfbmFtZSk7DQo+ICsJcmV0dXJuIHJldDsNCj4g K30NCj4gKw0KPiArc3RhdGljIGludCBhdWRpb19paW9fYXV4X2NvbXBvbmVudF9wcm9iZShzdHJ1 Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCkNCj4gK3sNCj4gKwlzdHJ1Y3QgYXVkaW9f aWlvX2F1eCAqaWlvX2F1eCA9IHNuZF9zb2NfY29tcG9uZW50X2dldF9kcnZkYXRhKGNvbXBvbmVu dCk7DQo+ICsJc3RydWN0IGF1ZGlvX2lpb19hdXhfY2hhbiAqY2hhbjsNCj4gKwlpbnQgcmV0Ow0K PiArCWludCBpOw0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IGlpb19hdXgtPm51bV9jaGFuczsg aSsrKSB7DQo+ICsJCWNoYW4gPSBpaW9fYXV4LT5jaGFucyArIGk7DQo+ICsNCj4gKwkJcmV0ID0g aWlvX3JlYWRfbWF4X2NoYW5uZWxfcmF3KGNoYW4tPmlpb19jaGFuLCAmY2hhbi0+bWF4KTsNCj4g KwkJaWYgKHJldCkNCj4gKwkJCXJldHVybiBkZXZfZXJyX3Byb2JlKGNvbXBvbmVudC0+ZGV2LCBy ZXQsDQo+ICsJCQkJCSAgICAgImNoYW5bJWRdICVzOiBDYW5ub3QgZ2V0IG1heCByYXcgdmFsdWVc biIsDQo+ICsJCQkJCSAgICAgaSwgY2hhbi0+bmFtZSk7DQo+ICsNCj4gKwkJcmV0ID0gaWlvX3Jl YWRfbWluX2NoYW5uZWxfcmF3KGNoYW4tPmlpb19jaGFuLCAmY2hhbi0+bWluKTsNCj4gKwkJaWYg KHJldCkNCj4gKwkJCXJldHVybiBkZXZfZXJyX3Byb2JlKGNvbXBvbmVudC0+ZGV2LCByZXQsDQo+ ICsJCQkJCSAgICAgImNoYW5bJWRdICVzOiBDYW5ub3QgZ2V0IG1pbiByYXcgdmFsdWVcbiIsDQo+ ICsJCQkJCSAgICAgaSwgY2hhbi0+bmFtZSk7DQo+ICsNCj4gKwkJaWYgKGNoYW4tPm1pbiA+IGNo YW4tPm1heCkgew0KPiArCQkJLyoNCj4gKwkJCSAqIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiBi dXQgdG8gYXZvaWQgYW55IGNoZWNrDQo+ICsJCQkgKiBsYXRlciwganVzdCBzd2FwIHZhbHVlcyBo ZXJlIHRvIGVuc3VyZSB0aGF0IHRoZQ0KPiArCQkJICogbWluaW11bSB2YWx1ZSBpcyBsb3dlciB0 aGFuIHRoZSBtYXhpbXVtIHZhbHVlLg0KPiArCQkJICovDQo+ICsJCQlkZXZfZGJnKGNvbXBvbmVu dC0+ZGV2LCAiY2hhblslZF0gJXM6IFN3YXAgbWluIGFuZCBtYXhcbiIsDQo+ICsJCQkJaSwgY2hh bi0+bmFtZSk7DQo+ICsJCQlzd2FwKGNoYW4tPm1pbiwgY2hhbi0+bWF4KTsNCj4gKwkJfQ0KPiAr DQo+ICsJCS8qIFNldCBpbml0aWFsIHZhbHVlICovDQo+ICsJCXJldCA9IGlpb193cml0ZV9jaGFu bmVsX3JhdyhjaGFuLT5paW9fY2hhbiwNCj4gKwkJCQkJICAgIGNoYW4tPmlzX2ludmVydF9yYW5n ZSA/IGNoYW4tPm1heCA6IGNoYW4tPm1pbik7DQo+ICsJCWlmIChyZXQpDQo+ICsJCQlyZXR1cm4g ZGV2X2Vycl9wcm9iZShjb21wb25lbnQtPmRldiwgcmV0LA0KPiArCQkJCQkgICAgICJjaGFuWyVk XSAlczogQ2Fubm90IHNldCBpbml0aWFsIHZhbHVlXG4iLA0KPiArCQkJCQkgICAgIGksIGNoYW4t Pm5hbWUpOw0KPiArDQo+ICsJCXJldCA9IGF1ZGlvX2lpb19hdXhfYWRkX2NvbnRyb2xzKGNvbXBv bmVudCwgY2hhbik7DQo+ICsJCWlmIChyZXQpDQo+ICsJCQlyZXR1cm4gcmV0Ow0KPiArDQo+ICsJ CXJldCA9IGF1ZGlvX2lpb19hdXhfYWRkX2RhcG1zKGNvbXBvbmVudCwgY2hhbik7DQo+ICsJCWlm IChyZXQpDQo+ICsJCQlyZXR1cm4gcmV0Ow0KPiArDQo+ICsJCWRldl9kYmcoY29tcG9uZW50LT5k ZXYsICJjaGFuWyVkXTogQWRkZWQgJXMgKG1pbj0lZCwgbWF4PSVkLCBpbnZlcnQ9JXMpXG4iLA0K PiArCQkJaSwgY2hhbi0+bmFtZSwgY2hhbi0+bWluLCBjaGFuLT5tYXgsDQo+ICsJCQlzdHJfb25f b2ZmKGNoYW4tPmlzX2ludmVydF9yYW5nZSkpOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiAwOw0K PiArfQ0KPiArDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfY29tcG9uZW50X2RyaXZl ciBhdWRpb19paW9fYXV4X2NvbXBvbmVudF9kcml2ZXIgPSB7DQo+ICsJLnByb2JlID0gYXVkaW9f aWlvX2F1eF9jb21wb25lbnRfcHJvYmUsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgaW50IGF1ZGlv X2lpb19hdXhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gK3sNCj4gKwlz dHJ1Y3QgYXVkaW9faWlvX2F1eF9jaGFuICppaW9fYXV4X2NoYW47DQo+ICsJc3RydWN0IGRldmlj ZSAqZGV2ID0gJnBkZXYtPmRldjsNCj4gKwlzdHJ1Y3QgYXVkaW9faWlvX2F1eCAqaWlvX2F1eDsN Cj4gKwljb25zdCBjaGFyICoqbmFtZXM7DQo+ICsJdTMyICppbnZlcnRfcmFuZ2VzOw0KPiArCWlu dCBjb3VudDsNCj4gKwlpbnQgcmV0Ow0KPiArCWludCBpOw0KPiArDQo+ICsJaWlvX2F1eCA9IGRl dm1fa3phbGxvYyhkZXYsIHNpemVvZigqaWlvX2F1eCksIEdGUF9LRVJORUwpOw0KPiArCWlmICgh aWlvX2F1eCkNCj4gKwkJcmV0dXJuIC1FTk9NRU07DQo+ICsNCj4gKwlpaW9fYXV4LT5kZXYgPSBk ZXY7DQo+ICsNCj4gKwljb3VudCA9IGRldmljZV9wcm9wZXJ0eV9zdHJpbmdfYXJyYXlfY291bnQo ZGV2LCAiaW8tY2hhbm5lbC1uYW1lcyIpOw0KPiArCWlmIChjb3VudCA8IDApDQo+ICsJCXJldHVy biBkZXZfZXJyX3Byb2JlKGRldiwgY291bnQsICJmYWlsZWQgdG8gY291bnQgaW8tY2hhbm5lbC1u YW1lc1xuIik7DQo+ICsNCj4gKwlpaW9fYXV4LT5udW1fY2hhbnMgPSBjb3VudDsNCj4gKw0KPiAr CWlpb19hdXgtPmNoYW5zID0gZGV2bV9rbWFsbG9jX2FycmF5KGRldiwgaWlvX2F1eC0+bnVtX2No YW5zLA0KPiArCQkJCQkgICAgc2l6ZW9mKCppaW9fYXV4LT5jaGFucyksIEdGUF9LRVJORUwpOw0K PiArCWlmICghaWlvX2F1eC0+Y2hhbnMpDQo+ICsJCXJldHVybiAtRU5PTUVNOw0KPiArDQo+ICsJ bmFtZXMgPSBrY2FsbG9jKGlpb19hdXgtPm51bV9jaGFucywgc2l6ZW9mKCpuYW1lcyksIEdGUF9L RVJORUwpOw0KPiArCWlmICghbmFtZXMpDQo+ICsJCXJldHVybiAtRU5PTUVNOw0KPiArDQo+ICsJ aW52ZXJ0X3JhbmdlcyA9IGtjYWxsb2MoaWlvX2F1eC0+bnVtX2NoYW5zLCBzaXplb2YoKmludmVy dF9yYW5nZXMpLCBHRlBfS0VSTkVMKTsNCj4gKwlpZiAoIWludmVydF9yYW5nZXMpIHsNCj4gKwkJ cmV0ID0gLUVOT01FTTsNCj4gKwkJZ290byBvdXRfZnJlZV9uYW1lczsNCj4gKwl9DQo+ICsNCj4g KwlyZXQgPSBkZXZpY2VfcHJvcGVydHlfcmVhZF9zdHJpbmdfYXJyYXkoZGV2LCAiaW8tY2hhbm5l bC1uYW1lcyIsDQo+ICsJCQkJCQluYW1lcywgaWlvX2F1eC0+bnVtX2NoYW5zKTsNCj4gKwlpZiAo cmV0IDwgMCkgew0KPiArCQlkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiZmFpbGVkIHRvIHJlYWQg aW8tY2hhbm5lbC1uYW1lc1xuIik7DQo+ICsJCWdvdG8gb3V0X2ZyZWVfaW52ZXJ0X3JhbmdlczsN Cj4gKwl9DQo+ICsNCj4gKwkvKg0KPiArCSAqIHNuZC1jb250cm9sLWludmVydC1yYW5nZSBpcyBv cHRpb25hbCBhbmQgY2FuIGNvbnRhaW4gZmV3ZXIgaXRlbXMNCj4gKwkgKiB0aGFuIHRoZSBudW1i ZXIgb2YgY2hhbm5lbHMuIFVuc2V0IHZhbHVlcyBkZWZhdWx0IHRvIDAuDQo+ICsJICovDQo+ICsJ Y291bnQgPSBkZXZpY2VfcHJvcGVydHlfY291bnRfdTMyKGRldiwgInNuZC1jb250cm9sLWludmVy dC1yYW5nZSIpOw0KPiArCWlmIChjb3VudCA+IDApIHsNCj4gKwkJY291bnQgPSBtaW5fdCh1bnNp Z25lZCBpbnQsIGNvdW50LCBpaW9fYXV4LT5udW1fY2hhbnMpOw0KPiArCQlyZXQgPSBkZXZpY2Vf cHJvcGVydHlfcmVhZF91MzJfYXJyYXkoZGV2LCAic25kLWNvbnRyb2wtaW52ZXJ0LXJhbmdlIiwN Cj4gKwkJCQkJCSAgICAgaW52ZXJ0X3JhbmdlcywgY291bnQpOw0KPiArCQlpZiAocmV0IDwgMCkg ew0KPiArCQkJZGV2X2Vycl9wcm9iZShkZXYsIHJldCwgImZhaWxlZCB0byByZWFkIHNuZC1jb250 cm9sLWludmVydC1yYW5nZVxuIik7DQo+ICsJCQlnb3RvIG91dF9mcmVlX2ludmVydF9yYW5nZXM7 DQo+ICsJCX0NCj4gKwl9DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgaWlvX2F1eC0+bnVtX2No YW5zOyBpKyspIHsNCj4gKwkJaWlvX2F1eF9jaGFuID0gaWlvX2F1eC0+Y2hhbnMgKyBpOw0KPiAr CQlpaW9fYXV4X2NoYW4tPm5hbWUgPSBuYW1lc1tpXTsNCj4gKwkJaWlvX2F1eF9jaGFuLT5pc19p bnZlcnRfcmFuZ2UgPSBpbnZlcnRfcmFuZ2VzW2ldOw0KPiArDQo+ICsJCWlpb19hdXhfY2hhbi0+ aWlvX2NoYW4gPSBkZXZtX2lpb19jaGFubmVsX2dldChkZXYsIGlpb19hdXhfY2hhbi0+bmFtZSk7 DQo+ICsJCWlmIChJU19FUlIoaWlvX2F1eF9jaGFuLT5paW9fY2hhbikpIHsNCj4gKwkJCXJldCA9 IFBUUl9FUlIoaWlvX2F1eF9jaGFuLT5paW9fY2hhbik7DQo+ICsJCQlkZXZfZXJyX3Byb2JlKGRl diwgcmV0LCAiZ2V0IElJTyBjaGFubmVsICclcycgZmFpbGVkXG4iLA0KPiArCQkJCSAgICAgIGlp b19hdXhfY2hhbi0+bmFtZSk7DQo+ICsJCQlnb3RvIG91dF9mcmVlX2ludmVydF9yYW5nZXM7DQo+ ICsJCX0NCj4gKwl9DQo+ICsNCj4gKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBpaW9fYXV4 KTsNCj4gKw0KPiArCXJldCA9IGRldm1fc25kX3NvY19yZWdpc3Rlcl9jb21wb25lbnQoZGV2LCAm YXVkaW9faWlvX2F1eF9jb21wb25lbnRfZHJpdmVyLA0KPiArCQkJCQkgICAgICBOVUxMLCAwKTsN Cj4gK291dF9mcmVlX2ludmVydF9yYW5nZXM6DQo+ICsJa2ZyZWUoaW52ZXJ0X3Jhbmdlcyk7DQo+ ICtvdXRfZnJlZV9uYW1lczoNCj4gKwlrZnJlZShuYW1lcyk7DQo+ICsJcmV0dXJuIHJldDsNCj4g K30NCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXVkaW9faWlvX2F1 eF9pZHNbXSA9IHsNCj4gKwl7IC5jb21wYXRpYmxlID0gImF1ZGlvLWlpby1hdXgiIH0sDQo+ICsJ eyB9DQo+ICt9Ow0KPiArTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYXVkaW9faWlvX2F1eF9pZHMp Ow0KPiArDQo+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhdWRpb19paW9fYXV4X2Ry aXZlciA9IHsNCj4gKwkuZHJpdmVyID0gew0KPiArCQkubmFtZSA9ICJhdWRpby1paW8tYXV4IiwN Cj4gKwkJLm9mX21hdGNoX3RhYmxlID0gYXVkaW9faWlvX2F1eF9pZHMsDQo+ICsJfSwNCj4gKwku cHJvYmUgPSBhdWRpb19paW9fYXV4X3Byb2JlLA0KPiArfTsNCj4gK21vZHVsZV9wbGF0Zm9ybV9k cml2ZXIoYXVkaW9faWlvX2F1eF9kcml2ZXIpOw0KPiArDQo+ICtNT0RVTEVfQVVUSE9SKCJIZXJ2 ZSBDb2RpbmEgPGhlcnZlLmNvZGluYUBib290bGluLmNvbT4iKTsNCj4gK01PRFVMRV9ERVNDUklQ VElPTigiSUlPIEFMU0EgU29DIGF1eCBkcml2ZXIiKTsNCj4gK01PRFVMRV9MSUNFTlNFKCJHUEwi KTsNCg==