From mboxrd@z Thu Jan 1 00:00:00 1970 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 79541C433EF for ; Tue, 14 Jun 2022 10:40:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230157AbiFNKku (ORCPT ); Tue, 14 Jun 2022 06:40:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58220 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243070AbiFNKkq (ORCPT ); Tue, 14 Jun 2022 06:40:46 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.153.233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2DB273DDCC; Tue, 14 Jun 2022 03:40:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1655203244; x=1686739244; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=k9iAVutYIplQGonViCc52c94DKNHXsLF+77V64B1RgI=; b=PXSgM4zfU6q+Fc3RtUQxyR+8RA33a13YIU9mzOFCg2LCmMarXYKawPfw iwnW3fC4hPWVWU6L5p2fHNRfWxaqbOgbRHD6XqrXD9eqJyZ+Qy0AFDiWW /lXLc1u/iK8v12/iCVpOUwd4nMVpiRwO03TnBUgljZOG/qFjSLJlXQAH1 vx9I7O7ICYuH+4by+pfvIsG1OIyPJ8KAS3tkir3I11pueSjvIPiWpLYnm 6J51eh5Mw5l5N8lD2Hy8CRRckiJcXkjyLqy94TIJQY/kjpRjn/ZLKMiQq 4nl/Kqp7JRa/FYPleGIZw5Jo9HTMZMJlqp3cMSev3TwpksuSMos4Zgd3j w==; X-IronPort-AV: E=Sophos;i="5.91,300,1647327600"; d="scan'208";a="177868787" Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa1.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 14 Jun 2022 03:40:44 -0700 Received: from chn-vm-ex03.mchp-main.com (10.10.85.151) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Tue, 14 Jun 2022 03:40:44 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17 via Frontend Transport; Tue, 14 Jun 2022 03:40:44 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DdKt+d0sPnuG3HiECrz3uqq24DZV9vsqSpFlqy+0OpbzWNiZhn3PSf6x3Hz/DOZfLpl7ZGA0SalpicpBAEpP980VZD81GxqynpplZHJTDZNQq/in1bj6a8JmT+iobKOqcM5Ppq4QACReL27L1K5/+RrAz5neZlabkmhXdoFhTiKjZNyZy6g1x08QfEVE666QB9emRwYowH2ASA4oZ7SVxB37MLMlUUTH7AtLcnwLU9hdETCPz9PscaRUEou75w3mR/rxsauLLU0OJRA0NnZp7/LLcAq+rHdGhSwwPjVDsxZWtXxSsJKyBMYw2rZYQprm4X8H7d/X/XOpLdMHoqiizg== 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=k9iAVutYIplQGonViCc52c94DKNHXsLF+77V64B1RgI=; b=I/vytpMdttgwBKz/fqJZEdATTiyzc8WX0oMWSBHEZ12XG67MnHi6KPscafNXTDtSDtMm2blITWkcadJFroSfjebEljp1SgehzkL7vPcl7i6cUeQlAMqFkbEM2MCcXiNAhlKi+sJ5EfK5Usuu4Gyln/yZIXvQH/3ITiPu7Y0iyEkyFwhPuHMM0D3RCXiTdfs0N9/UgDkPbbGjRNqgkXQsIT1ffNV6z0nG4fnrs7v6NXAlnrT7xDWuUmViR9pfRgJeRq656jxtZWILQG1NxH1UAya0f39NHx1CTkVFZti/qmggQkE0EOJ4DvzPdL3cUKJ0L3VumG3/Vkw/Sk6gGLfeEw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k9iAVutYIplQGonViCc52c94DKNHXsLF+77V64B1RgI=; b=kPNiCNRieafYVYD01OGAuskyAFK6QbCyXo4WEJYK6ejckPl71yNCDAswWmp9oMzOgFsVgri2/yIILqSrS1kdqbEZ+Dw4xKIjPfeZPVioASNDnNIled2DcJnFLTNAcBAHnVVCmUhwG0YJ2l23bz4cbkgvjQJeW0jn4OGAKsMzVOA= Received: from BN6PR11MB1953.namprd11.prod.outlook.com (2603:10b6:404:105::14) by DS0PR11MB6493.namprd11.prod.outlook.com (2603:10b6:8:c3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.14; Tue, 14 Jun 2022 10:40:41 +0000 Received: from BN6PR11MB1953.namprd11.prod.outlook.com ([fe80::5cfe:8088:aa93:fce8]) by BN6PR11MB1953.namprd11.prod.outlook.com ([fe80::5cfe:8088:aa93:fce8%3]) with mapi id 15.20.5332.022; Tue, 14 Jun 2022 10:40:41 +0000 From: To: CC: , , , , , , , , , , Subject: Re: [PATCH 15/16] iio: adc: at91-sama5d2_adc: add runtime pm support Thread-Topic: [PATCH 15/16] iio: adc: at91-sama5d2_adc: add runtime pm support Thread-Index: AQHYf9sxEafmr6Tx+E+ejy+OOw2OEA== Date: Tue, 14 Jun 2022 10:40:41 +0000 Message-ID: <68a099ac-7bf6-aca0-4723-af8e48585abc@microchip.com> References: <20220609083213.1795019-1-claudiu.beznea@microchip.com> <20220609083213.1795019-16-claudiu.beznea@microchip.com> <20220611174824.2d696a55@jic23-huawei> In-Reply-To: <20220611174824.2d696a55@jic23-huawei> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6c10074e-3d0e-45d9-18c7-08da4df25438 x-ms-traffictypediagnostic: DS0PR11MB6493:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 54FVnehVPr7IbwRD6P3Xn13ea7bwF7YYRWtEVVTJvVjGoin8RR4fBvHrhi2EOsKwYgDo7A16fkjssJuyUmhtQoVHeLN3fmD8bwUHiXVMDqfN0Ro4DsP8TlsPwcFjW0OZstdOgCoffLPgpz+Fis+VRcwxp7XsTojwf+P3WPzXUlUQnkeZyPIMIDqoxl2N1uTOJTY1owHj5q7wPFPhI4JPAa1JBiU0NE4JSFj9CF+ZXfwEbgvWRoXvRHUGjiSDeUvsnEmf3BgZVHBQ92Rt6CLE9pFkyr5euG88l0Swoicyp5pg8axsMfgapA8THT0Vi4ISyz6I1hEeQdWsgaEGPNSoI0SCJPzJZHrQBoASh5ZxVgDGSx3TCSZIgklpZQMyvIdjA2jaM9rkLoAzuaksxX1Yk5HMUV/w/suWOKp6L15T7QEvakIn4I3K7bdFoPWSPWKC2MvJm0hSE2bfW9AyqPw2MbYCg6YgdUyi59rXF557Isu1JDlF24Q/F+O8NJ+tggeb5nDyWHQcL3dJ72zI8SH2dAq8aCceL1OmbRBV4ygFcMjiA9c3abqjI3Aq3DTN1NAaiemxWL9N3nt9Y4TPLZxtmLjN5qZZ+9tlctMDLTxsOnbEMUiyJWmaZHjmTVCAgjhfgvBhCn3tIqdd29wvVe+s5sbuhVsQ1+yOU+DhxprhEj4rgTBfJM4pea3AdJp4QJTZYWXgbV86cto6tUdrPldd4QlSlKoOHYKGpR4Ip/Rwf1hiHD1Zb9uQJ/gooAJ/ePDX4j9je4AizGPb12PdidpRFLYmbewbDGyiGW/oxX4305az8uRRsWHlAdmrSEpgdxIoGOfUKcl7JLxjjiQs8MjVCZisM5nuAUSdftHUrUiRsMc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN6PR11MB1953.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(366004)(31696002)(186003)(83380400001)(86362001)(38070700005)(6506007)(38100700002)(122000001)(36756003)(53546011)(6486002)(316002)(91956017)(966005)(508600001)(26005)(6916009)(2906002)(66476007)(2616005)(4326008)(66556008)(64756008)(66946007)(8676002)(54906003)(8936002)(6512007)(7416002)(30864003)(31686004)(5660300002)(71200400001)(66446008)(76116006)(43740500002)(45980500001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?d2xIVkluWC85VE1sclpFeVZPdzhyanVPMWpqRUlXeWt3a2JreGh2QVczT2pW?= =?utf-8?B?ZGZTa2MzN2s4VjB5Wnd4Y09YcFFPRlZXdzJvUlNJWmJBbVNsNmJXb2pId0Zz?= =?utf-8?B?RHltOUVkRmlPL1Y5b2lmYXE0NXlJQjY4SkMxVEkrQmNMNzdCMkZiTEE2TDFX?= =?utf-8?B?azRVeVh1YU5UbTdJOXNqazNtWE5DeXZPVWE5ekNNRUorVkh2a3RWV0RCVzQv?= =?utf-8?B?OExjTzhJWStNNkRDWXpYNytpdm5pNTZvYWwvZ2RzVjZZOXIzczZkajhzVGp1?= =?utf-8?B?VXdBNDltOGhFc0RDTGl5UExIczY1Sks5Q0RPd3hEdHhIZy8zL25JUmREUlg1?= =?utf-8?B?ejlGbWlFMmg3NVpLZGZiYzQ2cDJET1RBYVU0RWx6dllzL2xqVlV2eElJVmtn?= =?utf-8?B?ZG9LSEV5K2YyWngrL1hHVEJpWk9SRGxhTExReW9oTVpBYlBDY3pBSkNCSnU2?= =?utf-8?B?cFpYN0pSSEdGdGtxM0FjNEowZWcvZlV1dVRTU0VnMjlCRjlxUzJ2TEVMWDl4?= =?utf-8?B?b2FBM3VhdEFWYmdJcjZUN1h3N1FVaS84UTRSL0FLWGNuazk5TjdFVEJMa2JN?= =?utf-8?B?UGNuM01mcUVGOERmYmk0bitheExPVDhWa3E4cldwK2RtaEttTERnYWlVQ2pD?= =?utf-8?B?cVN0UG02UGhra25ncGE1S2R3dTRnL0tnbTNNVkFUWXlZRS9BU2JuWXdoTGw2?= =?utf-8?B?aTFRUkROUWJLMG8rTHJNUXhIL2tLR3UyYXYrMkNZOFlPbGtYelRHamMyc05P?= =?utf-8?B?QW9LSi9zVW0wMjZub1NQSTBBalRoUjVLaXNXY1BDM2ttZWpJRThIUTdQK3Nr?= =?utf-8?B?SUlRVlFnN2JkMGd6aDJZcmVheE5PbzJEZlk1UmFSeFRleHNJdDJrM2NlQnlM?= =?utf-8?B?ajQ0Y0ZhK094a2dhRU8zUWJkWHRoUkV1c2FZL3U4K1lsbHR1SXdvTStnMjg4?= =?utf-8?B?UTNsbkw1cm5zc2JJUDVkSXNsa1o1RHlwK2dPRExoQ1I3U2MzTHFhN3ZhcFdO?= =?utf-8?B?Tit0UmtNZzZBTzdXTi9vMFhDR0U4cEtHSWlRRGt0Ym9xSXRvUkF5NlJJZEtL?= =?utf-8?B?MC93Y2syem45a3JoWURxc0JvUEhTZG0yVFlIaE1udzVLZ3QyeXBtZ0ZiRjY2?= =?utf-8?B?Z2w5b0JkS0JGMThhVVh0WjU3QkwzbDliblVYYWo0aGZMWmFtcGRVamVWeHpS?= =?utf-8?B?aUd5NkxpT0RJcWNyRUtrbW1nSHd6cU92VVRHV0kraHhIakhkZnBZbS9DNG96?= =?utf-8?B?aXZyUnJQallUeUpsN1hmOG5hWjZwY0orVWRaVE5uU1J1R0FlNFJWYWFLblRr?= =?utf-8?B?MDFIV1ZTaFJkVm5QdUFmbTg4aFhxWE9qaGVwSjVIanNMYmRHbHliVkNTUzdB?= =?utf-8?B?YVFKVDJKU1FOM0VSTHozOFlxNzNManFlbHlpYjlPdk90blVnUnVlVDVjY2tx?= =?utf-8?B?OWs4UUZLRitjYkwwcFM5eThMN2lDWHRDY3Q0elZLTXJCb0FWTkI5WFJxSUR4?= =?utf-8?B?anM5bnVyUEpMdG1UdDd6eUNscHgxWlFFWVBXWWQydGRGcWN3VTQzT2ZIM2li?= =?utf-8?B?VWZPSXpQZ1ZKQ3d3cFVkRjJvWldsYk9WZVRsYjVrMmw0ckJ6R2YvdkpTUVVz?= =?utf-8?B?N3UwakhydWZNcXhFQjlDQTdNL3Bzak1DN1FSMHNOTUY1NUM4M2FkWlR5U1I0?= =?utf-8?B?RXdsL1loK0dCV1hURFRFeDc1Z0hSaStlTEhhYlUxV0NmTUxVV245WU5RSzlr?= =?utf-8?B?Q0gydzdHK0VPdUhIZ2xmNnhGWW51TVFZVWw1SEFWSWZPOU14alpDRGJnMGxD?= =?utf-8?B?dVdHTlJOM3l5OXd5UlRaUjYzdmZUb3dMZk1VQjEyd2tUQ3VxRnBRUkN6V0V5?= =?utf-8?B?SWw4TWwyeWdDaXNGMVhoTDFpeGRVd25JdWVBOTZUMndVaDJjY3VhbkFqVFJB?= =?utf-8?B?TzhNYmdueUdMSTU1WXpHazY0Y2xwL2MwVXMrYXlrdk0rdzhGTmJ3N0JvREhz?= =?utf-8?B?VnV0ZGYyQVhDZy9oY2tBNU5scnhpVUx4VC9xa3h1RzhsQURqUloxVHp5cXE3?= =?utf-8?B?a0lDNkpNRm1ITGtGRllTeFYwV1hOWVFOQ3RQWXNibmV5aXZLZ0FhQmk3VkNK?= =?utf-8?B?MU1EU0hmRHk0L1ZkSFdjNTFlZGdSYW9tamE3K2R1djZ6Tk5RZVVFUTlrT1A1?= =?utf-8?B?SFdKWWo3MzUzTTJSRlIwcUxGZzFyckFwTFNodTZveEQ3ZDNHVjM5NHFMeVEr?= =?utf-8?B?R1BBd1d3TFpNQzAwazlQbTZwODZEYndvYmpzQ1dwdHpQYzRMVHVMUDdpd1dI?= =?utf-8?B?TUdSMkZ6QmEzMHpHWmdxTmZ5ZmVtVHhSNFJ2UVpOZ0VudmRnTzcva3M1VkRB?= =?utf-8?Q?RCdy3tyz1FHu8pkA=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <4009D0FB3D584E4B827A38CA16A1A88A@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN6PR11MB1953.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6c10074e-3d0e-45d9-18c7-08da4df25438 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jun 2022 10:40:41.6420 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: n9x2xSKutWHL4cXmcKz9v97kXX5sjf0x9KCAKcnRS7RAwT3845LferH2KXV+dYgaJ757I4hixtPAMXXybTBPLNARLH6Cel2kJ3sfSSr6TCw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB6493 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org T24gMTEuMDYuMjAyMiAxOTo0OCwgSm9uYXRoYW4gQ2FtZXJvbiB3cm90ZToNCj4gRVhURVJOQUwg RU1BSUw6IERvIG5vdCBjbGljayBsaW5rcyBvciBvcGVuIGF0dGFjaG1lbnRzIHVubGVzcyB5b3Ug a25vdyB0aGUgY29udGVudCBpcyBzYWZlDQo+IA0KPiBPbiBUaHUsIDkgSnVuIDIwMjIgMTE6MzI6 MTIgKzAzMDANCj4gQ2xhdWRpdSBCZXpuZWEgPGNsYXVkaXUuYmV6bmVhQG1pY3JvY2hpcC5jb20+ IHdyb3RlOg0KPiANCj4+IEFkZCBydW50aW1lIFBNIHN1cHBvcnQgYnkgZGlzYWJsaW5nL2VuYWJs aW5nIEFEQydzIHBlcmlwaGVyYWwgY2xvY2suDQo+PiBPbiBzaW1wbGUgY29udmVyc2lvbiB0aGUg QURDJ3MgY2xvY2sgaXMga2VwdCBlbmFibGVkIGp1c3Qgd2hpbGUgdGhlDQo+PiBjb252ZXJzaW9u IGlzIGluIHByb2dyZXNzLiBUaGlzIGluY2x1ZGVzIGFsc28gdGVtcGVyYXR1cmUgY29udmVyc2lv bi4NCj4+IEZvciB0cmlnZ2VycyBhbmQgdG91Y2ggY29udmVyc2lvbnMgdGhlIEFEQyBjbG9jayBp cyBrZXB0IGVuYWJsZWQgd2hpbGUNCj4+IHRoZSB0cmlnZ2VycyBvciB0b3VjaCBhcmUgZW5hYmxl ZC4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBDbGF1ZGl1IEJlem5lYSA8Y2xhdWRpdS5iZXpuZWFA bWljcm9jaGlwLmNvbT4NCj4gDQo+IFZhcmlvdXMgY29tbWVudHMgaW5saW5lLg0KPiANCj4gVGhh bmtzLA0KPiANCj4gSm9uYXRoYW4NCj4gDQo+PiAtLS0NCj4+ICBkcml2ZXJzL2lpby9hZGMvYXQ5 MS1zYW1hNWQyX2FkYy5jIHwgMjAxICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tDQo+PiAg MSBmaWxlIGNoYW5nZWQsIDE3MyBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkNCj4+DQo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vYWRjL2F0OTEtc2FtYTVkMl9hZGMuYyBiL2RyaXZl cnMvaWlvL2FkYy9hdDkxLXNhbWE1ZDJfYWRjLmMNCj4+IGluZGV4IDFhNjc4ODU2Njk2OS4uNWQ5 YWQ1MWQwOTIwIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9paW8vYWRjL2F0OTEtc2FtYTVkMl9h ZGMuYw0KPj4gKysrIGIvZHJpdmVycy9paW8vYWRjL2F0OTEtc2FtYTVkMl9hZGMuYw0KPj4gQEAg LTI4LDYgKzI4LDcgQEANCj4+ICAjaW5jbHVkZSA8bGludXgvaWlvL3RyaWdnZXJlZF9idWZmZXIu aD4NCj4+ICAjaW5jbHVkZSA8bGludXgvbnZtZW0tY29uc3VtZXIuaD4NCj4+ICAjaW5jbHVkZSA8 bGludXgvcGluY3RybC9jb25zdW1lci5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1l Lmg+DQo+PiAgI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPg0KPj4NCj4+ICAj aW5jbHVkZSA8ZHQtYmluZGluZ3MvaWlvL2FkYy9hdDkxLXNhbWE1ZDJfYWRjLmg+DQo+PiBAQCAt NjAwLDYgKzYwMSw3IEBAIHN0cnVjdCBhdDkxX2FkY19zdGF0ZSB7DQo+PiAgICAgICBzdHJ1Y3Qg YXQ5MV9hZGNfdG91Y2ggICAgICAgICAgIHRvdWNoX3N0Ow0KPj4gICAgICAgc3RydWN0IGF0OTFf YWRjX3RlbXAgICAgICAgICAgICB0ZW1wX3N0Ow0KPj4gICAgICAgc3RydWN0IGlpb19kZXYgICAg ICAgICAgICAgICAgICAqaW5kaW9fZGV2Ow0KPj4gKyAgICAgc3RydWN0IGRldmljZSAgICAgICAg ICAgICAgICAgICAqZGV2Ow0KPj4gICAgICAgLyogRW5zdXJlIG5hdHVyYWxseSBhbGlnbmVkIHRp bWVzdGFtcCAqLw0KPj4gICAgICAgdTE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZm ZXJbQVQ5MV9CVUZGRVJfTUFYX0hXT1JEU10gX19hbGlnbmVkKDgpOw0KPj4gICAgICAgLyoNCj4+ IEBAIC04NDQsMTAgKzg0NiwxNiBAQCBzdGF0aWMgaW50IGF0OTFfYWRjX2NvbmZpZ19lbXIoc3Ry dWN0IGF0OTFfYWRjX3N0YXRlICpzdCwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dTMyIG92ZXJzYW1wbGluZ19yYXRpbywgdTMyIHRyYWNreCkNCj4+ICB7DQo+PiAgICAgICAvKiBj b25maWd1cmUgdGhlIGV4dGVuZGVkIG1vZGUgcmVnaXN0ZXIgKi8NCj4+IC0gICAgIHVuc2lnbmVk IGludCBlbXIgPSBhdDkxX2FkY19yZWFkbChzdCwgRU1SKTsNCj4+ICsgICAgIHVuc2lnbmVkIGlu dCBlbXI7DQo+PiAgICAgICB1bnNpZ25lZCBpbnQgb3NyX21hc2sgPSBzdC0+c29jX2luZm8ucGxh dGZvcm0tPm9zcl9tYXNrOw0KPj4gICAgICAgdW5zaWduZWQgaW50IG9zcl92YWxzID0gc3QtPnNv Y19pbmZvLnBsYXRmb3JtLT5vc3JfdmFsczsNCj4+ICsgICAgIGludCByZXQ7DQo+PiArDQo+PiAr ICAgICByZXQgPSBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KHN0LT5kZXYpOw0KPj4gKyAgICAg aWYgKHJldCA8IDApDQo+PiArICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+IA0KPiBJbiB0aGlz IHBhcnRpY3VsYXIgY2FzZSwgaXQgbWlnaHQgYmUgY2xlYW5lciB0byBpbnRyb2R1Y2UgYSB3cmFw cGVyDQo+IGZ1bmN0aW9uIHRoYXQgZGVhbHMgd2l0aCB0aGUgcG93ZXIgbWFuYWdlbWVudCBhbmQg dGhlbiBjYWxscyB0aGlzIG9uZS4NCj4gR2V0cyByaWQgb2YgdGhlIHVnbHkgZ290b3Mgb3V0IG9m IHRoZSBzd2l0Y2ggc3RhdGVtZW50Lg0KDQpIbS4uIEknbGwgc2VlIGhvdyBJIGNhbiBkbyBpdC4N Cg0KPiANCj4+DQo+PiArICAgICBlbXIgPSBhdDkxX2FkY19yZWFkbChzdCwgRU1SKTsNCj4+ICAg ICAgIC8qIHNlbGVjdCBvdmVyc2FtcGxpbmcgcGVyIHNpbmdsZSB0cmlnZ2VyIGV2ZW50ICovDQo+ PiAgICAgICBlbXIgfD0gQVQ5MV9TQU1BNUQyX0VNUl9BU1RFKDEpOw0KPj4NCj4+IEBAIC04NTcs MzIgKzg2NSw0MiBAQCBzdGF0aWMgaW50IGF0OTFfYWRjX2NvbmZpZ19lbXIoc3RydWN0IGF0OTFf YWRjX3N0YXRlICpzdCwNCj4+ICAgICAgIC8qIHNlbGVjdCBvdmVyc2FtcGxpbmcgcmF0aW8gZnJv bSBjb25maWd1cmF0aW9uICovDQo+PiAgICAgICBzd2l0Y2ggKG92ZXJzYW1wbGluZ19yYXRpbykg ew0KPj4gICAgICAgY2FzZSBBVDkxX09TUl8xU0FNUExFUzoNCj4+IC0gICAgICAgICAgICAgaWYg KCEob3NyX3ZhbHMgJiBCSVQoQVQ5MV9TQU1BNUQyX0VNUl9PU1JfMVNBTVBMRVMpKSkNCj4+IC0g ICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICsgICAgICAgICAgICAgaWYg KCEob3NyX3ZhbHMgJiBCSVQoQVQ5MV9TQU1BNUQyX0VNUl9PU1JfMVNBTVBMRVMpKSkgew0KPj4g KyAgICAgICAgICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7DQo+PiArICAgICAgICAgICAgICAg ICAgICAgZ290byBwbV9ydW50aW1lX3B1dDsNCj4+ICsgICAgICAgICAgICAgfQ0KPj4gICAgICAg ICAgICAgICBlbXIgfD0gQVQ5MV9TQU1BNUQyX0VNUl9PU1IoQVQ5MV9TQU1BNUQyX0VNUl9PU1Jf MVNBTVBMRVMsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv c3JfbWFzayk7DQo+PiAgICAgICAgICAgICAgIGJyZWFrOw0KPj4gICAgICAgY2FzZSBBVDkxX09T Ul80U0FNUExFUzoNCj4+IC0gICAgICAgICAgICAgaWYgKCEob3NyX3ZhbHMgJiBCSVQoQVQ5MV9T QU1BNUQyX0VNUl9PU1JfNFNBTVBMRVMpKSkNCj4+IC0gICAgICAgICAgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsNCj4+ICsgICAgICAgICAgICAgaWYgKCEob3NyX3ZhbHMgJiBCSVQoQVQ5MV9T QU1BNUQyX0VNUl9PU1JfNFNBTVBMRVMpKSkgew0KPj4gKyAgICAgICAgICAgICAgICAgICAgIHJl dCA9IC1FSU5WQUw7DQo+PiArICAgICAgICAgICAgICAgICAgICAgZ290byBwbV9ydW50aW1lX3B1 dDsNCj4+ICsgICAgICAgICAgICAgfQ0KPj4gICAgICAgICAgICAgICBlbXIgfD0gQVQ5MV9TQU1B NUQyX0VNUl9PU1IoQVQ5MV9TQU1BNUQyX0VNUl9PU1JfNFNBTVBMRVMsDQo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvc3JfbWFzayk7DQo+PiAgICAgICAgICAg ICAgIGJyZWFrOw0KPj4gICAgICAgY2FzZSBBVDkxX09TUl8xNlNBTVBMRVM6DQo+PiAtICAgICAg ICAgICAgIGlmICghKG9zcl92YWxzICYgQklUKEFUOTFfU0FNQTVEMl9FTVJfT1NSXzE2U0FNUExF UykpKQ0KPj4gLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4gKyAgICAg ICAgICAgICBpZiAoIShvc3JfdmFscyAmIEJJVChBVDkxX1NBTUE1RDJfRU1SX09TUl8xNlNBTVBM RVMpKSkgew0KPj4gKyAgICAgICAgICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7DQo+PiArICAg ICAgICAgICAgICAgICAgICAgZ290byBwbV9ydW50aW1lX3B1dDsNCj4+ICsgICAgICAgICAgICAg fQ0KPj4gICAgICAgICAgICAgICBlbXIgfD0gQVQ5MV9TQU1BNUQyX0VNUl9PU1IoQVQ5MV9TQU1B NUQyX0VNUl9PU1JfMTZTQU1QTEVTLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb3NyX21hc2spOw0KPj4gICAgICAgICAgICAgICBicmVhazsNCj4+ICAgICAg IGNhc2UgQVQ5MV9PU1JfNjRTQU1QTEVTOg0KPj4gLSAgICAgICAgICAgICBpZiAoIShvc3JfdmFs cyAmIEJJVChBVDkxX1NBTUE1RDJfRU1SX09TUl82NFNBTVBMRVMpKSkNCj4+IC0gICAgICAgICAg ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICsgICAgICAgICAgICAgaWYgKCEob3NyX3Zh bHMgJiBCSVQoQVQ5MV9TQU1BNUQyX0VNUl9PU1JfNjRTQU1QTEVTKSkpIHsNCj4+ICsgICAgICAg ICAgICAgICAgICAgICByZXQgPSAtRUlOVkFMOw0KPj4gKyAgICAgICAgICAgICAgICAgICAgIGdv dG8gcG1fcnVudGltZV9wdXQ7DQo+PiArICAgICAgICAgICAgIH0NCj4+ICAgICAgICAgICAgICAg ZW1yIHw9IEFUOTFfU0FNQTVEMl9FTVJfT1NSKEFUOTFfU0FNQTVEMl9FTVJfT1NSXzY0U0FNUExF UywNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcl9tYXNr KTsNCj4+ICAgICAgICAgICAgICAgYnJlYWs7DQo+PiAgICAgICBjYXNlIEFUOTFfT1NSXzI1NlNB TVBMRVM6DQo+PiAtICAgICAgICAgICAgIGlmICghKG9zcl92YWxzICYgQklUKEFUOTFfU0FNQTVE Ml9FTVJfT1NSXzI1NlNBTVBMRVMpKSkNCj4+IC0gICAgICAgICAgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsNCj4+ICsgICAgICAgICAgICAgaWYgKCEob3NyX3ZhbHMgJiBCSVQoQVQ5MV9TQU1B NUQyX0VNUl9PU1JfMjU2U0FNUExFUykpKSB7DQo+PiArICAgICAgICAgICAgICAgICAgICAgcmV0 ID0gLUVJTlZBTDsNCj4+ICsgICAgICAgICAgICAgICAgICAgICBnb3RvIHBtX3J1bnRpbWVfcHV0 Ow0KPj4gKyAgICAgICAgICAgICB9DQo+PiAgICAgICAgICAgICAgIGVtciB8PSBBVDkxX1NBTUE1 RDJfRU1SX09TUihBVDkxX1NBTUE1RDJfRU1SX09TUl8yNTZTQU1QTEVTLA0KPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3NyX21hc2spOw0KPj4gICAgICAgICAg ICAgICBicmVhazsNCj4+IEBAIC04OTQsNyArOTEyLDEwIEBAIHN0YXRpYyBpbnQgYXQ5MV9hZGNf Y29uZmlnX2VtcihzdHJ1Y3QgYXQ5MV9hZGNfc3RhdGUgKnN0LA0KPj4NCj4+ICAgICAgIHN0LT5v dmVyc2FtcGxpbmdfcmF0aW8gPSBvdmVyc2FtcGxpbmdfcmF0aW87DQo+Pg0KPj4gLSAgICAgcmV0 dXJuIDA7DQo+PiArcG1fcnVudGltZV9wdXQ6DQo+PiArICAgICBwbV9ydW50aW1lX21hcmtfbGFz dF9idXN5KHN0LT5kZXYpOw0KPj4gKyAgICAgcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoc3Qt PmRldik7DQo+PiArICAgICByZXR1cm4gcmV0Ow0KPj4gIH0NCj4+DQo+PiAgc3RhdGljIGludCBh dDkxX2FkY19hZGp1c3RfdmFsX29zcihzdHJ1Y3QgYXQ5MV9hZGNfc3RhdGUgKnN0LCBpbnQgKnZh bCkNCj4+IEBAIC05NDcsMTUgKzk2OCwyMiBAQCBzdGF0aWMgdm9pZCBhdDkxX2FkY19hZGp1c3Rf dmFsX29zcl9hcnJheShzdHJ1Y3QgYXQ5MV9hZGNfc3RhdGUgKnN0LCB2b2lkICpidWYsDQo+PiAg c3RhdGljIGludCBhdDkxX2FkY19jb25maWd1cmVfdG91Y2goc3RydWN0IGF0OTFfYWRjX3N0YXRl ICpzdCwgYm9vbCBzdGF0ZSkNCj4+ICB7DQo+PiAgICAgICB1MzIgY2xrX2toeiA9IHN0LT5jdXJy ZW50X3NhbXBsZV9yYXRlIC8gMTAwMDsNCj4+IC0gICAgIGludCBpID0gMDsNCj4+ICsgICAgIGlu dCBpID0gMCwgcmV0Ow0KPj4gICAgICAgdTE2IHBlbmRiYzsNCj4+ICAgICAgIHUzMiB0c21yLCBh Y3I7DQo+Pg0KPj4gLSAgICAgaWYgKCFzdGF0ZSkgew0KPj4gKyAgICAgaWYgKHN0YXRlKSB7DQo+ PiArICAgICAgICAgICAgIHJldCA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQoc3QtPmRldik7 DQo+PiArICAgICAgICAgICAgIGlmIChyZXQgPCAwKQ0KPj4gKyAgICAgICAgICAgICAgICAgICAg IHJldHVybiByZXQ7DQo+PiArICAgICB9IGVsc2Ugew0KPj4gICAgICAgICAgICAgICAvKiBkaXNh YmxpbmcgdG91Y2ggSVJRcyBhbmQgc2V0dGluZyBtb2RlIHRvIG5vIHRvdWNoIGVuYWJsZWQgKi8N Cj4+ICAgICAgICAgICAgICAgYXQ5MV9hZGNfd3JpdGVsKHN0LCBJRFIsDQo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBVDkxX1NBTUE1RDJfSUVSX1BFTiB8IEFUOTFfU0FNQTVEMl9J RVJfTk9QRU4pOw0KPj4gICAgICAgICAgICAgICBhdDkxX2FkY193cml0ZWwoc3QsIFRTTVIsIDAp Ow0KPj4gKw0KPj4gKyAgICAgICAgICAgICBwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KHN0LT5k ZXYpOw0KPj4gKyAgICAgICAgICAgICBwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChzdC0+ZGV2 KTsNCj4+ICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+PiAgICAgICB9DQo+PiAgICAgICAvKg0K Pj4gQEAgLTExMDAsOCArMTEyOCwxNiBAQCBzdGF0aWMgaW50IGF0OTFfYWRjX2NvbmZpZ3VyZV90 cmlnZ2VyKHN0cnVjdCBpaW9fdHJpZ2dlciAqdHJpZywgYm9vbCBzdGF0ZSkNCj4+ICB7DQo+PiAg ICAgICBzdHJ1Y3QgaWlvX2RldiAqaW5kaW8gPSBpaW9fdHJpZ2dlcl9nZXRfZHJ2ZGF0YSh0cmln KTsNCj4+ICAgICAgIHN0cnVjdCBhdDkxX2FkY19zdGF0ZSAqc3QgPSBpaW9fcHJpdihpbmRpbyk7 DQo+PiAtICAgICB1MzIgc3RhdHVzID0gYXQ5MV9hZGNfcmVhZGwoc3QsIFRSR1IpOw0KPj4gKyAg ICAgdTMyIHN0YXR1czsNCj4+ICsgICAgIGludCByZXQ7DQo+PiArDQo+PiArICAgICBpZiAoc3Rh dGUpIHsNCj4+ICsgICAgICAgICAgICAgcmV0ID0gcG1fcnVudGltZV9yZXN1bWVfYW5kX2dldChz dC0+ZGV2KTsNCj4+ICsgICAgICAgICAgICAgaWYgKHJldCA8IDApDQo+PiArICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsgICAgIH0NCj4+DQo+PiArICAgICBzdGF0dXMgPSBh dDkxX2FkY19yZWFkbChzdCwgVFJHUik7DQo+PiAgICAgICAvKiBjbGVhciBUUkdNT0QgKi8NCj4+ ICAgICAgIHN0YXR1cyAmPSB+QVQ5MV9TQU1BNUQyX1RSR1JfVFJHTU9EX01BU0s7DQo+Pg0KPj4g QEAgLTExMTEsNiArMTE0NywxMSBAQCBzdGF0aWMgaW50IGF0OTFfYWRjX2NvbmZpZ3VyZV90cmln Z2VyKHN0cnVjdCBpaW9fdHJpZ2dlciAqdHJpZywgYm9vbCBzdGF0ZSkNCj4+ICAgICAgIC8qIHNl dC91bnNldCBodyB0cmlnZ2VyICovDQo+PiAgICAgICBhdDkxX2FkY193cml0ZWwoc3QsIFRSR1Is IHN0YXR1cyk7DQo+Pg0KPj4gKyAgICAgaWYgKCFzdGF0ZSkgew0KPj4gKyAgICAgICAgICAgICBw bV9ydW50aW1lX21hcmtfbGFzdF9idXN5KHN0LT5kZXYpOw0KPj4gKyAgICAgICAgICAgICBwbV9y dW50aW1lX3B1dF9hdXRvc3VzcGVuZChzdC0+ZGV2KTsNCj4+ICsgICAgIH0NCj4+ICsNCj4+ICAg ICAgIHJldHVybiAwOw0KPj4gIH0NCj4+DQo+PiBAQCAtMTI2OCwxMSArMTMwOSwxNSBAQCBzdGF0 aWMgaW50IGF0OTFfYWRjX2J1ZmZlcl9wcmVwYXJlKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYp DQo+PiAgICAgICBpZiAoIShpaW9fZGV2aWNlX2dldF9jdXJyZW50X21vZGUoaW5kaW9fZGV2KSAm IElORElPX0FMTF9UUklHR0VSRURfTU9ERVMpKQ0KPj4gICAgICAgICAgICAgICByZXR1cm4gLUVJ TlZBTDsNCj4+DQo+PiArICAgICByZXQgPSBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KHN0LT5k ZXYpOw0KPiANCj4gVGhpcyBzZWVtcyB1bnVzdWFsLiAgSSdkIG5vcm1hbGx5IGV4cGVjdCB0byBz ZWUgcnVudGltZSBwbSBsZWZ0IG9uIHdoZW5ldmVyDQo+IGEgYnVmZmVyIGlzIGluIHVzZSwgYnV0 IGluIHRoaXMgY2FzZSB5b3Ugc2VlbSB0byBsZXQgaXQgYXV0b3N1c3BlbmQuDQo+IA0KPiBUaGF0 ICdtaWdodCcgYmUgZmluZSBhcyB5b3UgbWlnaHQgaGl0IGl0IG9mdGVuIGVub3VnaCB0aGF0IGl0 IHN0YXlzIHVwIHdoaWxzdA0KPiBkb2luZyBETUEgYnV0IGl0IGNlcnRhaW5seSBzZWVtcyBvZGQg YW5kIGxlc3MgdGhhbiBlZmZpY2llbnQuDQo+IE9yIHBvc3NpYmx5IHRoZSB1c2Ugb2YgdGhlIHRy aWdnZXIgaXMgZW5vdWdoIHRvIGtlZXAgaXQgdXAuDQoNClRoaXMgaXMgaGVyZSBiZWNhdXNlIGF0 OTFfYWRjX2J1ZmZlcl9wcmVwYXJlKCkgaXMgY2FsbGVkIHRob3VnaA0KLmh3Zmlmb19zZXRfd2F0 ZXJtYXJrIHdoaWNoIGlzIGNhbGxlZCBpbiBpaW9fZW5hYmxlX2J1ZmZlcnMoKSBiZWZvcmUNCmlp b190cmlnZ2VyX2F0dGFjaF9wb2xsX2Z1bmMoKSB3aGljaCBjYWxscyBpbiB0dXJuDQphdDkxX2Fk Y19jb25maWd1cmVfdHJpZ2dlcigpIHRoYXQgdHVybnMgb24gdGhlIHBvd2VyIGZvciB0aGUgd2hv bGUgZHVyYXRpb24NCnRoZSBidWZmZXJzIGFyZSBlbmFibGVkLg0KDQpJdCBpcyBuZWNlc3Nhcnkg dG8gaGF2ZSBydW50aW1lIHJlc3VtZSBoZXJlIHRvIGJlIGFibGUgdG8gZG8gcHJvcGVyDQpyZWdp c3RlciBzZXR0aW5ncy4NCg0KPiANCj4+ICsgICAgIGlmIChyZXQgPCAwKQ0KPj4gKyAgICAgICAg ICAgICByZXR1cm4gcmV0Ow0KPj4gKw0KPj4gICAgICAgLyogd2UgY29udGludWUgd2l0aCB0aGUg dHJpZ2dlcmVkIGJ1ZmZlciAqLw0KPj4gICAgICAgcmV0ID0gYXQ5MV9hZGNfZG1hX3N0YXJ0KGlu ZGlvX2Rldik7DQo+PiAgICAgICBpZiAocmV0KSB7DQo+PiAgICAgICAgICAgICAgIGRldl9lcnIo JmluZGlvX2Rldi0+ZGV2LCAiYnVmZmVyIHByZXBhcmUgZmFpbGVkXG4iKTsNCj4+IC0gICAgICAg ICAgICAgcmV0dXJuIHJldDsNCj4+ICsgICAgICAgICAgICAgZ290byBwbV9ydW50aW1lX3B1dDsN Cj4+ICAgICAgIH0NCj4+DQo+PiAgICAgICBmb3JfZWFjaF9zZXRfYml0KGJpdCwgaW5kaW9fZGV2 LT5hY3RpdmVfc2Nhbl9tYXNrLA0KPj4gQEAgLTEyOTUsMTIgKzEzNDAsMTYgQEAgc3RhdGljIGlu dCBhdDkxX2FkY19idWZmZXJfcHJlcGFyZShzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQ0KPj4g ICAgICAgaWYgKGF0OTFfYWRjX2J1ZmZlcl9jaGVja191c2VfaXJxKGluZGlvX2Rldiwgc3QpKQ0K Pj4gICAgICAgICAgICAgICBhdDkxX2FkY193cml0ZWwoc3QsIElFUiwgQVQ5MV9TQU1BNUQyX0lF Ul9EUkRZKTsNCj4+DQo+PiAtICAgICByZXR1cm4gMDsNCj4+ICtwbV9ydW50aW1lX3B1dDoNCj4+ ICsgICAgIHBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koc3QtPmRldik7DQo+PiArICAgICBwbV9y dW50aW1lX3B1dF9hdXRvc3VzcGVuZChzdC0+ZGV2KTsNCj4+ICsgICAgIHJldHVybiByZXQ7DQo+ PiAgfQ0KPj4NCj4+ICBzdGF0aWMgaW50IGF0OTFfYWRjX2J1ZmZlcl9wb3N0ZGlzYWJsZShzdHJ1 Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQ0KPj4gIHsNCj4+ICAgICAgIHN0cnVjdCBhdDkxX2FkY19z dGF0ZSAqc3QgPSBpaW9fcHJpdihpbmRpb19kZXYpOw0KPj4gKyAgICAgaW50IHJldDsNCj4+ICAg ICAgIHU4IGJpdDsNCj4+DQo+PiAgICAgICAvKiBjaGVjayBpZiB3ZSBhcmUgZGlzYWJsaW5nIHRy aWdnZXJlZCBidWZmZXIgb3IgdGhlIHRvdWNoc2NyZWVuICovDQo+PiBAQCAtMTMxMSw2ICsxMzYw LDEwIEBAIHN0YXRpYyBpbnQgYXQ5MV9hZGNfYnVmZmVyX3Bvc3RkaXNhYmxlKHN0cnVjdCBpaW9f ZGV2ICppbmRpb19kZXYpDQo+PiAgICAgICBpZiAoIShpaW9fZGV2aWNlX2dldF9jdXJyZW50X21v ZGUoaW5kaW9fZGV2KSAmIElORElPX0FMTF9UUklHR0VSRURfTU9ERVMpKQ0KPj4gICAgICAgICAg ICAgICByZXR1cm4gLUVJTlZBTDsNCj4+DQo+PiArICAgICByZXQgPSBwbV9ydW50aW1lX3Jlc3Vt ZV9hbmRfZ2V0KHN0LT5kZXYpOw0KPj4gKyAgICAgaWYgKHJldCA8IDApDQo+PiArICAgICAgICAg ICAgIHJldHVybiByZXQ7DQo+PiArDQo+PiAgICAgICAvKg0KPj4gICAgICAgICogRm9yIGVhY2gg ZW5hYmxlIGNoYW5uZWwgd2UgbXVzdCBkaXNhYmxlIGl0IGluIGhhcmR3YXJlLg0KPj4gICAgICAg ICogSW4gdGhlIGNhc2Ugb2YgRE1BLCB3ZSBtdXN0IHJlYWQgdGhlIGxhc3QgY29udmVydGVkIHZh bHVlDQo+PiBAQCAtMTM0Niw2ICsxMzk5LDkgQEAgc3RhdGljIGludCBhdDkxX2FkY19idWZmZXJf cG9zdGRpc2FibGUoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikNCj4+ICAgICAgIGlmIChzdC0+ ZG1hX3N0LmRtYV9jaGFuKQ0KPj4gICAgICAgICAgICAgICBkbWFlbmdpbmVfdGVybWluYXRlX3N5 bmMoc3QtPmRtYV9zdC5kbWFfY2hhbik7DQo+Pg0KPj4gKyAgICAgcG1fcnVudGltZV9tYXJrX2xh c3RfYnVzeShzdC0+ZGV2KTsNCj4+ICsgICAgIHBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKHN0 LT5kZXYpOw0KPj4gKw0KPj4gICAgICAgcmV0dXJuIDA7DQo+PiAgfQ0KPj4NCj4+IEBAIC0xNTM0 LDEyICsxNTkwLDE3IEBAIHN0YXRpYyB2b2lkIGF0OTFfYWRjX3NldHVwX3NhbXBfZnJlcShzdHJ1 Y3QgaWlvX2RldiAqaW5kaW9fZGV2LCB1bnNpZ25lZCBmcmVxLA0KPj4gIHsNCj4+ICAgICAgIHN0 cnVjdCBhdDkxX2FkY19zdGF0ZSAqc3QgPSBpaW9fcHJpdihpbmRpb19kZXYpOw0KPj4gICAgICAg dW5zaWduZWQgZl9wZXIsIHByZXNjYWwsIHN0YXJ0dXAsIG1yOw0KPj4gKyAgICAgaW50IHJldDsN Cj4+DQo+PiAgICAgICBmX3BlciA9IGNsa19nZXRfcmF0ZShzdC0+cGVyX2Nsayk7DQo+PiAgICAg ICBwcmVzY2FsID0gKGZfcGVyIC8gKDIgKiBmcmVxKSkgLSAxOw0KPj4NCj4+ICAgICAgIHN0YXJ0 dXAgPSBhdDkxX2FkY19zdGFydHVwX3RpbWUoc3RhcnR1cF90aW1lLCBmcmVxIC8gMTAwMCk7DQo+ Pg0KPj4gKyAgICAgcmV0ID0gcG1fcnVudGltZV9yZXN1bWVfYW5kX2dldChzdC0+ZGV2KTsNCj4+ ICsgICAgIGlmIChyZXQgPCAwKQ0KPj4gKyAgICAgICAgICAgICByZXR1cm47DQo+PiArDQo+PiAg ICAgICBtciA9IGF0OTFfYWRjX3JlYWRsKHN0LCBNUik7DQo+PiAgICAgICBtciAmPSB+KEFUOTFf U0FNQTVEMl9NUl9TVEFSVFVQX01BU0sgfCBBVDkxX1NBTUE1RDJfTVJfUFJFU0NBTF9NQVNLKTsN Cj4+ICAgICAgIG1yIHw9IEFUOTFfU0FNQTVEMl9NUl9TVEFSVFVQKHN0YXJ0dXApOw0KPj4gQEAg LTE1NDcsNiArMTYwOCw5IEBAIHN0YXRpYyB2b2lkIGF0OTFfYWRjX3NldHVwX3NhbXBfZnJlcShz dHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2LCB1bnNpZ25lZCBmcmVxLA0KPj4gICAgICAgbXIgfD0g QVQ5MV9TQU1BNUQyX01SX1RSQUNLVElNKHRyYWNrdGltKTsNCj4+ICAgICAgIGF0OTFfYWRjX3dy aXRlbChzdCwgTVIsIG1yKTsNCj4+DQo+PiArICAgICBwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5 KHN0LT5kZXYpOw0KPj4gKyAgICAgcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoc3QtPmRldik7 DQo+PiArDQo+PiAgICAgICBkZXZfZGJnKCZpbmRpb19kZXYtPmRldiwgImZyZXE6ICV1LCBzdGFy dHVwOiAldSwgcHJlc2NhbDogJXUsIHRyYWNrdGltPSV1XG4iLA0KPj4gICAgICAgICAgICAgICBm cmVxLCBzdGFydHVwLCBwcmVzY2FsLCB0cmFja3RpbSk7DQo+PiAgICAgICBzdC0+Y3VycmVudF9z YW1wbGVfcmF0ZSA9IGZyZXE7DQo+PiBAQCAtMTY4NCw2ICsxNzQ4LDEwIEBAIHN0YXRpYyBpbnQg YXQ5MV9hZGNfcmVhZF9pbmZvX3JhdyhzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2LA0KPj4gICAg ICAgdTE2IHRtcF92YWw7DQo+PiAgICAgICBpbnQgcmV0Ow0KPj4NCj4+ICsgICAgIHJldCA9IHBt X3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQoc3QtPmRldik7DQo+PiArICAgICBpZiAocmV0IDwgMCkN Cj4+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsNCj4+ICAgICAgIC8qDQo+PiAgICAg ICAgKiBLZWVwIGluIG1pbmQgdGhhdCB3ZSBjYW5ub3QgdXNlIHNvZnR3YXJlIHRyaWdnZXIgb3Ig dG91Y2hzY3JlZW4NCj4+ICAgICAgICAqIGlmIGV4dGVybmFsIHRyaWdnZXIgaXMgZW5hYmxlZA0K Pj4gQEAgLTE2OTUsNyArMTc2Myw3IEBAIHN0YXRpYyBpbnQgYXQ5MV9hZGNfcmVhZF9pbmZvX3Jh dyhzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2LA0KPj4NCj4+ICAgICAgIHJldCA9IGlpb19kZXZp Y2VfY2xhaW1fZGlyZWN0X21vZGUoaW5kaW9fZGV2KTsNCj4+ICAgICAgIGlmIChyZXQpDQo+PiAt ICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgICAgICAgICAgIGdvdG8gcG1fcnVudGlt ZV9wdXQ7DQo+PiAgICAgICBpZiAobG9jaykNCj4+ICAgICAgICAgICAgICAgbXV0ZXhfbG9jaygm c3QtPmxvY2spOw0KPj4NCj4+IEBAIC0xNzA3LDcgKzE3NzUsNyBAQCBzdGF0aWMgaW50IGF0OTFf YWRjX3JlYWRfaW5mb19yYXcoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldiwNCj4+ICAgICAgICAg ICAgICAgICAgICAgICBtdXRleF91bmxvY2soJnN0LT5sb2NrKTsNCj4+ICAgICAgICAgICAgICAg aWlvX2RldmljZV9yZWxlYXNlX2RpcmVjdF9tb2RlKGluZGlvX2Rldik7DQo+Pg0KPj4gLSAgICAg ICAgICAgICByZXR1cm4gcmV0Ow0KPj4gKyAgICAgICAgICAgICBnb3RvIHBtX3J1bnRpbWVfcHV0 Ow0KPj4gICAgICAgfQ0KPj4NCj4+ICAgICAgIC8qIGluIHRoaXMgY2FzZSB3ZSBoYXZlIGEgdm9s dGFnZSBvciB0ZW1wZXJhdHVyZSBjaGFubmVsICovDQo+PiBAQCAtMTc1Myw2ICsxODIxLDExIEBA IHN0YXRpYyBpbnQgYXQ5MV9hZGNfcmVhZF9pbmZvX3JhdyhzdHJ1Y3QgaWlvX2RldiAqaW5kaW9f ZGV2LA0KPj4gICAgICAgICAgICAgICBtdXRleF91bmxvY2soJnN0LT5sb2NrKTsNCj4+DQo+PiAg ICAgICBpaW9fZGV2aWNlX3JlbGVhc2VfZGlyZWN0X21vZGUoaW5kaW9fZGV2KTsNCj4+ICsNCj4+ ICtwbV9ydW50aW1lX3B1dDoNCj4+ICsgICAgIHBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koc3Qt PmRldik7DQo+PiArICAgICBwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChzdC0+ZGV2KTsNCj4+ ICsNCj4+ICAgICAgIHJldHVybiByZXQ7DQo+PiAgfQ0KPj4NCj4+IEBAIC0xODA0LDYgKzE4Nzcs MTAgQEAgc3RhdGljIGludCBhdDkxX2FkY19yZWFkX3RlbXAoc3RydWN0IGlpb19kZXYgKmluZGlv X2RldiwNCj4+ICAgICAgIGlmIChpaW9fYnVmZmVyX2VuYWJsZWQoaW5kaW9fZGV2KSkNCj4+ICAg ICAgICAgICAgICAgcmV0dXJuIC1FQlVTWTsNCj4+DQo+PiArICAgICByZXQgPSBwbV9ydW50aW1l X3Jlc3VtZV9hbmRfZ2V0KHN0LT5kZXYpOw0KPj4gKyAgICAgaWYgKHJldCA8IDApDQo+PiArICAg ICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArDQo+PiAgICAgICBtdXRleF9sb2NrKCZzdC0+bG9j ayk7DQo+Pg0KPj4gICAgICAgYXQ5MV9hZGNfdGVtcF9zZW5zb3JfY29uZmlndXJlKHN0LCB0cnVl KTsNCj4+IEBAIC0xODI1LDYgKzE5MDIsMTAgQEAgc3RhdGljIGludCBhdDkxX2FkY19yZWFkX3Rl bXAoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldiwNCj4+ICAgICAgIC8qIFJldmVydCBwcmV2aW91 cyBzZXR0aW5ncy4gKi8NCj4+ICAgICAgIGF0OTFfYWRjX3RlbXBfc2Vuc29yX2NvbmZpZ3VyZShz dCwgZmFsc2UpOw0KPj4gICAgICAgbXV0ZXhfdW5sb2NrKCZzdC0+bG9jayk7DQo+PiArDQo+PiAr ICAgICBwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KHN0LT5kZXYpOw0KPj4gKyAgICAgcG1fcnVu dGltZV9wdXRfYXV0b3N1c3BlbmQoc3QtPmRldik7DQo+PiArDQo+PiAgICAgICBpZiAocmV0IDwg MCkNCj4+ICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+DQo+PiBAQCAtMjM2MywxMyArMjQ0 NCwxOSBAQCBzdGF0aWMgaW50IGF0OTFfYWRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpDQo+Pg0KPj4gICAgICAgYXQ5MV9hZGNfdGVtcF9zZW5zb3JfaW5pdChzdCwgJnBkZXYt PmRldik7DQo+Pg0KPj4gLSAgICAgYXQ5MV9hZGNfaHdfaW5pdChpbmRpb19kZXYpOw0KPj4gLQ0K Pj4gICAgICAgcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgaW5kaW9fZGV2KTsNCj4+ICsgICAg IHN0LT5kZXYgPSAmcGRldi0+ZGV2Ow0KPj4gKyAgICAgcG1fcnVudGltZV9zZXRfYXV0b3N1c3Bl bmRfZGVsYXkoc3QtPmRldiwgNTAwKTsNCj4+ICsgICAgIHBtX3J1bnRpbWVfdXNlX2F1dG9zdXNw ZW5kKHN0LT5kZXYpOw0KPj4gKyAgICAgcG1fcnVudGltZV9zZXRfYWN0aXZlKHN0LT5kZXYpOw0K Pj4gKyAgICAgcG1fcnVudGltZV9lbmFibGUoc3QtPmRldik7DQo+PiArICAgICBwbV9ydW50aW1l X2dldF9ub3Jlc3VtZShzdC0+ZGV2KTsNCj4+ICsNCj4+ICsgICAgIGF0OTFfYWRjX2h3X2luaXQo aW5kaW9fZGV2KTsNCj4+DQo+PiAgICAgICByZXQgPSBhdDkxX2FkY19idWZmZXJfYW5kX3RyaWdn ZXJfaW5pdCgmcGRldi0+ZGV2LCBpbmRpb19kZXYpOw0KPj4gICAgICAgaWYgKHJldCA8IDApDQo+ PiAtICAgICAgICAgICAgIGdvdG8gcGVyX2Nsa19kaXNhYmxlX3VucHJlcGFyZTsNCj4+ICsgICAg ICAgICAgICAgZ290byBlcnJfcG1fZGlzYWJsZTsNCj4+DQo+PiAgICAgICBpZiAoZG1hX2NvZXJj ZV9tYXNrX2FuZF9jb2hlcmVudCgmaW5kaW9fZGV2LT5kZXYsIERNQV9CSVRfTUFTSygzMikpKQ0K Pj4gICAgICAgICAgICAgICBkZXZfaW5mbygmcGRldi0+ZGV2LCAiY2Fubm90IHNldCBETUEgbWFz ayB0byAzMi1iaXRcbiIpOw0KPj4gQEAgLTIzODUsMTAgKzI0NzIsMTggQEAgc3RhdGljIGludCBh dDkxX2FkY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPj4gICAgICAgZGV2 X2luZm8oJnBkZXYtPmRldiwgInZlcnNpb246ICV4XG4iLA0KPj4gICAgICAgICAgICAgICAgcmVh ZGxfcmVsYXhlZChzdC0+YmFzZSArIHN0LT5zb2NfaW5mby5wbGF0Zm9ybS0+bGF5b3V0LT5WRVJT SU9OKSk7DQo+Pg0KPj4gKyAgICAgcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShzdC0+ZGV2KTsN Cj4+ICsgICAgIHBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKHN0LT5kZXYpOw0KPj4gKw0KPj4g ICAgICAgcmV0dXJuIDA7DQo+Pg0KPj4gIGRtYV9kaXNhYmxlOg0KPj4gICAgICAgYXQ5MV9hZGNf ZG1hX2Rpc2FibGUoc3QpOw0KPj4gK2Vycl9wbV9kaXNhYmxlOg0KPj4gKyAgICAgcG1fcnVudGlt ZV9wdXRfbm9pZGxlKHN0LT5kZXYpOw0KPj4gKyAgICAgcG1fcnVudGltZV9kaXNhYmxlKHN0LT5k ZXYpOw0KPj4gKyAgICAgcG1fcnVudGltZV9zZXRfc3VzcGVuZGVkKHN0LT5kZXYpOw0KPj4gKyAg ICAgcG1fcnVudGltZV9kb250X3VzZV9hdXRvc3VzcGVuZChzdC0+ZGV2KTsNCj4+ICBwZXJfY2xr X2Rpc2FibGVfdW5wcmVwYXJlOg0KPj4gICAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHN0LT5w ZXJfY2xrKTsNCj4+ICB2cmVmX2Rpc2FibGU6DQo+PiBAQCAtMjQwMiwxMSArMjQ5NywxOCBAQCBz dGF0aWMgaW50IGF0OTFfYWRjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0K Pj4gIHsNCj4+ICAgICAgIHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYgPSBwbGF0Zm9ybV9nZXRf ZHJ2ZGF0YShwZGV2KTsNCj4+ICAgICAgIHN0cnVjdCBhdDkxX2FkY19zdGF0ZSAqc3QgPSBpaW9f cHJpdihpbmRpb19kZXYpOw0KPj4gKyAgICAgaW50IHJldDsNCj4+ICsNCj4+ICsgICAgIHJldCA9 IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQoc3QtPmRldik7DQo+PiArICAgICBpZiAocmV0IDwg MCkNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gDQo+IFRoZXJlIGlzbid0IG11Y2gg dXNlZnVsIHRoYXQgY2FuIGJlIGRvbmUgd2l0aCBhIHJldHVybiBvZiBlcnJvciBmcm9tDQo+IGEg cmVtb3ZlKCkgZnVuY3Rpb24uIFV3ZSBLbGVpbi1Lb25pZyBpcyBidXN5IHJlbW92aW5nIGFsbCB0 aGVzZSByZXR1cm5zDQo+IChhbmQgZXZlbnR1YWxseSBjaGFuZ2luZyB0aGUgcHJvdG90eXBlcyB0 byByZXR1cm4gdm9pZCksIHNvIGRvbid0IGludHJvZHVjZSBhIG5ldyBvbmUNCj4gb3IgVXdlIHdp bGwgYmUgZ3J1bXB5IDopDQoNCkFoLCByaWdodC4gVGhhbmtzIGZvciBwb2ludGluZyBpdC4NCg0K PiANCj4+DQo+PiAgICAgICBpaW9fZGV2aWNlX3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4+DQo+ PiAgICAgICBhdDkxX2FkY19kbWFfZGlzYWJsZShzdCk7DQo+Pg0KPj4gKyAgICAgcG1fcnVudGlt ZV9kaXNhYmxlKHN0LT5kZXYpOw0KPj4gKyAgICAgcG1fcnVudGltZV9wdXRfbm9pZGxlKHN0LT5k ZXYpOw0KPj4gICAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHN0LT5wZXJfY2xrKTsNCj4+DQo+ PiAgICAgICByZWd1bGF0b3JfZGlzYWJsZShzdC0+dnJlZik7DQo+PiBAQCAtMjQxOSw2ICsyNTIx LDExIEBAIHN0YXRpYyBfX21heWJlX3VudXNlZCBpbnQgYXQ5MV9hZGNfc3VzcGVuZChzdHJ1Y3Qg ZGV2aWNlICpkZXYpDQo+PiAgew0KPj4gICAgICAgc3RydWN0IGlpb19kZXYgKmluZGlvX2RldiA9 IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPj4gICAgICAgc3RydWN0IGF0OTFfYWRjX3N0YXRlICpz dCA9IGlpb19wcml2KGluZGlvX2Rldik7DQo+PiArICAgICBpbnQgcmV0Ow0KPj4gKw0KPj4gKyAg ICAgcmV0ID0gcG1fcnVudGltZV9yZXN1bWVfYW5kX2dldChzdC0+ZGV2KTsNCj4+ICsgICAgIGlm IChyZXQgPCAwKQ0KPj4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4NCj4+ICAgICAgIC8q DQo+PiAgICAgICAgKiBEbyBhIHNvZndhcmUgcmVzZXQgb2YgdGhlIEFEQyBiZWZvcmUgd2UgZ28g dG8gc3VzcGVuZC4NCj4+IEBAIC0yNDI4LDcgKzI1MzUsOCBAQCBzdGF0aWMgX19tYXliZV91bnVz ZWQgaW50IGF0OTFfYWRjX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQ0KPj4gICAgICAgICov DQo+PiAgICAgICBhdDkxX2FkY193cml0ZWwoc3QsIENSLCBBVDkxX1NBTUE1RDJfQ1JfU1dSU1Qp Ow0KPj4NCj4+IC0gICAgIGNsa19kaXNhYmxlX3VucHJlcGFyZShzdC0+cGVyX2Nsayk7DQo+PiAr ICAgICBwbV9ydW50aW1lX2ZvcmNlX3N1c3BlbmQoc3QtPmRldik7DQo+IA0KPiBUaGlzIGNvbmZ1 c2VzIG1lIGEgYml0IGJlY2F1c2Ugd2Uga25vdyB3ZSBhcmUgYWxyZWFkeSBhd2FrZSAoYmVjYXVz ZSBvZg0KPiB0aGUgcG1fcnVudGltZV9yZXN1bWVfYW5kX2dldCgpIHNvIHdlIHdpbGwgZGVmaW5p dGVseSBzdXNwZW5kIGhlcmUgYW5kDQo+IEknbSBmYWlybHkgc3VyZSB0aGF0IG1lYW5zIHdlIGRl ZmluaXRlbHkgcmVzdW1lIGluIHRoZSBfcmVzdW1lKCkNCj4gYmVsb3cuICBCYXNpY2FsbHkgb3Vy IHVzYWdlIGNvdW50ZXJzIGFyZSBJIHRoaW5rIG9mZiBieSBvbmUuIElmIHlvdQ0KPiBjb3VsZCB2 ZXJpZnkgdGhhdCBpdCBkb2Vzbid0IHR1cm4gYmFjayBvbiBpZiB3ZSBkb24ndCBoYXZlIHRoZSBi dWZmZXJlZA0KPiBlbmFibGVkIGFuZCB3ZXJlIHByZXZpb3VzbHkgaW4gcnVudGltZSBzdXNwZW5k IHN0YXRlIHRoYXQgd291bGQNCj4gcHJvdmUgbWUgd3JvbmcgKHdoaWNoIGlzIG1vcmUgdGhhbiBw b3NzaWJsZSAtIHRoaXMgc3R1ZmYgYWx3YXlzIGdpdmVzDQo+IG1lIGEgaGVhZGFjaGUpDQoNCkkg cmVtZW1iZXIgSSBjaGVja2VkIHRoaXMgd2l0aCBjb250aW51b3VzIHN1c3BlbmQvcmVzdW1lIGhh dmluZyBidWZmZXJzDQpkaXNhYmxlZCBhbmQgbm8gY29udmVyc2lvbiBpbiBwcm9ncmVzcyBhbmQg YWxsIHdlbnQgZ29vZC4gSSdsbCBkb3VibGUgY2hlY2sNCml0IGFnYWluIHRvIGJlIHN1cmUgYWxs IGdvb2QuDQoNCj4gDQo+IA0KPj4gKyAgICAgY2xrX3VucHJlcGFyZShzdC0+cGVyX2Nsayk7DQo+ PiAgICAgICByZWd1bGF0b3JfZGlzYWJsZShzdC0+dnJlZik7DQo+PiAgICAgICByZWd1bGF0b3Jf ZGlzYWJsZShzdC0+cmVnKTsNCj4+DQo+PiBAQCAtMjQ1MywyNSArMjU2MSw0MCBAQCBzdGF0aWMg X19tYXliZV91bnVzZWQgaW50IGF0OTFfYWRjX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ PiAgICAgICBpZiAocmV0KQ0KPj4gICAgICAgICAgICAgICBnb3RvIHJlZ19kaXNhYmxlX3Jlc3Vt ZTsNCj4+DQo+PiAtICAgICByZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoc3QtPnBlcl9jbGspOw0K Pj4gKyAgICAgcmV0ID0gY2xrX3ByZXBhcmUoc3QtPnBlcl9jbGspOw0KPj4gICAgICAgaWYgKHJl dCkNCj4+ICAgICAgICAgICAgICAgZ290byB2cmVmX2Rpc2FibGVfcmVzdW1lOw0KPj4NCj4+ICsg ICAgIHJldCA9IHBtX3J1bnRpbWVfZm9yY2VfcmVzdW1lKHN0LT5kZXYpOw0KPj4gKyAgICAgaWYg KHJldCA8IDApDQo+PiArICAgICAgICAgICAgIGdvdG8gY2xrX3VucHJlcGFyZV9yZXN1bWU7DQo+ PiArDQo+PiAgICAgICBhdDkxX2FkY19od19pbml0KGluZGlvX2Rldik7DQo+Pg0KPj4gICAgICAg LyogcmVjb25maWd1cmluZyB0cmlnZ2VyIGhhcmR3YXJlIHN0YXRlICovDQo+PiAgICAgICBpZiAo IWlpb19idWZmZXJfZW5hYmxlZChpbmRpb19kZXYpKQ0KPiAoc2VlIGJlbG93KQ0KPiAgICAgICAg IGZsaXAgdGhpcyBjaGVjayBzbyB0aGUgbmV4dCBibG9jayBpcyBpbmRlbnRlZCBnaXZuZQ0KPiAg ICAgICAgIGV4aXQgcGF0aCB3aWxsIGJlIHNoYXJlZCAodGh1cyByZW1vdmluZyB0aGUgZ290byku DQo+ICAgICAgICAgaWYgKGlpb19idWZmZXJfZW5hYmxlZChpbmRpb19kZXYpKSB7DQo+ICAgICAg ICAgICAgICAgICAvKiBjaGVjayAuLi4NCg0Kb2sNCg0KPiANCj4gDQo+PiAtICAgICAgICAgICAg IHJldHVybiAwOw0KPj4gKyAgICAgICAgICAgICBnb3RvIHBtX3J1bnRpbWVfcHV0Ow0KPj4NCj4+ ICAgICAgIC8qIGNoZWNrIGlmIHdlIGFyZSBlbmFibGluZyB0cmlnZ2VyZWQgYnVmZmVyIG9yIHRo ZSB0b3VjaHNjcmVlbiAqLw0KPj4gICAgICAgaWYgKGF0OTFfYWRjX2N1cnJlbnRfY2hhbl9pc190 b3VjaChpbmRpb19kZXYpKQ0KPj4gLSAgICAgICAgICAgICByZXR1cm4gYXQ5MV9hZGNfY29uZmln dXJlX3RvdWNoKHN0LCB0cnVlKTsNCj4+ICsgICAgICAgICAgICAgcmV0ID0gYXQ5MV9hZGNfY29u ZmlndXJlX3RvdWNoKHN0LCB0cnVlKTsNCj4+ICAgICAgIGVsc2UNCj4+IC0gICAgICAgICAgICAg cmV0dXJuIGF0OTFfYWRjX2NvbmZpZ3VyZV90cmlnZ2VyKHN0LT50cmlnLCB0cnVlKTsNCj4+ICsg ICAgICAgICAgICAgcmV0ID0gYXQ5MV9hZGNfY29uZmlndXJlX3RyaWdnZXIoc3QtPnRyaWcsIHRy dWUpOw0KPj4gKw0KPiAoc2VlIGJlbG93KQ0KPiANCj4gICAgICAgICAgICAgICAgIGlmIChyZXQg PCAwKQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBtX3J1bnRpbWVfcHV0Ow0KPiAg ICAgICAgIH0NCj4gDQo+ICAgICAgICAgcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShzdC0+ZGV2 KTsNCj4gICAgICAgICBwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChzdC0+ZGV2KTsNCj4gICAg ICAgICByZXR1cm4gMDsNCj4gDQo+PiArcG1fcnVudGltZV9wdXQ6DQo+IA0KPiBJIHRoaW5rIHRo aXMgd291bGQgYmUgZWFzaWVyIHRvIGZvbGxvdyBpZiB5b3UgYnJlYWsgdGhpcyB1cCBpbnRvIHRo ZQ0KPiBkaWZmZXJlbnQgY2FzZXMuDQoNCkknbGwgY2hlY2sgaXQuDQoNCj4gDQo+IHBtX3J1bnRp bWVfcHV0Og0KPiAgICAgICAgIHBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koc3QtPmRldik7DQo+ ICAgICAgICAgcG1fcnVudGltZV9wdXRfc3luY19zdXNwZW5kKHN0LT5kZXYpOw0KPiBjbGtfdW5w cmVwYXJlX3Jlc3VtZToNCj4gICAgICAgICAuLi4NCj4gDQo+PiArICAgICBwbV9ydW50aW1lX21h cmtfbGFzdF9idXN5KHN0LT5kZXYpOw0KPj4gKyAgICAgaWYgKHJldCA8IDApIHsNCj4+ICsgICAg ICAgICAgICAgcG1fcnVudGltZV9wdXRfc3luY19zdXNwZW5kKHN0LT5kZXYpOw0KPj4gKyAgICAg ICAgICAgICBnb3RvIGNsa191bnByZXBhcmVfcmVzdW1lOw0KPj4gKyAgICAgfSBlbHNlIHsNCj4+ ICsgICAgICAgICAgICAgcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoc3QtPmRldik7DQo+PiAr ICAgICB9DQo+Pg0KPj4gICAgICAgLyogbm90IG5lZWRlZCBidXQgbW9yZSBleHBsaWNpdCAqLw0K Pj4gICAgICAgcmV0dXJuIDA7DQo+Pg0KPj4gK2Nsa191bnByZXBhcmVfcmVzdW1lOg0KPj4gKyAg ICAgY2xrX3VucHJlcGFyZShzdC0+cGVyX2Nsayk7DQo+PiAgdnJlZl9kaXNhYmxlX3Jlc3VtZToN Cj4+ICAgICAgIHJlZ3VsYXRvcl9kaXNhYmxlKHN0LT52cmVmKTsNCj4+ICByZWdfZGlzYWJsZV9y ZXN1bWU6DQo+PiBAQCAtMjQ4MSw3ICsyNjA0LDI5IEBAIHN0YXRpYyBfX21heWJlX3VudXNlZCBp bnQgYXQ5MV9hZGNfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikNCj4+ICAgICAgIHJldHVybiBy ZXQ7DQo+PiAgfQ0KPj4NCj4+IC1zdGF0aWMgU0lNUExFX0RFVl9QTV9PUFMoYXQ5MV9hZGNfcG1f b3BzLCBhdDkxX2FkY19zdXNwZW5kLCBhdDkxX2FkY19yZXN1bWUpOw0KPj4gK3N0YXRpYyBpbnQg X19tYXliZV91bnVzZWQgYXQ5MV9hZGNfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRl dikNCj4gDQo+IFNlZSBiZWxvdywgYnV0IHRoZXNlIG5vIGxvbmdlciBuZWVkIHRvIGJlIG1hcmtl ZCBfX21heWJlX3VudXNlZC4NCj4gDQo+PiArew0KPj4gKyAgICAgc3RydWN0IGlpb19kZXYgKmlu ZGlvX2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPj4gKyAgICAgc3RydWN0IGF0OTFfYWRj X3N0YXRlICpzdCA9IGlpb19wcml2KGluZGlvX2Rldik7DQo+PiArDQo+PiArICAgICBjbGtfZGlz YWJsZShzdC0+cGVyX2Nsayk7DQo+PiArDQo+PiArICAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiAr DQo+PiArc3RhdGljIGludCBfX21heWJlX3VudXNlZCBhdDkxX2FkY19ydW50aW1lX3Jlc3VtZShz dHJ1Y3QgZGV2aWNlICpkZXYpDQo+PiArew0KPj4gKyAgICAgc3RydWN0IGlpb19kZXYgKmluZGlv X2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPj4gKyAgICAgc3RydWN0IGF0OTFfYWRjX3N0 YXRlICpzdCA9IGlpb19wcml2KGluZGlvX2Rldik7DQo+PiArDQo+PiArICAgICByZXR1cm4gY2xr X2VuYWJsZShzdC0+cGVyX2Nsayk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZGV2X3BtX29wcyBfX21heWJlX3VudXNlZCBhdDkxX2FkY19wbV9vcHMgPSB7DQo+PiArICAg ICBTRVRfU1lTVEVNX1NMRUVQX1BNX09QUyhhdDkxX2FkY19zdXNwZW5kLCBhdDkxX2FkY19yZXN1 bWUpDQo+PiArICAgICBTRVRfUlVOVElNRV9QTV9PUFMoYXQ5MV9hZGNfcnVudGltZV9zdXNwZW5k LCBhdDkxX2FkY19ydW50aW1lX3Jlc3VtZSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBO VUxMKQ0KPiBVc2UgdGhlIG5ldyBTWVNURU1fU0xFRVBfUE1fT1BTKCkgYW5kIFJVTlRJTUVfUE1f T1BTKCkgKyBkcm9wIHRoZSBfX21heWJlX3VudXNlZC4NCj4gDQo+IFNxdWFzaCB0aGUgbmV4dCBw YXRjaCBpbnRvIGhlcmUgc28gdGhhdCB0aGUgcG1fcHRyKCkgbWFnaWMgd2lsbCBhbGxvdyB0aGUg Y29tcGlsZXINCj4gdG8gY2xlYW4gdGhlc2Ugb3V0IGlmIG5vdCB1c2VkLg0KPiANCj4gUGF1bCBD ZXJjdWVpbCByZWNlbnRseSBkaWQgc29tZSB3b3JrIHRvIHNpbXBsaWZ5IGFsbCB0aGlzIHN0dWZm Lg0KPiBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC90b3J2 YWxkcy9saW51eC5naXQvY29tbWl0L2luY2x1ZGUvbGludXgvcG0uaD9pZD0wYWUxMDFmZGQzMjk3 YjcxNjU3NTUzNDBlMDUzODZmMWUxMzc5NzA5DQoNCk5pY2UsIHRoYW5rcyBmb3IgcG9pbmluZyBp dC4NCg0KPiANCj4+ICt9Ow0KPj4NCj4+ICBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9p ZCBhdDkxX2FkY19kdF9tYXRjaFtdID0gew0KPj4gICAgICAgew0KPiANCg0K