From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.6 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, FROM_EXCESS_BASE64,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 541A0C282CE for ; Tue, 9 Apr 2019 16:32:33 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0D1062133D for ; Tue, 9 Apr 2019 16:32:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Sy9qWFF0"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MX0zC3oE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0D1062133D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=zMzDTC35JiI4q5GBKcS/chCky4VqwcTdSu93gP0orX4=; b=Sy9qWFF0BmHR7w aOSLVtLrwdGuBFkA0rjUjVOwS5f09sX+Pjg3jraGZwA0AOT4b6PcI2ep+kgzKat77VA0xwo2tW+Aj ntn+tRy8lU4ZpJQqAbrYBDiYfQPVjrKV4dy7xL/ugIN0xwDPSqllHqwwthsTNg0jtpMxKbpmItgA0 EtVvQfkCf9RedJqweC0R9hq0hzguEa9HaZnYf0z3A/Ln4vg1ey0pp9CZTuOgKJP0wpDhdgqdRTSP9 GsaHqxa9y/s205wzvK2/YnfhpBFr85kmI8Tx4Ph0xD3AVez3KU7LCptkQJwhdMVvsb4q4DkOcw7HZ mp1SaJrvKG5nes2Rt+jg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hDtfk-00066U-69; Tue, 09 Apr 2019 16:32:32 +0000 Received: from mail-yb1-xb42.google.com ([2607:f8b0:4864:20::b42]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hDtfg-00065i-NW for linux-arm-kernel@lists.infradead.org; Tue, 09 Apr 2019 16:32:30 +0000 Received: by mail-yb1-xb42.google.com with SMTP id e76so2541771ybc.3 for ; Tue, 09 Apr 2019 09:32:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=hWlhODeoz/eJ/bsLb744/9F2ZqPfuIlii0YjizPB7lg=; b=MX0zC3oE6KSWspzw6Rl+qvtKw8hLD9ETFWB+YbbNlXyEJ50dJkvkPyOAPFbANPX33N A6PpPmtJPBUXMrKQlZ3XvcnvDx0FxIWlJZ3yUW1MQQEXig1dXSANfnHwcIgl03BemtcD dbOkz2/STxWM1fNYhS8RFJsciQ+qF2hwz2cj41isCXU8nHKwpsbp+v3kETCSoSt+Qt5o h33UGyZegs6wZCv10uippWWeXCOzQXLOajkYPIvhjGRrvPYaKbTMoNxBbxSPyB2VxYK+ eC3CXHbcbUjxzA/u/4NXcaZ2xqkVs9pz2pCjTC0UYnVvAFawBgQHkQ4OdERTWfoG76WD 5DaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=hWlhODeoz/eJ/bsLb744/9F2ZqPfuIlii0YjizPB7lg=; b=WBmobBieDqgyk+q6mIbERsel1Jbtb4hsV48PujO7FYQkhn0mNb1084T11GflQew3zp TcIf3+Q8R55ck4lBlYHTNBz9zAI3NNBVbcHTt5uHPnIuTS1UsqH0vg8EBE/6bXFzd34P M9e0bRMv2NPC6gI5qThEma01Xv6HAri9edaXMvweeUXL9o9ndxGw+0mkRwanmz5jytrK M5wq7li87aagS8wZ+2NzPNu0n1lav7zeFhEizkT0karbeHf3jmfxjjUUFGj+J4lvWN8L M1L1uskul0/6hiJ6ZRcXqZz3ZO0IZHo/JQww7HTgDrBMZc/bvz3/898ZwD3GrMG7/viB 8+Rg== X-Gm-Message-State: APjAAAWDtt1DEM3MuJiclallN8sRqQS3pWy5ZxDK/nEg7IeRC4EcAen2 NKEpdjc6kzhBk7kO1fCgnZmw6ARKanWZvxm9ziY= X-Google-Smtp-Source: APXvYqzQYL1LjO7cbYe6GPO3ljaaPlb1QWoamKHvyLOP1XLhj6vqlhJgCxGUF86X77hRyDPRMILcNhaSzvw+GXkwW2Y= X-Received: by 2002:a25:ba87:: with SMTP id s7mr30503138ybg.49.1554827547042; Tue, 09 Apr 2019 09:32:27 -0700 (PDT) MIME-Version: 1.0 References: <20190405205736.55177-1-icenowy@aosc.io> <20190405205736.55177-4-icenowy@aosc.io> In-Reply-To: <20190405205736.55177-4-icenowy@aosc.io> From: =?UTF-8?B?Q2zDqW1lbnQgUMOpcm9u?= Date: Tue, 9 Apr 2019 18:34:20 +0200 Message-ID: Subject: Re: [linux-sunxi] [PATCH v5 3/5] phy: allwinner: add phy driver for USB3 PHY on Allwinner H6 SoC To: Icenowy Zheng X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190409_093228_773212_28CA1B0B X-CRM114-Status: GOOD ( 32.20 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree , Maxime Ripard , linux-sunxi@googlegroups.com, linux-kernel , Kishon Vijay Abraham I , Chen-Yu Tsai , Rob Herring , linux-arm-kernel Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGksCgpPbiBGcmksIDUgQXByIDIwMTkgYXQgMjI6NTgsIEljZW5vd3kgWmhlbmcgPGljZW5vd3lA YW9zYy5pbz4gd3JvdGU6Cj4KPiBBbGx3aW5uZXIgSDYgU29DIGNvbnRhaW5zIGEgVVNCMyBQSFkg KHdpdGggVVNCMiBEUC9ETSBsaW5lcyBhbHNvCj4gY29udHJvbGxlZCkuCj4KPiBBZGQgYSBkcml2 ZXIgZm9yIGl0LgoKVGVzdGVkIHRoZSBzZXJpZSBvbiB0b3Agb2Ygc3VueGkvZm9yLW5leHQgd2l0 aCBVU0IzIHN0b3JhZ2UgYW5kCkhJRC1nZW5lcmljIGtleWJvYXJkIG9uIG15IEJlZWxpbmsgR1Mx LgoKVGVzdGVkLWJ5OiBDbMOpbWVudCBQw6lyb24gPHBlcm9uLmNsZW1AZ21haWwuY29tPgoKIEp1 c3QgYSBzdWdnZXN0aW9uIGNvdWxkIHlvdSBhZGQgYSBwYXRjaCB0byBlbmFibGUgdGhpcyBQSFkg aW4gdGhlCmFybTY0L2RlZmNvbmZpZyBieSBkZWZhdWx0ID8KClRoYW5rcywKQ2zDqW1lbnQKCj4K PiBUaGUgcmVnaXN0ZXIgb3BlcmF0aW9ucyBpbiB0aGlzIGRyaXZlciBpcyBtYWlubHkgZXh0cmFj dGVkIGZyb20gdGhlIEJTUAo+IFVTQjMgZHJpdmVyLgo+Cj4gU2lnbmVkLW9mZi1ieTogSWNlbm93 eSBaaGVuZyA8aWNlbm93eUBhb3NjLmlvPgo+IFJldmlld2VkLWJ5OiBDaGVuLVl1IFRzYWkgPHdl bnNAY3NpZS5vcmc+Cj4gLS0tCj4gQ2hhbmdlcyBpbiB2NToKPiAtIERyb3BwZWQgc3VwcG9ydCBm b3IgdmJ1cy1zdXBwbHkgcHJvcGVydHkgaW4gdGhlIGRldmljZSBub2RlIGl0c2VsZiBhbmQKPiAg IGFkZGVkIHN1cHBvcnQgZm9yIHZidXMtc3VwcGx5IHByb3BlcnR5IGluIHRoZSBjb25uZWN0b3Ig c3Vibm9kZS4KPgo+IENoYW5nZXMgaW4gdjQ6Cj4gLSBBZGRlZCBzdXBwb3J0IGZvciB2YnVzLXN1 cHBseSBwcm9wZXJ0eS4KPgo+IENoYW5nZXMgaW4gdjM6Cj4gLSBEcm9wcGVkIFVTQl9TVVBQT1JU IGRlcGVuZGVuY3kuCj4gLSBBZGRlZCBDaGVuLVl1J3MgUmV2aWV3IHRhZy4KPgo+IE5vIGNoYW5n ZXMgaW4gdjIsIHYxLiBkcml2ZXJzL3BoeS9hbGx3aW5uZXIvS2NvbmZpZyAgICAgICAgICAgfCAg MTIgKysKPiAgZHJpdmVycy9waHkvYWxsd2lubmVyL01ha2VmaWxlICAgICAgICAgIHwgICAxICsK PiAgZHJpdmVycy9waHkvYWxsd2lubmVyL3BoeS1zdW41MGktdXNiMy5jIHwgMjYwICsrKysrKysr KysrKysrKysrKysrKysrKwo+ICAzIGZpbGVzIGNoYW5nZWQsIDI3MyBpbnNlcnRpb25zKCspCj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3BoeS9hbGx3aW5uZXIvcGh5LXN1bjUwaS11c2Iz LmMKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9hbGx3aW5uZXIvS2NvbmZpZyBiL2RyaXZl cnMvcGh5L2FsbHdpbm5lci9LY29uZmlnCj4gaW5kZXggZmIxMjA0YmNjNDU0Li4yYzM2M2RiMTc3 ZjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9waHkvYWxsd2lubmVyL0tjb25maWcKPiArKysgYi9k cml2ZXJzL3BoeS9hbGx3aW5uZXIvS2NvbmZpZwo+IEBAIC00MSwzICs0MSwxNSBAQCBjb25maWcg UEhZX1NVTjlJX1VTQgo+ICAgICAgICAgICBzdW45aSBTb0NzLgo+Cj4gICAgICAgICAgIFRoaXMg ZHJpdmVyIGNvbnRyb2xzIGVhY2ggaW5kaXZpZHVhbCBVU0IgMiBob3N0IFBIWS4KPiArCj4gK2Nv bmZpZyBQSFlfU1VONTBJX1VTQjMKPiArICAgICAgIHRyaXN0YXRlICJBbGx3aW5uZXIgc3VuNTBp IFNvQyBVU0IzIFBIWSBkcml2ZXIiCj4gKyAgICAgICBkZXBlbmRzIG9uIEFSQ0hfU1VOWEkgJiYg SEFTX0lPTUVNICYmIE9GCj4gKyAgICAgICBkZXBlbmRzIG9uIFJFU0VUX0NPTlRST0xMRVIKPiAr ICAgICAgIHNlbGVjdCBVU0JfQ09NTU9OCj4gKyAgICAgICBzZWxlY3QgR0VORVJJQ19QSFkKPiAr ICAgICAgIGhlbHAKPiArICAgICAgICAgRW5hYmxlIHRoaXMgdG8gc3VwcG9ydCB0aGUgVVNCMy4w LWNhcGFibGUgdHJhbnNjZWl2ZXIgdGhhdCBpcwo+ICsgICAgICAgICBwYXJ0IG9mIHNvbWUgQWxs d2lubmVyIHN1bjUwaSBTb0NzLgo+ICsKPiArICAgICAgICAgVGhpcyBkcml2ZXIgY29udHJvbHMg ZWFjaCBpbmRpdmlkdWFsIFVTQiAyKzMgaG9zdCBQSFkgY29tYm8uCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvcGh5L2FsbHdpbm5lci9NYWtlZmlsZSBiL2RyaXZlcnMvcGh5L2FsbHdpbm5lci9NYWtl ZmlsZQo+IGluZGV4IDdkMDA1M2VmYmZhYS4uNTk1NzVhODk1Nzc5IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvcGh5L2FsbHdpbm5lci9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvcGh5L2FsbHdpbm5l ci9NYWtlZmlsZQo+IEBAIC0xLDMgKzEsNCBAQAo+ICBvYmotJChDT05GSUdfUEhZX1NVTjRJX1VT QikgICAgICAgICAgICArPSBwaHktc3VuNGktdXNiLm8KPiAgb2JqLSQoQ09ORklHX1BIWV9TVU42 SV9NSVBJX0RQSFkpICAgICAgKz0gcGh5LXN1bjZpLW1pcGktZHBoeS5vCj4gIG9iai0kKENPTkZJ R19QSFlfU1VOOUlfVVNCKSAgICAgICAgICAgICs9IHBoeS1zdW45aS11c2Iubwo+ICtvYmotJChD T05GSUdfUEhZX1NVTjUwSV9VU0IzKSAgICAgICAgICArPSBwaHktc3VuNTBpLXVzYjMubwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9hbGx3aW5uZXIvcGh5LXN1bjUwaS11c2IzLmMgYi9kcml2 ZXJzL3BoeS9hbGx3aW5uZXIvcGh5LXN1bjUwaS11c2IzLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNTI5OWFlZjk4NjY4Cj4gLS0tIC9kZXYvbnVsbAo+ICsr KyBiL2RyaXZlcnMvcGh5L2FsbHdpbm5lci9waHktc3VuNTBpLXVzYjMuYwo+IEBAIC0wLDAgKzEs MjYwIEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKwo+ICsvKgo+ICsg KiBBbGx3aW5uZXIgc3VuNTBpKEg2KSBVU0IgMy4wIHBoeSBkcml2ZXIKPiArICoKPiArICogQ29w eXJpZ2h0IChDKSAyMDE3IEljZW5vd3kgWmhlbmcgPGljZW5vd3lAYW9zYy5pbz4KPiArICoKPiAr ICogQmFzZWQgb24gcGh5LXN1bjlpLXVzYi5jLCB3aGljaCBpczoKPiArICoKPiArICogQ29weXJp Z2h0IChDKSAyMDE0LTIwMTUgQ2hlbi1ZdSBUc2FpIDx3ZW5zQGNzaWUub3JnPgo+ICsgKgo+ICsg KiBCYXNlZCBvbiBjb2RlIGZyb20gQWxsd2lubmVyIEJTUCwgd2hpY2ggaXM6Cj4gKyAqCj4gKyAq IENvcHlyaWdodCAoYykgMjAxMC0yMDE1IEFsbHdpbm5lciBUZWNobm9sb2d5IENvLiwgTHRkLgo+ ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2Vy ci5oPgo+ICsjaW5jbHVkZSA8bGludXgvaW8uaD4KPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5o Pgo+ICsjaW5jbHVkZSA8bGludXgvcGh5L3BoeS5oPgo+ICsjaW5jbHVkZSA8bGludXgvb2ZfcGxh dGZvcm0uaD4KPiArI2luY2x1ZGUgPGxpbnV4L3VzYi9vZi5oPgo+ICsjaW5jbHVkZSA8bGludXgv cGxhdGZvcm1fZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIu aD4KPiArI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+Cj4gKwo+ICsvKiBJbnRlcmZhY2UgU3RhdHVz IGFuZCBDb250cm9sIFJlZ2lzdGVycyAqLwo+ICsjZGVmaW5lIFNVTlhJX0lTQ1IgICAgICAgICAg ICAgICAgICAgICAweDAwCj4gKyNkZWZpbmUgU1VOWElfUElQRV9DTE9DS19DT05UUk9MICAgICAg IDB4MTQKPiArI2RlZmluZSBTVU5YSV9QSFlfVFVORV9MT1cgICAgICAgICAgICAgMHgxOAo+ICsj ZGVmaW5lIFNVTlhJX1BIWV9UVU5FX0hJR0ggICAgICAgICAgICAweDFjCj4gKyNkZWZpbmUgU1VO WElfUEhZX0VYVEVSTkFMX0NPTlRST0wgICAgIDB4MjAKPiArCj4gKy8qIFVTQjIuMCBJbnRlcmZh Y2UgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyICovCj4gKyNkZWZpbmUgU1VOWElfSVNDUl9G T1JDRV9WQlVTICAgICAgICAgICgzIDw8IDEyKQo+ICsKPiArLyogUElQRSBDbG9jayBDb250cm9s IFJlZ2lzdGVyICovCj4gKyNkZWZpbmUgU1VOWElfUENDX1BJUEVfQ0xLX09QRU4gICAgICAgICAg ICAgICAgKDEgPDwgNikKPiArCj4gKy8qIFBIWSBFeHRlcm5hbCBDb250cm9sIFJlZ2lzdGVyICov Cj4gKyNkZWZpbmUgU1VOWElfUEVDX0VYVEVSTl9WQlVTICAgICAgICAgICgzIDw8IDEpCj4gKyNk ZWZpbmUgU1VOWElfUEVDX1NTQ19FTiAgICAgICAgICAgICAgICgxIDw8IDI0KQo+ICsjZGVmaW5l IFNVTlhJX1BFQ19SRUZfU1NQX0VOICAgICAgICAgICAoMSA8PCAyNikKPiArCj4gKy8qIFBIWSBU dW5lIEhpZ2ggUmVnaXN0ZXIgKi8KPiArI2RlZmluZSBTVU5YSV9UWF9ERUVNUEhfM1A1REIobikg ICAgICAgKChuKSA8PCAxOSkKPiArI2RlZmluZSBTVU5YSV9UWF9ERUVNUEhfM1A1REJfTUFTSyAg ICAgR0VOTUFTSygyNCwgMTkpCj4gKyNkZWZpbmUgU1VOWElfVFhfREVFTVBIXzZEQihuKSAgICAg ICAgICgobikgPDwgMTMpCj4gKyNkZWZpbmUgU1VOWElfVFhfREVFTVBIXzZHQl9NQVNLICAgICAg IEdFTk1BU0soMTgsIDEzKQo+ICsjZGVmaW5lIFNVTlhJX1RYX1NXSU5HX0ZVTEwobikgICAgICAg ICAoKG4pIDw8IDYpCj4gKyNkZWZpbmUgU1VOWElfVFhfU1dJTkdfRlVMTF9NQVNLICAgICAgIEdF Tk1BU0soMTIsIDYpCj4gKyNkZWZpbmUgU1VOWElfTE9TX0JJQVMobikgICAgICAgICAgICAgICgo bikgPDwgMykKPiArI2RlZmluZSBTVU5YSV9MT1NfQklBU19NQVNLICAgICAgICAgICAgR0VOTUFT Syg1LCAzKQo+ICsjZGVmaW5lIFNVTlhJX1RYVkJPT1NUTFZMKG4pICAgICAgICAgICAoKG4pIDw8 IDApCj4gKyNkZWZpbmUgU1VOWElfVFhWQk9PU1RMVkxfTUFTSyAgICAgICAgIEdFTk1BU0soMCwg MikKPiArCj4gK3N0cnVjdCBzdW41MGlfdXNiM19waHkgewo+ICsgICAgICAgc3RydWN0IHBoeSAq cGh5Owo+ICsgICAgICAgdm9pZCBfX2lvbWVtICpyZWdzOwo+ICsgICAgICAgc3RydWN0IHJlc2V0 X2NvbnRyb2wgKnJlc2V0Owo+ICsgICAgICAgc3RydWN0IGNsayAqY2xrOwo+ICsgICAgICAgc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqY29ubmVjdG9yX2RldjsKPiArICAgICAgIHN0cnVjdCByZWd1 bGF0b3IgKnZidXM7Cj4gK307Cj4gKwo+ICtzdGF0aWMgdm9pZCBzdW41MGlfdXNiM19waHlfb3Bl bihzdHJ1Y3Qgc3VuNTBpX3VzYjNfcGh5ICpwaHkpCj4gK3sKPiArICAgICAgIHUzMiB2YWw7Cj4g Kwo+ICsgICAgICAgdmFsID0gcmVhZGwocGh5LT5yZWdzICsgU1VOWElfUEhZX0VYVEVSTkFMX0NP TlRST0wpOwo+ICsgICAgICAgdmFsIHw9IFNVTlhJX1BFQ19FWFRFUk5fVkJVUzsKPiArICAgICAg IHZhbCB8PSBTVU5YSV9QRUNfU1NDX0VOIHwgU1VOWElfUEVDX1JFRl9TU1BfRU47Cj4gKyAgICAg ICB3cml0ZWwodmFsLCBwaHktPnJlZ3MgKyBTVU5YSV9QSFlfRVhURVJOQUxfQ09OVFJPTCk7Cj4g Kwo+ICsgICAgICAgdmFsID0gcmVhZGwocGh5LT5yZWdzICsgU1VOWElfUElQRV9DTE9DS19DT05U Uk9MKTsKPiArICAgICAgIHZhbCB8PSBTVU5YSV9QQ0NfUElQRV9DTEtfT1BFTjsKPiArICAgICAg IHdyaXRlbCh2YWwsIHBoeS0+cmVncyArIFNVTlhJX1BJUEVfQ0xPQ0tfQ09OVFJPTCk7Cj4gKwo+ ICsgICAgICAgdmFsID0gcmVhZGwocGh5LT5yZWdzICsgU1VOWElfSVNDUik7Cj4gKyAgICAgICB2 YWwgfD0gU1VOWElfSVNDUl9GT1JDRV9WQlVTOwo+ICsgICAgICAgd3JpdGVsKHZhbCwgcGh5LT5y ZWdzICsgU1VOWElfSVNDUik7Cj4gKwo+ICsgICAgICAgLyoKPiArICAgICAgICAqIEFsbCB0aGUg bWFnaWMgbnVtYmVycyB3cml0dGVuIHRvIHRoZSBQSFlfVFVORV97TE9XX0hJR0h9Cj4gKyAgICAg ICAgKiByZWdpc3RlcnMgYXJlIGRpcmVjdGx5IHRha2VuIGZyb20gdGhlIEJTUCBVU0IzIGRyaXZl ciBmcm9tCj4gKyAgICAgICAgKiBBbGx3aW5lci4KPiArICAgICAgICAqLwo+ICsgICAgICAgd3Jp dGVsKDB4MDA0N2ZjODcsIHBoeS0+cmVncyArIFNVTlhJX1BIWV9UVU5FX0xPVyk7Cj4gKwo+ICsg ICAgICAgdmFsID0gcmVhZGwocGh5LT5yZWdzICsgU1VOWElfUEhZX1RVTkVfSElHSCk7Cj4gKyAg ICAgICB2YWwgJj0gfihTVU5YSV9UWFZCT09TVExWTF9NQVNLIHwgU1VOWElfTE9TX0JJQVNfTUFT SyB8Cj4gKyAgICAgICAgICAgICAgICBTVU5YSV9UWF9TV0lOR19GVUxMX01BU0sgfCBTVU5YSV9U WF9ERUVNUEhfNkdCX01BU0sgfAo+ICsgICAgICAgICAgICAgICAgU1VOWElfVFhfREVFTVBIXzNQ NURCX01BU0spOwo+ICsgICAgICAgdmFsIHw9IFNVTlhJX1RYVkJPT1NUTFZMKDB4Nyk7Cj4gKyAg ICAgICB2YWwgfD0gU1VOWElfTE9TX0JJQVMoMHg3KTsKPiArICAgICAgIHZhbCB8PSBTVU5YSV9U WF9TV0lOR19GVUxMKDB4NTUpOwo+ICsgICAgICAgdmFsIHw9IFNVTlhJX1RYX0RFRU1QSF82REIo MHgyMCk7Cj4gKyAgICAgICB2YWwgfD0gU1VOWElfVFhfREVFTVBIXzNQNURCKDB4MTUpOwo+ICsg ICAgICAgd3JpdGVsKHZhbCwgcGh5LT5yZWdzICsgU1VOWElfUEhZX1RVTkVfSElHSCk7Cj4gK30K PiArCj4gK3N0YXRpYyBpbnQgc3VuNTBpX3VzYjNfcGh5X2luaXQoc3RydWN0IHBoeSAqX3BoeSkK PiArewo+ICsgICAgICAgc3RydWN0IHN1bjUwaV91c2IzX3BoeSAqcGh5ID0gcGh5X2dldF9kcnZk YXRhKF9waHkpOwo+ICsgICAgICAgaW50IHJldDsKPiArCj4gKyAgICAgICByZXQgPSBjbGtfcHJl cGFyZV9lbmFibGUocGh5LT5jbGspOwo+ICsgICAgICAgaWYgKHJldCkKPiArICAgICAgICAgICAg ICAgZ290byBlcnJfY2xrOwo+ICsKPiArICAgICAgIHJldCA9IHJlc2V0X2NvbnRyb2xfZGVhc3Nl cnQocGh5LT5yZXNldCk7Cj4gKyAgICAgICBpZiAocmV0KQo+ICsgICAgICAgICAgICAgICBnb3Rv IGVycl9yZXNldDsKPiArCj4gKyAgICAgICBzdW41MGlfdXNiM19waHlfb3BlbihwaHkpOwo+ICsg ICAgICAgcmV0dXJuIDA7Cj4gKwo+ICtlcnJfcmVzZXQ6Cj4gKyAgICAgICBjbGtfZGlzYWJsZV91 bnByZXBhcmUocGh5LT5jbGspOwo+ICsKPiArZXJyX2NsazoKPiArICAgICAgIHJldHVybiByZXQ7 Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgc3VuNTBpX3VzYjNfcGh5X2V4aXQoc3RydWN0IHBoeSAq X3BoeSkKPiArewo+ICsgICAgICAgc3RydWN0IHN1bjUwaV91c2IzX3BoeSAqcGh5ID0gcGh5X2dl dF9kcnZkYXRhKF9waHkpOwo+ICsKPiArICAgICAgIHJlc2V0X2NvbnRyb2xfYXNzZXJ0KHBoeS0+ cmVzZXQpOwo+ICsgICAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBoeS0+Y2xrKTsKPiArCj4g KyAgICAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBzdW41MGlfdXNiM19waHlf cG93ZXJfb24oc3RydWN0IHBoeSAqX3BoeSkKPiArewo+ICsgICAgICAgc3RydWN0IHN1bjUwaV91 c2IzX3BoeSAqcGh5ID0gcGh5X2dldF9kcnZkYXRhKF9waHkpOwo+ICsKPiArICAgICAgIGlmIChw aHktPnZidXMpCj4gKyAgICAgICAgICAgICAgIHJldHVybiByZWd1bGF0b3JfZW5hYmxlKHBoeS0+ dmJ1cyk7Cj4gKyAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgIHJldHVybiAwOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgaW50IHN1bjUwaV91c2IzX3BoeV9wb3dlcl9vZmYoc3RydWN0IHBoeSAqX3Bo eSkKPiArewo+ICsgICAgICAgc3RydWN0IHN1bjUwaV91c2IzX3BoeSAqcGh5ID0gcGh5X2dldF9k cnZkYXRhKF9waHkpOwo+ICsKPiArICAgICAgIGlmIChwaHktPnZidXMpCj4gKyAgICAgICAgICAg ICAgIHJldHVybiByZWd1bGF0b3JfZGlzYWJsZShwaHktPnZidXMpOwo+ICsgICAgICAgZWxzZQo+ ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVj dCBwaHlfb3BzIHN1bjUwaV91c2IzX3BoeV9vcHMgPSB7Cj4gKyAgICAgICAuaW5pdCAgICAgICAg ICAgPSBzdW41MGlfdXNiM19waHlfaW5pdCwKPiArICAgICAgIC5leGl0ICAgICAgICAgICA9IHN1 bjUwaV91c2IzX3BoeV9leGl0LAo+ICsgICAgICAgLnBvd2VyX29uICAgICAgID0gc3VuNTBpX3Vz YjNfcGh5X3Bvd2VyX29uLAo+ICsgICAgICAgLnBvd2VyX29mZiAgICAgID0gc3VuNTBpX3VzYjNf cGh5X3Bvd2VyX29mZiwKPiArICAgICAgIC5vd25lciAgICAgICAgICA9IFRISVNfTU9EVUxFLAo+ ICt9Owo+ICsKPiArc3RhdGljIGludCBzdW41MGlfdXNiM19waHlfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiArewo+ICsgICAgICAgc3RydWN0IHN1bjUwaV91c2IzX3BoeSAq cGh5Owo+ICsgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiArICAgICAg IHN0cnVjdCBwaHlfcHJvdmlkZXIgKnBoeV9wcm92aWRlcjsKPiArICAgICAgIHN0cnVjdCByZXNv dXJjZSAqcmVzOwo+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICpjb25uZWN0b3Jfbm9kZTsK PiArICAgICAgIGludCByZXQ7Cj4gKwo+ICsgICAgICAgcGh5ID0gZGV2bV9remFsbG9jKGRldiwg c2l6ZW9mKCpwaHkpLCBHRlBfS0VSTkVMKTsKPiArICAgICAgIGlmICghcGh5KQo+ICsgICAgICAg ICAgICAgICByZXR1cm4gLUVOT01FTTsKPiArCj4gKyAgICAgICBkZXZfc2V0X2RydmRhdGEoZGV2 LCBwaHkpOwo+ICsKPiArICAgICAgIHBoeS0+Y2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgTlVMTCk7 Cj4gKyAgICAgICBpZiAoSVNfRVJSKHBoeS0+Y2xrKSkgewo+ICsgICAgICAgICAgICAgICBkZXZf ZXJyKGRldiwgImZhaWxlZCB0byBnZXQgcGh5IGNsb2NrXG4iKTsKPiArICAgICAgICAgICAgICAg cmV0dXJuIFBUUl9FUlIocGh5LT5jbGspOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHBoeS0+ cmVzZXQgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0KGRldiwgTlVMTCk7Cj4gKyAgICAgICBpZiAo SVNfRVJSKHBoeS0+cmVzZXQpKSB7Cj4gKyAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiZmFp bGVkIHRvIGdldCByZXNldCBjb250cm9sXG4iKTsKPiArICAgICAgICAgICAgICAgcmV0dXJuIFBU Ul9FUlIocGh5LT5yZXNldCk7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgcmVzID0gcGxhdGZv cm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKPiArICAgICAgIHBoeS0+ cmVncyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7Cj4gKyAgICAgICBpZiAoSVNf RVJSKHBoeS0+cmVncykpCj4gKyAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKHBoeS0+cmVn cyk7Cj4gKwo+ICsgICAgICAgLyogUG9wdWxhdGUgdGhlIGNvbm5lY3RvciBhcyBwbGF0Zm9ybSBk ZXZpY2UgKi8KPiArICAgICAgIHJldCA9IG9mX3BsYXRmb3JtX3BvcHVsYXRlKHBkZXYtPmRldi5v Zl9ub2RlLCBOVUxMLCBOVUxMLCAmcGRldi0+ZGV2KTsKPiArICAgICAgIGlmIChyZXQpCj4gKyAg ICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gKwo+ICsgICAgICAgLyoKPiArICAgICAgICAqIEN1 cnJlbnRseSB0aGUgQWxsd2lubmVyIFVTQjMgUEhZIGNvbnRhaW5zIG9ubHkgb25lIHBvcnQsIHNv IHdlCj4gKyAgICAgICAgKiBvbmx5IHByb2Nlc3Mgb25lIGNvbm5lY3RvciBub3cuCj4gKyAgICAg ICAgKi8KPiArICAgICAgIGNvbm5lY3Rvcl9ub2RlID0gb2ZfZ2V0X25leHRfY2hpbGQocGRldi0+ ZGV2Lm9mX25vZGUsIE5VTEwpOwo+ICsKPiArICAgICAgIGlmIChjb25uZWN0b3Jfbm9kZSkgewo+ ICsgICAgICAgICAgICAgICAvKiBHZXQgdGhlIHBsYXRmb3JtIGRldmljZSAqLwo+ICsgICAgICAg ICAgICAgICBwaHktPmNvbm5lY3Rvcl9kZXYgPSBvZl9maW5kX2RldmljZV9ieV9ub2RlKGNvbm5l Y3Rvcl9ub2RlKTsKPiArICAgICAgICAgICAgICAgaWYgKCFwaHktPmNvbm5lY3Rvcl9kZXYpIHsK PiArICAgICAgICAgICAgICAgICAgICAgICBkZXZfZXJyKGRldiwgIm5vIGRldmljZSBmb3IgY29u bmVjdG9yXG4iKTsKPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsKPiAr ICAgICAgICAgICAgICAgfQo+ICsKPiArICAgICAgICAgICAgICAgcGh5LT52YnVzID0gcmVndWxh dG9yX2dldCgmcGh5LT5jb25uZWN0b3JfZGV2LT5kZXYsICJ2YnVzIik7Cj4gKyAgICAgICAgICAg ICAgIGlmIChJU19FUlIocGh5LT52YnVzKSkKPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gUFRSX0VSUihwaHktPnZidXMpOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHBoeS0+cGh5 ID0gZGV2bV9waHlfY3JlYXRlKGRldiwgTlVMTCwgJnN1bjUwaV91c2IzX3BoeV9vcHMpOwo+ICsg ICAgICAgaWYgKElTX0VSUihwaHktPnBoeSkpIHsKPiArICAgICAgICAgICAgICAgZGV2X2Vycihk ZXYsICJmYWlsZWQgdG8gY3JlYXRlIFBIWVxuIik7Cj4gKyAgICAgICAgICAgICAgIHJldHVybiBQ VFJfRVJSKHBoeS0+cGh5KTsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICBwaHlfc2V0X2RydmRh dGEocGh5LT5waHksIHBoeSk7Cj4gKyAgICAgICBwaHlfcHJvdmlkZXIgPSBkZXZtX29mX3BoeV9w cm92aWRlcl9yZWdpc3RlcihkZXYsIG9mX3BoeV9zaW1wbGVfeGxhdGUpOwo+ICsKPiArICAgICAg IHJldHVybiBQVFJfRVJSX09SX1pFUk8ocGh5X3Byb3ZpZGVyKTsKPiArfQo+ICsKPiArc3RhdGlj IGludCBzdW41MGlfdXNiM19waHlfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp Cj4gK3sKPiArICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gKyAgICAg ICBzdHJ1Y3Qgc3VuNTBpX3VzYjNfcGh5ICpwaHkgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiAr Cj4gKyAgICAgICBpZiAocGh5LT52YnVzKQo+ICsgICAgICAgICAgICAgICByZWd1bGF0b3JfcHV0 KHBoeS0+dmJ1cyk7Cj4gKwo+ICsgICAgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN1bjUwaV91c2IzX3BoeV9vZl9tYXRjaFtdID0gewo+ ICsgICAgICAgeyAuY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuNTBpLWg2LXVzYjMtcGh5IiB9 LAo+ICsgICAgICAgeyB9LAo+ICt9Owo+ICtNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdW41MGlf dXNiM19waHlfb2ZfbWF0Y2gpOwo+ICsKPiArc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIg c3VuNTBpX3VzYjNfcGh5X2RyaXZlciA9IHsKPiArICAgICAgIC5wcm9iZSAgPSBzdW41MGlfdXNi M19waHlfcHJvYmUsCj4gKyAgICAgICAucmVtb3ZlID0gc3VuNTBpX3VzYjNfcGh5X3JlbW92ZSwK PiArICAgICAgIC5kcml2ZXIgPSB7Cj4gKyAgICAgICAgICAgICAgIC5vZl9tYXRjaF90YWJsZSA9 IHN1bjUwaV91c2IzX3BoeV9vZl9tYXRjaCwKPiArICAgICAgICAgICAgICAgLm5hbWUgID0gInN1 bjUwaS11c2IzLXBoeSIsCj4gKyAgICAgICB9Cj4gK307Cj4gK21vZHVsZV9wbGF0Zm9ybV9kcml2 ZXIoc3VuNTBpX3VzYjNfcGh5X2RyaXZlcik7Cj4gKwo+ICtNT0RVTEVfREVTQ1JJUFRJT04oIkFs bHdpbm5lciBzdW41MGkgVVNCIDMuMCBwaHkgZHJpdmVyIik7Cj4gK01PRFVMRV9BVVRIT1IoIklj ZW5vd3kgWmhlbmcgPGljZW5vd3lAYW9zYy5pbz4iKTsKPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCIp Owo+IC0tCj4gMi4xOC4xCj4KPiAtLQo+IFlvdSByZWNlaXZlZCB0aGlzIG1lc3NhZ2UgYmVjYXVz ZSB5b3UgYXJlIHN1YnNjcmliZWQgdG8gdGhlIEdvb2dsZSBHcm91cHMgImxpbnV4LXN1bnhpIiBn cm91cC4KPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgZ3JvdXAgYW5kIHN0b3AgcmVjZWl2aW5n IGVtYWlscyBmcm9tIGl0LCBzZW5kIGFuIGVtYWlsIHRvIGxpbnV4LXN1bnhpK3Vuc3Vic2NyaWJl QGdvb2dsZWdyb3Vwcy5jb20uCj4gRm9yIG1vcmUgb3B0aW9ucywgdmlzaXQgaHR0cHM6Ly9ncm91 cHMuZ29vZ2xlLmNvbS9kL29wdG91dC4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK