Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp10384174imu; Wed, 5 Dec 2018 23:26:53 -0800 (PST) X-Google-Smtp-Source: AFSGD/W+wCQcBDoS7dRcOhNNMhrMy06QmkN8STjDBeY4U1khT71/ZAs28gDvBVLmeOqpnAD5NEjF X-Received: by 2002:a65:60c2:: with SMTP id r2mr22242261pgv.393.1544081213478; Wed, 05 Dec 2018 23:26:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544081213; cv=none; d=google.com; s=arc-20160816; b=k8Y0HHMxvmo1ZSI/x3bepFQF4Z+1Ibi3EH+tYiUDnu/omm6eBSW3A2nHv9NysEk8+J L0qpOYovVTxE318XzYOHDJP/h4Lj23gcDMgq+ilvTwv8NX9O57w++JjpzZEjQN/sNk1Z oHeFvYrsSvaecvjDVY8i6OYTEpIia4pIwiPlbwHpX8ZG2d+sKKVL6953DR6pTD4pmGx1 NBWzHrMtedWK7SANkYod7Y79gsNOH08T4ex5PmVTbd+gffzlITHz+J7gw9DGFg7krWw7 FnKyeD+2KhrBYj8VVaDvAQ6xanatiTgOaGHO8YxnXN/90t61YBz9Vf+W9Tt1fX34pPnq 1eaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature:dkim-signature; bh=G9ZaIT6I0L61n3bz+XAz+xoo8ob0KvD1ltoh1IzIeGU=; b=aW3avPVESZu8aqB5Hd63hZZzhUqkYkl5aY3xZQKgiB/Unn+jmDGPLYJgT95EXyx7Tt wkcnha8zyvMSVdntJ6aH89qgRV0VJu9kBbqKcIml7PGHrjE/vfyLK/qrWZSm/Z555TMV ax6oJ+AQanJXCLJT5MMRtnrRHbSfwXoCJ8Y6qlrwtSms2E9Z50sWpmWvCHIVPQA4z58X YpPIkfXCpjopRssx4JO9m24KlfoWYP2xNydDD6WuKWMq5JF5Y1IEqH2REnnzliByKk9Q SULqGD6qFAKlD6Vy4CyIcspMu+o4sFwf/1i5HYbgwPmTiV93MIJbf5Ja4emltSy2O+Vw Aq7w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cadence.com header.s=proofpoint header.b=Z36IhDl1; dkim=pass header.i=@cadence.com header.s=selector1 header.b=pJ88mezd; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cadence.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 69si14572586pla.75.2018.12.05.23.26.37; Wed, 05 Dec 2018 23:26:53 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@cadence.com header.s=proofpoint header.b=Z36IhDl1; dkim=pass header.i=@cadence.com header.s=selector1 header.b=pJ88mezd; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cadence.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729081AbeLFHZ4 (ORCPT + 99 others); Thu, 6 Dec 2018 02:25:56 -0500 Received: from mx0a-0014ca01.pphosted.com ([208.84.65.235]:39334 "EHLO mx0a-0014ca01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728294AbeLFHZz (ORCPT ); Thu, 6 Dec 2018 02:25:55 -0500 Received: from pps.filterd (m0042385.ppops.net [127.0.0.1]) by mx0a-0014ca01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id wB67LW0N031612; Wed, 5 Dec 2018 23:25:31 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint; bh=G9ZaIT6I0L61n3bz+XAz+xoo8ob0KvD1ltoh1IzIeGU=; b=Z36IhDl1fVSvjVsZBHvN17RixLMCTvuLyG/7UySJyGzZ2CTRioCuf5yZKo7QgFdjEcJN lgzguzuNib7F45KgZO1+h7Axr/crBfVA2g1ey4kuNFYmN6MpEmR5yF+o3GWSgJys9Pr3 u8WMKnnkaTgtY48b3B2iR1tbP2hHX3b36Vu/3572Pl6KgPzET+pl0U5zCzx5fzZja4Jv tnH39GsJCbQ+uAkGTmsAGeXgN4J9eBK1N4GMycvk59bAYG/Oid3Vm8013KwzYKLKxajS nDIHze9QR9SRhvRdra6ncEfysYVec7eFzp0mPlh1olqmXatEClL2gWL1C5prwN7cqmHZ pA== Authentication-Results: cadence.com; spf=pass smtp.mailfrom=pawell@cadence.com Received: from nam03-dm3-obe.outbound.protection.outlook.com (mail-dm3nam03lp2055.outbound.protection.outlook.com [104.47.41.55]) by mx0a-0014ca01.pphosted.com with ESMTP id 2p5scbtb0d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 05 Dec 2018 23:25:31 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=G9ZaIT6I0L61n3bz+XAz+xoo8ob0KvD1ltoh1IzIeGU=; b=pJ88mezdt/A3f2vGzBV/67/NQeOfQrh9Y/asEpRj72Ubut7KveO9dWMxcueDWDG4zU2PX0pyYvcnU/69H7dl0GiS8ZkJbNgcMX0Ize+6OoQONdGx065wd5fOKyFKhBTijnF9SdAmCh8LjfZbFktyx3+5rKJyjeh1pzCDl5IwUCg= Received: from BYAPR07MB4709.namprd07.prod.outlook.com (52.135.204.159) by BYAPR07MB4694.namprd07.prod.outlook.com (52.135.204.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1404.19; Thu, 6 Dec 2018 07:25:29 +0000 Received: from BYAPR07MB4709.namprd07.prod.outlook.com ([fe80::e0dc:ebd5:e248:d644]) by BYAPR07MB4709.namprd07.prod.outlook.com ([fe80::e0dc:ebd5:e248:d644%6]) with mapi id 15.20.1382.023; Thu, 6 Dec 2018 07:25:28 +0000 From: Pawel Laszczak To: Peter Chen CC: "devicetree@vger.kernel.org" , Greg Kroah-Hartman , "linux-usb@vger.kernel.org" , "rogerq@ti.com" , lkml , Alan Douglas , "jbergsagel@ti.com" , "nsekhar@ti.com" , "nm@ti.com" , Suresh Punnoose , "peter.chen@nxp.com" , Pawel Jez , Rahul Kumar Subject: RE: [RFC PATCH v2 05/15] usb:cdns3: Added DRD support Thread-Topic: [RFC PATCH v2 05/15] usb:cdns3: Added DRD support Thread-Index: AQHUfycWERNbYpUTLUKmTA3BhMz+TaVuZmqAgAL+kwA= Date: Thu, 6 Dec 2018 07:25:28 +0000 Message-ID: References: <1542535751-16079-1-git-send-email-pawell@cadence.com> <1542535751-16079-6-git-send-email-pawell@cadence.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-tag-bcast: x-dg-ref: PG1ldGE+PGF0IG5tPSJib2R5LnR4dCIgcD0iYzpcdXNlcnNccGF3ZWxsXGFwcGRhdGFccm9hbWluZ1wwOWQ4NDliNi0zMmQzLTRhNDAtODVlZS02Yjg0YmEyOWUzNWJcbXNnc1xtc2ctMWEwNWViZTktZjkyOC0xMWU4LTg3MjYtMWM0ZDcwMWRmYmE0XGFtZS10ZXN0XDFhMDVlYmVhLWY5MjgtMTFlOC04NzI2LTFjNGQ3MDFkZmJhNGJvZHkudHh0IiBzej0iMTY4MjYiIHQ9IjEzMTg4NTU0NzI4NTIyOTIwMyIgaD0iK21nVG9ScDVNZ2lKTzgwVkxlcGI1U2ZYRWRrPSIgaWQ9IiIgYmw9IjAiIGJvPSIxIi8+PC9tZXRhPg== x-dg-paste: x-dg-rorf: x-originating-ip: [185.217.253.59] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;BYAPR07MB4694;20:GLWOuBue5V7P/P4A/EsqCPl2TWCXnB2LXw5tXWNN/nzNlbUCkp4t8obSRdNTBkqcfMyNhybwX6xNgc6IqCLcbVkBLVEJxRFqrkOGn5IpDvMqYR36RhLDOzuZ2c6BX8cUw6YXpt4HRPdzrbD/HeEEBFs/NQqxCXzn4I2u4O9oZsnQlF+fx5Wt/ainF12Za2OV9ODNBQVZjHHgJc5lUml895772eHYRHUkw1G4/aAS3q3QmtfQrOENl4G/I6++SQ4y x-ms-office365-filtering-correlation-id: 6f9028d9-cac8-40f5-ec38-08d65b4bffa7 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390098)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020);SRVR:BYAPR07MB4694; x-ms-traffictypediagnostic: BYAPR07MB4694: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231455)(999002)(944501520)(52105112)(93006095)(93001095)(3002001)(10201501046)(148016)(149066)(150057)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095);SRVR:BYAPR07MB4694;BCL:0;PCL:0;RULEID:;SRVR:BYAPR07MB4694; x-forefront-prvs: 087894CD3C x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(136003)(376002)(346002)(366004)(396003)(39860400002)(36092001)(199004)(189003)(105586002)(74316002)(486006)(305945005)(14444005)(25786009)(102836004)(217873002)(256004)(55016002)(1411001)(66066001)(14454004)(26005)(86362001)(7736002)(186003)(106356001)(76176011)(6506007)(478600001)(7696005)(6916009)(476003)(97736004)(5660300001)(39060400002)(446003)(68736007)(33656002)(316002)(6246003)(107886003)(2906002)(81156014)(11346002)(4744004)(54906003)(7416002)(4326008)(99286004)(71200400001)(3846002)(6116002)(9686003)(53946003)(71190400001)(53936002)(8676002)(229853002)(8936002)(81166006)(6436002);DIR:OUT;SFP:1101;SCL:1;SRVR:BYAPR07MB4694;H:BYAPR07MB4709.namprd07.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: cadence.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: ioHBGIgY/JO/DLcvNme8hn/ew0eGX+Zo277Pp1sBInRHi2KB+hmsVJSsZ6RXaTF7f7jhiPrv+AhnUf5sxcV8GZCyWo+QiZ5fWEe5k/Lcryi7Ooh87X5lghD7AEL7Blosr1xKQVBFu2Rv9M5Nps6sKbhe9lwWSO3WScQh0KGnvdr/puosNyPq9QF8dahE/A1GPMz0YOgrYx/GOGWeqqjRqlgkNF+JUzkjThrN+U6ZtMYysNTnXdLUiovsvQK+tYVJ0mlTac4fqPlY9IH5R7MaHMR4YQxuRa5lK/lWpUvKGzF9/RHym3aRbqFHThHX3UCZrrJk/AQi1j7g3Ye3XfKLLP8fJEqcvwh14evByLnuFWs= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: cadence.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6f9028d9-cac8-40f5-ec38-08d65b4bffa7 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Dec 2018 07:25:28.8323 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: d36035c5-6ce6-4662-a3dc-e762e61ae4c9 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR07MB4694 X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 include:_spf.salesforce.com include:mktomail.com include:spf-0014ca01.pphosted.com include:spf.protection.outlook.com include:auth.msgapp.com include:spf.mandrillapp.com ~all X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-12-06_01:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_check_notspam policy=outbound_check score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1812060068 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Pj4gUGF0Y2ggYWRkcyBzdXBwb3J0cyBmb3IgZGV0ZWN0aW5nIEhvc3QvRGV2aWNlIG1vZGUuDQo+ PiBDb250cm9sbGVyIGhhcyBhZGRpdGlvbmFsIE9URyByZWdpc3RlciB0aGF0IGFsbG93DQo+PiBp bXBsZW1lbnQgZXZlbiB3aG9sZSBPVEcgZnVuY3Rpb25hbGl0eS4NCj4+IEF0IHRoaXMgbW9tZW50 IHBhdGNoIGFkZHMgc3VwcG9ydCBvbmx5IGZvciBkZXRlY3RpbmcNCj4+IHRoZSBhcHByb3ByaWF0 ZSBtb2RlIGJhc2VkIG9uIHN0cmFwIHBpbnMgYW5kIElEIHBpbi4NCj4+DQo+PiBTaWduZWQtb2Zm LWJ5OiBQYXdlbCBMYXN6Y3phayA8cGF3ZWxsQGNhZGVuY2UuY29tPg0KPj4gLS0tDQo+PiAgZHJp dmVycy91c2IvY2RuczMvTWFrZWZpbGUgfCAgIDIgKy0NCj4+ICBkcml2ZXJzL3VzYi9jZG5zMy9j b3JlLmMgICB8ICAyNyArKystLQ0KPj4gIGRyaXZlcnMvdXNiL2NkbnMzL2RyZC5jICAgIHwgMjI5 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+ICBkcml2ZXJzL3VzYi9j ZG5zMy9kcmQuaCAgICB8IDEyMiArKysrKysrKysrKysrKysrKysrKw0KPj4gIDQgZmlsZXMgY2hh bmdlZCwgMzcyIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pDQo+PiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvdXNiL2NkbnMzL2RyZC5jDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvdXNiL2NkbnMzL2RyZC5oDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2Nk bnMzL01ha2VmaWxlIGIvZHJpdmVycy91c2IvY2RuczMvTWFrZWZpbGUNCj4+IGluZGV4IDAyZDI1 YjIzYzVkMy4uZTc3OWIyYTJmOGViIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy91c2IvY2RuczMv TWFrZWZpbGUNCj4+ICsrKyBiL2RyaXZlcnMvdXNiL2NkbnMzL01ha2VmaWxlDQo+PiBAQCAtMSw1 ICsxLDUgQEANCj4+ICBvYmotJChDT05GSUdfVVNCX0NETlMzKSAgICAgICAgICAgICAgICAgICAg ICAgICs9IGNkbnMzLm8NCj4+ICBvYmotJChDT05GSUdfVVNCX0NETlMzX1BDSV9XUkFQKSAgICAg ICArPSBjZG5zMy1wY2kubw0KPj4NCj4+IC1jZG5zMy15ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDo9IGNvcmUubw0KPj4gK2NkbnMzLXkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOj0gY29yZS5vIGRyZC5vDQo+PiAgY2RuczMtcGNpLXkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOj0gY2RuczMtcGNpLXdyYXAubw0KPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvdXNiL2NkbnMzL2NvcmUuYyBiL2RyaXZlcnMvdXNiL2NkbnMzL2NvcmUuYw0K Pj4gaW5kZXggZjkwNTVkNGRhNjdmLi5kYmVlNDMyNWRhN2YgMTAwNjQ0DQo+PiAtLS0gYS9kcml2 ZXJzL3VzYi9jZG5zMy9jb3JlLmMNCj4+ICsrKyBiL2RyaXZlcnMvdXNiL2NkbnMzL2NvcmUuYw0K Pj4gQEAgLTE3LDYgKzE3LDcgQEANCj4+DQo+PiAgI2luY2x1ZGUgImdhZGdldC5oIg0KPj4gICNp bmNsdWRlICJjb3JlLmgiDQo+PiArI2luY2x1ZGUgImRyZC5oIg0KPj4NCj4+ICBzdGF0aWMgaW5s aW5lIHN0cnVjdCBjZG5zM19yb2xlX2RyaXZlciAqY2RuczNfZ2V0X2N1cnJlbnRfcm9sZV9kcml2 ZXIoc3RydWN0IGNkbnMzICpjZG5zKQ0KPj4gIHsNCj4+IEBAIC01Nyw4ICs1OCwxMCBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgY2RuczNfcm9sZV9zdG9wKHN0cnVjdCBjZG5zMyAqY2RucykNCj4+ICBz dGF0aWMgZW51bSBjZG5zM19yb2xlcyBjZG5zM19nZXRfcm9sZShzdHJ1Y3QgY2RuczMgKmNkbnMp DQo+PiAgew0KPj4gICAgICAgICBpZiAoY2Rucy0+cm9sZXNbQ0ROUzNfUk9MRV9IT1NUXSAmJiBj ZG5zLT5yb2xlc1tDRE5TM19ST0xFX0dBREdFVF0pIHsNCj4+IC0gICAgICAgICAgICAgICAvL1RP RE86IGltcGxlbWVudHMgc2VsZWN0aW5nIGRldmljZS9ob3N0IG1vZGUNCj4+IC0gICAgICAgICAg ICAgICByZXR1cm4gQ0ROUzNfUk9MRV9IT1NUOw0KPj4gKyAgICAgICAgICAgICAgIGlmIChjZG5z M19pc19ob3N0KGNkbnMpKQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENETlMz X1JPTEVfSE9TVDsNCj4+ICsgICAgICAgICAgICAgICBpZiAoY2RuczNfaXNfZGV2aWNlKGNkbnMp KQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENETlMzX1JPTEVfR0FER0VUOw0K Pj4gICAgICAgICB9DQo+PiAgICAgICAgIHJldHVybiBjZG5zLT5yb2xlc1tDRE5TM19ST0xFX0hP U1RdDQo+PiAgICAgICAgICAgICAgICAgPyBDRE5TM19ST0xFX0hPU1QNCj4+IEBAIC0xMjQsNiAr MTI3LDEyIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBjZG5zM19pcnEoaW50IGlycSwgdm9pZCAqZGF0 YSkNCj4+ICAgICAgICAgc3RydWN0IGNkbnMzICpjZG5zID0gZGF0YTsNCj4+ICAgICAgICAgaXJx cmV0dXJuX3QgcmV0ID0gSVJRX05PTkU7DQo+Pg0KPj4gKyAgICAgICBpZiAoY2Rucy0+ZHJfbW9k ZSA9PSBVU0JfRFJfTU9ERV9PVEcpIHsNCj4+ICsgICAgICAgICAgICAgICByZXQgPSBjZG5zM19k cmRfaXJxKGNkbnMpOw0KPj4gKyAgICAgICAgICAgICAgIGlmIChyZXQgPT0gSVJRX0hBTkRMRUQp DQo+PiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gKyAgICAgICB9DQo+ PiArDQo+PiAgICAgICAgIC8qIEhhbmRsZSBkZXZpY2UvaG9zdCBpbnRlcnJ1cHQgKi8NCj4+ICAg ICAgICAgaWYgKGNkbnMtPnJvbGUgIT0gQ0ROUzNfUk9MRV9FTkQpDQo+PiAgICAgICAgICAgICAg ICAgcmV0ID0gY2RuczNfZ2V0X2N1cnJlbnRfcm9sZV9kcml2ZXIoY2RucyktPmlycShjZG5zKTsN Cj4+IEBAIC0xNzYsMTEgKzE4NSw4IEBAIHN0YXRpYyB2b2lkIGNkbnMzX3JvbGVfc3dpdGNoKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCj4+DQo+PiAgICAgICAgIGNkbnMgPSBjb250YWluZXJf b2Yod29yaywgc3RydWN0IGNkbnMzLCByb2xlX3N3aXRjaF93cSk7DQo+Pg0KPj4gLSAgICAgICAv L1RPRE86IGltcGxlbWVudHMgdGhpcyBmdW5jdGlvbnMuDQo+PiAtICAgICAgIC8vaG9zdCA9IGNk bnMzX2lzX2hvc3QoY2Rucyk7DQo+PiAtICAgICAgIC8vZGV2aWNlID0gY2RuczNfaXNfZGV2aWNl KGNkbnMpOw0KPj4gLSAgICAgICBob3N0ID0gMTsNCj4+IC0gICAgICAgZGV2aWNlID0gMDsNCj4+ ICsgICAgICAgaG9zdCA9IGNkbnMzX2lzX2hvc3QoY2Rucyk7DQo+PiArICAgICAgIGRldmljZSA9 IGNkbnMzX2lzX2RldmljZShjZG5zKTsNCj4+DQo+PiAgICAgICAgIGlmIChob3N0KQ0KPj4gICAg ICAgICAgICAgICAgIHJvbGUgPSBDRE5TM19ST0xFX0hPU1Q7DQo+PiBAQCAtMTk0LDYgKzIwMCwx MiBAQCBzdGF0aWMgdm9pZCBjZG5zM19yb2xlX3N3aXRjaChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndv cmspDQo+PiAgICAgICAgIHBtX3J1bnRpbWVfZ2V0X3N5bmMoY2Rucy0+ZGV2KTsNCj4+ICAgICAg ICAgY2RuczNfcm9sZV9zdG9wKGNkbnMpOw0KPj4NCj4+ICsgICAgICAgaWYgKGNkbnMtPmRlc2ly ZWRfZHJfbW9kZSAhPSBjZG5zLT5jdXJyZW50X2RyX21vZGUpIHsNCj4+ICsgICAgICAgICAgICAg ICBjZG5zM19kcmRfdXBkYXRlX21vZGUoY2Rucyk7DQo+PiArICAgICAgICAgICAgICAgaG9zdCA9 IGNkbnMzX2lzX2hvc3QoY2Rucyk7DQo+PiArICAgICAgICAgICAgICAgZGV2aWNlID0gY2RuczNf aXNfZGV2aWNlKGNkbnMpOw0KPj4gKyAgICAgICB9DQo+PiArDQo+PiAgICAgICAgIGlmIChob3N0 KSB7DQo+PiAgICAgICAgICAgICAgICAgaWYgKGNkbnMtPnJvbGVzW0NETlMzX1JPTEVfSE9TVF0p DQo+PiAgICAgICAgICAgICAgICAgICAgICAgICBjZG5zM19kb19yb2xlX3N3aXRjaChjZG5zLCBD RE5TM19ST0xFX0hPU1QpOw0KPj4gQEAgLTI4Nyw2ICsyOTksNyBAQCBzdGF0aWMgaW50IGNkbnMz X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+PiAgICAgICAgIGlmIChyZXQp DQo+PiAgICAgICAgICAgICAgICAgZ290byBlcnIyOw0KPj4NCj4+ICsgICAgICAgcmV0ID0gY2Ru czNfZHJkX2luaXQoY2Rucyk7DQo+PiAgICAgICAgIGlmIChyZXQpDQo+PiAgICAgICAgICAgICAg ICAgZ290byBlcnIyOw0KPj4NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jZG5zMy9kcmQu YyBiL2RyaXZlcnMvdXNiL2NkbnMzL2RyZC5jDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4g aW5kZXggMDAwMDAwMDAwMDAwLi5hYzc0MWM4MGU3NzYNCj4+IC0tLSAvZGV2L251bGwNCj4+ICsr KyBiL2RyaXZlcnMvdXNiL2NkbnMzL2RyZC5jDQo+PiBAQCAtMCwwICsxLDIyOSBAQA0KPj4gKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQo+PiArLyoNCj4+ICsgKiBDYWRlbmNl IFVTQlNTIERSRCBEcml2ZXIuDQo+PiArICoNCj4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTggQ2Fk ZW5jZS4NCj4+ICsgKg0KPj4gKyAqIEF1dGhvcjogUGF3ZWwgTGFzemN6YWsgPHBhd2VsbEBjYWRl bmNlLmNvbQ0KPj4gKyAqDQo+PiArICovDQo+PiArI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0K Pj4gKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4NCj4+ICsjaW5jbHVkZSA8bGludXgvZGVs YXkuaD4NCj4+ICsjaW5jbHVkZSA8bGludXgvdXNiL290Zy5oPg0KPj4gKw0KPj4gKyNpbmNsdWRl ICJnYWRnZXQuaCINCj4+ICsjaW5jbHVkZSAiZHJkLmgiDQo+PiArDQo+PiArLyoqDQo+PiArICog Y2RuczNfc2V0X21vZGUgLSBjaGFuZ2UgbW9kZSBvZiBPVEcgQ29yZQ0KPj4gKyAqIEBjZG5zOiBw b2ludGVyIHRvIGNvbnRleHQgc3RydWN0dXJlDQo+PiArICogQG1vZGU6IHNlbGVjdGVkIG1vZGUg ZnJvbSBjZG5zX3JvbGUNCj4+ICsgKi8NCj4+ICt2b2lkIGNkbnMzX3NldF9tb2RlKHN0cnVjdCBj ZG5zMyAqY2RucywgZW51bSB1c2JfZHJfbW9kZSBtb2RlKQ0KPj4gK3sNCj4+ICsgICAgICAgdTMy IHJlZzsNCj4+ICsNCj4+ICsgICAgICAgY2Rucy0+Y3VycmVudF9kcl9tb2RlID0gbW9kZTsNCj4+ ICsgICAgICAgc3dpdGNoIChtb2RlKSB7DQo+PiArICAgICAgIGNhc2UgVVNCX0RSX01PREVfUEVS SVBIRVJBTDoNCj4+ICsgICAgICAgICAgICAgICBkZXZfaW5mbyhjZG5zLT5kZXYsICJTZXQgY29u dHJvbGxlciB0byBHYWRnZXQgbW9kZVxuIik7DQo+PiArICAgICAgICAgICAgICAgd3JpdGVsKE9U R0NNRF9ERVZfQlVTX1JFUSB8IE9UR0NNRF9PVEdfRElTLA0KPj4gKyAgICAgICAgICAgICAgICAg ICAgICAmY2Rucy0+b3RnX3JlZ3MtPmNtZCk7DQo+PiArICAgICAgICAgICAgICAgYnJlYWs7DQo+ PiArICAgICAgIGNhc2UgVVNCX0RSX01PREVfSE9TVDoNCj4+ICsgICAgICAgICAgICAgICBkZXZf aW5mbyhjZG5zLT5kZXYsICJTZXQgY29udHJvbGxlciB0byBIb3N0IG1vZGVcbiIpOw0KPj4gKyAg ICAgICAgICAgICAgIHdyaXRlbChPVEdDTURfSE9TVF9CVVNfUkVRIHwgT1RHQ01EX09UR19ESVMs DQo+PiArICAgICAgICAgICAgICAgICAgICAgICZjZG5zLT5vdGdfcmVncy0+Y21kKTsNCj4+ICsg ICAgICAgICAgICAgICBicmVhazsNCj4+ICsgICAgICAgY2FzZSBVU0JfRFJfTU9ERV9PVEc6DQo+ PiArICAgICAgICAgICAgICAgZGV2X2luZm8oY2Rucy0+ZGV2LCAiU2V0IGNvbnRyb2xsZXIgdG8g T1RHIG1vZGVcbiIpOw0KPj4gKyAgICAgICAgICAgICAgIHJlZyA9IHJlYWRsKCZjZG5zLT5vdGdf cmVncy0+Y3RybDEpOw0KPj4gKyAgICAgICAgICAgICAgIHJlZyB8PSBPVEdDVFJMMV9JRFBVTExV UDsNCj4+ICsgICAgICAgICAgICAgICB3cml0ZWwocmVnLCAmY2Rucy0+b3RnX3JlZ3MtPmN0cmwx KTsNCj4+ICsNCj4+ICsgICAgICAgICAgICAgICAvKiB3YWl0IHVudGlsIHZhbGlkIElEIChJRF9W QUxVRSkgY2FuIGJlIHNhbXBsZWQgKDUwbXMpLiAqLw0KPj4gKyAgICAgICAgICAgICAgIG1kZWxh eSg1MCk7DQo+DQo+VXN1YWxseSwgZWFjaCBiaWcgZGVsYXkgbmVlZHMgd2VsbCBkb2N1bWVudGF0 aW9uLCBlZywgZnJvbSBoYXJkd2FyZSdzDQo+ZG9jdW1lbnRhdGlvbi4NCj5BbmQgdXNlIHNsZWVw IGRlbGF5LCBlZywgbXNsZWVwIG9yIHVzbGVlcF9yYW5nZS4NCg0KT2ssIA0KDQo+DQo+PiArICAg ICAgICAgICAgICAgYnJlYWs7DQo+PiArICAgICAgIGRlZmF1bHQ6DQo+PiArICAgICAgICAgICAg ICAgY2Rucy0+Y3VycmVudF9kcl9tb2RlID0gVVNCX0RSX01PREVfVU5LTk9XTjsNCj4+ICsgICAg ICAgICAgICAgICBkZXZfZXJyKGNkbnMtPmRldiwgIlVuc3VwcG9ydGVkIG1vZGUgb2Ygb3BlcmF0 aW9uICVkXG4iLCBtb2RlKTsNCj4+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+PiArICAgICAg IH0NCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludCBjZG5zM19vdGdfZ2V0X2lkKHN0cnVjdCBj ZG5zMyAqY2RucykNCj4+ICt7DQo+PiArICAgICAgIGludCBpZDsNCj4+ICsNCj4+ICsgICAgICAg aWQgPSByZWFkbCgmY2Rucy0+b3RnX3JlZ3MtPnN0cykgJiBPVEdTVFNfSURfVkFMVUU7DQo+PiAr ICAgICAgIGRldl9kYmcoY2Rucy0+ZGV2LCAiT1RHIElEOiAlZCIsIGlkKTsNCj4+ICsgICAgICAg cmV0dXJuIGlkOw0KPj4gK30NCj4+ICsNCj4+ICtpbnQgY2RuczNfaXNfaG9zdChzdHJ1Y3QgY2Ru czMgKmNkbnMpDQo+PiArew0KPj4gKyAgICAgICBpZiAoY2Rucy0+Y3VycmVudF9kcl9tb2RlID09 IFVTQl9EUl9NT0RFX0hPU1QpDQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIDE7DQo+PiArICAg ICAgIGVsc2UgaWYgKGNkbnMtPmN1cnJlbnRfZHJfbW9kZSA9PSBVU0JfRFJfTU9ERV9PVEcpDQo+ PiArICAgICAgICAgICAgICAgaWYgKCFjZG5zM19vdGdfZ2V0X2lkKGNkbnMpKQ0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQo+PiArDQo+PiArICAgICAgIHJldHVybiAwOw0K Pj4gK30NCj4+ICsNCj4+ICtpbnQgY2RuczNfaXNfZGV2aWNlKHN0cnVjdCBjZG5zMyAqY2RucykN Cj4+ICt7DQo+PiArICAgICAgIGlmIChjZG5zLT5jdXJyZW50X2RyX21vZGUgPT0gVVNCX0RSX01P REVfUEVSSVBIRVJBTCkNCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gMTsNCj4+ICsgICAgICAg ZWxzZSBpZiAoY2Rucy0+Y3VycmVudF9kcl9tb2RlID09IFVTQl9EUl9NT0RFX09URykNCj4+ICsg ICAgICAgICAgICAgICBpZiAoY2RuczNfb3RnX2dldF9pZChjZG5zKSkNCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAxOw0KPj4gKw0KPj4gKyAgICAgICByZXR1cm4gMDsNCj4+ICt9 DQo+PiArDQo+DQo+WW91IGNvdWxkIG1vdmUgYWJvdmUgaW50byBjZG5zX2dldF9yb2xlLg0KDQpC dXQgdGhlc2UgdHdvIGZ1bmN0aW9uIGFyZSBhbHNvIHVzZWQgaW4gY2RuczNfZ2V0X2luaXRpYWxf cm9sZSBpbiBjb3JlLmMgZmlsZS4NCj4NCj4+ICsvKioNCj4+ICsgKiBjZG5zM19vdGdfZGlzYWJs ZV9pcnEgLSBEaXNhYmxlIGFsbCBPVEcgaW50ZXJydXB0cw0KPj4gKyAqIEBjZG5zOiBQb2ludGVy IHRvIGNvbnRyb2xsZXIgY29udGV4dCBzdHJ1Y3R1cmUNCj4+ICsgKi8NCj4+ICtzdGF0aWMgdm9p ZCBjZG5zM19vdGdfZGlzYWJsZV9pcnEoc3RydWN0IGNkbnMzICpjZG5zKQ0KPj4gK3sNCj4+ICsg ICAgICAgd3JpdGVsKDAsICZjZG5zLT5vdGdfcmVncy0+aWVuKTsNCj4+ICt9DQo+PiArDQo+PiAr LyoqDQo+PiArICogY2RuczNfb3RnX2VuYWJsZV9pcnEgLSBlbmFibGUgaWQgYW5kIHNlc3NfdmFs aWQgaW50ZXJydXB0cw0KPj4gKyAqIEBjZG5zOiBQb2ludGVyIHRvIGNvbnRyb2xsZXIgY29udGV4 dCBzdHJ1Y3R1cmUNCj4+ICsgKi8NCj4+ICtzdGF0aWMgdm9pZCBjZG5zM19vdGdfZW5hYmxlX2ly cShzdHJ1Y3QgY2RuczMgKmNkbnMpDQo+PiArew0KPj4gKyAgICAgICB3cml0ZWwoT1RHSUVOX0lE X0NIQU5HRV9JTlQgfCBPVEdJRU5fVkJVU1ZBTElEX1JJU0VfSU5UIHwNCj4+ICsgICAgICAgICAg ICAgIE9UR0lFTl9WQlVTVkFMSURfRkFMTF9JTlQsICZjZG5zLT5vdGdfcmVncy0+aWVuKTsNCj4+ ICt9DQo+PiArDQo+PiArLyoqDQo+PiArICogY2RuczNfaW5pdF9vdGdfbW9kZSAtIGluaXRpYWxp emUgZHJkIGNvbnRyb2xsZXINCj4+ICsgKiBAY2RuczogUG9pbnRlciB0byBjb250cm9sbGVyIGNv bnRleHQgc3RydWN0dXJlDQo+PiArICoNCj4+ICsgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvdGhl cndpc2UgbmVnYXRpdmUgZXJybm8NCj4+ICsgKi8NCj4+ICtzdGF0aWMgdm9pZCBjZG5zM19pbml0 X290Z19tb2RlKHN0cnVjdCBjZG5zMyAqY2RucykNCj4+ICt7DQo+PiArICAgICAgIGNkbnMzX290 Z19kaXNhYmxlX2lycShjZG5zKTsNCj4+ICsgICAgICAgLyogY2xlYXIgYWxsIGludGVycnVwdHMg Ki8NCj4+ICsgICAgICAgd3JpdGVsKH4wLCAmY2Rucy0+b3RnX3JlZ3MtPml2ZWN0KTsNCj4+ICsN Cj4+ICsgICAgICAgY2RuczNfc2V0X21vZGUoY2RucywgVVNCX0RSX01PREVfT1RHKTsNCj4+ICsN Cj4+ICsgICAgICAgY2RuczNfb3RnX2VuYWJsZV9pcnEoY2Rucyk7DQo+PiArfQ0KPj4gKw0KPj4g Ky8qKg0KPj4gKyAqIGNkbnMzX2RyZF91cGRhdGVfbW9kZSAtIGluaXRpYWxpemUgbW9kZSBvZiBv cGVyYXRpb24NCj4+ICsgKiBAY2RuczogUG9pbnRlciB0byBjb250cm9sbGVyIGNvbnRleHQgc3Ry dWN0dXJlDQo+PiArICoNCj4+ICsgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvdGhlcndpc2UgbmVn YXRpdmUgZXJybm8NCj4+ICsgKi8NCj4+ICtpbnQgY2RuczNfZHJkX3VwZGF0ZV9tb2RlKHN0cnVj dCBjZG5zMyAqY2RucykNCj4+ICt7DQo+PiArICAgICAgIGludCByZXQgPSAwOw0KPj4gKw0KPj4g KyAgICAgICBzd2l0Y2ggKGNkbnMtPmRlc2lyZWRfZHJfbW9kZSkgew0KPj4gKyAgICAgICBjYXNl IFVTQl9EUl9NT0RFX1BFUklQSEVSQUw6DQo+PiArICAgICAgICAgICAgICAgY2RuczNfc2V0X21v ZGUoY2RucywgVVNCX0RSX01PREVfUEVSSVBIRVJBTCk7DQo+PiArICAgICAgICAgICAgICAgYnJl YWs7DQo+PiArICAgICAgIGNhc2UgVVNCX0RSX01PREVfSE9TVDoNCj4+ICsgICAgICAgICAgICAg ICBjZG5zM19zZXRfbW9kZShjZG5zLCBVU0JfRFJfTU9ERV9IT1NUKTsNCj4+ICsgICAgICAgICAg ICAgICBicmVhazsNCj4+ICsgICAgICAgY2FzZSBVU0JfRFJfTU9ERV9PVEc6DQo+PiArICAgICAg ICAgICAgICAgY2RuczNfaW5pdF9vdGdfbW9kZShjZG5zKTsNCj4+ICsgICAgICAgICAgICAgICBi cmVhazsNCj4+ICsgICAgICAgZGVmYXVsdDoNCj4+ICsgICAgICAgICAgICAgICBkZXZfZXJyKGNk bnMtPmRldiwgIlVuc3VwcG9ydGVkIG1vZGUgb2Ygb3BlcmF0aW9uICVkXG4iLA0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgY2Rucy0+ZHJfbW9kZSk7DQo+PiArICAgICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7DQo+PiArICAgICAgIH0NCj4+ICsNCj4+ICsgICAgICAgcmV0dXJuIHJldDsN Cj4+ICt9DQo+PiArDQo+PiAraXJxcmV0dXJuX3QgY2RuczNfZHJkX2lycShzdHJ1Y3QgY2RuczMg KmNkbnMpDQo+PiArew0KPj4gKyAgICAgICBpcnFyZXR1cm5fdCByZXQgPSBJUlFfTk9ORTsNCj4+ ICsgICAgICAgdTMyIHJlZzsNCj4+ICsNCj4+ICsgICAgICAgaWYgKGNkbnMtPmRyX21vZGUgIT0g VVNCX0RSX01PREVfT1RHKQ0KPj4gKyAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArDQo+ PiArICAgICAgIHJlZyA9IHJlYWRsKCZjZG5zLT5vdGdfcmVncy0+aXZlY3QpOw0KPj4gKyAgICAg ICBpZiAoIXJlZykNCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gKw0KPj4gKyAg ICAgICBpZiAocmVnICYgT1RHSUVOX0lEX0NIQU5HRV9JTlQpIHsNCj4+ICsgICAgICAgICAgICAg ICBpbnQgaWQgPSBjZG5zM19vdGdfZ2V0X2lkKGNkbnMpOw0KPj4gKw0KPj4gKyAgICAgICAgICAg ICAgIGRldl9kYmcoY2Rucy0+ZGV2LCAiT1RHIElSUTogbmV3IElEOiAlZFxuIiwNCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgIGNkbnMzX290Z19nZXRfaWQoY2RucykpOw0KPj4gKw0KPj4gKyAg ICAgICAgICAgICAgIGlmIChpZCkNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGNkbnMtPnJv bGUgPSBDRE5TM19ST0xFX0dBREdFVDsNCj4+ICsgICAgICAgICAgICAgICBlbHNlDQo+PiArICAg ICAgICAgICAgICAgICAgICAgICBjZG5zLT5yb2xlID0gQ0ROUzNfUk9MRV9IT1NUOw0KPj4gKw0K Pj4gKyAgICAgICAgICAgICAgIHF1ZXVlX3dvcmsoc3lzdGVtX2ZyZWV6YWJsZV93cSwgJmNkbnMt PnJvbGVfc3dpdGNoX3dxKTsNCj4+ICsNCj4+ICsgICAgICAgICAgICAgICByZXQgPSBJUlFfSEFO RExFRDsNCj4+ICsgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICB3cml0ZWwofjAsICZjZG5zLT5v dGdfcmVncy0+aXZlY3QpOw0KPj4gKyAgICAgICByZXR1cm4gSVJRX0hBTkRMRUQ7DQo+PiArfQ0K Pj4gKw0KPj4gK2ludCBjZG5zM19kcmRfaW5pdChzdHJ1Y3QgY2RuczMgKmNkbnMpDQo+PiArew0K Pj4gKyAgICAgICBlbnVtIHVzYl9kcl9tb2RlIGRyX21vZGU7DQo+PiArICAgICAgIGludCByZXQg PSAwOw0KPj4gKyAgICAgICB1MzIgc3RhdGU7DQo+PiArDQo+PiArICAgICAgIHN0YXRlID0gT1RH U1RTX1NUUkFQKHJlYWRsKCZjZG5zLT5vdGdfcmVncy0+c3RzKSk7DQo+PiArDQo+PiArICAgICAg IGRyX21vZGUgPSBjZG5zLT5kcl9tb2RlOw0KPj4gKyAgICAgICBpZiAoc3RhdGUgPT0gT1RHU1RT X1NUUkFQX0hPU1QpIHsNCj4+ICsgICAgICAgICAgICAgICBkZXZfaW5mbyhjZG5zLT5kZXYsICJD b250cm9sbGVyIHN0cmFwcGVkIHRvIEhPU1RcbiIpOw0KPj4gKyAgICAgICAgICAgICAgIGRyX21v ZGUgPSBVU0JfRFJfTU9ERV9IT1NUOw0KPj4gKyAgICAgICAgICAgICAgIGlmIChjZG5zLT5kcl9t b2RlICE9IFVTQl9EUl9NT0RFX0hPU1QgJiYNCj4+ICsgICAgICAgICAgICAgICAgICAgY2Rucy0+ ZHJfbW9kZSAhPSBVU0JfRFJfTU9ERV9PVEcpDQo+PiArICAgICAgICAgICAgICAgICAgICAgICBy ZXQgPSAtRUlOVkFMOw0KPj4gKyAgICAgICB9IGVsc2UgaWYgKHN0YXRlID09IE9UR1NUU19TVFJB UF9HQURHRVQpIHsNCj4+ICsgICAgICAgICAgICAgICBkZXZfaW5mbyhjZG5zLT5kZXYsICJDb250 cm9sbGVyIHN0cmFwcGVkIHRvIFBFUklQSEVSQUxcbiIpOw0KPj4gKyAgICAgICAgICAgICAgIGRy X21vZGUgPSBVU0JfRFJfTU9ERV9QRVJJUEhFUkFMOw0KPj4gKyAgICAgICAgICAgICAgIGlmIChj ZG5zLT5kcl9tb2RlICE9IFVTQl9EUl9NT0RFX1BFUklQSEVSQUwgJiYNCj4+ICsgICAgICAgICAg ICAgICAgICAgY2Rucy0+ZHJfbW9kZSAhPSBVU0JfRFJfTU9ERV9PVEcpDQo+PiArICAgICAgICAg ICAgICAgICAgICAgICByZXQgPSAtRUlOVkFMOw0KPj4gKyAgICAgICB9DQo+PiArDQo+PiArICAg ICAgIGlmIChyZXQpIHsNCj4+ICsgICAgICAgICAgICAgICBkZXZfZXJyKGNkbnMtPmRldiwgIklu Y29ycmVjdCBEUkQgY29uZmlndXJhdGlvblxuIik7DQo+PiArICAgICAgICAgICAgICAgcmV0dXJu IHJldDsNCj4+ICsgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICAvL1VwZGF0aW5nIERSIG1vZGUg YWNjb3JkaW5nIHRvIHN0cmFwLg0KPj4gKyAgICAgICBjZG5zLT5kcl9tb2RlID0gZHJfbW9kZTsN Cj4+ICsgICAgICAgY2Rucy0+ZGVzaXJlZF9kcl9tb2RlID0gZHJfbW9kZTsNCj4+ICsgICAgICAg Y2Rucy0+Y3VycmVudF9kcl9tb2RlID0gVVNCX0RSX01PREVfVU5LTk9XTjsNCj4+ICsNCj4+ICsg ICAgICAgZGV2X2luZm8oY2Rucy0+ZGV2LCAiQ29udHJvbGxlciBEZXZpY2UgSUQ6ICUwOGx4LCBS ZXZpc2lvbiBJRDogJTA4bHhcbiIsDQo+PiArICAgICAgICAgICAgICAgIENETlNfUklEKHJlYWRs KCZjZG5zLT5vdGdfcmVncy0+cmlkKSksDQo+PiArICAgICAgICAgICAgICAgIENETlNfRElEKHJl YWRsKCZjZG5zLT5vdGdfcmVncy0+ZGlkKSkpOw0KPj4gKw0KPj4gKyAgICAgICBzdGF0ZSA9IHJl YWRsKCZjZG5zLT5vdGdfcmVncy0+c3RzKTsNCj4+ICsgICAgICAgaWYgKE9UR1NUU19PVEdfTlJE WShzdGF0ZSkgIT0gMCkgew0KPj4gKyAgICAgICAgICAgICAgIGRldl9lcnIoY2Rucy0+ZGV2LCAi Q2FkZW5jZSBVU0IzIE9URyBkZXZpY2Ugbm90IHJlYWR5XG4iKTsNCj4+ICsgICAgICAgICAgICAg ICByZXR1cm4gLUVOT0RFVjsNCj4+ICsgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICByZXQgPSBj ZG5zM19kcmRfdXBkYXRlX21vZGUoY2Rucyk7DQo+PiArDQo+PiArICAgICAgIHJldHVybiByZXQ7 DQo+PiArfQ0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NkbnMzL2RyZC5oIGIvZHJpdmVy cy91c2IvY2RuczMvZHJkLmgNCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+PiBpbmRleCAwMDAw MDAwMDAwMDAuLjBmYWE3NTIwZWNhYw0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvZHJpdmVy cy91c2IvY2RuczMvZHJkLmgNCj4+IEBAIC0wLDAgKzEsMTIyIEBADQo+PiArLyogU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8NCj4+ICsvKg0KPj4gKyAqIENhZGVuY2UgVVNCMyBE UkQgcGFydCBvZiBVU0JTUyBkcml2ZXINCj4NCj5IZWFkZXIgZmlsZQ0KPg0KPlBldGVyDQo+DQo+ PiArICoNCj4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTggQ2FkZW5jZS4NCj4+ICsgKg0KPj4gKyAq IEF1dGhvcjogUGF3ZWwgTGFzemN6YWsgPHBhd2VsbEBjYWRlbmNlLmNvbT4NCj4+ICsgKi8NCj4+ ICsjaWZuZGVmIF9fTElOVVhfQ0ROUzNfRFJEDQo+PiArI2RlZmluZSBfX0xJTlVYX0NETlMzX0RS RA0KPj4gKw0KPj4gKyNpbmNsdWRlIDxsaW51eC91c2Ivb3RnLmg+DQo+PiArI2luY2x1ZGUgPGxp bnV4L3BoeS9waHkuaD4NCj4+ICsjaW5jbHVkZSAiY29yZS5oIg0KPj4gKw0KPj4gKy8qICBEUkQg cmVnaXN0ZXIgaW50ZXJmYWNlLiAqLw0KPj4gK3N0cnVjdCBjZG5zM19vdGdfcmVncyB7DQo+PiAr ICAgICAgIF9fbGUzMiBkaWQ7DQo+PiArICAgICAgIF9fbGUzMiByaWQ7DQo+PiArICAgICAgIF9f bGUzMiBjYXBhYmlsaXRpZXM7DQo+PiArICAgICAgIF9fbGUzMiByZXNlcnZlZDE7DQo+PiArICAg ICAgIF9fbGUzMiBjbWQ7DQo+PiArICAgICAgIF9fbGUzMiBzdHM7DQo+PiArICAgICAgIF9fbGUz MiBzdGF0ZTsNCj4+ICsgICAgICAgX19sZTMyIHJlc2VydmVkMjsNCj4+ICsgICAgICAgX19sZTMy IGllbjsNCj4+ICsgICAgICAgX19sZTMyIGl2ZWN0Ow0KPj4gKyAgICAgICBfX2xlMzIgcmVmY2xr Ow0KPj4gKyAgICAgICBfX2xlMzIgdG1yOw0KPj4gKyAgICAgICBfX2xlMzIgcmVzZXJ2ZWQzWzRd Ow0KPj4gKyAgICAgICBfX2xlMzIgc2ltdWxhdGU7DQo+PiArICAgICAgIF9fbGUzMiBvdmVycmlk ZTsNCj4+ICsgICAgICAgX19sZTMyIHN1c3BfY3RybDsNCj4+ICsgICAgICAgX19sZTMyIHJlc2Vy dmVkNDsNCj4+ICsgICAgICAgX19sZTMyIGFuYXN0czsNCj4+ICsgICAgICAgX19sZTMyIGFkcF9y YW1wX3RpbWU7DQo+PiArICAgICAgIF9fbGUzMiBjdHJsMTsNCj4+ICsgICAgICAgX19sZTMyIGN0 cmwyOw0KPj4gK307DQo+PiArDQo+PiArLyogQ0ROU19SSUQgLSBiaXRtYXNrcyAqLw0KPj4gKyNk ZWZpbmUgQ0ROU19SSUQocCkgICAgICAgICAgICAgICAgICAgICgocCkgJiBHRU5NQVNLKDE1LCAw KSkNCj4+ICsNCj4+ICsvKiBDRE5TX1ZJRCAtIGJpdG1hc2tzICovDQo+PiArI2RlZmluZSBDRE5T X0RJRChwKSAgICAgICAgICAgICAgICAgICAgKChwKSAmIEdFTk1BU0soMzEsIDApKQ0KPj4gKw0K Pj4gKy8qIE9UR0NNRCAtIGJpdG1hc2tzICovDQo+PiArLyogIlJlcXVlc3QgdGhlIGJ1cyBmb3Ig RGV2aWNlIG1vZGUuICovDQo+PiArI2RlZmluZSBPVEdDTURfREVWX0JVU19SRVEgICAgIEJJVCgw KQ0KPj4gKy8qIFJlcXVlc3QgdGhlIGJ1cyBmb3IgSG9zdCBtb2RlICovDQo+PiArI2RlZmluZSBP VEdDTURfSE9TVF9CVVNfUkVRICAgICAgICAgICAgQklUKDEpDQo+PiArLyogRW5hYmxlIE9URyBt b2RlLiAqLw0KPj4gKyNkZWZpbmUgT1RHQ01EX09UR19FTiAgICAgICAgICAgICAgICAgIEJJVCgy KQ0KPj4gKy8qIERpc2FibGUgT1RHIG1vZGUgKi8NCj4+ICsjZGVmaW5lIE9UR0NNRF9PVEdfRElT ICAgICAgICAgICAgICAgICBCSVQoMykNCj4+ICsvKiJDb25maWd1cmUgT1RHIGFzIEEtRGV2aWNl LiAqLw0KPj4gKyNkZWZpbmUgT1RHQ01EX0FfREVWX0VOICAgICAgICAgICAgICAgICAgICAgICAg QklUKDQpDQo+PiArLyoiQ29uZmlndXJlIE9URyBhcyBBLURldmljZS4gKi8NCj4+ICsjZGVmaW5l IE9UR0NNRF9BX0RFVl9ESVMgICAgICAgICAgICAgICBCSVQoNSkNCj4+ICsvKiBEcm9wIHRoZSBi dXMgZm9yIERldmljZSBtb2QgZS4gKi8NCj4+ICsjZGVmaW5lIE9UR0NNRF9ERVZfQlVTX0RST1Ag ICAgICAgICAgICBCSVQoOCkNCj4+ICsvKiBEcm9wIHRoZSBidXMgZm9yIEhvc3QgbW9kZSovDQo+ PiArI2RlZmluZSBPVEdDTURfSE9TVF9CVVNfRFJPUCAgICAgICAgICAgQklUKDkpDQo+PiArLyog UG93ZXIgRG93biBVU0JTUy1ERVYuICovDQo+PiArI2RlZmluZSBPVEdDTURfREVWX1BPV0VSX09G RiAgICAgICAgICAgQklUKDExKQ0KPj4gKy8qIFBvd2VyIERvd24gQ0ROU1hIQ0kuICovDQo+PiAr I2RlZmluZSBPVEdDTURfSE9TVF9QT1dFUl9PRkYgICAgICAgICAgQklUKDEyKQ0KPj4gKw0KPj4g Ky8qIE9UR0lFTiAtIGJpdG1hc2tzICovDQo+PiArLyogSUQgY2hhbmdlIGludGVycnVwdCBlbmFi bGUgKi8NCj4+ICsjZGVmaW5lIE9UR0lFTl9JRF9DSEFOR0VfSU5UICAgICAgICAgICBCSVQoMCkN Cj4+ICsvKiBWYnVzdmFsaWQgZmFsbCBkZXRlY3RlZCBpbnRlcnJ1cHQgZW5hYmxlLiovDQo+PiAr I2RlZmluZSBPVEdJRU5fVkJVU1ZBTElEX1JJU0VfSU5UICAgICAgQklUKDQpDQo+PiArLyogVmJ1 c3ZhbGlkIGZhbGwgZGV0ZWN0ZWQgaW50ZXJydXB0IGVuYWJsZSAqLw0KPj4gKyNkZWZpbmUgT1RH SUVOX1ZCVVNWQUxJRF9GQUxMX0lOVCAgICAgIEJJVCg1KQ0KPj4gKw0KPj4gKy8qIE9UR1NUUyAt IGJpdG1hc2tzICovDQo+PiArLyoNCj4+ICsgKiBDdXJyZW50IHZhbHVlIG9mIHRoZSBJRCBwaW4u IEl0IGlzIG9ubHkgdmFsaWQgd2hlbiBpZHB1bGx1cCBpbg0KPj4gKyAqICBPVEdDVFJMMV9UWVBF IHJlZ2lzdGVyIGlzIHNldCB0byAnMScuDQo+PiArICovDQo+PiArI2RlZmluZSBPVEdTVFNfSURf VkFMVUUgICAgICAgICAgICAgICAgICAgICAgICBCSVQoMCkNCj4+ICsvKiBDdXJyZW50IHZhbHVl IG9mIHRoZSB2YnVzX3ZhbGlkICovDQo+PiArI2RlZmluZSBPVEdTVFNfVkJVU19WQUxJRCAgICAg ICAgICAgICAgQklUKDEpDQo+PiArLyogQ3VycmVudCB2YWx1ZSBvZiB0aGUgYl9zZXNzX3ZsZCAq Lw0KPj4gKyNkZWZpbmUgT1RHU1RTX1NFU1NJT05fVkFMSUQgICAgICAgICAgIEJJVCgyKQ0KPj4g Ky8qRGV2aWNlIG1vZGUgaXMgYWN0aXZlKi8NCj4+ICsjZGVmaW5lIE9UR1NUU19ERVZfQUNUSVZF ICAgICAgICAgICAgICBCSVQoMykNCj4+ICsvKiBIb3N0IG1vZGUgaXMgYWN0aXZlLiAqLw0KPj4g KyNkZWZpbmUgT1RHU1RTX0hPU1RfQUNUSVZFICAgICAgICAgICAgIEJJVCg0KQ0KPj4gKy8qIE9U RyBDb250cm9sbGVyIG5vdCByZWFkeS4gKi8NCj4+ICsjZGVmaW5lIE9UR1NUU19PVEdfTlJEWV9N QVNLICAgICAgICAgICBCSVQoMTEpDQo+PiArI2RlZmluZSBPVEdTVFNfT1RHX05SRFkocCkgICAg ICAgICAgICAgKChwKSAmIE9UR1NUU19PVEdfTlJEWV9NQVNLKQ0KPj4gKy8qDQo+PiArICogVmFs dWUgb2YgdGhlIHN0cmFwIHBpbnMuDQo+PiArICogMDAwIC0gbm8gZGVmYXVsdCBjb25maWd1cmF0 aW9uDQo+PiArICogMDEwIC0gQ29udHJvbGxlciBpbml0aWFsbCBjb25maWd1cmVkIGFzIEhvc3QN Cj4+ICsgKiAxMDAgLSBDb250cm9sbGVyIGluaXRpYWxseSBjb25maWd1cmVkIGFzIERldmljZQ0K Pj4gKyAqLw0KPj4gKyNkZWZpbmUgT1RHU1RTX1NUUkFQKHApICAgICAgICAgICAgICAgICAgICAg ICAgKCgocCkgJiBHRU5NQVNLKDE0LCAxMikpID4+IDEyKQ0KPj4gKyNkZWZpbmUgT1RHU1RTX1NU UkFQX05PX0RFRkFVTFRfQ0ZHICAgIDB4MDANCj4+ICsjZGVmaW5lIE9UR1NUU19TVFJBUF9IT1NU X09URyAgICAgICAgICAweDAxDQo+PiArI2RlZmluZSBPVEdTVFNfU1RSQVBfSE9TVCAgICAgICAg ICAgICAgMHgwMg0KPj4gKyNkZWZpbmUgT1RHU1RTX1NUUkFQX0dBREdFVCAgICAgICAgICAgIDB4 MDQNCj4+ICsvKiBIb3N0IG1vZGUgaXMgdHVybmVkIG9uLiAqLw0KPj4gKyNkZWZpbmUgT1RHU1RT RV9YSENJX1JFQURZRiAgICAgICAgICAgIEJJVCgyNikNCj4+ICsvKiAiRGV2aWNlIG1vZGUgaXMg dHVybmVkIG9uIC4qLw0KPj4gKyNkZWZpbmUgT1RHU1RTX0RFVl9SRUFEWSAgICAgICAgICAgICAg IEJJVCgyNykNCj4+ICsNCj4+ICsvKiBPVEdSRUZDTEsgLSBiaXRtYXNrcyAqLw0KPj4gKyNkZWZp bmUgT1RHUkVGQ0xLX1NUQl9DTEtfU1dJVENIX0VOICAgIEJJVCgzMSkNCj4+ICsNCj4+ICsvKiBP VEdDVFJMMSAtIGJpdG1hc2tzICovDQo+PiArI2RlZmluZSBPVEdDVFJMMV9JRFBVTExVUCAgICAg ICAgICAgICAgQklUKDI0KQ0KPj4gKw0KPj4gK2ludCBjZG5zM19pc19ob3N0KHN0cnVjdCBjZG5z MyAqY2Rucyk7DQo+PiAraW50IGNkbnMzX2lzX2RldmljZShzdHJ1Y3QgY2RuczMgKmNkbnMpOw0K Pj4gK2ludCBjZG5zM19kcmRfaW5pdChzdHJ1Y3QgY2RuczMgKmNkbnMpOw0KPj4gK2ludCBjZG5z M19kcmRfdXBkYXRlX21vZGUoc3RydWN0IGNkbnMzICpjZG5zKTsNCj4+ICtpcnFyZXR1cm5fdCBj ZG5zM19kcmRfaXJxKHN0cnVjdCBjZG5zMyAqY2Rucyk7DQo+PiArDQo+PiArI2VuZGlmIC8qIF9f TElOVVhfQ0ROUzNfRFJEICovDQo+PiAtLQ0KPj4gMi4xNy4xDQo+Pg0K