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=-7.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS 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 1F3F2C10F06 for ; Sat, 6 Apr 2019 17:25:17 +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 CACFF213A2 for ; Sat, 6 Apr 2019 17:25:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Hp5Hs6GP" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CACFF213A2 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=aosc.io 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:Message-ID:From:To:Subject:MIME-Version :References:In-Reply-To:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=OpwsyEwVs3GUvuLGcfePV/Mp0EUF/aoWVGSQGZGS+8g=; b=Hp5Hs6GPVFP3t5 GYa45CB4F+J6qpiOKW30GnGXA6lYwaBIFgtjmdym1YyqAU+jhNDupod+WZSyZw4x0pkWS8et5iRki C4FpymcFyzWbau0/E+kKqHWlL9BIFFneXpcIQ7a/8etqFzz1lWbIQXjksfLBbH7lgpQtZR7Ob+YMQ rohUqGCIavWlJWmXH33Z75VKHtEOezdcBe8e+D60Mk6fO8LR3JNxTC09IRiDmVAf1xZ84KssodNVa y+tf7JzuyTXx0mhSXBYpgo41B5FYZVvT9expId6t963O4uf4AUgPmyEJnytrUczYfKfpi5qhHRv+v GD12LdeyKNPnGoZF0xbw==; 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 1hCp43-0003oK-I1; Sat, 06 Apr 2019 17:25:11 +0000 Received: from haggis.mythic-beasts.com ([2a00:1098:0:86:1000:0:2:1]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hCp3z-0003V0-N4 for linux-arm-kernel@lists.infradead.org; Sat, 06 Apr 2019 17:25:09 +0000 Received: from [199.195.250.187] (port=38306 helo=hermes.aosc.io) by haggis.mythic-beasts.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1hCp3u-0007BU-1k; Sat, 06 Apr 2019 18:25:03 +0100 Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: icenowy@aosc.io) by hermes.aosc.io (Postfix) with ESMTPSA id 4763223A58C; Sat, 6 Apr 2019 17:24:53 +0000 (UTC) Date: Sun, 07 Apr 2019 01:24:46 +0800 In-Reply-To: <20190406172113.p4hyperrtzv6ultq@core.my.home> References: <20190405205736.55177-1-icenowy@aosc.io> <20190405205736.55177-4-icenowy@aosc.io> <20190406172113.p4hyperrtzv6ultq@core.my.home> MIME-Version: 1.0 Subject: Re: [linux-sunxi] [PATCH v5 3/5] phy: allwinner: add phy driver for USB3 PHY on Allwinner H6 SoC To: =?UTF-8?Q?Ond=C5=99ej_Jirman?= From: Icenowy Zheng Message-ID: <2C6FE353-61BC-4193-915D-8D731077004A@aosc.io> X-BlackCat-Spam-Score: 0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190406_102507_905548_53286132 X-CRM114-Status: GOOD ( 25.04 ) 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@vger.kernel.org, Maxime Ripard , linux-sunxi@googlegroups.com, linux-kernel@vger.kernel.org, Kishon Vijay Abraham I , Chen-Yu Tsai , Rob Herring , linux-arm-kernel@lists.infradead.org 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 Cgrkuo4gMjAxOeW5tDTmnIg35pelIEdNVCswODowMCDkuIrljYgxOjIxOjEzLCAiT25kxZllaiBK aXJtYW4iIDxtZWdvdXNAbWVnb3VzLmNvbT4g5YaZ5YiwOgo+SGVsbG8gSWNlbm93eSwKPgo+T24g U2F0LCBBcHIgMDYsIDIwMTkgYXQgMDQ6NTc6MzRBTSArMDgwMCwgSWNlbm93eSBaaGVuZyB3cm90 ZToKPj4gQWxsd2lubmVyIEg2IFNvQyBjb250YWlucyBhIFVTQjMgUEhZICh3aXRoIFVTQjIgRFAv RE0gbGluZXMgYWxzbwo+PiBjb250cm9sbGVkKS4KPj4gCj4+IEFkZCBhIGRyaXZlciBmb3IgaXQu Cj4+IAo+PiBUaGUgcmVnaXN0ZXIgb3BlcmF0aW9ucyBpbiB0aGlzIGRyaXZlciBpcyBtYWlubHkg ZXh0cmFjdGVkIGZyb20gdGhlCj5CU1AKPj4gVVNCMyBkcml2ZXIuCj4+IAo+PiBTaWduZWQtb2Zm LWJ5OiBJY2Vub3d5IFpoZW5nIDxpY2Vub3d5QGFvc2MuaW8+Cj4+IFJldmlld2VkLWJ5OiBDaGVu LVl1IFRzYWkgPHdlbnNAY3NpZS5vcmc+Cj4+IC0tLQo+PiBDaGFuZ2VzIGluIHY1Ogo+PiAtIERy b3BwZWQgc3VwcG9ydCBmb3IgdmJ1cy1zdXBwbHkgcHJvcGVydHkgaW4gdGhlIGRldmljZSBub2Rl IGl0c2VsZgo+YW5kCj4+ICAgYWRkZWQgc3VwcG9ydCBmb3IgdmJ1cy1zdXBwbHkgcHJvcGVydHkg aW4gdGhlIGNvbm5lY3RvciBzdWJub2RlLgo+PiAKPj4gQ2hhbmdlcyBpbiB2NDoKPj4gLSBBZGRl ZCBzdXBwb3J0IGZvciB2YnVzLXN1cHBseSBwcm9wZXJ0eS4KPj4gCj4+IENoYW5nZXMgaW4gdjM6 Cj4+IC0gRHJvcHBlZCBVU0JfU1VQUE9SVCBkZXBlbmRlbmN5Lgo+PiAtIEFkZGVkIENoZW4tWXUn cyBSZXZpZXcgdGFnLgo+PiAKPj4gTm8gY2hhbmdlcyBpbiB2MiwgdjEuIGRyaXZlcnMvcGh5L2Fs bHdpbm5lci9LY29uZmlnICAgICAgICAgICB8ICAxMgo+KysKPj4gIGRyaXZlcnMvcGh5L2FsbHdp bm5lci9NYWtlZmlsZSAgICAgICAgICB8ICAgMSArCj4+ICBkcml2ZXJzL3BoeS9hbGx3aW5uZXIv cGh5LXN1bjUwaS11c2IzLmMgfCAyNjAKPisrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgMyBm aWxlcyBjaGFuZ2VkLCAyNzMgaW5zZXJ0aW9ucygrKQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvcGh5L2FsbHdpbm5lci9waHktc3VuNTBpLXVzYjMuYwo+PiAKPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGh5L2FsbHdpbm5lci9LY29uZmlnCj5iL2RyaXZlcnMvcGh5L2FsbHdpbm5lci9L Y29uZmlnCj4+IGluZGV4IGZiMTIwNGJjYzQ1NC4uMmMzNjNkYjE3N2YyIDEwMDY0NAo+PiAtLS0g YS9kcml2ZXJzL3BoeS9hbGx3aW5uZXIvS2NvbmZpZwo+PiArKysgYi9kcml2ZXJzL3BoeS9hbGx3 aW5uZXIvS2NvbmZpZwo+PiBAQCAtNDEsMyArNDEsMTUgQEAgY29uZmlnIFBIWV9TVU45SV9VU0IK Pj4gIAkgIHN1bjlpIFNvQ3MuCj4+ICAKPj4gIAkgIFRoaXMgZHJpdmVyIGNvbnRyb2xzIGVhY2gg aW5kaXZpZHVhbCBVU0IgMiBob3N0IFBIWS4KPj4gKwo+PiArY29uZmlnIFBIWV9TVU41MElfVVNC Mwo+PiArCXRyaXN0YXRlICJBbGx3aW5uZXIgc3VuNTBpIFNvQyBVU0IzIFBIWSBkcml2ZXIiCj4+ ICsJZGVwZW5kcyBvbiBBUkNIX1NVTlhJICYmIEhBU19JT01FTSAmJiBPRgo+PiArCWRlcGVuZHMg b24gUkVTRVRfQ09OVFJPTExFUgo+PiArCXNlbGVjdCBVU0JfQ09NTU9OCj4+ICsJc2VsZWN0IEdF TkVSSUNfUEhZCj4+ICsJaGVscAo+PiArCSAgRW5hYmxlIHRoaXMgdG8gc3VwcG9ydCB0aGUgVVNC My4wLWNhcGFibGUgdHJhbnNjZWl2ZXIgdGhhdCBpcwo+PiArCSAgcGFydCBvZiBzb21lIEFsbHdp bm5lciBzdW41MGkgU29Dcy4KPj4gKwo+PiArCSAgVGhpcyBkcml2ZXIgY29udHJvbHMgZWFjaCBp bmRpdmlkdWFsIFVTQiAyKzMgaG9zdCBQSFkgY29tYm8uCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3BoeS9hbGx3aW5uZXIvTWFrZWZpbGUKPmIvZHJpdmVycy9waHkvYWxsd2lubmVyL01ha2VmaWxl Cj4+IGluZGV4IDdkMDA1M2VmYmZhYS4uNTk1NzVhODk1Nzc5IDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL3BoeS9hbGx3aW5uZXIvTWFrZWZpbGUKPj4gKysrIGIvZHJpdmVycy9waHkvYWxsd2lubmVy L01ha2VmaWxlCj4+IEBAIC0xLDMgKzEsNCBAQAo+PiAgb2JqLSQoQ09ORklHX1BIWV9TVU40SV9V U0IpCQkrPSBwaHktc3VuNGktdXNiLm8KPj4gIG9iai0kKENPTkZJR19QSFlfU1VONklfTUlQSV9E UEhZKQkrPSBwaHktc3VuNmktbWlwaS1kcGh5Lm8KPj4gIG9iai0kKENPTkZJR19QSFlfU1VOOUlf VVNCKQkJKz0gcGh5LXN1bjlpLXVzYi5vCj4+ICtvYmotJChDT05GSUdfUEhZX1NVTjUwSV9VU0Iz KQkJKz0gcGh5LXN1bjUwaS11c2IzLm8KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGh5L2FsbHdp bm5lci9waHktc3VuNTBpLXVzYjMuYwo+Yi9kcml2ZXJzL3BoeS9hbGx3aW5uZXIvcGh5LXN1bjUw aS11c2IzLmMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAwMDAwLi41 Mjk5YWVmOTg2NjgKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9kcml2ZXJzL3BoeS9hbGx3aW5u ZXIvcGh5LXN1bjUwaS11c2IzLmMKPj4gQEAgLTAsMCArMSwyNjAgQEAKPj4gKy8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKwo+PiArLyoKPj4gKyAqIEFsbHdpbm5lciBzdW41MGko SDYpIFVTQiAzLjAgcGh5IGRyaXZlcgo+PiArICoKPj4gKyAqIENvcHlyaWdodCAoQykgMjAxNyBJ Y2Vub3d5IFpoZW5nIDxpY2Vub3d5QGFvc2MuaW8+Cj4+ICsgKgo+PiArICogQmFzZWQgb24gcGh5 LXN1bjlpLXVzYi5jLCB3aGljaCBpczoKPj4gKyAqCj4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTQt MjAxNSBDaGVuLVl1IFRzYWkgPHdlbnNAY3NpZS5vcmc+Cj4+ICsgKgo+PiArICogQmFzZWQgb24g Y29kZSBmcm9tIEFsbHdpbm5lciBCU1AsIHdoaWNoIGlzOgo+PiArICoKPj4gKyAqIENvcHlyaWdo dCAoYykgMjAxMC0yMDE1IEFsbHdpbm5lciBUZWNobm9sb2d5IENvLiwgTHRkLgo+PiArICovCj4+ ICsKPj4gKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4K Pj4gKyNpbmNsdWRlIDxsaW51eC9pby5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ PiArI2luY2x1ZGUgPGxpbnV4L3BoeS9waHkuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9vZl9wbGF0 Zm9ybS5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3VzYi9vZi5oPgo+PiArI2luY2x1ZGUgPGxpbnV4 L3BsYXRmb3JtX2RldmljZS5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1l ci5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+Cj4+ICsKPj4gKy8qIEludGVyZmFjZSBT dGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXJzICovCj4+ICsjZGVmaW5lIFNVTlhJX0lTQ1IJCQkw eDAwCj4+ICsjZGVmaW5lIFNVTlhJX1BJUEVfQ0xPQ0tfQ09OVFJPTAkweDE0Cj4+ICsjZGVmaW5l IFNVTlhJX1BIWV9UVU5FX0xPVwkJMHgxOAo+PiArI2RlZmluZSBTVU5YSV9QSFlfVFVORV9ISUdI CQkweDFjCj4+ICsjZGVmaW5lIFNVTlhJX1BIWV9FWFRFUk5BTF9DT05UUk9MCTB4MjAKPj4gKwo+ PiArLyogVVNCMi4wIEludGVyZmFjZSBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIgKi8KPj4g KyNkZWZpbmUgU1VOWElfSVNDUl9GT1JDRV9WQlVTCQkoMyA8PCAxMikKPj4gKwo+PiArLyogUElQ RSBDbG9jayBDb250cm9sIFJlZ2lzdGVyICovCj4+ICsjZGVmaW5lIFNVTlhJX1BDQ19QSVBFX0NM S19PUEVOCQkoMSA8PCA2KQo+PiArCj4+ICsvKiBQSFkgRXh0ZXJuYWwgQ29udHJvbCBSZWdpc3Rl ciAqLwo+PiArI2RlZmluZSBTVU5YSV9QRUNfRVhURVJOX1ZCVVMJCSgzIDw8IDEpCj4+ICsjZGVm aW5lIFNVTlhJX1BFQ19TU0NfRU4JCSgxIDw8IDI0KQo+PiArI2RlZmluZSBTVU5YSV9QRUNfUkVG X1NTUF9FTgkJKDEgPDwgMjYpCj4+ICsKPj4gKy8qIFBIWSBUdW5lIEhpZ2ggUmVnaXN0ZXIgKi8K Pj4gKyNkZWZpbmUgU1VOWElfVFhfREVFTVBIXzNQNURCKG4pCSgobikgPDwgMTkpCj4+ICsjZGVm aW5lIFNVTlhJX1RYX0RFRU1QSF8zUDVEQl9NQVNLCUdFTk1BU0soMjQsIDE5KQo+PiArI2RlZmlu ZSBTVU5YSV9UWF9ERUVNUEhfNkRCKG4pCQkoKG4pIDw8IDEzKQo+PiArI2RlZmluZSBTVU5YSV9U WF9ERUVNUEhfNkdCX01BU0sJR0VOTUFTSygxOCwgMTMpCj4+ICsjZGVmaW5lIFNVTlhJX1RYX1NX SU5HX0ZVTEwobikJCSgobikgPDwgNikKPj4gKyNkZWZpbmUgU1VOWElfVFhfU1dJTkdfRlVMTF9N QVNLCUdFTk1BU0soMTIsIDYpCj4+ICsjZGVmaW5lIFNVTlhJX0xPU19CSUFTKG4pCQkoKG4pIDw8 IDMpCj4+ICsjZGVmaW5lIFNVTlhJX0xPU19CSUFTX01BU0sJCUdFTk1BU0soNSwgMykKPj4gKyNk ZWZpbmUgU1VOWElfVFhWQk9PU1RMVkwobikJCSgobikgPDwgMCkKPj4gKyNkZWZpbmUgU1VOWElf VFhWQk9PU1RMVkxfTUFTSwkJR0VOTUFTSygwLCAyKQo+PiArCj4+ICtzdHJ1Y3Qgc3VuNTBpX3Vz YjNfcGh5IHsKPj4gKwlzdHJ1Y3QgcGh5ICpwaHk7Cj4+ICsJdm9pZCBfX2lvbWVtICpyZWdzOwo+ PiArCXN0cnVjdCByZXNldF9jb250cm9sICpyZXNldDsKPj4gKwlzdHJ1Y3QgY2xrICpjbGs7Cj4+ ICsJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqY29ubmVjdG9yX2RldjsKPj4gKwlzdHJ1Y3QgcmVn dWxhdG9yICp2YnVzOwo+PiArfTsKPj4gKwo+PiArc3RhdGljIHZvaWQgc3VuNTBpX3VzYjNfcGh5 X29wZW4oc3RydWN0IHN1bjUwaV91c2IzX3BoeSAqcGh5KQo+PiArewo+PiArCXUzMiB2YWw7Cj4+ ICsKPj4gKwl2YWwgPSByZWFkbChwaHktPnJlZ3MgKyBTVU5YSV9QSFlfRVhURVJOQUxfQ09OVFJP TCk7Cj4+ICsJdmFsIHw9IFNVTlhJX1BFQ19FWFRFUk5fVkJVUzsKPj4gKwl2YWwgfD0gU1VOWElf UEVDX1NTQ19FTiB8IFNVTlhJX1BFQ19SRUZfU1NQX0VOOwo+PiArCXdyaXRlbCh2YWwsIHBoeS0+ cmVncyArIFNVTlhJX1BIWV9FWFRFUk5BTF9DT05UUk9MKTsKPj4gKwo+PiArCXZhbCA9IHJlYWRs KHBoeS0+cmVncyArIFNVTlhJX1BJUEVfQ0xPQ0tfQ09OVFJPTCk7Cj4+ICsJdmFsIHw9IFNVTlhJ X1BDQ19QSVBFX0NMS19PUEVOOwo+PiArCXdyaXRlbCh2YWwsIHBoeS0+cmVncyArIFNVTlhJX1BJ UEVfQ0xPQ0tfQ09OVFJPTCk7Cj4+ICsKPj4gKwl2YWwgPSByZWFkbChwaHktPnJlZ3MgKyBTVU5Y SV9JU0NSKTsKPj4gKwl2YWwgfD0gU1VOWElfSVNDUl9GT1JDRV9WQlVTOwo+PiArCXdyaXRlbCh2 YWwsIHBoeS0+cmVncyArIFNVTlhJX0lTQ1IpOwo+PiArCj4+ICsJLyoKPj4gKwkgKiBBbGwgdGhl IG1hZ2ljIG51bWJlcnMgd3JpdHRlbiB0byB0aGUgUEhZX1RVTkVfe0xPV19ISUdIfQo+PiArCSAq IHJlZ2lzdGVycyBhcmUgZGlyZWN0bHkgdGFrZW4gZnJvbSB0aGUgQlNQIFVTQjMgZHJpdmVyIGZy b20KPj4gKwkgKiBBbGx3aW5lci4KPj4gKwkgKi8KPj4gKwl3cml0ZWwoMHgwMDQ3ZmM4NywgcGh5 LT5yZWdzICsgU1VOWElfUEhZX1RVTkVfTE9XKTsKPj4gKwo+PiArCXZhbCA9IHJlYWRsKHBoeS0+ cmVncyArIFNVTlhJX1BIWV9UVU5FX0hJR0gpOwo+PiArCXZhbCAmPSB+KFNVTlhJX1RYVkJPT1NU TFZMX01BU0sgfCBTVU5YSV9MT1NfQklBU19NQVNLIHwKPj4gKwkJIFNVTlhJX1RYX1NXSU5HX0ZV TExfTUFTSyB8IFNVTlhJX1RYX0RFRU1QSF82R0JfTUFTSyB8Cj4+ICsJCSBTVU5YSV9UWF9ERUVN UEhfM1A1REJfTUFTSyk7Cj4+ICsJdmFsIHw9IFNVTlhJX1RYVkJPT1NUTFZMKDB4Nyk7Cj4+ICsJ dmFsIHw9IFNVTlhJX0xPU19CSUFTKDB4Nyk7Cj4+ICsJdmFsIHw9IFNVTlhJX1RYX1NXSU5HX0ZV TEwoMHg1NSk7Cj4+ICsJdmFsIHw9IFNVTlhJX1RYX0RFRU1QSF82REIoMHgyMCk7Cj4+ICsJdmFs IHw9IFNVTlhJX1RYX0RFRU1QSF8zUDVEQigweDE1KTsKPj4gKwl3cml0ZWwodmFsLCBwaHktPnJl Z3MgKyBTVU5YSV9QSFlfVFVORV9ISUdIKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBzdW41 MGlfdXNiM19waHlfaW5pdChzdHJ1Y3QgcGh5ICpfcGh5KQo+PiArewo+PiArCXN0cnVjdCBzdW41 MGlfdXNiM19waHkgKnBoeSA9IHBoeV9nZXRfZHJ2ZGF0YShfcGh5KTsKPj4gKwlpbnQgcmV0Owo+ PiArCj4+ICsJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKHBoeS0+Y2xrKTsKPj4gKwlpZiAocmV0 KQo+PiArCQlnb3RvIGVycl9jbGs7Cj4+ICsKPj4gKwlyZXQgPSByZXNldF9jb250cm9sX2RlYXNz ZXJ0KHBoeS0+cmVzZXQpOwo+PiArCWlmIChyZXQpCj4+ICsJCWdvdG8gZXJyX3Jlc2V0Owo+PiAr Cj4+ICsJc3VuNTBpX3VzYjNfcGh5X29wZW4ocGh5KTsKPj4gKwlyZXR1cm4gMDsKPj4gKwo+PiAr ZXJyX3Jlc2V0Ogo+PiArCWNsa19kaXNhYmxlX3VucHJlcGFyZShwaHktPmNsayk7Cj4+ICsKPj4g K2Vycl9jbGs6Cj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBzdW41 MGlfdXNiM19waHlfZXhpdChzdHJ1Y3QgcGh5ICpfcGh5KQo+PiArewo+PiArCXN0cnVjdCBzdW41 MGlfdXNiM19waHkgKnBoeSA9IHBoeV9nZXRfZHJ2ZGF0YShfcGh5KTsKPj4gKwo+PiArCXJlc2V0 X2NvbnRyb2xfYXNzZXJ0KHBoeS0+cmVzZXQpOwo+PiArCWNsa19kaXNhYmxlX3VucHJlcGFyZShw aHktPmNsayk7Cj4+ICsKPj4gKwlyZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBz dW41MGlfdXNiM19waHlfcG93ZXJfb24oc3RydWN0IHBoeSAqX3BoeSkKPj4gK3sKPj4gKwlzdHJ1 Y3Qgc3VuNTBpX3VzYjNfcGh5ICpwaHkgPSBwaHlfZ2V0X2RydmRhdGEoX3BoeSk7Cj4+ICsKPj4g KwlpZiAocGh5LT52YnVzKQo+PiArCQlyZXR1cm4gcmVndWxhdG9yX2VuYWJsZShwaHktPnZidXMp Owo+PiArCWVsc2UKPj4gKwkJcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgc3Vu NTBpX3VzYjNfcGh5X3Bvd2VyX29mZihzdHJ1Y3QgcGh5ICpfcGh5KQo+PiArewo+PiArCXN0cnVj dCBzdW41MGlfdXNiM19waHkgKnBoeSA9IHBoeV9nZXRfZHJ2ZGF0YShfcGh5KTsKPj4gKwo+PiAr CWlmIChwaHktPnZidXMpCj4+ICsJCXJldHVybiByZWd1bGF0b3JfZGlzYWJsZShwaHktPnZidXMp Owo+PiArCWVsc2UKPj4gKwkJcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgcGh5X29wcyBzdW41MGlfdXNiM19waHlfb3BzID0gewo+PiArCS5pbml0CQk9IHN1bjUw aV91c2IzX3BoeV9pbml0LAo+PiArCS5leGl0CQk9IHN1bjUwaV91c2IzX3BoeV9leGl0LAo+PiAr CS5wb3dlcl9vbgk9IHN1bjUwaV91c2IzX3BoeV9wb3dlcl9vbiwKPj4gKwkucG93ZXJfb2ZmCT0g c3VuNTBpX3VzYjNfcGh5X3Bvd2VyX29mZiwKPj4gKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCj4+ ICt9Owo+PiArCj4+ICtzdGF0aWMgaW50IHN1bjUwaV91c2IzX3BoeV9wcm9iZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQo+PiArewo+PiArCXN0cnVjdCBzdW41MGlfdXNiM19waHkgKnBo eTsKPj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+PiArCXN0cnVjdCBwaHlf cHJvdmlkZXIgKnBoeV9wcm92aWRlcjsKPj4gKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKPj4gKwlz dHJ1Y3QgZGV2aWNlX25vZGUgKmNvbm5lY3Rvcl9ub2RlOwo+PiArCWludCByZXQ7Cj4+ICsKPj4g KwlwaHkgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnBoeSksIEdGUF9LRVJORUwpOwo+PiAr CWlmICghcGh5KQo+PiArCQlyZXR1cm4gLUVOT01FTTsKPj4gKwo+PiArCWRldl9zZXRfZHJ2ZGF0 YShkZXYsIHBoeSk7Cj4+ICsKPj4gKwlwaHktPmNsayA9IGRldm1fY2xrX2dldChkZXYsIE5VTEwp Owo+PiArCWlmIChJU19FUlIocGh5LT5jbGspKSB7Cj4+ICsJCWRldl9lcnIoZGV2LCAiZmFpbGVk IHRvIGdldCBwaHkgY2xvY2tcbiIpOwo+PiArCQlyZXR1cm4gUFRSX0VSUihwaHktPmNsayk7Cj4+ ICsJfQo+PiArCj4+ICsJcGh5LT5yZXNldCA9IGRldm1fcmVzZXRfY29udHJvbF9nZXQoZGV2LCBO VUxMKTsKPj4gKwlpZiAoSVNfRVJSKHBoeS0+cmVzZXQpKSB7Cj4+ICsJCWRldl9lcnIoZGV2LCAi ZmFpbGVkIHRvIGdldCByZXNldCBjb250cm9sXG4iKTsKPj4gKwkJcmV0dXJuIFBUUl9FUlIocGh5 LT5yZXNldCk7Cj4+ICsJfQo+PiArCj4+ICsJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBk ZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKPj4gKwlwaHktPnJlZ3MgPSBkZXZtX2lvcmVtYXBfcmVz b3VyY2UoZGV2LCByZXMpOwo+PiArCWlmIChJU19FUlIocGh5LT5yZWdzKSkKPj4gKwkJcmV0dXJu IFBUUl9FUlIocGh5LT5yZWdzKTsKPj4gKwo+PiArCS8qIFBvcHVsYXRlIHRoZSBjb25uZWN0b3Ig YXMgcGxhdGZvcm0gZGV2aWNlICovCj4+ICsJcmV0ID0gb2ZfcGxhdGZvcm1fcG9wdWxhdGUocGRl di0+ZGV2Lm9mX25vZGUsIE5VTEwsIE5VTEwsCj4mcGRldi0+ZGV2KTsKPj4gKwlpZiAocmV0KQo+ PiArCQlyZXR1cm4gcmV0Owo+PiArCj4+ICsJLyoKPj4gKwkgKiBDdXJyZW50bHkgdGhlIEFsbHdp bm5lciBVU0IzIFBIWSBjb250YWlucyBvbmx5IG9uZSBwb3J0LCBzbyB3ZQo+PiArCSAqIG9ubHkg cHJvY2VzcyBvbmUgY29ubmVjdG9yIG5vdy4KPj4gKwkgKi8KPj4gKwljb25uZWN0b3Jfbm9kZSA9 IG9mX2dldF9uZXh0X2NoaWxkKHBkZXYtPmRldi5vZl9ub2RlLCBOVUxMKTsKPj4gKwo+PiArCWlm IChjb25uZWN0b3Jfbm9kZSkgewo+PiArCQkvKiBHZXQgdGhlIHBsYXRmb3JtIGRldmljZSAqLwo+ PiArCQlwaHktPmNvbm5lY3Rvcl9kZXYgPSBvZl9maW5kX2RldmljZV9ieV9ub2RlKGNvbm5lY3Rv cl9ub2RlKTsKPj4gKwkJaWYgKCFwaHktPmNvbm5lY3Rvcl9kZXYpIHsKPj4gKwkJCWRldl9lcnIo ZGV2LCAibm8gZGV2aWNlIGZvciBjb25uZWN0b3JcbiIpOwo+PiArCQkJcmV0dXJuIC1FTk9ERVY7 Cj4+ICsJCX0KPj4gKwo+PiArCQlwaHktPnZidXMgPSByZWd1bGF0b3JfZ2V0KCZwaHktPmNvbm5l Y3Rvcl9kZXYtPmRldiwgInZidXMiKTsKPj4gKwkJaWYgKElTX0VSUihwaHktPnZidXMpKQo+PiAr CQkJcmV0dXJuIFBUUl9FUlIocGh5LT52YnVzKTsKPj4gKwl9Cj4+ICsKPj4gKwlwaHktPnBoeSA9 IGRldm1fcGh5X2NyZWF0ZShkZXYsIE5VTEwsICZzdW41MGlfdXNiM19waHlfb3BzKTsKPj4gKwlp ZiAoSVNfRVJSKHBoeS0+cGh5KSkgewo+Cj5Zb3UncmUgcG9zc2libHkgbGVha2luZyBwaHktPnZi dXMgaGVyZS4KClRoYW5rcy4KCj4KPj4gKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gY3JlYXRl IFBIWVxuIik7Cj4+ICsJCXJldHVybiBQVFJfRVJSKHBoeS0+cGh5KTsKPj4gKwl9Cj4+ICsKPj4g KwlwaHlfc2V0X2RydmRhdGEocGh5LT5waHksIHBoeSk7Cj4+ICsJcGh5X3Byb3ZpZGVyID0gZGV2 bV9vZl9waHlfcHJvdmlkZXJfcmVnaXN0ZXIoZGV2LAo+b2ZfcGh5X3NpbXBsZV94bGF0ZSk7Cj4+ ICsKPgo+Li4uIGFuZCBhbHNvIGhlcmU6Cj4KPj4gKwlyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKHBo eV9wcm92aWRlcik7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgc3VuNTBpX3VzYjNfcGh5X3Jl bW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+PiArewo+PiArCXN0cnVjdCBkZXZp Y2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4+ICsJc3RydWN0IHN1bjUwaV91c2IzX3BoeSAqcGh5ID0g ZGV2X2dldF9kcnZkYXRhKGRldik7Cj4+ICsKPj4gKwlpZiAocGh5LT52YnVzKQo+PiArCQlyZWd1 bGF0b3JfcHV0KHBoeS0+dmJ1cyk7Cj4KPlBlcmhhcHMganVzdCB1c2UgZGV2bV9yZWd1bGF0b3Jf Z2V0LCBhbmQgZHJvcCBoZSBzdW41MGlfdXNiM19waHlfcmVtb3ZlCj5lbnRpcmVseT8KCk5vLiBX ZSdyZSBib3Jyb3dpbmcgYW5vdGhlciBkZXZpY2UncyByZWd1bGF0b3IsIHNvIGRldm0gZnVuY3Rp b24gd29uJ3QKd29yayBoZXJlIC0tIGl0IHdpbGwgY2xlYW4gdXAgd2hlbiB0aGUgY29ubmVjdG9y IGdldHMgcmVtb3ZlZCwgbm90IHRoZSBwaHksCmJ1dCB0aGUgY29ubmVjdG9yIGhhcyBubyBkcml2 ZXIuCgo+Cj50aGFuayB5b3UgYW5kIHJlZ2FyZHMsCj4JT25kcmVqCj4KPj4gKwlyZXR1cm4gMDsK Pj4gK30KPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3VuNTBpX3Vz YjNfcGh5X29mX21hdGNoW10gPSB7Cj4+ICsJeyAuY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3Vu NTBpLWg2LXVzYjMtcGh5IiB9LAo+PiArCXsgfSwKPj4gK307Cj4+ICtNT0RVTEVfREVWSUNFX1RB QkxFKG9mLCBzdW41MGlfdXNiM19waHlfb2ZfbWF0Y2gpOwo+PiArCj4+ICtzdGF0aWMgc3RydWN0 IHBsYXRmb3JtX2RyaXZlciBzdW41MGlfdXNiM19waHlfZHJpdmVyID0gewo+PiArCS5wcm9iZQk9 IHN1bjUwaV91c2IzX3BoeV9wcm9iZSwKPj4gKwkucmVtb3ZlCT0gc3VuNTBpX3VzYjNfcGh5X3Jl bW92ZSwKPj4gKwkuZHJpdmVyID0gewo+PiArCQkub2ZfbWF0Y2hfdGFibGUJPSBzdW41MGlfdXNi M19waHlfb2ZfbWF0Y2gsCj4+ICsJCS5uYW1lICA9ICJzdW41MGktdXNiMy1waHkiLAo+PiArCX0K Pj4gK307Cj4+ICttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHN1bjUwaV91c2IzX3BoeV9kcml2ZXIp Owo+PiArCj4+ICtNT0RVTEVfREVTQ1JJUFRJT04oIkFsbHdpbm5lciBzdW41MGkgVVNCIDMuMCBw aHkgZHJpdmVyIik7Cj4+ICtNT0RVTEVfQVVUSE9SKCJJY2Vub3d5IFpoZW5nIDxpY2Vub3d5QGFv c2MuaW8+Iik7Cj4+ICtNT0RVTEVfTElDRU5TRSgiR1BMIik7Cj4+IC0tIAo+PiAyLjE4LjEKPj4g Cj4+IC0tIAo+PiBZb3UgcmVjZWl2ZWQgdGhpcyBtZXNzYWdlIGJlY2F1c2UgeW91IGFyZSBzdWJz Y3JpYmVkIHRvIHRoZSBHb29nbGUKPkdyb3VwcyAibGludXgtc3VueGkiIGdyb3VwLgo+PiBUbyB1 bnN1YnNjcmliZSBmcm9tIHRoaXMgZ3JvdXAgYW5kIHN0b3AgcmVjZWl2aW5nIGVtYWlscyBmcm9t IGl0LAo+c2VuZCBhbiBlbWFpbCB0byBsaW51eC1zdW54aSt1bnN1YnNjcmliZUBnb29nbGVncm91 cHMuY29tLgo+PiBGb3IgbW9yZSBvcHRpb25zLCB2aXNpdCBodHRwczovL2dyb3Vwcy5nb29nbGUu Y29tL2Qvb3B0b3V0LgoKLS0gCuS9v+eUqCBLLTkgTWFpbCDlj5HpgIHoh6rmiJHnmoRBbmRyb2lk 6K6+5aSH44CCCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hcm0ta2VybmVsCg==