Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp2370367imm; Mon, 24 Sep 2018 03:15:14 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZnGHLamQuVxA0giyYIYLW4S9l0qbT2qEfeq8St0+04R7l8eq/fKHQLXz5WOwZXcchTjm+9 X-Received: by 2002:a62:2459:: with SMTP id r86-v6mr9754924pfj.31.1537784114935; Mon, 24 Sep 2018 03:15:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537784114; cv=none; d=google.com; s=arc-20160816; b=iSA16RA9jpp2F8PTKBVhc3Ok06D48xPhYGLHdmy4Iz1TA+ENFM8iFLgssKzh2Him9c 7dQJ9ptMHIF7tKVSwrrPlN0OVQgFl9QG2su29NOWrXYulqAI0BU/CpCfpEC1htRqcWTN AohRHhtum0s4uLg7+m4/34ftaieqZw4/BR7dxueWyfKBWkXh4rkpdLUUTvVxHQu4FldL 9GhsW5RL6HBJAT490Iqu1dXIBmAJP5DOcguUP43OS2a1MyBir24vBnIAYi6ze3LvNwsC exDj7o8xyQ7+WRnoxD93pwYLM4RwfVoJ6v6pBavrivbZcNqoxpHpxthSwNHpCsATRPeI PCjA== 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:to:from:dkim-signature:dkim-signature; bh=tdCVv1aKWgl+iGcZDlj6SGITFCeuTGYZ0M8TdPS/cK0=; b=whE1Mdj7PN2cP+UYb7Kd0z1hO7fdolkBBxRoeCW3EzLJVDwMfFOOQLm2tP5X/5eoq3 weeTYnd7ofZVMvIqBsJvORfawxY9jJTMqrvDYvPfv4c466G74lFMQ2lLIwl2AdxAlNLt TxL9xGRmLREJ57XdSkvEPt9kESeIXVsKzTejTnT6VDc6M0LogUn9onTBbzKR2DkVxzgv eZ4OnHuiAXdS2rrqQJhv7sgCMw0uydKmtx3Rrqf39Kf1EcnxWLQPTliP/FTpXd2La6Eb n83KO1uvU00zRRqLsx1BGdZELmnzutyxnhhZNDROMh1PWzMZn7UhNcUzQYODhA4P350o 3Aiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cadence.com header.s=proofpoint header.b="BPPmxk/t"; dkim=pass header.i=@cadence.com header.s=selector1 header.b=UiOde7pB; 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 s188-v6si583591pfs.255.2018.09.24.03.14.59; Mon, 24 Sep 2018 03:15:14 -0700 (PDT) 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="BPPmxk/t"; dkim=pass header.i=@cadence.com header.s=selector1 header.b=UiOde7pB; 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 S1728663AbeIXQPU (ORCPT + 99 others); Mon, 24 Sep 2018 12:15:20 -0400 Received: from mx0a-0014ca01.pphosted.com ([208.84.65.235]:49662 "EHLO mx0a-0014ca01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727337AbeIXQPT (ORCPT ); Mon, 24 Sep 2018 12:15:19 -0400 X-Greylist: delayed 3912 seconds by postgrey-1.27 at vger.kernel.org; Mon, 24 Sep 2018 12:15:17 EDT Received: from pps.filterd (m0042385.ppops.net [127.0.0.1]) by mx0a-0014ca01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w8O96sPu032472; Mon, 24 Sep 2018 02:08:55 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; h=from : to : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint; bh=tdCVv1aKWgl+iGcZDlj6SGITFCeuTGYZ0M8TdPS/cK0=; b=BPPmxk/t3stTyvpgolQ+y4XuHMEXW8vhhNhMYCOLQ9kS9wvGQphxzYOtLITej3vA1W9+ cV0L3MDi4m1UUwOCfKbly39kZy6rLbRlVcPWJqA18nmyPvIur5N/1q0uXvJ411ULL7gL +Zq9/I8qDjgE+7+oT9RfwMwjykqa5wNXEdPHJt5i7UUHtDMXXQCSsfCPLLuEMt7etEVG 06WAYTcrzxThWiLFHyfm6imlvUK2sCyn5Xp8MzEqXbhqKM1lkIp1EBcSedZH8rufiRia Vgg3urtmOABZRqpSQZOSC9SGZprfvRAOCrUSSBY19OndLpr4G0p1cebFUmD3DsgZl9fR Ng== Authentication-Results: cadence.com; spf=pass smtp.mailfrom=adouglas@cadence.com Received: from nam02-bl2-obe.outbound.protection.outlook.com (mail-bl2nam02lp0085.outbound.protection.outlook.com [207.46.163.85]) by mx0a-0014ca01.pphosted.com with ESMTP id 2mnj9veye7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 24 Sep 2018 02:08:55 -0700 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=tdCVv1aKWgl+iGcZDlj6SGITFCeuTGYZ0M8TdPS/cK0=; b=UiOde7pB3t9SfYuIJWuaZEbBbcs7C7GCsHUgys49rweC1iDABxe1WsijPUkDMZJOMDf2vIIS2chMd/0sIsNJ7ZINAMRP/QVZIWeTYnmLWKs/QznJD2/yNk1V4B7G1bId3Oe1uml4aq2QRAvBpU53CKwYZ8PplhAt2TJUHLCPbYs= Received: from MWHPR07MB3502.namprd07.prod.outlook.com (10.164.192.29) by MWHPR07MB3533.namprd07.prod.outlook.com (10.164.192.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.18; Mon, 24 Sep 2018 09:08:51 +0000 Received: from MWHPR07MB3502.namprd07.prod.outlook.com ([fe80::5d19:3d62:16c3:8811]) by MWHPR07MB3502.namprd07.prod.outlook.com ([fe80::5d19:3d62:16c3:8811%3]) with mapi id 15.20.1143.019; Mon, 24 Sep 2018 09:08:51 +0000 From: Alan Douglas To: Kishon Vijay Abraham I , "linux-kernel@vger.kernel.org" , "mark.rutland@arm.com" , "robh+dt@kernel.org" , "devicetree@vger.kernel.org" Subject: RE: [RFC PATCH v2 2/2] phy: cadence: Add driver for Sierra PHY Thread-Topic: [RFC PATCH v2 2/2] phy: cadence: Add driver for Sierra PHY Thread-Index: AQHURe/o0E/2VoQXEU6zfqrpwEUVSKT5CFaAgAAOXfA= Date: Mon, 24 Sep 2018 09:08:51 +0000 Message-ID: References: <1536244971-26714-1-git-send-email-adouglas@cadence.com> <80328703-d99d-599f-956f-ed13cb8313a7@ti.com> In-Reply-To: <80328703-d99d-599f-956f-ed13cb8313a7@ti.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-ref: PG1ldGE+PGF0IG5tPSJib2R5LnR4dCIgcD0iYzpcdXNlcnNcYWRvdWdsYXNcYXBwZGF0YVxyb2FtaW5nXDA5ZDg0OWI2LTMyZDMtNGE0MC04NWVlLTZiODRiYTI5ZTM1Ylxtc2dzXG1zZy03NmI4NjNmOS1iZmQ5LTExZTgtYWI4Yi1hNDRjYzhlYzVlY2RcYW1lLXRlc3RcNzZiODYzZmEtYmZkOS0xMWU4LWFiOGItYTQ0Y2M4ZWM1ZWNkYm9keS50eHQiIHN6PSIxNTM2NSIgdD0iMTMxODIyNTM3MzY1ODczMDg4IiBoPSJBVzM2bnBkQmMxK1N4NWx1WTlJcTFaSEJJb1E9IiBpZD0iIiBibD0iMCIgYm89IjEiLz48L21ldGE+ x-dg-rorf: x-originating-ip: [185.217.253.59] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;MWHPR07MB3533;20:ggghH9hz1ogSUlq+f9evdx+jdwJ5rdSsJ0rxmUjXPh+5Fz+Qwj0dhs+VRXY3R2uZLlX0/GmPfyQn0xAE9/+uM2WOI64Oz1Stb7brwI6ZRlsu4T7J4RIeLQoeKGoD+4dxFgJa8OhW6Xhp0oNBD/JbsrwQpoiC15kqBxZUTPqkLhRYL4K/A+9AO7YTNoQfmifbt+qdwQSfYPCKdatq1OT0K00RwxHv5iuOYieBbmaUk2iAIeNatekIJpeIPgSkTTHU x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: ae25de3e-8e07-48c1-175f-08d621fd5870 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020);SRVR:MWHPR07MB3533; x-ms-traffictypediagnostic: MWHPR07MB3533: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(72806322054110); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(3231355)(944501410)(52105095)(149066)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123562045)(20161123560045)(201708071742011)(7699051);SRVR:MWHPR07MB3533;BCL:0;PCL:0;RULEID:;SRVR:MWHPR07MB3533; x-forefront-prvs: 0805EC9467 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(376002)(39850400004)(396003)(136003)(346002)(366004)(36092001)(189003)(199004)(81166006)(5250100002)(6246003)(575784001)(8936002)(14454004)(86362001)(66066001)(478600001)(2900100001)(8676002)(7736002)(74316002)(25786009)(305945005)(5660300001)(6116002)(106356001)(3846002)(105586002)(33656002)(68736007)(2906002)(76176011)(102836004)(71190400001)(316002)(6506007)(26005)(7696005)(53936002)(446003)(11346002)(186003)(486006)(476003)(71200400001)(99286004)(110136005)(81156014)(55016002)(97736004)(217873002)(2501003)(9686003)(6436002)(14444005)(229853002)(2201001)(256004)(53546011);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR07MB3533;H:MWHPR07MB3502.namprd07.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: cadence.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: vt7Kt+5GuKRcpom5+yj1HXPr8DKHb3caODpG5D9RZBiJOTkJ6J5fXKyGNDqRNssbZLX0ifI52/VP64LhU0pV57Xk1Wy0iVkdhHHHAx5ONP4BD/hECwSqqXJISGp6hvceVclkYcJDUz1mFrvksGZfenr6dxiOeSOlg1bv4gQKJ8y1jd81E98obb5vFoT1vRBQUlaY6+05HFC10iOg7POXbrmVOa8TJ35WHVfxBwOOtd7HNknHYtezF1uTW7pbaz2e/dfiYbvlYfKBgUH5DKDYzAfGtHdMGGqU3hMtISjJFeZOjWmLCBI+uuaQGIi6JlrgyCizk2AsRh2XqO+s8uR02qsyJQvewbug//NZ3fZLlWU= 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: ae25de3e-8e07-48c1-175f-08d621fd5870 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Sep 2018 09:08:51.2246 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: d36035c5-6ce6-4662-a3dc-e762e61ae4c9 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB3533 X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 a:mx-sanjose2.Cadence.COM a:mx-sanjose4.Cadence.COM a:mx-sanjose5.Cadence.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-09-24_06:,, signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1809240099 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGksDQoNCk9uIDIwIFNlcHRlbWJlciAyMDE4IDExOjEwLCBLaXNob24gVmlqYXkgQWJyYWhhbSBJ IHdyb3RlOg0KPiBIaSwNCj4gDQo+IE9uIFRodXJzZGF5IDA2IFNlcHRlbWJlciAyMDE4IDA4OjEy IFBNLCBBbGFuIERvdWdsYXMgd3JvdGU6DQo+ID4gQWRkIGEgU2llcnJhIFBIWSBkcml2ZXIgd2l0 aCBQQ0llIGFuZCBVU0Igc3VwcG9ydC4NCj4gPg0KPiA+IFRoZSBQSFkgaGFzIG11bHRpcGxlIGxh bmVzLCB3aGljaCBjYW4gYmUgY29uZmlndXJlZCBpbnRvDQo+ID4gZ3JvdXBzLCBhbmQgYSBnZW5l cmljIFBIWSBkZXZpY2UgaXMgY3JlYXRlZCBmb3IgZWFjaCBncm91cC4NCj4gPg0KPiA+IFRoZXJl IGFyZSB0d28gcmVzZXRzIGNvbnRyb2xsaW5nIHRoZSBvdmVyYWxsIFBIWSBibG9jaywgb25lDQo+ ID4gdG8gZW5hYmxlIHRoZSBBUEIgaW50ZXJmYWNlIGZvciBwcm9ncmFtbWluZyByZWdpc3RlcnMs IGFuZA0KPiA+IGFub3RoZXIgdG8gZW5hYmxlIHRoZSBQSFkgaXRzZWxmLiAgQWRkaXRpb25hbGx5 IHRoZXJlIGFyZQ0KPiA+IHJlc2V0cyBmb3IgZWFjaCBQSFkgbGFuZS4NCj4gPg0KPiA+IFRoZSBQ SFkgY2FuIGJlIGNvbmZpZ3VyZWQgaW4gaGFyZHdhcmUgdG8gcmVhZCByZWdpc3Rlcg0KPiA+IHNl dHRpbmdzIGZyb20gUk9NLCBvciB0aGV5IGNhbiBiZSB3cml0dGVuIGJ5IHRoZSBkcml2ZXIuDQo+ ID4NCj4gPiBUaGUgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9uIG9uIHN0YXJ0dXAgaXMgdG8gZW5hYmxl IHRoZSBBUEINCj4gPiBidXMsIHdyaXRlIHRoZSBQSFkgcmVnaXN0ZXJzIChpZiByZXF1aXJlZCkg IGZvciBlYWNoIGxhbmUNCj4gPiBncm91cCwgYW5kIHRoZW4gZW5hYmxlIHRoZSBQSFkuICBFYWNo IGdyb3VwIG9mIGxhbmVzDQo+ID4gY2FuIHRoZW4gYmUgaW5kaXZpZHVhbGx5IGNvbnRyb2xsZWQg dXNpbmcgdGhlIHBvd2VyX29uKCkvDQo+ID4gcG93ZXJfb2ZmKCkgZnVuY3Rpb24gZm9yIHRoYXQg Z2VuZXJpYyBQSFkNCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEFsYW4gRG91Z2xhcyA8YWRvdWds YXNAY2FkZW5jZS5jb20+DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvcGh5L0tjb25maWcgICAgICAg ICAgICAgICB8ICAgMSArDQo+ID4gIGRyaXZlcnMvcGh5L01ha2VmaWxlICAgICAgICAgICAgICB8 ICAgMSArDQo+ID4gIGRyaXZlcnMvcGh5L2NhZGVuY2UvS2NvbmZpZyAgICAgICB8ICAgOSArDQo+ ID4gIGRyaXZlcnMvcGh5L2NhZGVuY2UvTWFrZWZpbGUgICAgICB8ICAgMiArDQo+ID4gIGRyaXZl cnMvcGh5L2NhZGVuY2UvY2Rucy1zaWVycmEuYyB8IDM4NSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKw0KPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDM5OCBpbnNlcnRpb25zKCsp DQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3BoeS9jYWRlbmNlL0tjb25maWcNCj4g PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcGh5L2NhZGVuY2UvTWFrZWZpbGUNCj4gPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcGh5L2NhZGVuY2UvY2Rucy1zaWVycmEuYw0KPiA+ DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGh5L0tjb25maWcgYi9kcml2ZXJzL3BoeS9LY29u ZmlnDQo+ID4gaW5kZXggNWM4ZDQ1Mi4uY2M0N2Y4NSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJz L3BoeS9LY29uZmlnDQo+ID4gKysrIGIvZHJpdmVycy9waHkvS2NvbmZpZw0KPiA+IEBAIC00Myw2 ICs0Myw3IEBAIGNvbmZpZyBQSFlfWEdFTkUNCj4gPiAgc291cmNlICJkcml2ZXJzL3BoeS9hbGx3 aW5uZXIvS2NvbmZpZyINCj4gPiAgc291cmNlICJkcml2ZXJzL3BoeS9hbWxvZ2ljL0tjb25maWci DQo+ID4gIHNvdXJjZSAiZHJpdmVycy9waHkvYnJvYWRjb20vS2NvbmZpZyINCj4gPiArc291cmNl ICJkcml2ZXJzL3BoeS9jYWRlbmNlL0tjb25maWciDQo+ID4gIHNvdXJjZSAiZHJpdmVycy9waHkv aGlzaWxpY29uL0tjb25maWciDQo+ID4gIHNvdXJjZSAiZHJpdmVycy9waHkvbGFudGlxL0tjb25m aWciDQo+ID4gIHNvdXJjZSAiZHJpdmVycy9waHkvbWFydmVsbC9LY29uZmlnIg0KPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL3BoeS9NYWtlZmlsZSBiL2RyaXZlcnMvcGh5L01ha2VmaWxlDQo+ID4g aW5kZXggODRlM2JkOS4uYmE0OGFjZCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL3BoeS9NYWtl ZmlsZQ0KPiA+ICsrKyBiL2RyaXZlcnMvcGh5L01ha2VmaWxlDQo+ID4gQEAgLTE1LDYgKzE1LDcg QEAgb2JqLSQoQ09ORklHX0FSQ0hfUkVORVNBUykJCSs9IHJlbmVzYXMvDQo+ID4gIG9iai0kKENP TkZJR19BUkNIX1JPQ0tDSElQKQkJKz0gcm9ja2NoaXAvDQo+ID4gIG9iai0kKENPTkZJR19BUkNI X1RFR1JBKQkJKz0gdGVncmEvDQo+ID4gIG9iai15CQkJCQkrPSBicm9hZGNvbS8JXA0KPiA+ICsJ CQkJCSAgIGNhZGVuY2UvCVwNCj4gPiAgCQkJCQkgICBoaXNpbGljb24vCVwNCj4gPiAgCQkJCQkg ICBtYXJ2ZWxsLwlcDQo+ID4gIAkJCQkJICAgbW90b3JvbGEvCVwNCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9waHkvY2FkZW5jZS9LY29uZmlnIGIvZHJpdmVycy9waHkvY2FkZW5jZS9LY29uZmln DQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwLi4wOThkZjBmDQo+ ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2RyaXZlcnMvcGh5L2NhZGVuY2UvS2NvbmZpZw0K PiA+IEBAIC0wLDAgKzEsOSBAQA0KPiA+ICsjDQo+ID4gKyMgUGh5IGRyaXZlcnMgZm9yIENhZGVu Y2UgUEhZcw0KPiA+ICsjDQo+ID4gK2NvbmZpZyBDRE5TX1NJRVJSQV9QSFkNCj4gPiArCXRyaXN0 YXRlICJDYWRlbmNlIFNpZXJyYSBQSFkgRHJpdmVyIg0KPiA+ICsJZGVwZW5kcyBvbiBPRiAmJiBI QVNfSU9NRU0gJiYgUkVTRVRfQ09OVFJPTExFUg0KPiA+ICsJc2VsZWN0IEdFTkVSSUNfUEhZDQo+ ID4gKwloZWxwDQo+ID4gKwkgIEVuYWJsZSB0aGlzIHRvIHN1cHBvcnQgdGhlIENhZGVuY2UgU2ll cnJhIFBIWSBkcml2ZXINCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvY2FkZW5jZS9NYWtl ZmlsZSBiL2RyaXZlcnMvcGh5L2NhZGVuY2UvTWFrZWZpbGUNCj4gPiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiA+IGluZGV4IDAwMDAwMDAuLmMzOTZjNjkNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4g KysrIGIvZHJpdmVycy9waHkvY2FkZW5jZS9NYWtlZmlsZQ0KPiA+IEBAIC0wLDAgKzEsMiBAQA0K PiA+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQo+ID4gK29iai0kKENPTkZJ R19DRE5TX1NJRVJSQV9QSFkpCQkrPSBjZG5zLXNpZXJyYS5vDQo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvcGh5L2NhZGVuY2UvY2Rucy1zaWVycmEuYyBiL2RyaXZlcnMvcGh5L2NhZGVuY2UvY2Ru cy1zaWVycmEuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMC4u ODM1NjhiNA0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9kcml2ZXJzL3BoeS9jYWRlbmNl L2NkbnMtc2llcnJhLmMNCj4gPiBAQCAtMCwwICsxLDM4NSBAQA0KPiA+ICsvLyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogR1BMLTIuMA0KPiA+ICsvKg0KPiA+ICsgKiBDYWRlbmNlIFNpZXJyYSBQ SFkgRHJpdmVyDQo+ID4gKyAqDQo+ID4gKyAqIENvcHlyaWdodCAoYykgMjAxOCBDYWRlbmNlIERl c2lnbiBTeXN0ZW1zDQo+ID4gKyAqIEF1dGhvcjogQWxhbiBEb3VnbGFzIDxhZG91Z2xhc0BjYWRl bmNlLmNvbT4NCj4gPiArICoNCj4gPiArICovDQo+ID4gKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4N Cj4gPiArI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9lcnIu aD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L2lvLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9tb2R1 bGUuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3BoeS9waHkuaD4NCj4gPiArI2luY2x1ZGUgPGxp bnV4L3BsYXRmb3JtX2RldmljZS5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5o Pg0KPiA+ICsjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9y ZXNldC5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPg0KPiA+ICsjaW5jbHVkZSA8bGlu dXgvb2YuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+DQo+ID4gKyNpbmNs dWRlIDxkdC1iaW5kaW5ncy9waHkvcGh5Lmg+DQo+ID4gKw0KPiA+ICsvKiBQSFkgcmVnaXN0ZXIg b2Zmc2V0cyAqLw0KPiA+ICsjZGVmaW5lIFNJRVJSQV9QSFlfUExMX0NGRwkJKDB4YzAwZSA8PCAy KQ0KPiA+ICsjZGVmaW5lIFNJRVJSQV9ERVRfU1RBTkRFQ19BCQkoMHg0MDAwIDw8IDIpDQo+ID4g KyNkZWZpbmUgU0lFUlJBX0RFVF9TVEFOREVDX0IJCSgweDQwMDEgPDwgMikNCj4gPiArI2RlZmlu ZSBTSUVSUkFfREVUX1NUQU5ERUNfQwkJKDB4NDAwMiA8PCAyKQ0KPiA+ICsjZGVmaW5lIFNJRVJS QV9ERVRfU1RBTkRFQ19ECQkoMHg0MDAzIDw8IDIpDQo+ID4gKyNkZWZpbmUgU0lFUlJBX0RFVF9T VEFOREVDX0UJCSgweDQwMDQgPDwgMikNCj4gPiArI2RlZmluZSBTSUVSUkFfUFNNX0xBTkVDQUwJ CSgweDQwMDggPDwgMikNCj4gPiArI2RlZmluZSBTSUVSUkFfUFNNX0RJQUcJCQkoMHg0MDE1IDw8 IDIpDQo+ID4gKyNkZWZpbmUgU0lFUlJBX1BTQ19UWF9BMAkJKDB4NDAyOCA8PCAyKQ0KPiA+ICsj ZGVmaW5lIFNJRVJSQV9QU0NfVFhfQTEJCSgweDQwMjkgPDwgMikNCj4gPiArI2RlZmluZSBTSUVS UkFfUFNDX1RYX0EyCQkoMHg0MDJBIDw8IDIpDQo+ID4gKyNkZWZpbmUgU0lFUlJBX1BTQ19UWF9B MwkJKDB4NDAyQiA8PCAyKQ0KPiA+ICsjZGVmaW5lIFNJRVJSQV9QU0NfUlhfQTAJCSgweDQwMzAg PDwgMikNCj4gPiArI2RlZmluZSBTSUVSUkFfUFNDX1JYX0ExCQkoMHg0MDMxIDw8IDIpDQo+ID4g KyNkZWZpbmUgU0lFUlJBX1BTQ19SWF9BMgkJKDB4NDAzMiA8PCAyKQ0KPiA+ICsjZGVmaW5lIFNJ RVJSQV9QU0NfUlhfQTMJCSgweDQwMzMgPDwgMikNCj4gPiArI2RlZmluZSBTSUVSUkFfUExMQ1RS TF9TVUJSQVRFCQkoMHg0MDNBIDw8IDIpDQo+ID4gKyNkZWZpbmUgU0lFUlJBX1BMTENUUkxfR0VO X0QJCSgweDQwM0UgPDwgMikNCj4gPiArI2RlZmluZSBTSUVSUkFfRFJWQ1RSTF9BVFRFTgkJKDB4 NDA2QSA8PCAyKQ0KPiA+ICsjZGVmaW5lIFNJRVJSQV9DTEtQQVRIQ1RSTF9UTVIJCSgweDQwODEg PDwgMikNCj4gPiArI2RlZmluZSBTSUVSUkFfUlhfQ1JFUV9GTFRSX0FfTU9ERTEJKDB4NDA4NyA8 PCAyKQ0KPiA+ICsjZGVmaW5lIFNJRVJSQV9SWF9DUkVRX0ZMVFJfQV9NT0RFMAkoMHg0MDg4IDw8 IDIpDQo+ID4gKyNkZWZpbmUgU0lFUlJBX0NSRVFfQ0NMS0RFVF9NT0RFMDEJKDB4NDA4RSA8PCAy KQ0KPiA+ICsjZGVmaW5lIFNJRVJSQV9SWF9DVExFX01BSU5URU5BTkNFCSgweDQwOTEgPDwgMikN Cj4gPiArI2RlZmluZSBTSUVSUkFfQ1JFUV9GU01DTEtfU0VMCQkoMHg0MDkyIDw8IDIpDQo+ID4g KyNkZWZpbmUgU0lFUlJBX0NUTEVMVVRfQ1RSTAkJKDB4NDA5OCA8PCAyKQ0KPiA+ICsjZGVmaW5l IFNJRVJSQV9ERkVfRUNNUF9SQVRFU0VMCQkoMHg0MEMwIDw8IDIpDQo+ID4gKyNkZWZpbmUgU0lF UlJBX0RGRV9TTVBfUkFURVNFTAkJKDB4NDBDMSA8PCAyKQ0KPiA+ICsjZGVmaW5lIFNJRVJSQV9E RVFfVkdBVFVORV9DVFJMCQkoMHg0MEUxIDw8IDIpDQo+ID4gKyNkZWZpbmUgU0lFUlJBX1RNUlZB TF9NT0RFMwkJKDB4NDE2RSA8PCAyKQ0KPiA+ICsjZGVmaW5lIFNJRVJSQV9UTVJWQUxfTU9ERTIJ CSgweDQxNkYgPDwgMikNCj4gPiArI2RlZmluZSBTSUVSUkFfVE1SVkFMX01PREUxCQkoMHg0MTcw IDw8IDIpDQo+ID4gKyNkZWZpbmUgU0lFUlJBX1RNUlZBTF9NT0RFMAkJKDB4NDE3MSA8PCAyKQ0K PiA+ICsjZGVmaW5lIFNJRVJSQV9QSUNOVF9NT0RFMQkJKDB4NDE3NCA8PCAyKQ0KPiA+ICsjZGVm aW5lIFNJRVJSQV9DUElfT1VUQlVGX1JBVEVTRUwJKDB4NDE3QyA8PCAyKQ0KPiA+ICsjZGVmaW5l IFNJRVJSQV9MRlBTRklMVF9OUwkJKDB4NDE4QSA8PCAyKQ0KPiA+ICsjZGVmaW5lIFNJRVJSQV9M RlBTRklMVF9SRAkJKDB4NDE4QiA8PCAyKQ0KPiA+ICsjZGVmaW5lIFNJRVJSQV9MRlBTRklMVF9N UAkJKDB4NDE4QyA8PCAyKQ0KPiA+ICsjZGVmaW5lIFNJRVJSQV9TREZJTFRfSDJMX0EJCSgweDQx OTEgPDwgMikNCj4gPiArDQo+ID4gKyNkZWZpbmUgU0lFUlJBX01BQ1JPX0lECQkJMHgwMDAwNzM2 NA0KPiA+ICsjZGVmaW5lIFNJRVJSQV9NQVhfTEFORVMJCTQNCj4gPiArDQo+ID4gK3N0cnVjdCBj ZG5zX3NpZXJyYV9pbnN0IHsNCj4gPiArCXN0cnVjdCBwaHkgKnBoeTsNCj4gPiArCXUzMiBwaHlf dHlwZTsNCj4gPiArCXUzMiBudW1fbGFuZXM7DQo+ID4gKwl1MzIgbWxhbmU7DQo+ID4gKwlzdHJ1 Y3QgcmVzZXRfY29udHJvbCAqbG5rX3JzdDsNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0cnVjdCBj ZG5zX3JlZ19wYWlycyB7DQo+ID4gKwl1MTYgdmFsOw0KPiA+ICsJdTMyIG9mZjsNCj4gPiArfTsN Cj4gPiArDQo+ID4gK3N0cnVjdCBjZG5zX3NpZXJyYV9kYXRhIHsNCj4gPiArCQl1MzIgaWRfdmFs dWU7DQo+ID4gKwkJdTMyIHBjaWVfcmVnczsNCj4gPiArCQl1MzIgdXNiX3JlZ3M7DQo+ID4gKwkJ c3RydWN0IGNkbnNfcmVnX3BhaXJzICpwY2llX3ZhbHM7DQo+ID4gKwkJc3RydWN0IGNkbnNfcmVn X3BhaXJzICAqdXNiX3ZhbHM7DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgY2Ruc19zaWVy cmFfcGh5IHsNCj4gPiArCXN0cnVjdCBkZXZpY2UgKmRldjsNCj4gPiArCXZvaWQgX19pb21lbSAq YmFzZTsNCj4gPiArCXN0cnVjdCBjZG5zX3NpZXJyYV9kYXRhICppbml0X2RhdGE7DQo+ID4gKwlz dHJ1Y3QgY2Ruc19zaWVycmFfaW5zdCBwaHlzW1NJRVJSQV9NQVhfTEFORVNdOw0KPiA+ICsJc3Ry dWN0IHJlc2V0X2NvbnRyb2wgKnBoeV9yc3Q7DQo+ID4gKwlzdHJ1Y3QgcmVzZXRfY29udHJvbCAq YXBiX3JzdDsNCj4gPiArCXN0cnVjdCBjbGsgKmNsazsNCj4gPiArCXN0cnVjdCBwaHkgKnBjaWVf cGh5Ow0KPiA+ICsJYm9vbCBhdXRvY29uZjsNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyB2 b2lkIGNkbnNfc2llcnJhX3BoeV9pbml0KHN0cnVjdCBwaHkgKmdwaHkpDQo+ID4gK3sNCj4gPiAr CXN0cnVjdCBjZG5zX3NpZXJyYV9pbnN0ICppbnMgPSBwaHlfZ2V0X2RydmRhdGEoZ3BoeSk7DQo+ ID4gKwlzdHJ1Y3QgY2Ruc19zaWVycmFfcGh5ICpwaHkgPSBkZXZfZ2V0X2RydmRhdGEoZ3BoeS0+ ZGV2LnBhcmVudCk7DQo+ID4gKwlpbnQgaSwgajsNCj4gPiArCXN0cnVjdCBjZG5zX3JlZ19wYWly cyAqdmFsczsNCj4gPiArCXUzMiBudW1fcmVnczsNCj4gPiArDQo+ID4gKwlpZiAoaW5zLT5waHlf dHlwZSA9PSBQSFlfVFlQRV9QQ0lFKSB7DQo+ID4gKwkJbnVtX3JlZ3MgPSBwaHktPmluaXRfZGF0 YS0+cGNpZV9yZWdzOw0KPiA+ICsJCXZhbHMgPSBwaHktPmluaXRfZGF0YS0+cGNpZV92YWxzOw0K PiA+ICsJfSBlbHNlIGlmIChpbnMtPnBoeV90eXBlID09IFBIWV9UWVBFX1VTQjMpIHsNCj4gPiAr CQludW1fcmVncyA9IHBoeS0+aW5pdF9kYXRhLT51c2JfcmVnczsNCj4gPiArCQl2YWxzID0gcGh5 LT5pbml0X2RhdGEtPnVzYl92YWxzOw0KPiA+ICsJfSBlbHNlIHsNCj4gPiArCQlyZXR1cm47DQo+ ID4gKwl9DQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgaW5zLT5udW1fbGFuZXM7IGkrKykNCj4gPiAr CQlmb3IgKGogPSAwOyBqIDwgbnVtX3JlZ3MgOyBqKyspDQo+ID4gKwkJCXdyaXRlbCh2YWxzW2pd LnZhbCwgcGh5LT5iYXNlICsNCj4gPiArCQkJCXZhbHNbal0ub2ZmICsgKGkgKyBpbnMtPm1sYW5l KSAqIDB4ODAwKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBjZG5zX3NpZXJyYV9w aHlfb24oc3RydWN0IHBoeSAqZ3BoeSkNCj4gPiArew0KPiA+ICsJc3RydWN0IGNkbnNfc2llcnJh X2luc3QgKmlucyA9IHBoeV9nZXRfZHJ2ZGF0YShncGh5KTsNCj4gPiArCWludCByZXQ7DQo+ID4g Kw0KPiA+ICsJLyogVGFrZSB0aGUgUEhZIG91dCBvZiByZXNldCAqLw0KPiA+ICsJcmV0ID0gcmVz ZXRfY29udHJvbF9kZWFzc2VydChpbnMtPmxua19yc3QpOw0KPiA+ICsNCj4gPiArCWlmIChyZXQp DQo+IA0KPiBUaGlzIGNoZWNrIGlzIHVubmNlc3NhcnkuDQpJJ2xsIHJlbW92ZSBpdCwgdGhhbmtz IGZvciBwb2ludGluZyBvdXQuDQoNCj4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ICsNCj4gPiArCXJl dHVybiByZXQ7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgY2Ruc19zaWVycmFfcGh5 X29mZihzdHJ1Y3QgcGh5ICpncGh5KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgY2Ruc19zaWVycmFf aW5zdCAqaW5zID0gcGh5X2dldF9kcnZkYXRhKGdwaHkpOw0KPiA+ICsNCj4gPiArCXJlc2V0X2Nv bnRyb2xfYXNzZXJ0KGlucy0+bG5rX3JzdCk7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4g K30NCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5X29wcyBvcHMgPSB7DQo+ID4g KwkucG93ZXJfb24JPSBjZG5zX3NpZXJyYV9waHlfb24sDQo+ID4gKwkucG93ZXJfb2ZmCT0gY2Ru c19zaWVycmFfcGh5X29mZiwNCj4gPiArCS5vd25lcgkJPSBUSElTX01PRFVMRSwNCj4gPiArfTsN Cj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgY2Ruc19zaWVycmFfZ2V0X29wdGlvbmFsKHN0cnVjdCBj ZG5zX3NpZXJyYV9pbnN0ICppbnN0LA0KPiA+ICsJCQkJICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAq Y2hpbGQpDQo+ID4gK3sNCj4gPiArCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihjaGlsZCwgInJl ZyIsICZpbnN0LT5tbGFuZSkpDQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKw0KPiA+ICsJ aWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKGNoaWxkLCAiY2RucyxudW0tbGFuZXMiLCAmaW5zdC0+ bnVtX2xhbmVzKSkNCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiArDQo+ID4gKwlpZiAob2Zf cHJvcGVydHlfcmVhZF91MzIoY2hpbGQsICJjZG5zLHBoeS10eXBlIiwgJmluc3QtPnBoeV90eXBl KSkNCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgY2Ruc19zaWVy cmFfaWRfdGFibGVbXTsNCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgY2Ruc19zaWVycmFfcGh5X3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBj ZG5zX3NpZXJyYV9waHkgKnNwOw0KPiA+ICsJc3RydWN0IHBoeV9wcm92aWRlciAqcGh5X3Byb3Zp ZGVyOw0KPiA+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsNCj4gPiArCWNvbnN0 IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm1hdGNoOw0KPiA+ICsJc3RydWN0IHJlc291cmNlICpyZXM7 DQo+ID4gKwlpbnQgcmV0LCBub2RlID0gMDsNCj4gPiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZG4g PSBkZXYtPm9mX25vZGUsICpjaGlsZDsNCj4gPiArDQo+ID4gKwlpZiAob2ZfZ2V0X2NoaWxkX2Nv dW50KGRuKSA9PSAwKQ0KPiA+ICsJCXJldHVybiAtRU5PREVWOw0KPiA+ICsNCj4gPiArCXNwID0g ZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpzcCksIEdGUF9LRVJORUwpOw0KPiA+ICsJaWYgKCFz cCkNCj4gPiArCQlyZXR1cm4gLUVOT01FTTsNCj4gPiArCWRldl9zZXRfZHJ2ZGF0YShkZXYsIHNw KTsNCj4gPiArCXNwLT5kZXYgPSBkZXY7DQo+ID4gKw0KPiA+ICsJcmVzID0gcGxhdGZvcm1fZ2V0 X3Jlc291cmNlX2J5bmFtZShwZGV2LCBJT1JFU09VUkNFX01FTSwgInJlZyIpOw0KPiA+ICsJc3At PmJhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCByZXMpOw0KPiA+ICsJaWYgKElTX0VS UihzcC0+YmFzZSkpIHsNCj4gPiArCQlkZXZfZXJyKGRldiwgIm1pc3NpbmcgXCJyZWdcIlxuIik7 DQo+ID4gKwkJcmV0dXJuIFBUUl9FUlIoc3AtPmJhc2UpOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiAr CS8qIEdldCBpbml0IGRhdGEgZm9yIHRoaXMgUEhZICovDQo+ID4gKwltYXRjaCA9IG9mX21hdGNo X2RldmljZShjZG5zX3NpZXJyYV9pZF90YWJsZSwgZGV2KTsNCj4gPiArCWlmICghbWF0Y2gpDQo+ ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKwlzcC0+aW5pdF9kYXRhID0gKHN0cnVjdCBjZG5z X3NpZXJyYV9kYXRhICopbWF0Y2gtPmRhdGE7DQo+ID4gKw0KPiA+ICsJcGxhdGZvcm1fc2V0X2Ry dmRhdGEocGRldiwgc3ApOw0KPiA+ICsNCj4gPiArCXNwLT5jbGsgPSBkZXZtX2Nsa19nZXQoZGV2 LCAicGh5X2NsayIpOw0KPiA+ICsJaWYgKElTX0VSUihzcC0+Y2xrKSkgew0KPiA+ICsJCWRldl9l cnIoZGV2LCAiZmFpbGVkIHRvIGdldCBjbG9jayBwaHlfY2xrXG4iKTsNCj4gPiArCQlyZXR1cm4g UFRSX0VSUihzcC0+Y2xrKTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlzcC0+cGh5X3JzdCA9IGRl dm1fcmVzZXRfY29udHJvbF9nZXQoZGV2LCAic2llcnJhX3Jlc2V0Iik7DQo+ID4gKwlpZiAoSVNf RVJSKHNwLT5waHlfcnN0KSkgew0KPiA+ICsJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBy ZXNldFxuIik7DQo+ID4gKwkJcmV0dXJuIFBUUl9FUlIoc3AtPnBoeV9yc3QpOw0KPiA+ICsJfQ0K PiA+ICsNCj4gPiArCXNwLT5hcGJfcnN0ID0gZGV2bV9yZXNldF9jb250cm9sX2dldChkZXYsICJz aWVycmFfYXBiIik7DQo+ID4gKwlpZiAoSVNfRVJSKHNwLT5hcGJfcnN0KSkgew0KPiA+ICsJCWRl dl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBhcGIgcmVzZXRcbiIpOw0KPiA+ICsJCXJldHVybiBQ VFJfRVJSKHNwLT5hcGJfcnN0KTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXQgPSBjbGtfcHJl cGFyZV9lbmFibGUoc3AtPmNsayk7DQo+ID4gKwlpZiAocmV0KQ0KPiA+ICsJCXJldHVybiByZXQ7 DQo+ID4gKw0KPiA+ICsJLyogRW5hYmxlIEFQQiAqLw0KPiA+ICsJcmVzZXRfY29udHJvbF9kZWFz c2VydChzcC0+YXBiX3JzdCk7DQo+ID4gKw0KPiA+ICsJLyogQ2hlY2sgdGhhdCBQSFkgaXMgcHJl c2VudCAqLw0KPiA+ICsJaWYgIChzcC0+aW5pdF9kYXRhLT5pZF92YWx1ZSAhPSByZWFkbChzcC0+ YmFzZSkpIHsNCj4gPiArCQlnb3RvIGNsa19kaXNhYmxlOw0KPiA+ICsJCXJldHVybiAtRUlOVkFM Ow0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXNwLT5hdXRvY29uZiA9IG9mX3Byb3BlcnR5X3JlYWRf Ym9vbChkbiwgImNkbnMsYXV0b2NvbmYiKTsNCj4gPiArDQo+ID4gKwlmb3JfZWFjaF9hdmFpbGFi bGVfY2hpbGRfb2Zfbm9kZShkbiwgY2hpbGQpIHsNCj4gPiArCQlzdHJ1Y3QgcGh5ICpncGh5Ow0K PiA+ICsNCj4gPiArCQlpZiAoSVNfRVJSKHNwLT5waHlzW25vZGVdLmxua19yc3QpKSB7DQo+ID4g KwkJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCByZXNldCAlc1xuIiwgY2hpbGQtPm5hbWUp Ow0KPiA+ICsJCQlyZXR1cm4gUFRSX0VSUihzcC0+cGh5c1tub2RlXS5sbmtfcnN0KTsNCj4gPiAr CQl9DQo+ID4gKwkJc3AtPnBoeXNbbm9kZV0ubG5rX3JzdCA9DQo+ID4gKwkJCQlkZXZtX3Jlc2V0 X2NvbnRyb2xfZ2V0KGRldiwgY2hpbGQtPm5hbWUpOw0KPiA+ICsNCj4gPiArCQlpZiAoIXNwLT5h dXRvY29uZikgew0KPiA+ICsJCQlyZXQgPSBjZG5zX3NpZXJyYV9nZXRfb3B0aW9uYWwoJnNwLT5w aHlzW25vZGVdLCBjaGlsZCk7DQo+ID4gKwkJCWlmIChyZXQpIHsNCj4gPiArCQkJCWRldl9lcnIo ZGV2LCAibWlzc2luZyBwcm9wZXJ0eSBpbiBub2RlICVzXG4iLA0KPiA+ICsJCQkJCWNoaWxkLT5u YW1lKTsNCj4gPiArCQkJCWdvdG8gcHV0X2NoaWxkOw0KPiA+ICsJCQl9DQo+ID4gKwkJfQ0KPiA+ ICsNCj4gPiArCQlncGh5ID0gZGV2bV9waHlfY3JlYXRlKGRldiwgY2hpbGQsICZvcHMpOw0KPiA+ ICsNCj4gPiArCQlpZiAoSVNfRVJSKGdwaHkpKSB7DQo+ID4gKwkJCXJldCA9IFBUUl9FUlIoZ3Bo eSk7DQo+ID4gKwkJCWdvdG8gcHV0X2NoaWxkOw0KPiA+ICsJCX0NCj4gPiArCQlzcC0+cGh5c1tu b2RlXS5waHkgPSBncGh5Ow0KPiA+ICsJCXBoeV9zZXRfZHJ2ZGF0YShncGh5LCAmc3AtPnBoeXNb bm9kZV0pOw0KPiA+ICsNCj4gPiArCQkvKiBJbml0aWFsaXNlIHRoZSBQSFkgcmVnaXN0ZXJzLCB1 bmxlc3MgYXV0byBjb25maWd1cmVkICovDQo+ID4gKwkJaWYgKCFzcC0+YXV0b2NvbmYpDQo+ID4g KwkJCWNkbnNfc2llcnJhX3BoeV9pbml0KGdwaHkpOw0KPiA+ICsNCj4gPiArCQlub2RlKys7DQo+ ID4gKwl9DQo+ID4gKw0KPiA+ICsJLyogSWYgbW9yZSB0aGFuIG9uZSBzdWJub2RlLCBjb25maWd1 cmUgdGhlIFBIWSBhcyBtdWx0aWxpbmsgKi8NCj4gPiArCWlmICghc3AtPmF1dG9jb25mICYmIG9m X2dldF9jaGlsZF9jb3VudChkbikgPiAxKQ0KPiA+ICsJCXdyaXRlbCgyLCBzcC0+YmFzZSArIFNJ RVJSQV9QSFlfUExMX0NGRyk7DQo+ID4gKw0KPiA+ICsJcG1fcnVudGltZV9lbmFibGUoZGV2KTsN Cj4gPiArCXBoeV9wcm92aWRlciA9IGRldm1fb2ZfcGh5X3Byb3ZpZGVyX3JlZ2lzdGVyKGRldiwg b2ZfcGh5X3NpbXBsZV94bGF0ZSk7DQo+ID4gKwlyZXNldF9jb250cm9sX2RlYXNzZXJ0KHNwLT5w aHlfcnN0KTsNCj4gPiArCXJldHVybiBQVFJfRVJSX09SX1pFUk8ocGh5X3Byb3ZpZGVyKTsNCj4g PiArcHV0X2NoaWxkOg0KPiA+ICsJb2Zfbm9kZV9wdXQoY2hpbGQpOw0KPiA+ICtjbGtfZGlzYWJs ZToNCj4gPiArCWNsa19kaXNhYmxlX3VucHJlcGFyZShzcC0+Y2xrKTsNCj4gPiArCXJlc2V0X2Nv bnRyb2xfYXNzZXJ0KHNwLT5hcGJfcnN0KTsNCj4gPiArCXJldHVybiByZXQ7DQo+ID4gK30NCj4g PiArDQo+ID4gK3N0YXRpYyBpbnQgY2Ruc19zaWVycmFfcGh5X3JlbW92ZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgY2Ruc19zaWVycmFfcGh5ICpw aHkgPSBkZXZfZ2V0X2RydmRhdGEocGRldi0+ZGV2LnBhcmVudCk7DQo+ID4gKw0KPiA+ICsJcmVz ZXRfY29udHJvbF9hc3NlcnQocGh5LT5waHlfcnN0KTsNCj4gPiArCXJlc2V0X2NvbnRyb2xfYXNz ZXJ0KHBoeS0+YXBiX3JzdCk7DQo+ID4gKwlwbV9ydW50aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7 DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBzdHJ1 Y3QgY2Ruc19yZWdfcGFpcnMgY2Ruc191c2JfcmVnc1tdID0gew0KPiA+ICsJLyoNCj4gPiArCSAq IFdyaXRlIFVTQiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgdG8gdGhlIFBIWS4NCj4gPiArCSAq IFRoZXNlIHZhbHVlcyBhcmUgc3BlY2lmaWMgdG8gdGhpcyBzcGVjaWZpYyBoYXJkd2FyZQ0KPiA+ ICsJICogY29uZmlndXJhdGlvbi4NCj4gDQo+IFlvdXIgaW50ZW50aW9uIGlzIHRvIGhhdmUgZGlm ZmVyZW50IGFycmF5cyBmb3IgZGlmZmVyZW50IGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zPw0KSWRl YWxseSB3ZSBkb24ndCBuZWVkIHRvIGFkZCBhbnksIGlmIGltcGxlbWVudG9ycyBhcmUgdXNpbmcg ZGlmZmVyZW50IHZhbHVlcyB0aGUNCnJlY29tbWVuZGF0aW9uIHdvdWxkIGJlIHRvIHVzZSBhdXRv Y29uZmlndXJhdGlvbiBhbmQgbG9hZCB0aGVtIGZyb20NCmhhcmR3YXJlLiAgSG93ZXZlciwgaWYg dGhpcyBpcyBub3QgcG9zc2libGUgdGhlbiB5ZXMsIEknZCBleHBlY3Qgd2UnZCBuZWVkIHRvIGFk ZA0KbmV3IGFycmF5cyBmb3IgZGlmZmVyZW50IGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zLCBhbmQg YWRkIGEgbmV3IGNvbXBhdGlibGUNCnN0cmluZy4NCg0KDQo+ID4gKwkgKi8NCj4gPiArCXsweEZF MEEsIFNJRVJSQV9ERVRfU1RBTkRFQ19BfSwNCj4gPiArCXsweDAwMEYsIFNJRVJSQV9ERVRfU1RB TkRFQ19CfSwNCj4gPiArCXsweDU1QTUsIFNJRVJSQV9ERVRfU1RBTkRFQ19DfSwNCj4gPiArCXsw eDY5QUQsIFNJRVJSQV9ERVRfU1RBTkRFQ19EfSwNCj4gPiArCXsweDAyNDEsIFNJRVJSQV9ERVRf U1RBTkRFQ19FfSwNCj4gPiArCXsweDAxMTAsIFNJRVJSQV9QU01fTEFORUNBTH0sDQo+ID4gKwl7 MHhDRjAwLCBTSUVSUkFfUFNNX0RJQUd9LA0KPiA+ICsJezB4MDAxRiwgU0lFUlJBX1BTQ19UWF9B MH0sDQo+ID4gKwl7MHgwMDA3LCBTSUVSUkFfUFNDX1RYX0ExfSwNCj4gPiArCXsweDAwMDMsIFNJ RVJSQV9QU0NfVFhfQTJ9LA0KPiA+ICsJezB4MDAwMywgU0lFUlJBX1BTQ19UWF9BM30sDQo+ID4g Kwl7MHgwRkZGLCBTSUVSUkFfUFNDX1JYX0EwfSwNCj4gPiArCXsweDAwMDMsIFNJRVJSQV9QU0Nf UlhfQTF9LA0KPiA+ICsJezB4MDAwMywgU0lFUlJBX1BTQ19SWF9BMn0sDQo+ID4gKwl7MHgwMDAx LCBTSUVSUkFfUFNDX1JYX0EzfSwNCj4gPiArCXsweDAwMDEsIFNJRVJSQV9QTExDVFJMX1NVQlJB VEV9LA0KPiA+ICsJezB4MDQwNiwgU0lFUlJBX1BMTENUUkxfR0VOX0R9LA0KPiA+ICsJezB4MDAw MCwgU0lFUlJBX0RSVkNUUkxfQVRURU59LA0KPiA+ICsJezB4ODIzRSwgU0lFUlJBX0NMS1BBVEhD VFJMX1RNUn0sDQo+ID4gKwl7MHgwNzhGLCBTSUVSUkFfUlhfQ1JFUV9GTFRSX0FfTU9ERTF9LA0K PiA+ICsJezB4MDc4RiwgU0lFUlJBX1JYX0NSRVFfRkxUUl9BX01PREUwfSwNCj4gPiArCXsweDdC M0MsIFNJRVJSQV9DUkVRX0NDTEtERVRfTU9ERTAxfSwNCj4gPiArCXsweDAyM0MsIFNJRVJSQV9S WF9DVExFX01BSU5URU5BTkNFfSwNCj4gPiArCXsweDMyMzIsIFNJRVJSQV9DUkVRX0ZTTUNMS19T RUx9LA0KPiA+ICsJezB4ODQ1MiwgU0lFUlJBX0NUTEVMVVRfQ1RSTH0sDQo+ID4gKwl7MHg0MTIx LCBTSUVSUkFfREZFX0VDTVBfUkFURVNFTH0sDQo+ID4gKwl7MHg0MTIxLCBTSUVSUkFfREZFX1NN UF9SQVRFU0VMfSwNCj4gPiArCXsweDk5OTksIFNJRVJSQV9ERVFfVkdBVFVORV9DVFJMfSwNCj4g PiArCXsweDAzMzAsIFNJRVJSQV9UTVJWQUxfTU9ERTB9LA0KPiA+ICsJezB4MDFGRiwgU0lFUlJB X1BJQ05UX01PREUxfSwNCj4gPiArCXsweDAwMDksIFNJRVJSQV9DUElfT1VUQlVGX1JBVEVTRUx9 LA0KPiA+ICsJezB4MDAwRiwgU0lFUlJBX0xGUFNGSUxUX05TfSwNCj4gPiArCXsweDAwMDksIFNJ RVJSQV9MRlBTRklMVF9SRH0sDQo+ID4gKwl7MHgwMDAxLCBTSUVSUkFfTEZQU0ZJTFRfTVB9LA0K PiA+ICsJezB4ODAxMywgU0lFUlJBX1NERklMVF9IMkxfQX0sDQo+ID4gKwl7MHgwNDAwLCBTSUVS UkFfVE1SVkFMX01PREUxfSwNCj4gDQo+IEFyZSBhbGwgb2YgdGhlbSAxNiBiaXQgdmFsdWUgZmll bGRzPyBPciBzb21lIG9mIHRoZW0gY29hbGVzY2VkIHRvIGZvcm0gMTYgYml0DQo+IHZhbHVlcz8N ClllcywgMTYgYml0IHZhbHVlIGZpZWxkcy4NCg0KPiANCj4gVGhhbmtzDQo+IEtpc2hvbg0K