From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="oenaa554"; dkim=pass (1024-bit key) header.d=mediateko365.onmicrosoft.com header.i=@mediateko365.onmicrosoft.com header.b="C9/DmfSy" Received: from mailgw02.mediatek.com (unknown [210.61.82.184]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2F0021A4; Thu, 23 Nov 2023 01:22:42 -0800 (PST) X-UUID: d68873fe89e111ee8051498923ad61e6-20231123 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=x5B9VUN0RIVgU4lF1XD8mmPao9d6S/05m+cvydnK3O4=; b=oenaa554jL/g/Wsjc6UimUbsmnQy0GpSP9E6xjBsx/D6onR4Hg5la4DQsYbUcK004xAB/AK11jeanGhUwcl62/x1gM6+NekFkKKCumFz5TDS/Xpo7aLFRBQiMsxmA00R3IGy5r4ah6LbPV7nfW5+VX4pzDu+e3ysXoZmek3bvkE=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.33,REQID:5441def6-a7ae-4a4d-9d41-cb0fb0899dd9,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:364b77b,CLOUDID:1f236560-c89d-4129-91cb-8ebfae4653fc,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:0,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO, DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: d68873fe89e111ee8051498923ad61e6-20231123 Received: from mtkmbs11n1.mediatek.inc [(172.21.101.185)] by mailgw02.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1175087607; Thu, 23 Nov 2023 17:22:35 +0800 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by MTKMBS14N1.mediatek.inc (172.21.101.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Thu, 23 Nov 2023 17:22:32 +0800 Received: from APC01-TYZ-obe.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Thu, 23 Nov 2023 17:22:32 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FazgsoqopUJ58f44aUTiM+rNh6Eu8hufXHD/dNsOTrWXbexp3I2yPj8Ccv9dLq0GKUiOYrGkJaMHV/BVIuARF5dcVSipTHWUB46snSd1r+HioIOHiAeSBDvu/XYb0/CS/aN3f9+Cbs8RrPq8/MQ59h8f4oV3+NOxA2NOULSO8g2QClfhzo/X7Pf1/KSb4uQK2Vik6VMnpKzCp6RCXNw5HUx4F8R/slW0cIpCpwRapkU36nCQi8D9oi6pvyLCVt/Bl867OamWf3W9HEErF0qUA7pi+WBaAC/xzgfzVe9wBmtq+SxO7mnza3MvXVcGskAxCHbQ7RNKsk1RKmoK/6JB/g== 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=x5B9VUN0RIVgU4lF1XD8mmPao9d6S/05m+cvydnK3O4=; b=nFSNgD3tLPrpXIuZxKHeYarNXvIZPPD4S+Y8v4HiGmmqZmhGT7kheDxJpMphDGXIerB9nW4Nx6SsYSEcJC7s7Aey5aICpNZw9zCUjL5ydn1dGQmi6x9qRSEWFwVhaD16N3RIU55cfsFCRnMxp6ekiz4siiTwh6+YnO0cCdH3ElydKafhRQWmeTX6kC71Nvc1WHxYPOcLUDGDervYiSa74Le1R1p26eU7I6Wv2+5S2RK5NzFejlKSD1qZ1pWeq5Ld2XZPPKu/JvgP3ijTlNb1wYe1JDY3moOKi7wn8F5f6WiBdgFinawPOZ72cobgc9qunx01ifHHlyBFubvdHX8BMw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=x5B9VUN0RIVgU4lF1XD8mmPao9d6S/05m+cvydnK3O4=; b=C9/DmfSyH2GG7ccnZT0eK8JkibSGUzw7KzbevKe1HvJ/DJYKZcN1QdWOTKiqUdeu1n+ZQdJM6LZjBnHT1CyZlSA3sJ10CDqdKGWe1KyzFlbRLqSTdHJ7rpeQozZJCLzOqDQWtNfk47CBXNtHHhSoOEQPE3Lc5Zp787VfZ3qps4Y= Received: from TYZPR03MB6624.apcprd03.prod.outlook.com (2603:1096:400:1f4::13) by TYZPR03MB7666.apcprd03.prod.outlook.com (2603:1096:400:429::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.20; Thu, 23 Nov 2023 09:22:30 +0000 Received: from TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::a4e1:1557:a3fe:c252]) by TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::a4e1:1557:a3fe:c252%4]) with mapi id 15.20.7002.028; Thu, 23 Nov 2023 09:22:30 +0000 From: =?utf-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= To: =?utf-8?B?U2hhd24gU3VuZyAo5a6L5a2d6KyZKQ==?= , "matthias.bgg@gmail.com" , "angelogioacchino.delregno@collabora.com" , "chunkuang.hu@kernel.org" , "krzysztof.kozlowski+dt@linaro.org" CC: "linux-kernel@vger.kernel.org" , "robh+dt@kernel.org" , =?utf-8?B?U2luZ28gQ2hhbmcgKOW8teiIiOWciyk=?= , "linux-mediatek@lists.infradead.org" , "wenst@chromium.org" , =?utf-8?B?SmFzb24tSkggTGluICjmnpfnnb/npaUp?= , "devicetree@vger.kernel.org" , =?utf-8?B?TmFuY3kgTGluICjmnpfmrKPonqIp?= , "dri-devel@lists.freedesktop.org" , "linux-arm-kernel@lists.infradead.org" , "sean@poorly.run" Subject: Re: [PATCH v3 07/11] drm/mediatek: Support alpha blending in VDOSYS0 Thread-Topic: [PATCH v3 07/11] drm/mediatek: Support alpha blending in VDOSYS0 Thread-Index: AQHaAMYOegKJhBy2lkqlPDrNuMd6RrCH25yA Date: Thu, 23 Nov 2023 09:22:29 +0000 Message-ID: References: <20231017064717.21616-1-shawn.sung@mediatek.com> <20231017064717.21616-8-shawn.sung@mediatek.com> In-Reply-To: <20231017064717.21616-8-shawn.sung@mediatek.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mediatek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR03MB6624:EE_|TYZPR03MB7666:EE_ x-ms-office365-filtering-correlation-id: d8f3559e-7b58-4c90-0e5d-08dbec05b768 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Sl4Z1PqMRLM6my5eqEYVtgBPh3a53PduDULHa82opnEDpSqNSDKyaO26+Ah+gosSnvHt3iAWqsDNmCDP3bBFNoPErDQSTG3AyBOllDuJ//X1HamLniiQ69Y9FZzBW4NCiXcXTSmENrS6pgxYDNF9zz2+gI74yEixW51iZnEw0OZUqtQlNd+X77r9vKD05YsJW94DcycSctQvJqV7CHfELsTYcDmmcDe0U+QPgaczhZnrCbBoc+NruuKoV/xJGNXb5nBMFur+2uoHDAKTQ8KLdoRRLi5j773577/GXJ8QsIBZ5O0kywSCPAynMKiQgmMKqHyZY151MSeFeIb+FDAJUlqdAljj9EUe6wwHqjR7rM2wKkwLfG5lm4xNSJViNN+jLyRjMgV1cFM1h3Qz96SdeMdr9n6/+R/GBX7s3zrazyBl6Y95LvV2m5/2yzASZn/BqAYMMBftXXXhJjezPOTKI0uaJyHvznHvfpa/9kQsL+QN7GcAJo663TQpJ7Y4Oy8ESjH80XLA1vKqsJkRqIy8hI8Jki6ekDNxvnFKDXkrC1PJQHw8fEB7bYOqjgAtxU+4yJNGBk3HB7T/6afHfPiCuzWyMb/C+rPvMJlmKZHgfKoOodHcliuQKnQOXjfju6soQpu+T/dS9pi62/hHow+grkdsR5CPqa4Rr0sOgm2iqt9eJt9vL/GjrcS9ilYKFOjd x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB6624.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(346002)(136003)(396003)(366004)(39860400002)(230922051799003)(64100799003)(1800799012)(451199024)(186009)(38100700002)(38070700009)(66556008)(76116006)(110136005)(66946007)(66446008)(66476007)(85182001)(36756003)(122000001)(86362001)(71200400001)(6512007)(26005)(2616005)(83380400001)(478600001)(4001150100001)(2906002)(30864003)(316002)(64756008)(54906003)(7416002)(6486002)(5660300002)(8676002)(4326008)(6506007)(41300700001)(8936002)(21314003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QkV3NzdUVVJtcGtiVUEzRi9kNVJ1TTVxMTkvZjlsNzh4cUI1dkthNG4rbmM4?= =?utf-8?B?OVJLTGN4R3BrbEdWUHc4Uis3bDRFRVVJSHFSQ05JMUxQT2MybXZtZlArUTM1?= =?utf-8?B?aVhOT3RnaXRSV3Z0N3FnSitDa0lFS256SjRpYVR3NElGaTN4N0R4NWRMZVU3?= =?utf-8?B?R0JESVZwaEtzRUtVWFJRTlpsbVJ1R1pRa3lpUmpacDNzbVRFMUVJS3lBWnNU?= =?utf-8?B?QUlnUzNhMXFzbE1keHRjckJRbm9BRDZHMEsyc1dML0JVNU9OdXFjSmpMd25T?= =?utf-8?B?WFI4WGdkWFNnT2w1Q1JmTmlQK2RiNzJVU0dQNG5Vc2I2UGtKd2Z2aTFCeUh3?= =?utf-8?B?ZGdkVmxNNnpjTUg1S1g5eDBlVVN5TzlsTkRDeVZBS2l2aE1ITzgremRLNE9j?= =?utf-8?B?ZEYyYUZBU0w0K3BVOVFZRytFYnhLOWxUZ1oyclpUbDlaNFhsUmQ2bUUzdkVD?= =?utf-8?B?TkU0NnFzUVZ2OFZVVmlrOWNJL2licENrTzI1dk4rRTlDYjlZNnI5OHVKWHhS?= =?utf-8?B?Q0pLdW5ueGdodXVDOXdxVnczSW9wdG4rMkN6VklUSnVsSGZGVWRzSmUrU09m?= =?utf-8?B?SjdmYVUwamlLYTBLSmlBL21YbTZIR2RYdWY4UWJPR0lSblYzSjZSeVhHQ0NF?= =?utf-8?B?WTMxS2JtYnllY05UTmRya0dkR2N2cEVBRVhuQzR3MHNrNEdjajhvOXN1UnJX?= =?utf-8?B?VWw2OFEvcWRnYThTR01Wdm5CYmZ1eEZUTCtJdGE2aGcwc1VOUFJ5SHhiYnVY?= =?utf-8?B?Ylg1R1JqTU9ZN2pCWGVLOWJqQWhJNlVQcmVyM2hOOEYxMksrZkZhUUYwQ1pa?= =?utf-8?B?RGYvUWk5SVlTR2s2SDRuWVZOb1JTUGtYcS8rcUhJY0JaTXRQLzVpQVN4bTFS?= =?utf-8?B?amZ2L04wb0JWOGhYbG8yL2RKSEJXeGIxUDlzdFl2UWROQTVUV3ZOZFQ5UmhC?= =?utf-8?B?bFI4N3VxSk10NWZEV1JzdjhjUVM2ZjFOazdIenA5T2tKcUZKRk02TlZvUTAy?= =?utf-8?B?NFh5RWMzamxIU1FXOEFZYVpiVTBKRWh0MXRUcTJuWStYUHQ2WDFJNWE0MFJt?= =?utf-8?B?SFV5VGtUY09uaHA5OXVQaFlpZENIeDNKZXFTK3lENGg0RXc4SkdGdUtabEEr?= =?utf-8?B?RFJiL1p5dmFlSFJxeXB3TExQcW05cFU3WkppeVRxQkY2dkZsU21LdWhGRFcv?= =?utf-8?B?Nmx1RkRlVzhuK0FXTExyZHMvdUQrSXJBc1JkT25tOFZCOHJ6STAzMG1jUVQw?= =?utf-8?B?ZGdJK21qUkl5a3Q2cnQzNWxVbk0vOTVJOXBWL2ZqQ3NoaGpZbTN6Tjh6SkhN?= =?utf-8?B?MEZoQlljUmJxRS80cEFaOStFbDM5QTQ0a2VhTUdmU3dKNy9pQlJWdlZVQmc0?= =?utf-8?B?aDVoeFg1bkF5UmVyVWFYakU4NW9reGtkY1AyUlNoSWtLZkpITGhxTmVwOVMz?= =?utf-8?B?TDJEdHI4TkFoQ2psT09PdVhoZmVhRWRiZmZHSmwrTHBMbGFkekVBZXlBYSsz?= =?utf-8?B?SFlXd0NFVXBJbms4Smc3VUZqVXEwaXhtWDRTWG9KNWtxd2pFWk9QTkVqdENH?= =?utf-8?B?cEdTajFCOERPMGhNZmpQcURNMEV5VFpIaHd5b240NjZVV01nY3diY296UFdS?= =?utf-8?B?YnBtRjlwNkNCMExXUGNYWWdtZUNQcHJIakF5RSszRDlyVStrTGxzUzlkS3FY?= =?utf-8?B?UXp6SVBvL2lWTG5tcDNRNmVVZHVGU2M3OWhYUWtpVW5WU0FEOFZSVmFKVHho?= =?utf-8?B?V1pJMER6THJNOGE3K3JkeHNuejl1bDl6MUk2d2FHQ2ZMLzZYOHllWWNIc1ZH?= =?utf-8?B?ek9MVFkveVh5WnI3OE5BdWFxZW9RM3Y0VTh4VGkvNk5hZXM1L3ladjZaTXBx?= =?utf-8?B?c2l4VzlnNDlGSjhPRUIrUXJjWExtbHduU29DWm5pUS9lZGE5TEtzS3RDVFQw?= =?utf-8?B?WkRzUDBjaGI3ajRPUWZWMXZZdUtUSzIvQXoxMzJzTm1WOTJ6OVRmL3pGaVd0?= =?utf-8?B?ZE9oVFJZcEtOUkJVK282alUrZURhdzNmY08xU2ZoOEw1ak9YL3dLVFF4VUlD?= =?utf-8?B?WkFiK0JSRlh3V2w4OEZLTG8vYTdVKzJSYWxSbjdWQk15MnpxWnZtcFpRN3VR?= =?utf-8?Q?aPsK671lO4ZUP/6pH3wsBCmzs?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB6624.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8f3559e-7b58-4c90-0e5d-08dbec05b768 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2023 09:22:29.8682 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 7D5rhkHhFu6HqIaGiNeQp2lbBC66bVVH1DBgEVD1OEtCBNr/TrkHvOOwY1Uxyyb1KrU0tUA4ARK4XdMzdCrZBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR03MB7666 X-TM-AS-Product-Ver: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-AS-Result: No-10--20.256400-8.000000 X-TMASE-MatchedRID: vbSD0OnL8/I/XHdICuW5r8AmcZEx8XHJMZpQS7dE0daxUZq4R85n78kU hKWc+gwPz7xwExOm0v0Sqo3ZUfrHhwh/VY4MmcirtG07VELUSnTt/okBLaEo+C8zQZ2rR/Op8bf 335SL+13JGtAn4i/AISJPRcn/eGjlo6mieJuJ3HVc/msUC5wFQXcF/0kiqyh4X15NJHwjp24zad tyRJ2r2sQvmGS2rh/CNJtl6mAPadwE7MuQrZP2o3XuAcDIAWvTu56wFPSkMVEUtdRZTmEaIQfoR wTLQ8VIYUA4QKGgNJ1ZIiTk3HCtfnS29oFNPDB8wM5GqAoqJio+alo1+UETiQ2G3vz8l/IEhXAr +h4GfTAKhAXmpMGs4Od4s9CWIqKchrD3pNcSx1YshGpBsK6H7rmnDa2zGPi0bISqfOqhuFyjxYy RBa/qJRVHsNBZf9aRAYt5KiTiutkLbigRnpKlKT4yqD4LKu3A X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--20.256400-8.000000 X-TMASE-Version: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-SNTS-SMTP: 87092AC04E3D430AB4CD1610861F0DA0A7E64CCE9DF1722CD3A5E627EE35D7C62000:8 SGksIEhzaWFvLWNoaWVuOg0KDQpDaGFuZ2UgdGhlIHRpdGxlIHRvIFN1cHBvcnQgYWxwaGEgYmxl bmRpbmcgaW4gb3ZlcmxheQ0KDQpPbiBUdWUsIDIwMjMtMTAtMTcgYXQgMTQ6NDcgKzA4MDAsIEhz aWFvIENoaWVuIFN1bmcgd3JvdGU6DQo+IFN1cHBvcnQgcHJlbXVsdGlwbHkgYW5kIGNvdmVyYWdl IGFscGhhIGJsZW5kaW5nIG1vZGVzLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogSHNpYW8gQ2hpZW4g U3VuZyA8c2hhd24uc3VuZ0BtZWRpYXRlay5jb20+DQo+IC0tLQ0KPiAgZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kaXNwX292bC5jIHwgMjAyICsrKysrKysrKysrKysrKysrKysrKy0NCj4g LS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCAxNzggaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0p DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292 bC5jDQo+IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bC5jDQo+IGluZGV4 IDVhYWY0MzQyY2RiZC4uNzVkZTEzNTBlMzM3IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kaXNwX292bC5jDQo+IEBAIC0zMSw2ICszMSw3IEBADQo+ICAjZGVmaW5lIE9WTF9M QVlFUl9TTUlfSURfRU4JCQkJQklUKDApDQo+ICAjZGVmaW5lIE9WTF9CR0NMUl9TRUxfSU4JCQkJ QklUKDIpDQo+ICAjZGVmaW5lIE9WTF9MQVlFUl9BRkJDX0VOKG4pCQkJCUJJVCg0K24pDQo+ICsj ZGVmaW5lIE9WTF9PVVRQVVRfQ0xBTVAJCQkJQklUKDI2KQ0KPiAgI2RlZmluZSBESVNQX1JFR19P VkxfUk9JX0JHQ0xSCQkJMHgwMDI4DQo+ICAjZGVmaW5lIERJU1BfUkVHX09WTF9TUkNfQ09OCQkJ MHgwMDJjDQo+ICAjZGVmaW5lIERJU1BfUkVHX09WTF9DT04obikJCQkoMHgwMDMwICsgMHgyMCAq IChuKSkNCj4gQEAgLTM5LDEwICs0MCwyOCBAQA0KPiAgI2RlZmluZSBESVNQX1JFR19PVkxfUElU Q0hfTVNCKG4pCQkoMHgwMDQwICsgMHgyMCAqIChuKSkNCj4gICNkZWZpbmUgT1ZMX1BJVENIX01T Ql8yTkRfU1VCQlVGCQkJQklUKDE2KQ0KPiAgI2RlZmluZSBESVNQX1JFR19PVkxfUElUQ0gobikJ CQkoMHgwMDQ0ICsgMHgyMA0KPiAqIChuKSkNCj4gKyNkZWZpbmUgT1ZMX0NPTlNUX0JMRU5ECQkJ CQlCSVQoMjgpDQo+ICAjZGVmaW5lIERJU1BfUkVHX09WTF9SRE1BX0NUUkwobikJCSgweDAwYzAg KyAweDIwICogKG4pKQ0KPiAgI2RlZmluZSBESVNQX1JFR19PVkxfUkRNQV9HTUMobikJCSgweDAw YzggKyAweDIwICogKG4pKQ0KPiAgI2RlZmluZSBESVNQX1JFR19PVkxfQUREUl9NVDI3MDEJCTB4 MDA0MA0KPiAgI2RlZmluZSBESVNQX1JFR19PVkxfQ0xSRk1UX0VYVAkJCTB4MDJEMA0KPiArI2Rl ZmluZSBESVNQX1JFR19PVkxfQ0xSRk1UX0VYVDEJCTB4MDJEOA0KPiArI2RlZmluZSBPVkxfQ0xS Rk1UX0VYVDFfQ1NDX0VOKG4pCQkJKDEgPDwgKCgobikgKg0KPiA0KSArIDEpKQ0KPiArI2RlZmlu ZSBESVNQX1JFR19PVkxfWTJSX1BBUkFfUjAobikJCSgweDAxMzQgKyAweDI4ICogKG4pKQ0KPiAr I2RlZmluZSBPVkxfWTJSX1BBUkFfQ19DRl9STVkJCQkJKEdFTk1BUw0KPiBLKDE0LCAwKSkNCj4g KyNkZWZpbmUgRElTUF9SRUdfT1ZMX1kyUl9QQVJBX0cwKG4pCQkoMHgwMTNjICsgMHgyOCAqIChu KSkNCj4gKyNkZWZpbmUgT1ZMX1kyUl9QQVJBX0NfQ0ZfR01VCQkJCShHRU5NQVMNCj4gSygzMCwg MTYpKQ0KPiArI2RlZmluZSBESVNQX1JFR19PVkxfWTJSX1BBUkFfQjEobikJCSgweDAxNDggKyAw eDI4ICogKG4pKQ0KPiArI2RlZmluZSBPVkxfWTJSX1BBUkFfQ19DRl9CTVYJCQkJKEdFTk1BUw0K PiBLKDE0LCAwKSkNCj4gKyNkZWZpbmUgRElTUF9SRUdfT1ZMX1kyUl9QQVJBX1lVVl9BXzAobikJ KDB4MDE0YyArIDB4MjggKiAobikpDQo+ICsjZGVmaW5lIE9WTF9ZMlJfUEFSQV9DX0NGX1lBCQkJ CShHRU5NQVNLKDEwLA0KPiAwKSkNCj4gKyNkZWZpbmUgT1ZMX1kyUl9QQVJBX0NfQ0ZfVUEJCQkJ KEdFTk1BU0soMjYsDQo+IDE2KSkNCj4gKyNkZWZpbmUgRElTUF9SRUdfT1ZMX1kyUl9QQVJBX1lV Vl9BXzEobikJKDB4MDE1MCArIDB4MjggKiAobikpDQo+ICsjZGVmaW5lIE9WTF9ZMlJfUEFSQV9D X0NGX1ZBCQkJCShHRU5NQVNLKDEwLA0KPiAwKSkNCj4gKyNkZWZpbmUgRElTUF9SRUdfT1ZMX1ky Ul9QUkVfQUREMihuKQkJKDB4MDE1NCArIDB4MjggKiAobikpDQo+ICsjZGVmaW5lIERJU1BfUkVH X09WTF9SMlJfUjAobikJCQkoMHgwNTAwICsgMHg0MA0KPiAqIChuKSkNCj4gKyNkZWZpbmUgRElT UF9SRUdfT1ZMX1IyUl9HMShuKQkJCSgweDA1MTAgKyAweDQwDQo+ICogKG4pKQ0KPiArI2RlZmlu ZSBESVNQX1JFR19PVkxfUjJSX0IyKG4pCQkJKDB4MDUyMCArIDB4NDANCj4gKiAobikpDQo+ICAj ZGVmaW5lIERJU1BfUkVHX09WTF9BRERSX01UODE3MwkJMHgwZjQwDQo+ICAjZGVmaW5lIERJU1Bf UkVHX09WTF9BRERSKG92bCwgbikJCSgob3ZsKS0+ZGF0YS0+YWRkciArDQo+IDB4MjAgKiAobikp DQo+ICAjZGVmaW5lIERJU1BfUkVHX09WTF9IRFJfQUREUihvdmwsIG4pCQkoKG92bCktPmRhdGEt DQo+ID5hZGRyICsgMHgyMCAqIChuKSArIDB4MDQpDQo+IEBAIC01MiwxMyArNzEsMTkgQEANCj4g ICNkZWZpbmUgR01DX1RIUkVTSE9MRF9ISUdICSgoMSA8PCBHTUNfVEhSRVNIT0xEX0JJVFMpIC8g NCkNCj4gICNkZWZpbmUgR01DX1RIUkVTSE9MRF9MT1cJKCgxIDw8IEdNQ19USFJFU0hPTERfQklU UykgLyA4KQ0KPiAgDQo+IC0jZGVmaW5lIE9WTF9DT05fQllURV9TV0FQCUJJVCgyNCkNCj4gLSNk ZWZpbmUgT1ZMX0NPTl9NVFhfWVVWX1RPX1JHQgkoNiA8PCAxNikNCj4gLSNkZWZpbmUgT1ZMX0NP Tl9DTFJGTVRfUkdCCSgxIDw8IDEyKQ0KPiAtI2RlZmluZSBPVkxfQ09OX0NMUkZNVF9SR0JBODg4 OAkoMiA8PCAxMikNCj4gLSNkZWZpbmUgT1ZMX0NPTl9DTFJGTVRfQVJHQjg4ODgJKDMgPDwgMTIp DQo+IC0jZGVmaW5lIE9WTF9DT05fQ0xSRk1UX1VZVlkJKDQgPDwgMTIpDQo+IC0jZGVmaW5lIE9W TF9DT05fQ0xSRk1UX1lVWVYJKDUgPDwgMTIpDQo+ICsjZGVmaW5lIE9WTF9DT05fQ0xSRk1UX01B TgkJQklUKDIzKQ0KPiArI2RlZmluZSBPVkxfQ09OX0JZVEVfU1dBUAkJQklUKDI0KQ0KPiArI2Rl ZmluZSBPVkxfQ09OX1JHQl9TV0FQCQlCSVQoMjUpDQo+ICsjZGVmaW5lIE9WTF9DT05fTVRYX0FV VE9fRElTCQlCSVQoMjYpDQo+ICsjZGVmaW5lIE9WTF9DT05fTVRYX0VOCQkJQklUKDI3KQ0KPiAr I2RlZmluZSBPVkxfQ09OX0NMUkZNVF9SR0IJCSgxIDw8IDEyKQ0KPiArI2RlZmluZSBPVkxfQ09O X0NMUkZNVF9SR0JBODg4OAkJKDIgPDwgMTIpDQo+ICsjZGVmaW5lIE9WTF9DT05fQ0xSRk1UX0FS R0I4ODg4CQkoMyA8PCAxMikNCj4gKyNkZWZpbmUgT1ZMX0NPTl9DTFJGTVRfUEFSR0I4ODg4CShP VkxfQ09OX0NMUkZNVF9BUkdCODg4OCB8DQo+IE9WTF9DT05fQ0xSRk1UX01BTikNCj4gKyNkZWZp bmUgT1ZMX0NPTl9DTFJGTVRfVVlWWQkJKDQgPDwgMTIpDQo+ICsjZGVmaW5lIE9WTF9DT05fQ0xS Rk1UX1lVWVYJCSg1IDw8IDEyKQ0KPiArI2RlZmluZSBPVkxfQ09OX01UWF9ZVVZfVE9fUkdCCQko NiA8PCAxNikNCj4gKyNkZWZpbmUgT1ZMX0NPTl9NVFhfUFJPR1JBTU1BQkxFCSg4IDw8IDE2KQ0K PiAgI2RlZmluZSBPVkxfQ09OX0NMUkZNVF9SR0I1NjUob3ZsKQkoKG92bCktPmRhdGEtPmZtdF9y Z2I1NjVfaXNfMCA/DQo+IFwNCj4gIAkJCQkJMCA6IE9WTF9DT05fQ0xSRk1UX1JHQikNCj4gICNk ZWZpbmUgT1ZMX0NPTl9DTFJGTVRfUkdCODg4KG92bCkJKChvdmwpLT5kYXRhLT5mbXRfcmdiNTY1 X2lzXzAgPw0KPiBcDQo+IEBAIC03Miw2ICs5NywyMiBAQA0KPiAgI2RlZmluZQlPVkxfQ09OX1ZJ UlRfRkxJUAlCSVQoOSkNCj4gICNkZWZpbmUJT1ZMX0NPTl9IT1JaX0ZMSVAJQklUKDEwKQ0KPiAg DQo+ICtzdGF0aWMgaW5saW5lIGJvb2wgaXNfMTBiaXRfcmdiKHUzMiBmbXQpDQo+ICt7DQo+ICsJ c3dpdGNoIChmbXQpIHsNCj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjIxMDEwMTA6DQo+ICsJY2Fz ZSBEUk1fRk9STUFUX0FSR0IyMTAxMDEwOg0KPiArCWNhc2UgRFJNX0ZPUk1BVF9SR0JYMTAxMDEw MjoNCj4gKwljYXNlIERSTV9GT1JNQVRfUkdCQTEwMTAxMDI6DQo+ICsJY2FzZSBEUk1fRk9STUFU X1hCR1IyMTAxMDEwOg0KPiArCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMjEwMTAxMDoNCj4gKwljYXNl IERSTV9GT1JNQVRfQkdSWDEwMTAxMDI6DQo+ICsJY2FzZSBEUk1fRk9STUFUX0JHUkExMDEwMTAy Og0KPiArCQlyZXR1cm4gdHJ1ZTsNCj4gKwl9DQo+ICsJcmV0dXJuIGZhbHNlOw0KPiArfQ0KPiAr DQo+ICBzdGF0aWMgY29uc3QgdTMyIG10ODE3M19mb3JtYXRzW10gPSB7DQo+ICAJRFJNX0ZPUk1B VF9YUkdCODg4OCwNCj4gIAlEUk1fRk9STUFUX0FSR0I4ODg4LA0KPiBAQCAtODksMTIgKzEzMCwy MCBAQCBzdGF0aWMgY29uc3QgdTMyIG10ODE3M19mb3JtYXRzW10gPSB7DQo+ICBzdGF0aWMgY29u c3QgdTMyIG10ODE5NV9mb3JtYXRzW10gPSB7DQo+ICAJRFJNX0ZPUk1BVF9YUkdCODg4OCwNCj4g IAlEUk1fRk9STUFUX0FSR0I4ODg4LA0KPiArCURSTV9GT1JNQVRfWFJHQjIxMDEwMTAsDQo+ICAJ RFJNX0ZPUk1BVF9BUkdCMjEwMTAxMCwNCj4gIAlEUk1fRk9STUFUX0JHUlg4ODg4LA0KPiAgCURS TV9GT1JNQVRfQkdSQTg4ODgsDQo+ICsJRFJNX0ZPUk1BVF9CR1JYMTAxMDEwMiwNCj4gIAlEUk1f Rk9STUFUX0JHUkExMDEwMTAyLA0KPiAgCURSTV9GT1JNQVRfQUJHUjg4ODgsDQo+ICAJRFJNX0ZP Uk1BVF9YQkdSODg4OCwNCj4gKwlEUk1fRk9STUFUX1hCR1IyMTAxMDEwLA0KPiArCURSTV9GT1JN QVRfQUJHUjIxMDEwMTAsDQo+ICsJRFJNX0ZPUk1BVF9SR0JYODg4OCwNCj4gKwlEUk1fRk9STUFU X1JHQkE4ODg4LA0KPiArCURSTV9GT1JNQVRfUkdCWDEwMTAxMDIsDQo+ICsJRFJNX0ZPUk1BVF9S R0JBMTAxMDEwMiwNCg0KVGhpcyBpcyBub3QgZGlyZWN0bHkgcmVsYXRlZCB0byBhbHBoYSBibGVu ZGluZy4gU2VwYXJhdGUgdGhpcyB0byBhDQpwYXRjaCBvZiBhZGQgc3VwcG9ydGluZyBjb2xvciBm b3JtYXQuDQoNCj4gIAlEUk1fRk9STUFUX1JHQjg4OCwNCj4gIAlEUk1fRk9STUFUX0JHUjg4OCwN Cj4gIAlEUk1fRk9STUFUX1JHQjU2NSwNCj4gQEAgLTIwOCwxNCArMjU3LDE5IEBAIHZvaWQgbXRr X292bF9jbGtfZGlzYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICB2b2lkIG10a19vdmxfc3Rh cnQoc3RydWN0IGRldmljZSAqZGV2KQ0KPiAgew0KPiAgCXN0cnVjdCBtdGtfZGlzcF9vdmwgKm92 bCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiArCXVuc2lnbmVkIGludCByZWcgPSByZWFkbChv dmwtPnJlZ3MgKw0KPiBESVNQX1JFR19PVkxfREFUQVBBVEhfQ09OKTsNCj4gIA0KPiAtCWlmIChv dmwtPmRhdGEtPnNtaV9pZF9lbikgew0KPiAtCQl1bnNpZ25lZCBpbnQgcmVnOw0KPiArCWlmIChv dmwtPmRhdGEtPnNtaV9pZF9lbikNCj4gKwkJcmVnIHw9IE9WTF9MQVlFUl9TTUlfSURfRU47DQo+ ICANCj4gLQkJcmVnID0gcmVhZGwob3ZsLT5yZWdzICsgRElTUF9SRUdfT1ZMX0RBVEFQQVRIX0NP Tik7DQo+IC0JCXJlZyA9IHJlZyB8IE9WTF9MQVlFUl9TTUlfSURfRU47DQo+IC0JCXdyaXRlbF9y ZWxheGVkKHJlZywgb3ZsLT5yZWdzICsNCj4gRElTUF9SRUdfT1ZMX0RBVEFQQVRIX0NPTik7DQo+ IC0JfQ0KPiArCS8qDQo+ICsJICogY2xhbXAgb3V0cHV0IHRvIDEwIGJpdHMgcGVyIGNoYW5uZWwN Cj4gKwkgKiBvdmVyZmxvdyBhbmQgdW5kZXJmbG93IHVzdWFsbHkgaGFwcGVucyB3aGVuIGRvaW5n IFkyUg0KPiBjb252ZXJzaW9uDQo+ICsJICogdGhpcyBiaXQgc2hvdWxkIGJlIGFsd2F5cyBlbmFi bGUgdG8gYXZvaWQgdGhpcyBraW5kIG9mDQo+IHNpdHVhdGlvbg0KPiArCSAqLw0KPiArCXJlZyB8 PSBPVkxfT1VUUFVUX0NMQU1QOw0KDQpTZXBhcmF0ZSB0aGlzIHRvIGEgcGF0Y2ggb2Ygc3VwcG9y dCBjc2MNCg0KPiArDQo+ICsJd3JpdGVsX3JlbGF4ZWQocmVnLCBvdmwtPnJlZ3MgKyBESVNQX1JF R19PVkxfREFUQVBBVEhfQ09OKTsNCj4gIAl3cml0ZWxfcmVsYXhlZCgweDEsIG92bC0+cmVncyAr IERJU1BfUkVHX09WTF9FTik7DQo+ICB9DQo+ICANCj4gQEAgLTI1NCw5ICszMDgsNyBAQCBzdGF0 aWMgdm9pZCBtdGtfb3ZsX3NldF9iaXRfZGVwdGgoc3RydWN0IGRldmljZQ0KPiAqZGV2LCBpbnQg aWR4LCB1MzIgZm9ybWF0LA0KPiAgCXJlZyA9IHJlYWRsKG92bC0+cmVncyArIERJU1BfUkVHX09W TF9DTFJGTVRfRVhUKTsNCj4gIAlyZWcgJj0gfk9WTF9DT05fQ0xSRk1UX0JJVF9ERVBUSF9NQVNL KGlkeCk7DQo+ICANCj4gLQlpZiAoZm9ybWF0ID09IERSTV9GT1JNQVRfUkdCQTEwMTAxMDIgfHwN Cj4gLQkgICAgZm9ybWF0ID09IERSTV9GT1JNQVRfQkdSQTEwMTAxMDIgfHwNCj4gLQkgICAgZm9y bWF0ID09IERSTV9GT1JNQVRfQVJHQjIxMDEwMTApDQo+ICsJaWYgKGlzXzEwYml0X3JnYihmb3Jt YXQpKQ0KPiAgCQliaXRfZGVwdGggPSBPVkxfQ09OX0NMUkZNVF8xMF9CSVQ7DQo+ICANCj4gIAly ZWcgfD0gT1ZMX0NPTl9DTFJGTVRfQklUX0RFUFRIKGJpdF9kZXB0aCwgaWR4KTsNCj4gQEAgLTI3 NCw3ICszMjYsOCBAQCB2b2lkIG10a19vdmxfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5z aWduZWQNCj4gaW50IHcsDQo+ICAJaWYgKHcgIT0gMCAmJiBoICE9IDApDQo+ICAJCW10a19kZHBf d3JpdGVfcmVsYXhlZChjbWRxX3BrdCwgaCA8PCAxNiB8IHcsICZvdmwtDQo+ID5jbWRxX3JlZywg b3ZsLT5yZWdzLA0KPiAgCQkJCSAgICAgIERJU1BfUkVHX09WTF9ST0lfU0laRSk7DQo+IC0JbXRr X2RkcF93cml0ZV9yZWxheGVkKGNtZHFfcGt0LCAweDAsICZvdmwtPmNtZHFfcmVnLCBvdmwtPnJl Z3MsIA0KPiBESVNQX1JFR19PVkxfUk9JX0JHQ0xSKTsNCj4gKwltdGtfZGRwX3dyaXRlX3JlbGF4 ZWQoY21kcV9wa3QsIDB4ZmYwMDAwMDAsICZvdmwtPmNtZHFfcmVnLA0KPiBvdmwtPnJlZ3MsDQo+ ICsJCQkgICAgICBESVNQX1JFR19PVkxfUk9JX0JHQ0xSKTsNCj4gIA0KPiAgCW10a19kZHBfd3Jp dGUoY21kcV9wa3QsIDB4MSwgJm92bC0+Y21kcV9yZWcsIG92bC0+cmVncywNCj4gRElTUF9SRUdf T1ZMX1JTVCk7DQo+ICAJbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgMHgwLCAmb3ZsLT5jbWRxX3Jl Zywgb3ZsLT5yZWdzLA0KPiBESVNQX1JFR19PVkxfUlNUKTsNCj4gQEAgLTM1Nyw3ICs0MTAsOCBA QCB2b2lkIG10a19vdmxfbGF5ZXJfb2ZmKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gdW5zaWduZWQg aW50IGlkeCwNCj4gIAkJICAgICAgRElTUF9SRUdfT1ZMX1JETUFfQ1RSTChpZHgpKTsNCj4gIH0N Cj4gIA0KPiAtc3RhdGljIHVuc2lnbmVkIGludCBvdmxfZm10X2NvbnZlcnQoc3RydWN0IG10a19k aXNwX292bCAqb3ZsLA0KPiB1bnNpZ25lZCBpbnQgZm10KQ0KPiArc3RhdGljIHVuc2lnbmVkIGlu dCBvdmxfZm10X2NvbnZlcnQoc3RydWN0IG10a19kaXNwX292bCAqb3ZsLA0KPiB1bnNpZ25lZCBp bnQgZm10LA0KPiArCQkJCSAgICB1bnNpZ25lZCBpbnQgYmxlbmRfbW9kZSkNCj4gIHsNCj4gIAkv KiBUaGUgcmV0dXJuIHZhbHVlIGluIHN3aXRjaCAiTUVNX01PREVfSU5QVVRfRk9STUFUX1hYWCIN Cj4gIAkgKiBpcyBkZWZpbmVkIGluIG1lZGlhdGVrIEhXIGRhdGEgc2hlZXQuDQo+IEBAIC0zNzYs MTcgKzQzMCwzNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IG92bF9mbXRfY29udmVydChzdHJ1Y3QN Cj4gbXRrX2Rpc3Bfb3ZsICpvdmwsIHVuc2lnbmVkIGludCBmbXQpDQo+ICAJCXJldHVybiBPVkxf Q09OX0NMUkZNVF9SR0I4ODgob3ZsKSB8IE9WTF9DT05fQllURV9TV0FQOw0KPiAgCWNhc2UgRFJN X0ZPUk1BVF9SR0JYODg4ODoNCj4gIAljYXNlIERSTV9GT1JNQVRfUkdCQTg4ODg6DQo+ICsJCXJl dHVybiBibGVuZF9tb2RlID09IERSTV9NT0RFX0JMRU5EX0NPVkVSQUdFID8NCj4gKwkJICAgICAg IE9WTF9DT05fQ0xSRk1UX0FSR0I4ODg4IDoNCj4gKwkJICAgICAgIE9WTF9DT05fQ0xSRk1UX1BB UkdCODg4ODsNCj4gKwljYXNlIERSTV9GT1JNQVRfUkdCWDEwMTAxMDI6DQo+ICsJY2FzZSBEUk1f Rk9STUFUX1JHQkExMDEwMTAyOg0KPiAgCQlyZXR1cm4gT1ZMX0NPTl9DTFJGTVRfQVJHQjg4ODg7 DQo+ICAJY2FzZSBEUk1fRk9STUFUX0JHUlg4ODg4Og0KPiAgCWNhc2UgRFJNX0ZPUk1BVF9CR1JB ODg4ODoNCj4gKwkJcmV0dXJuIE9WTF9DT05fQllURV9TV0FQIHwNCj4gKwkJICAgICAgIChibGVu ZF9tb2RlID09IERSTV9NT0RFX0JMRU5EX0NPVkVSQUdFID8NCj4gKwkJICAgICAgIE9WTF9DT05f Q0xSRk1UX0FSR0I4ODg4IDoNCj4gKwkJICAgICAgIE9WTF9DT05fQ0xSRk1UX1BBUkdCODg4OCk7 DQo+ICsJY2FzZSBEUk1fRk9STUFUX0JHUlgxMDEwMTAyOg0KPiAgCWNhc2UgRFJNX0ZPUk1BVF9C R1JBMTAxMDEwMjoNCj4gIAkJcmV0dXJuIE9WTF9DT05fQ0xSRk1UX0FSR0I4ODg4IHwgT1ZMX0NP Tl9CWVRFX1NXQVA7DQo+ICAJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Og0KPiAgCWNhc2UgRFJN X0ZPUk1BVF9BUkdCODg4ODoNCj4gKwkJcmV0dXJuIGJsZW5kX21vZGUgPT0gRFJNX01PREVfQkxF TkRfQ09WRVJBR0UgPw0KPiArCQkgICAgICAgT1ZMX0NPTl9DTFJGTVRfUkdCQTg4ODggOg0KPiAr CQkgICAgICAgT1ZMX0NPTl9DTFJGTVRfUEFSR0I4ODg4Ow0KPiArCWNhc2UgRFJNX0ZPUk1BVF9Y UkdCMjEwMTAxMDoNCj4gIAljYXNlIERSTV9GT1JNQVRfQVJHQjIxMDEwMTA6DQo+ICAJCXJldHVy biBPVkxfQ09OX0NMUkZNVF9SR0JBODg4ODsNCj4gIAljYXNlIERSTV9GT1JNQVRfWEJHUjg4ODg6 DQo+ICAJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4Og0KPiArCQlyZXR1cm4gT1ZMX0NPTl9SR0Jf U1dBUCB8DQo+ICsJCSAgICAgICAoYmxlbmRfbW9kZSA9PSBEUk1fTU9ERV9CTEVORF9DT1ZFUkFH RSA/DQo+ICsJCSAgICAgICBPVkxfQ09OX0NMUkZNVF9SR0JBODg4OCA6DQo+ICsJCSAgICAgICBP VkxfQ09OX0NMUkZNVF9QQVJHQjg4ODgpOw0KPiArCWNhc2UgRFJNX0ZPUk1BVF9YQkdSMjEwMTAx MDoNCj4gKwljYXNlIERSTV9GT1JNQVRfQUJHUjIxMDEwMTA6DQo+ICAJCXJldHVybiBPVkxfQ09O X0NMUkZNVF9SR0JBODg4OCB8IE9WTF9DT05fQllURV9TV0FQOw0KPiAgCWNhc2UgRFJNX0ZPUk1B VF9VWVZZOg0KPiAgCQlyZXR1cm4gT1ZMX0NPTl9DTFJGTVRfVVlWWSB8IE9WTF9DT05fTVRYX1lV Vl9UT19SR0I7DQo+IEBAIC00MDgsNiArNDgyLDggQEAgdm9pZCBtdGtfb3ZsX2xheWVyX2NvbmZp ZyhzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+IHVuc2lnbmVkIGludCBpZHgsDQo+ICAJdW5zaWduZWQg aW50IGZtdCA9IHBlbmRpbmctPmZvcm1hdDsNCj4gIAl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gKHBl bmRpbmctPnkgPDwgMTYpIHwgcGVuZGluZy0+eDsNCj4gIAl1bnNpZ25lZCBpbnQgc3JjX3NpemUg PSAocGVuZGluZy0+aGVpZ2h0IDw8IDE2KSB8IHBlbmRpbmctDQo+ID53aWR0aDsNCj4gKwl1bnNp Z25lZCBpbnQgYmxlbmRfbW9kZSA9IHN0YXRlLT5iYXNlLnBpeGVsX2JsZW5kX21vZGU7DQo+ICsJ dW5zaWduZWQgaW50IGlnbm9yZV9waXhlbF9hbHBoYSA9IDA7DQo+ICAJdW5zaWduZWQgaW50IGNv bjsNCj4gIAlib29sIGlzX2FmYmMgPSBwZW5kaW5nLT5tb2RpZmllciAhPSBEUk1fRk9STUFUX01P RF9MSU5FQVI7DQo+ICAJdW5pb24gb3ZlcmxheV9waXRjaCB7DQo+IEBAIC00MjAsMTQgKzQ5Niw5 MiBAQCB2b2lkIG10a19vdmxfbGF5ZXJfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gdW5z aWduZWQgaW50IGlkeCwNCj4gIA0KPiAgCW92ZXJsYXlfcGl0Y2gucGl0Y2ggPSBwaXRjaDsNCj4g IA0KPiAtCWlmICghcGVuZGluZy0+ZW5hYmxlKSB7DQo+ICsJaWYgKCFwZW5kaW5nLT5lbmFibGUg fHwgIXBlbmRpbmctPndpZHRoIHx8ICFwZW5kaW5nLT5oZWlnaHQpIHsNCj4gIAkJbXRrX292bF9s YXllcl9vZmYoZGV2LCBpZHgsIGNtZHFfcGt0KTsNCj4gIAkJcmV0dXJuOw0KPiAgCX0NCj4gIA0K PiAtCWNvbiA9IG92bF9mbXRfY29udmVydChvdmwsIGZtdCk7DQo+IC0JaWYgKHN0YXRlLT5iYXNl LmZiICYmIHN0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmhhc19hbHBoYSkNCj4gLQkJY29uIHw9IE9W TF9DT05fQUVOIHwgT1ZMX0NPTl9BTFBIQTsNCj4gKwljb24gPSBvdmxfZm10X2NvbnZlcnQob3Zs LCBmbXQsIGJsZW5kX21vZGUpOw0KPiArCWlmIChzdGF0ZS0+YmFzZS5mYikgew0KPiArCQljb24g fD0gT1ZMX0NPTl9BRU47DQoNCkl0IHNlZW1zIGFsbCBTb0Mgb3ZsIGhhcmR3YXJlIHN1cHBvcnQg YWxwaGEgYmxlbmRpbmcsIHdoeSBpbiBtbXN5cyBqdXN0DQpzb21lIHN1cHBvcnQ/DQoNCj4gKwkJ Y29uIHw9IHN0YXRlLT5iYXNlLmFscGhhICYgMHhmZjsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoYmxl bmRfbW9kZSA9PSBEUk1fTU9ERV9CTEVORF9QSVhFTF9OT05FIHx8DQo+ICsJICAgIChzdGF0ZS0+ YmFzZS5mYiAmJiAhc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+aGFzX2FscGhhKSkNCj4gKwkJaWdu b3JlX3BpeGVsX2FscGhhID0gT1ZMX0NPTlNUX0JMRU5EOw0KPiArDQo+ICsJLyogbmVlZCB0byBk byBZMlIgYW5kIFIyUiB0byByZWR1Y2UgMTBiaXQgZGF0YSB0byA4Yml0IGZvciBDUkMNCj4gY2Fs Y3VsYXRpb24gKi8NCg0KUmVkdWNpbmcgMTAgYml0IHRvIDggYml0IHdvdWxkIGxvc2UgY29sb3Ig ZGV0YWlsLiBKdXN0IGZvciBDUkMgdG8gbG9zZQ0KdGhpcyBkZXRhaWw/IFdoeSBub3QganVzdCB1 c2UgMTAgYml0IHRvIGNhbGN1bGF0ZSBDUkM/DQoNClJlZ2FyZHMsDQpDSw0KDQo+ICsJaWYgKG92 bC0+ZGF0YS0+c3VwcG9ydHNfY2xyZm10X2V4dCkgew0KPiArCQl1MzIgeTJyX2NvZWYgPSAwLCB5 MnJfb2Zmc2V0ID0gMCwgcjJyX2NvZWYgPSAwLCBjc2NfZW4NCj4gPSAwOw0KPiArDQo+ICsJCWlm IChpc18xMGJpdF9yZ2IoZm10KSkgew0KPiArCQkJY29uIHw9IE9WTF9DT05fTVRYX0FVVE9fRElT IHwgT1ZMX0NPTl9NVFhfRU4gfA0KPiBPVkxfQ09OX01UWF9QUk9HUkFNTUFCTEU7DQo+ICsNCj4g KwkJCS8qDQo+ICsJCQkgKiBZMlIgY29lZiBzZXR0aW5nDQo+ICsJCQkgKiBiaXQgMTMgaXMgMl4x LCBiaXQgMTIgaXMgMl4wLCBiaXQgMTEgaXMgMl4tDQo+IDEsDQo+ICsJCQkgKiBiaXQgMTAgaXMg Ml4tMiA9IDAuMjUNCj4gKwkJCSAqLw0KPiArCQkJeTJyX2NvZWYgPSBCSVQoMTApOw0KPiArDQo+ ICsJCQkvKiAtMSBpbiAxMGJpdCAqLw0KPiArCQkJeTJyX29mZnNldCA9IEdFTk1BU0soMTAsIDAp IC0gMTsNCj4gKw0KPiArCQkJLyoNCj4gKwkJCSAqIFIyUiBjb2VmIHNldHRpbmcNCj4gKwkJCSAq IGJpdCAxOSBpcyAyXjEsIGJpdCAxOCBpcyAyXjAsIGJpdCAxNyBpcyAyXi0NCj4gMSwNCj4gKwkJ CSAqIGJpdCAyMCBpcyAyXjIgPSA0DQo+ICsJCQkgKi8NCj4gKwkJCXIycl9jb2VmID0gQklUKDIw KTsNCj4gKw0KPiArCQkJLyogQ1NDX0VOIGlzIGZvciBSMlIgKi8NCj4gKwkJCWNzY19lbiA9IE9W TF9DTFJGTVRfRVhUMV9DU0NfRU4oaWR4KTsNCj4gKw0KPiArCQkJLyoNCj4gKwkJCSAqIDEuIFlV ViBpbnB1dCBkYXRhIC0gMSBhbmQgc2hpZnQgcmlnaHQgZm9yIDINCj4gYml0cyB0byByZW1vdmUg aXQNCj4gKwkJCSAqIFtSJ10gICBbMC4yNSAgICAwICAgIDBdICAgW1kgaW4gLSAxXQ0KPiArCQkJ ICogW0cnXSA9IFsgICAwIDAuMjUgICAgMF0gKiBbVSBpbiAtIDFdDQo+ICsJCQkgKiBbQiddICAg WyAgIDAgICAgMCAwLjI1XSAgIFtWIGluIC0gMV0NCj4gKwkJCSAqDQo+ICsJCQkgKiAyLiBzaGlm dCBsZWZ0IGZvciAyIGJpdCBsZXR0aW5nIHRoZSBsYXN0IDINCj4gYml0cyBiZWNvbWUgMA0KPiAr CQkJICogW1Igb3V0XSAgIFsgNCAgMCAgMF0gICBbUiddDQo+ICsJCQkgKiBbRyBvdXRdID0gWyAw ICA0ICAwXSAqIFtHJ10NCj4gKwkJCSAqIFtCIG91dF0gICBbIDAgIDAgIDRdICAgW0InXQ0KPiAr CQkJICovDQo+ICsJCX0NCj4gKw0KPiArCQltdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIHky cl9jb2VmLA0KPiArCQkJCSAgICZvdmwtPmNtZHFfcmVnLCBvdmwtPnJlZ3MsDQo+IERJU1BfUkVH X09WTF9ZMlJfUEFSQV9SMChpZHgpLA0KPiArCQkJCSAgIE9WTF9ZMlJfUEFSQV9DX0NGX1JNWSk7 DQo+ICsJCW10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgKHkycl9jb2VmIDw8IDE2KSwNCj4g KwkJCQkgICAmb3ZsLT5jbWRxX3JlZywgb3ZsLT5yZWdzLA0KPiBESVNQX1JFR19PVkxfWTJSX1BB UkFfRzAoaWR4KSwNCj4gKwkJCQkgICBPVkxfWTJSX1BBUkFfQ19DRl9HTVUpOw0KPiArCQltdGtf ZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIHkycl9jb2VmLA0KPiArCQkJCSAgICZvdmwtPmNtZHFf cmVnLCBvdmwtPnJlZ3MsDQo+IERJU1BfUkVHX09WTF9ZMlJfUEFSQV9CMShpZHgpLA0KPiArCQkJ CSAgIE9WTF9ZMlJfUEFSQV9DX0NGX0JNVik7DQo+ICsNCj4gKwkJbXRrX2RkcF93cml0ZV9tYXNr KGNtZHFfcGt0LCB5MnJfb2Zmc2V0LA0KPiArCQkJCSAgICZvdmwtPmNtZHFfcmVnLCBvdmwtPnJl Z3MsDQo+IERJU1BfUkVHX09WTF9ZMlJfUEFSQV9ZVVZfQV8wKGlkeCksDQo+ICsJCQkJICAgT1ZM X1kyUl9QQVJBX0NfQ0ZfWUEpOw0KPiArCQltdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsICh5 MnJfb2Zmc2V0IDw8IDE2KSwNCj4gKwkJCQkgICAmb3ZsLT5jbWRxX3JlZywgb3ZsLT5yZWdzLA0K PiBESVNQX1JFR19PVkxfWTJSX1BBUkFfWVVWX0FfMChpZHgpLA0KPiArCQkJCSAgIE9WTF9ZMlJf UEFSQV9DX0NGX1VBKTsNCj4gKwkJbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCB5MnJfb2Zm c2V0LA0KPiArCQkJCSAgICZvdmwtPmNtZHFfcmVnLCBvdmwtPnJlZ3MsDQo+IERJU1BfUkVHX09W TF9ZMlJfUEFSQV9ZVVZfQV8xKGlkeCksDQo+ICsJCQkJICAgT1ZMX1kyUl9QQVJBX0NfQ0ZfVkEp Ow0KPiArDQo+ICsJCW10a19kZHBfd3JpdGVfcmVsYXhlZChjbWRxX3BrdCwgcjJyX2NvZWYsDQo+ ICsJCQkJICAgICAgJm92bC0+Y21kcV9yZWcsIG92bC0+cmVncywNCj4gRElTUF9SRUdfT1ZMX1Iy Ul9SMChpZHgpKTsNCj4gKwkJbXRrX2RkcF93cml0ZV9yZWxheGVkKGNtZHFfcGt0LCByMnJfY29l ZiwNCj4gKwkJCQkgICAgICAmb3ZsLT5jbWRxX3JlZywgb3ZsLT5yZWdzLA0KPiBESVNQX1JFR19P VkxfUjJSX0cxKGlkeCkpOw0KPiArCQltdGtfZGRwX3dyaXRlX3JlbGF4ZWQoY21kcV9wa3QsIHIy cl9jb2VmLA0KPiArCQkJCSAgICAgICZvdmwtPmNtZHFfcmVnLCBvdmwtPnJlZ3MsDQo+IERJU1Bf UkVHX09WTF9SMlJfQjIoaWR4KSk7DQo+ICsNCj4gKwkJbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFf cGt0LCBjc2NfZW4sDQo+ICsJCQkJICAgJm92bC0+Y21kcV9yZWcsIG92bC0+cmVncywNCj4gRElT UF9SRUdfT1ZMX0NMUkZNVF9FWFQxLA0KPiArCQkJCSAgIE9WTF9DTFJGTVRfRVhUMV9DU0NfRU4o aWR4KSk7DQo+ICsJfQ0KPiAgDQo+ICAJaWYgKHBlbmRpbmctPnJvdGF0aW9uICYgRFJNX01PREVf UkVGTEVDVF9ZKSB7DQo+ICAJCWNvbiB8PSBPVkxfQ09OX1ZJUlRfRkxJUDsNCj4gQEAgLTQ0NCw4 ICs1OTgsOCBAQCB2b2lkIG10a19vdmxfbGF5ZXJfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwN Cj4gdW5zaWduZWQgaW50IGlkeCwNCj4gIA0KPiAgCW10a19kZHBfd3JpdGVfcmVsYXhlZChjbWRx X3BrdCwgY29uLCAmb3ZsLT5jbWRxX3JlZywgb3ZsLT5yZWdzLA0KPiAgCQkJICAgICAgRElTUF9S RUdfT1ZMX0NPTihpZHgpKTsNCj4gLQltdGtfZGRwX3dyaXRlX3JlbGF4ZWQoY21kcV9wa3QsIG92 ZXJsYXlfcGl0Y2guc3BsaXRfcGl0Y2gubHNiLA0KPiAmb3ZsLT5jbWRxX3JlZywgb3ZsLT5yZWdz LA0KPiAtCQkJICAgICAgRElTUF9SRUdfT1ZMX1BJVENIKGlkeCkpOw0KPiArCW10a19kZHBfd3Jp dGVfcmVsYXhlZChjbWRxX3BrdCwgb3ZlcmxheV9waXRjaC5zcGxpdF9waXRjaC5sc2IgfA0KPiBp Z25vcmVfcGl4ZWxfYWxwaGEsDQo+ICsJCQkgICAgICAmb3ZsLT5jbWRxX3JlZywgb3ZsLT5yZWdz LA0KPiBESVNQX1JFR19PVkxfUElUQ0goaWR4KSk7DQo+ICAJbXRrX2RkcF93cml0ZV9yZWxheGVk KGNtZHFfcGt0LCBzcmNfc2l6ZSwgJm92bC0+Y21kcV9yZWcsIG92bC0NCj4gPnJlZ3MsDQo+ICAJ CQkgICAgICBESVNQX1JFR19PVkxfU1JDX1NJWkUoaWR4KSk7DQo+ICAJbXRrX2RkcF93cml0ZV9y ZWxheGVkKGNtZHFfcGt0LCBvZmZzZXQsICZvdmwtPmNtZHFfcmVnLCBvdmwtDQo+ID5yZWdzLA0K