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=-3.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY 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 0987DC2BA19 for ; Wed, 15 Apr 2020 15:53:37 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 C5B202078B for ; Wed, 15 Apr 2020 15:53:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="VlQG9cCt" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C5B202078B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AA59B6EA21; Wed, 15 Apr 2020 15:53:35 +0000 (UTC) Received: from mail-qv1-xf42.google.com (mail-qv1-xf42.google.com [IPv6:2607:f8b0:4864:20::f42]) by gabe.freedesktop.org (Postfix) with ESMTPS id 782C66EA21 for ; Wed, 15 Apr 2020 15:53:34 +0000 (UTC) Received: by mail-qv1-xf42.google.com with SMTP id y19so84279qvv.4 for ; Wed, 15 Apr 2020 08:53:34 -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=fgMvpPCQJWFCosyE7dZRbMhEbQ67Lc7QAxyc+/m5qdY=; b=VlQG9cCtz6EXkYbq2dBLs+dgaDVmuO94Gj59uScBaYRtMGr5sGV2vGbygVtLMH6n8d arPfw2cWby5Ve+F4tL7gxyMrbqlp+yoQyHy0jTOs4TL8Cxuvpqldr1IrVLkV7fFI0vy7 0jUaSi12XleYxSJYFzZobXnHQyxPu8IBt4R4Eo07YcRJhxOts7WxOiPtsBdRFUmNYPj9 iVu7CvY03PtmN4MbKk851Br/SGy8vhSXm5uDCzPDJI4YkiDI/gtdbSRARbPxDNu95YyA H6c5kvjj10btqP655/Y7pRy94EYteLQX2AfjB5PcprqBKMRyXTuDAumFDxfhB+WqEZlI matg== 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=fgMvpPCQJWFCosyE7dZRbMhEbQ67Lc7QAxyc+/m5qdY=; b=sinWMMmFACcqXwT5swBGufpi+oRI98l+iv341+qZzChoOpcMCR+UuBVe3IPGE/RLOL xrBKsFulj0zuMhoEsQb+5bcD0JVTHB0XKWZuBKeXG/NpEzmjIhkhkmDHpyCcI3YHpUDA b6UfAjD3oLPy+32qe2/jjZGpWrmZO0k11KRVJNBsMjF9SzO7NPT307aMIBeZ1YHpKusu 9hupk2WYcgsyae9yaDWfD+GzeZVGWSo8HrwrsMhBYb4Xt8S3hguI9jkRuba0aFAYKOn4 FtVlUhO8tal6m3KDKAzABArT+sbnpJotziPCHI8Mv3MLF1lGYwzFRjaQU5f53mrPgnIu 3gCA== X-Gm-Message-State: AGi0PuZ8ruoJY14eVgqfpIaiz//vK7Js2NCttuvVnd34iXtYZIEcOYoD DhQBtYq61r7ptoCT0u5eDAeM31CMeSn7EHz0IKU= X-Google-Smtp-Source: APiQypLYNSAsouX1ooyiUh71xZmQBD0ngaPXDC3Is79NyyLy7NbA/Z9439MDOkUeQwjgEdx1/+UuYAVhywTMmH0NWwU= X-Received: by 2002:a0c:f748:: with SMTP id e8mr5544910qvo.237.1586966013181; Wed, 15 Apr 2020 08:53:33 -0700 (PDT) MIME-Version: 1.0 References: <20200414151955.311949-1-adrian.ratiu@collabora.com> <20200414151955.311949-2-adrian.ratiu@collabora.com> In-Reply-To: <20200414151955.311949-2-adrian.ratiu@collabora.com> From: Enric Balletbo Serra Date: Wed, 15 Apr 2020 17:53:22 +0200 Message-ID: Subject: Re: [PATCH v6 1/8] drm: bridge: dw_mipi_dsi: add initial regmap infrastructure To: Adrian Ratiu X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "devicetree@vger.kernel.org" , Jernej Skrabec , Adrian Pop , Jonas Karlman , linux-kernel , dri-devel , Andrzej Hajda , "open list:ARM/Rockchip SoC..." , Laurent Pinchart , Arnaud Ferraris , Collabora Kernel ML , Ezequiel Garcia , linux-stm32@st-md-mailman.stormreply.com, Linux ARM , linux-imx@nxp.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgQWRyaWFuLAoKU29tZSBmZXcgY29tbWVudHMvbml0cyBiZWxvdywKCk1pc3NhdGdlIGRlIEFk cmlhbiBSYXRpdSA8YWRyaWFuLnJhdGl1QGNvbGxhYm9yYS5jb20+IGRlbCBkaWEgZHQuLCAxNApk 4oCZYWJyLiAyMDIwIGEgbGVzIDE3OjE5Ogo+Cj4gSW4gb3JkZXIgdG8gc3VwcG9ydCBtdWx0aXBs ZSB2ZXJzaW9ucyBvZiB0aGUgU3lub3BzaXMgTUlQSSBEU0kgaG9zdAo+IGNvbnRyb2xsZXIsIHdo aWNoIGhhdmUgZGlmZmVyZW50IHJlZ2lzdGVyIGxheW91dHMgYnV0IGFsbW9zdCBpZGVudGljYWwK PiBIVyBwcm90b2NvbHMsIHdlIGFkZCBhIHJlZ21hcCBpbmZyYXN0cnVjdHVyZSB3aGljaCBjYW4g YWJzdHJhY3QgYXdheQo+IHJlZ2lzdGVyIGFjY2Vzc2VzIGZvciBwbGF0Zm9ybSBkcml2ZXJzIHVz aW5nIHRoZSBicmlkZ2UuCj4KPiBUaGUgY29udHJvbGxlciBIVyByZXZpc2lvbiBpcyBkZXRlY3Rl ZCBkdXJpbmcgYnJpZGdlIHByb2JlIHdoaWNoIHdpbGwKPiBiZSB1c2VkIGluIGZ1dHVyZSBjb21t aXRzIHRvIGxvYWQgdGhlIHJlbGV2YW50IHJlZ2lzdGVyIGxheW91dCB3aGljaAo+IHRoZSBicmlk Z2Ugd2lsbCB1c2UgdHJhbnNwYXJlbnRseSB0byB0aGUgcGxhdGZvcm0gZHJpdmVycy4KPgo+IFN1 Z2dlc3RlZC1ieTogRXplcXVpZWwgR2FyY2lhIDxlemVxdWllbEBjb2xsYWJvcmEuY29tPgo+IFRl c3RlZC1ieTogQWRyaWFuIFBvcCA8cG9wLmFkcmlhbjYxQGdtYWlsLmNvbT4KPiBUZXN0ZWQtYnk6 IEFybmF1ZCBGZXJyYXJpcyA8YXJuYXVkLmZlcnJhcmlzQGNvbGxhYm9yYS5jb20+Cj4gU2lnbmVk LW9mZi1ieTogQWRyaWFuIFJhdGl1IDxhZHJpYW4ucmF0aXVAY29sbGFib3JhLmNvbT4KPiAtLS0K PiBOZXcgaW4gdjUuCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHct bWlwaS1kc2kuYyB8IDIwOCArKysrKysrKysrLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDEx NyBpbnNlcnRpb25zKCspLCA5MSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LW1pcGktZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3N5bm9wc3lzL2R3LW1pcGktZHNpLmMKPiBpbmRleCA1ZWYwZjE1NGFhN2IuLjZkOWUy ZjIxYzljYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3 LW1pcGktZHNpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LW1p cGktZHNpLmMKPiBAQCAtMTUsNiArMTUsNyBAQAo+ICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+ Cj4gICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L3BtX3J1 bnRpbWUuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgoKU2hvdWxkIEtjb25maWcgc2Vs ZWN0IFJFR01BUCBmb3IgdGhpcyBkcml2ZXI/Cgo+ICAjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4K Pgo+ICAjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+Cj4gQEAgLTIyNyw2ICsyMjgsNyBA QCBzdHJ1Y3QgZHdfbWlwaV9kc2kgewo+ICAgICAgICAgc3RydWN0IGRybV9icmlkZ2UgKnBhbmVs X2JyaWRnZTsKPiAgICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldjsKPiAgICAgICAgIHZvaWQgX19p b21lbSAqYmFzZTsKPiArICAgICAgIHN0cnVjdCByZWdtYXAgKnJlZ3M7Cj4KPiAgICAgICAgIHN0 cnVjdCBjbGsgKnBjbGs7Cj4KPiBAQCAtMjM1LDYgKzIzNyw3IEBAIHN0cnVjdCBkd19taXBpX2Rz aSB7Cj4gICAgICAgICB1MzIgbGFuZXM7Cj4gICAgICAgICB1MzIgZm9ybWF0Owo+ICAgICAgICAg dW5zaWduZWQgbG9uZyBtb2RlX2ZsYWdzOwo+ICsgICAgICAgdTMyIGh3X3ZlcnNpb247Cj4KPiAg I2lmZGVmIENPTkZJR19ERUJVR19GUwo+ICAgICAgICAgc3RydWN0IGRlbnRyeSAqZGVidWdmczsK PiBAQCAtMjQ5LDYgKzI1MiwxMyBAQCBzdHJ1Y3QgZHdfbWlwaV9kc2kgewo+ICAgICAgICAgY29u c3Qgc3RydWN0IGR3X21pcGlfZHNpX3BsYXRfZGF0YSAqcGxhdF9kYXRhOwo+ICB9Owo+Cj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBkd19taXBpX2RzaV9yZWdtYXBfY2ZnID0g ewo+ICsgICAgICAgLnJlZ19iaXRzID0gMzIsCj4gKyAgICAgICAudmFsX2JpdHMgPSAzMiwKPiAr ICAgICAgIC5yZWdfc3RyaWRlID0gNCwKPiArICAgICAgIC5uYW1lID0gImR3LW1pcGktZHNpIiwK PiArfTsKPiArCj4gIC8qCj4gICAqIENoZWNrIGlmIGVpdGhlciBhIGxpbmsgdG8gYSBtYXN0ZXIg b3Igc2xhdmUgaXMgcHJlc2VudAo+ICAgKi8KPiBAQCAtMjgwLDE2ICsyOTAsNiBAQCBzdGF0aWMg aW5saW5lIHN0cnVjdCBkd19taXBpX2RzaSAqYnJpZGdlX3RvX2RzaShzdHJ1Y3QgZHJtX2JyaWRn ZSAqYnJpZGdlKQo+ICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcl9vZihicmlkZ2UsIHN0cnVjdCBk d19taXBpX2RzaSwgYnJpZGdlKTsKPiAgfQo+Cj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBkc2lfd3Jp dGUoc3RydWN0IGR3X21pcGlfZHNpICpkc2ksIHUzMiByZWcsIHUzMiB2YWwpCj4gLXsKPiAtICAg ICAgIHdyaXRlbCh2YWwsIGRzaS0+YmFzZSArIHJlZyk7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbmxp bmUgdTMyIGRzaV9yZWFkKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpLCB1MzIgcmVnKQo+IC17Cj4g LSAgICAgICByZXR1cm4gcmVhZGwoZHNpLT5iYXNlICsgcmVnKTsKPiAtfQo+IC0KPiAgc3RhdGlj IGludCBkd19taXBpX2RzaV9ob3N0X2F0dGFjaChzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwK PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBtaXBpX2RzaV9kZXZp Y2UgKmRldmljZSkKPiAgewo+IEBAIC0zNjYsMjkgKzM2NiwyOSBAQCBzdGF0aWMgdm9pZCBkd19t aXBpX21lc3NhZ2VfY29uZmlnKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpLAo+ICAgICAgICAgaWYg KGxwbSkKPiAgICAgICAgICAgICAgICAgdmFsIHw9IENNRF9NT0RFX0FMTF9MUDsKPgo+IC0gICAg ICAgZHNpX3dyaXRlKGRzaSwgRFNJX0xQQ0xLX0NUUkwsIGxwbSA/IDAgOiBQSFlfVFhSRVFVRVNU Q0xLSFMpOwo+IC0gICAgICAgZHNpX3dyaXRlKGRzaSwgRFNJX0NNRF9NT0RFX0NGRywgdmFsKTsK PiArICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3MsIERTSV9MUENMS19DVFJMLCBscG0gPyAw IDogUEhZX1RYUkVRVUVTVENMS0hTKTsKPiArICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3Ms IERTSV9DTURfTU9ERV9DRkcsIHZhbCk7Cj4gIH0KPgo+ICBzdGF0aWMgaW50IGR3X21pcGlfZHNp X2dlbl9wa3RfaGRyX3dyaXRlKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpLCB1MzIgaGRyX3ZhbCkK PiAgewo+ICAgICAgICAgaW50IHJldDsKPiAtICAgICAgIHUzMiB2YWwsIG1hc2s7Cj4gKyAgICAg ICB1MzIgdmFsID0gMCwgbWFzazsKPgoKSSB0aGluayB0aGF0IHRoaXMgY2hhbmdlIGlzIG5vdCBu ZWVkZWQsIGB2YWxgIGlzIGFuIGlucHV0IHZhcmlhYmxlCnRoYXQgd2lsbCBiZSBvdmVyd3JpdHRl biBpbnNpZGUgdGhlIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dC4KSW5pdGlhbGl6ZSBoZXJlIGlz IG5vdCBuZWVkZWQuCgo+IC0gICAgICAgcmV0ID0gcmVhZGxfcG9sbF90aW1lb3V0KGRzaS0+YmFz ZSArIERTSV9DTURfUEtUX1NUQVRVUywKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2YWwsICEodmFsICYgR0VOX0NNRF9GVUxMKSwgMTAwMCwKPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDTURfUEtUX1NUQVRVU19USU1FT1VUX1VTKTsKPiArICAgICAgIHJldCA9 IHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChkc2ktPnJlZ3MsIERTSV9DTURfUEtUX1NUQVRVUywK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwsICEodmFsICYgR0VO X0NNRF9GVUxMKSwgMTAwMCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDTURfUEtUX1NUQVRVU19USU1FT1VUX1VTKTsKPiAgICAgICAgIGlmIChyZXQpIHsKPiAgICAg ICAgICAgICAgICAgZGV2X2Vycihkc2ktPmRldiwgImZhaWxlZCB0byBnZXQgYXZhaWxhYmxlIGNv bW1hbmQgRklGT1xuIik7Cj4gICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gICAgICAgICB9 Cj4KPiAtICAgICAgIGRzaV93cml0ZShkc2ksIERTSV9HRU5fSERSLCBoZHJfdmFsKTsKPiArICAg ICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3MsIERTSV9HRU5fSERSLCBoZHJfdmFsKTsKPgo+ICAg ICAgICAgbWFzayA9IEdFTl9DTURfRU1QVFkgfCBHRU5fUExEX1dfRU1QVFk7Cj4gLSAgICAgICBy ZXQgPSByZWFkbF9wb2xsX3RpbWVvdXQoZHNpLT5iYXNlICsgRFNJX0NNRF9QS1RfU1RBVFVTLAo+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCwgKHZhbCAmIG1hc2spID09IG1h c2ssCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMCwgQ01EX1BLVF9TVEFU VVNfVElNRU9VVF9VUyk7Cj4gKyAgICAgICByZXQgPSByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQo ZHNpLT5yZWdzLCBEU0lfQ01EX1BLVF9TVEFUVVMsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmFsLCAodmFsICYgbWFzaykgPT0gbWFzaywKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwLCBDTURfUEtUX1NUQVRVU19USU1FT1VUX1VT KTsKPiAgICAgICAgIGlmIChyZXQpIHsKPiAgICAgICAgICAgICAgICAgZGV2X2Vycihkc2ktPmRl diwgImZhaWxlZCB0byB3cml0ZSBjb21tYW5kIEZJRk9cbiIpOwo+ICAgICAgICAgICAgICAgICBy ZXR1cm4gcmV0Owo+IEBAIC00MDMsMjQgKzQwMywyNiBAQCBzdGF0aWMgaW50IGR3X21pcGlfZHNp X3dyaXRlKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpLAo+ICAgICAgICAgY29uc3QgdTggKnR4X2J1 ZiA9IHBhY2tldC0+cGF5bG9hZDsKPiAgICAgICAgIGludCBsZW4gPSBwYWNrZXQtPnBheWxvYWRf bGVuZ3RoLCBwbGRfZGF0YV9ieXRlcyA9IHNpemVvZih1MzIpLCByZXQ7Cj4gICAgICAgICBfX2xl MzIgd29yZDsKPiAtICAgICAgIHUzMiB2YWw7Cj4gKyAgICAgICB1MzIgdmFsID0gMDsKPgoKVGhl IHNhbWUgaGVyZSwgJ3ZhbCcgaXMgdXNlZCBmb3IgdGhlIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91 dCBhbmQgd2lsbApiZSBvdmVyd3JpdHRlbiwgbm8gbmVlZCB0byBpbml0aWFsaXplLgoKPiAgICAg ICAgIHdoaWxlIChsZW4pIHsKPiAgICAgICAgICAgICAgICAgaWYgKGxlbiA8IHBsZF9kYXRhX2J5 dGVzKSB7Cj4gICAgICAgICAgICAgICAgICAgICAgICAgd29yZCA9IDA7Cj4gICAgICAgICAgICAg ICAgICAgICAgICAgbWVtY3B5KCZ3b3JkLCB0eF9idWYsIGxlbik7Cj4gLSAgICAgICAgICAgICAg ICAgICAgICAgZHNpX3dyaXRlKGRzaSwgRFNJX0dFTl9QTERfREFUQSwgbGUzMl90b19jcHUod29y ZCkpOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3MsIERT SV9HRU5fUExEX0RBVEEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl MzJfdG9fY3B1KHdvcmQpKTsKPiAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSAwOwo+ICAg ICAgICAgICAgICAgICB9IGVsc2Ugewo+ICAgICAgICAgICAgICAgICAgICAgICAgIG1lbWNweSgm d29yZCwgdHhfYnVmLCBwbGRfZGF0YV9ieXRlcyk7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAg ZHNpX3dyaXRlKGRzaSwgRFNJX0dFTl9QTERfREFUQSwgbGUzMl90b19jcHUod29yZCkpOwo+ICsg ICAgICAgICAgICAgICAgICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3MsIERTSV9HRU5fUExE X0RBVEEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlMzJfdG9fY3B1 KHdvcmQpKTsKPiAgICAgICAgICAgICAgICAgICAgICAgICB0eF9idWYgKz0gcGxkX2RhdGFfYnl0 ZXM7Cj4gICAgICAgICAgICAgICAgICAgICAgICAgbGVuIC09IHBsZF9kYXRhX2J5dGVzOwo+ICAg ICAgICAgICAgICAgICB9Cj4KPiAtICAgICAgICAgICAgICAgcmV0ID0gcmVhZGxfcG9sbF90aW1l b3V0KGRzaS0+YmFzZSArIERTSV9DTURfUEtUX1NUQVRVUywKPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZhbCwgISh2YWwgJiBHRU5fUExEX1dfRlVMTCksIDEwMDAs Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTURfUEtUX1NUQVRV U19USU1FT1VUX1VTKTsKPiArICAgICAgICAgICAgICAgcmV0ID0gcmVnbWFwX3JlYWRfcG9sbF90 aW1lb3V0KGRzaS0+cmVncywgRFNJX0NNRF9QS1RfU1RBVFVTLAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsLCAhKHZhbCAmIEdFTl9QTERfV19GVUxM KSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAs IENNRF9QS1RfU1RBVFVTX1RJTUVPVVRfVVMpOwo+ICAgICAgICAgICAgICAgICBpZiAocmV0KSB7 Cj4gICAgICAgICAgICAgICAgICAgICAgICAgZGV2X2Vycihkc2ktPmRldiwKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gZ2V0IGF2YWlsYWJsZSB3cml0ZSBwYXls b2FkIEZJRk9cbiIpOwo+IEBAIC00MzgsMTIgKzQ0MCwxMiBAQCBzdGF0aWMgaW50IGR3X21pcGlf ZHNpX3JlYWQoc3RydWN0IGR3X21pcGlfZHNpICpkc2ksCj4gIHsKPiAgICAgICAgIGludCBpLCBq LCByZXQsIGxlbiA9IG1zZy0+cnhfbGVuOwo+ICAgICAgICAgdTggKmJ1ZiA9IG1zZy0+cnhfYnVm Owo+IC0gICAgICAgdTMyIHZhbDsKPiArICAgICAgIHUzMiB2YWwgPSAwOwo+CgpkaXR0bwoKPiAg ICAgICAgIC8qIFdhaXQgZW5kIG9mIHRoZSByZWFkIG9wZXJhdGlvbiAqLwo+IC0gICAgICAgcmV0 ID0gcmVhZGxfcG9sbF90aW1lb3V0KGRzaS0+YmFzZSArIERTSV9DTURfUEtUX1NUQVRVUywKPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwsICEodmFsICYgR0VOX1JEX0NNRF9C VVNZKSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwLCBDTURfUEtUX1NU QVRVU19USU1FT1VUX1VTKTsKPiArICAgICAgIHJldCA9IHJlZ21hcF9yZWFkX3BvbGxfdGltZW91 dChkc2ktPnJlZ3MsIERTSV9DTURfUEtUX1NUQVRVUywKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2YWwsICEodmFsICYgR0VOX1JEX0NNRF9CVVNZKSwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwLCBDTURfUEtUX1NUQVRVU19USU1F T1VUX1VTKTsKPiAgICAgICAgIGlmIChyZXQpIHsKPiAgICAgICAgICAgICAgICAgZGV2X2Vycihk c2ktPmRldiwgIlRpbWVvdXQgZHVyaW5nIHJlYWQgb3BlcmF0aW9uXG4iKTsKPiAgICAgICAgICAg ICAgICAgcmV0dXJuIHJldDsKPiBAQCAtNDUxLDE1ICs0NTMsMTUgQEAgc3RhdGljIGludCBkd19t aXBpX2RzaV9yZWFkKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpLAo+Cj4gICAgICAgICBmb3IgKGkg PSAwOyBpIDwgbGVuOyBpICs9IDQpIHsKPiAgICAgICAgICAgICAgICAgLyogUmVhZCBmaWZvIG11 c3Qgbm90IGJlIGVtcHR5IGJlZm9yZSBhbGwgYnl0ZXMgYXJlIHJlYWQgKi8KPiAtICAgICAgICAg ICAgICAgcmV0ID0gcmVhZGxfcG9sbF90aW1lb3V0KGRzaS0+YmFzZSArIERTSV9DTURfUEtUX1NU QVRVUywKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCwgISh2 YWwgJiBHRU5fUExEX1JfRU1QVFkpLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMTAwMCwgQ01EX1BLVF9TVEFUVVNfVElNRU9VVF9VUyk7Cj4gKyAgICAgICAgICAg ICAgIHJldCA9IHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChkc2ktPnJlZ3MsIERTSV9DTURfUEtU X1NUQVRVUywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZhbCwgISh2YWwgJiBHRU5fUExEX1JfRU1QVFkpLAo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMTAwMCwgQ01EX1BLVF9TVEFUVVNfVElNRU9VVF9VUyk7 Cj4gICAgICAgICAgICAgICAgIGlmIChyZXQpIHsKPiAgICAgICAgICAgICAgICAgICAgICAgICBk ZXZfZXJyKGRzaS0+ZGV2LCAiUmVhZCBwYXlsb2FkIEZJRk8gaXMgZW1wdHlcbiIpOwo+ICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gICAgICAgICAgICAgICAgIH0KPgo+IC0g ICAgICAgICAgICAgICB2YWwgPSBkc2lfcmVhZChkc2ksIERTSV9HRU5fUExEX0RBVEEpOwo+ICsg ICAgICAgICAgICAgICByZWdtYXBfcmVhZChkc2ktPnJlZ3MsIERTSV9HRU5fUExEX0RBVEEsICZ2 YWwpOwo+ICAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgNCAmJiBqICsgaSA8IGxlbjsg aisrKQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZltpICsgal0gPSB2YWwgPj4gKDggKiBq KTsKPiAgICAgICAgIH0KPiBAQCAtNTM2LDI5ICs1MzgsMjkgQEAgc3RhdGljIHZvaWQgZHdfbWlw aV9kc2lfdmlkZW9fbW9kZV9jb25maWcoc3RydWN0IGR3X21pcGlfZHNpICpkc2kpCj4gICAgICAg ICB9Cj4gICNlbmRpZiAvKiBDT05GSUdfREVCVUdfRlMgKi8KPgo+IC0gICAgICAgZHNpX3dyaXRl KGRzaSwgRFNJX1ZJRF9NT0RFX0NGRywgdmFsKTsKPiArICAgICAgIHJlZ21hcF93cml0ZShkc2kt PnJlZ3MsIERTSV9WSURfTU9ERV9DRkcsIHZhbCk7Cj4gIH0KPgo+ICBzdGF0aWMgdm9pZCBkd19t aXBpX2RzaV9zZXRfbW9kZShzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSwKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1vZGVfZmxhZ3MpCj4gIHsKPiAtICAg ICAgIGRzaV93cml0ZShkc2ksIERTSV9QV1JfVVAsIFJFU0VUKTsKPiArICAgICAgIHJlZ21hcF93 cml0ZShkc2ktPnJlZ3MsIERTSV9QV1JfVVAsIFJFU0VUKTsKPgo+ICAgICAgICAgaWYgKG1vZGVf ZmxhZ3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVPKSB7Cj4gLSAgICAgICAgICAgICAgIGRzaV93cml0 ZShkc2ksIERTSV9NT0RFX0NGRywgRU5BQkxFX1ZJREVPX01PREUpOwo+ICsgICAgICAgICAgICAg ICByZWdtYXBfd3JpdGUoZHNpLT5yZWdzLCBEU0lfTU9ERV9DRkcsIEVOQUJMRV9WSURFT19NT0RF KTsKPiAgICAgICAgICAgICAgICAgZHdfbWlwaV9kc2lfdmlkZW9fbW9kZV9jb25maWcoZHNpKTsK PiAtICAgICAgICAgICAgICAgZHNpX3dyaXRlKGRzaSwgRFNJX0xQQ0xLX0NUUkwsIFBIWV9UWFJF UVVFU1RDTEtIUyk7Cj4gKyAgICAgICAgICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3MsIERT SV9MUENMS19DVFJMLCBQSFlfVFhSRVFVRVNUQ0xLSFMpOwo+ICAgICAgICAgfSBlbHNlIHsKPiAt ICAgICAgICAgICAgICAgZHNpX3dyaXRlKGRzaSwgRFNJX01PREVfQ0ZHLCBFTkFCTEVfQ01EX01P REUpOwo+ICsgICAgICAgICAgICAgICByZWdtYXBfd3JpdGUoZHNpLT5yZWdzLCBEU0lfTU9ERV9D RkcsIEVOQUJMRV9DTURfTU9ERSk7Cj4gICAgICAgICB9Cj4KPiAtICAgICAgIGRzaV93cml0ZShk c2ksIERTSV9QV1JfVVAsIFBPV0VSVVApOwo+ICsgICAgICAgcmVnbWFwX3dyaXRlKGRzaS0+cmVn cywgRFNJX1BXUl9VUCwgUE9XRVJVUCk7Cj4gIH0KPgo+ICBzdGF0aWMgdm9pZCBkd19taXBpX2Rz aV9kaXNhYmxlKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpKQo+ICB7Cj4gLSAgICAgICBkc2lfd3Jp dGUoZHNpLCBEU0lfUFdSX1VQLCBSRVNFVCk7Cj4gLSAgICAgICBkc2lfd3JpdGUoZHNpLCBEU0lf UEhZX1JTVFosIFBIWV9SU1RaKTsKPiArICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3MsIERT SV9QV1JfVVAsIFJFU0VUKTsKPiArICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3MsIERTSV9Q SFlfUlNUWiwgUEhZX1JTVFopOwo+ICB9Cj4KPiAgc3RhdGljIHZvaWQgZHdfbWlwaV9kc2lfaW5p dChzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSkKPiBAQCAtNTczLDE0ICs1NzUsMTQgQEAgc3RhdGlj IHZvaWQgZHdfbWlwaV9kc2lfaW5pdChzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSkKPiAgICAgICAg ICAqLwo+ICAgICAgICAgdTMyIGVzY19jbGtfZGl2aXNpb24gPSAoZHNpLT5sYW5lX21icHMgPj4g MykgLyAyMCArIDE7Cj4KPiAtICAgICAgIGRzaV93cml0ZShkc2ksIERTSV9QV1JfVVAsIFJFU0VU KTsKPiArICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3MsIERTSV9QV1JfVVAsIFJFU0VUKTsK Pgo+ICAgICAgICAgLyoKPiAgICAgICAgICAqIFRPRE8gZHcgZHJ2IGltcHJvdmVtZW50cwo+ICAg ICAgICAgICogdGltZW91dCBjbG9jayBkaXZpc2lvbiBzaG91bGQgYmUgY29tcHV0ZWQgd2l0aCB0 aGUKPiAgICAgICAgICAqIGhpZ2ggc3BlZWQgdHJhbnNtaXNzaW9uIGNvdW50ZXIgdGltZW91dCBh bmQgYnl0ZSBsYW5lLi4uCj4gICAgICAgICAgKi8KPiAtICAgICAgIGRzaV93cml0ZShkc2ksIERT SV9DTEtNR1JfQ0ZHLCBUT19DTEtfRElWSVNJT04oMTApIHwKPiArICAgICAgIHJlZ21hcF93cml0 ZShkc2ktPnJlZ3MsIERTSV9DTEtNR1JfQ0ZHLCBUT19DTEtfRElWSVNJT04oMTApIHwKPiAgICAg ICAgICAgICAgICAgICBUWF9FU0NfQ0xLX0RJVklTSU9OKGVzY19jbGtfZGl2aXNpb24pKTsKPiAg fQo+Cj4gQEAgLTYwOSwyMiArNjExLDIyIEBAIHN0YXRpYyB2b2lkIGR3X21pcGlfZHNpX2RwaV9j b25maWcoc3RydWN0IGR3X21pcGlfZHNpICpkc2ksCj4gICAgICAgICBpZiAobW9kZS0+ZmxhZ3Mg JiBEUk1fTU9ERV9GTEFHX05IU1lOQykKPiAgICAgICAgICAgICAgICAgdmFsIHw9IEhTWU5DX0FD VElWRV9MT1c7Cj4KPiAtICAgICAgIGRzaV93cml0ZShkc2ksIERTSV9EUElfVkNJRCwgRFBJX1ZD SUQoZHNpLT5jaGFubmVsKSk7Cj4gLSAgICAgICBkc2lfd3JpdGUoZHNpLCBEU0lfRFBJX0NPTE9S X0NPRElORywgY29sb3IpOwo+IC0gICAgICAgZHNpX3dyaXRlKGRzaSwgRFNJX0RQSV9DRkdfUE9M LCB2YWwpOwo+ICsgICAgICAgcmVnbWFwX3dyaXRlKGRzaS0+cmVncywgRFNJX0RQSV9WQ0lELCBE UElfVkNJRChkc2ktPmNoYW5uZWwpKTsKPiArICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3Ms IERTSV9EUElfQ09MT1JfQ09ESU5HLCBjb2xvcik7Cj4gKyAgICAgICByZWdtYXBfd3JpdGUoZHNp LT5yZWdzLCBEU0lfRFBJX0NGR19QT0wsIHZhbCk7Cj4gICAgICAgICAvKgo+ICAgICAgICAgICog VE9ETyBkdyBkcnYgaW1wcm92ZW1lbnRzCj4gICAgICAgICAgKiBsYXJnZXN0IHBhY2tldCBzaXpl cyBkdXJpbmcgaGZwIG9yIGR1cmluZyB2c2EvdnBiL3ZmcAo+ICAgICAgICAgICogc2hvdWxkIGJl IGNvbXB1dGVkIGFjY29yZGluZyB0byBieXRlIGxhbmUsIGxhbmUgbnVtYmVyIGFuZCBvbmx5Cj4g ICAgICAgICAgKiBpZiBzZW5kaW5nIGxwIGNtZHMgaW4gaGlnaCBzcGVlZCBpcyBlbmFibGUgKFBI WV9UWFJFUVVFU1RDTEtIUykKPiAgICAgICAgICAqLwo+IC0gICAgICAgZHNpX3dyaXRlKGRzaSwg RFNJX0RQSV9MUF9DTURfVElNLCBPVVRWQUNUX0xQQ01EX1RJTUUoNCkKPiArICAgICAgIHJlZ21h cF93cml0ZShkc2ktPnJlZ3MsIERTSV9EUElfTFBfQ01EX1RJTSwgT1VUVkFDVF9MUENNRF9USU1F KDQpCj4gICAgICAgICAgICAgICAgICAgfCBJTlZBQ1RfTFBDTURfVElNRSg0KSk7Cj4gIH0KPgo+ ICBzdGF0aWMgdm9pZCBkd19taXBpX2RzaV9wYWNrZXRfaGFuZGxlcl9jb25maWcoc3RydWN0IGR3 X21pcGlfZHNpICpkc2kpCj4gIHsKPiAtICAgICAgIGRzaV93cml0ZShkc2ksIERTSV9QQ0tIRExf Q0ZHLCBDUkNfUlhfRU4gfCBFQ0NfUlhfRU4gfCBCVEFfRU4pOwo+ICsgICAgICAgcmVnbWFwX3dy aXRlKGRzaS0+cmVncywgRFNJX1BDS0hETF9DRkcsIENSQ19SWF9FTiB8IEVDQ19SWF9FTiB8IEJU QV9FTik7Cj4gIH0KPgo+ICBzdGF0aWMgdm9pZCBkd19taXBpX2RzaV92aWRlb19wYWNrZXRfY29u ZmlnKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpLAo+IEBAIC02MzgsNyArNjQwLDcgQEAgc3RhdGlj IHZvaWQgZHdfbWlwaV9kc2lfdmlkZW9fcGFja2V0X2NvbmZpZyhzdHJ1Y3QgZHdfbWlwaV9kc2kg KmRzaSwKPiAgICAgICAgICAqIG5vbi1idXJzdCB2aWRlbyBtb2Rlcywgc2VlIGR3X21pcGlfZHNp X3ZpZGVvX21vZGVfY29uZmlnKCkuLi4KPiAgICAgICAgICAqLwo+Cj4gLSAgICAgICBkc2lfd3Jp dGUoZHNpLCBEU0lfVklEX1BLVF9TSVpFLAo+ICsgICAgICAgcmVnbWFwX3dyaXRlKGRzaS0+cmVn cywgRFNJX1ZJRF9QS1RfU0laRSwKPiAgICAgICAgICAgICAgICAgICAgICAgIGR3X21pcGlfaXNf ZHVhbF9tb2RlKGRzaSkgPwo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVklEX1BL VF9TSVpFKG1vZGUtPmhkaXNwbGF5IC8gMikgOgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVklEX1BLVF9TSVpFKG1vZGUtPmhkaXNwbGF5KSk7Cj4gQEAgLTY1MSwxNCArNjUzLDE1 IEBAIHN0YXRpYyB2b2lkIGR3X21pcGlfZHNpX2NvbW1hbmRfbW9kZV9jb25maWcoc3RydWN0IGR3 X21pcGlfZHNpICpkc2kpCj4gICAgICAgICAgKiBjb21wdXRlIGhpZ2ggc3BlZWQgdHJhbnNtaXNz aW9uIGNvdW50ZXIgdGltZW91dCBhY2NvcmRpbmcKPiAgICAgICAgICAqIHRvIHRoZSB0aW1lb3V0 IGNsb2NrIGRpdmlzaW9uIChUT19DTEtfRElWSVNJT04pIGFuZCBieXRlIGxhbmUuLi4KPiAgICAg ICAgICAqLwo+IC0gICAgICAgZHNpX3dyaXRlKGRzaSwgRFNJX1RPX0NOVF9DRkcsIEhTVFhfVE9f Q05UKDEwMDApIHwgTFBSWF9UT19DTlQoMTAwMCkpOwo+ICsgICAgICAgcmVnbWFwX3dyaXRlKGRz aS0+cmVncywgRFNJX1RPX0NOVF9DRkcsCj4gKyAgICAgICAgICAgICAgICAgICAgSFNUWF9UT19D TlQoMTAwMCkgfCBMUFJYX1RPX0NOVCgxMDAwKSk7Cj4gICAgICAgICAvKgo+ICAgICAgICAgICog VE9ETyBkdyBkcnYgaW1wcm92ZW1lbnRzCj4gICAgICAgICAgKiB0aGUgQnVzLVR1cm4tQXJvdW5k IFRpbWVvdXQgQ291bnRlciBzaG91bGQgYmUgY29tcHV0ZWQKPiAgICAgICAgICAqIGFjY29yZGlu ZyB0byBieXRlIGxhbmUuLi4KPiAgICAgICAgICAqLwo+IC0gICAgICAgZHNpX3dyaXRlKGRzaSwg RFNJX0JUQV9UT19DTlQsIDB4ZDAwKTsKPiAtICAgICAgIGRzaV93cml0ZShkc2ksIERTSV9NT0RF X0NGRywgRU5BQkxFX0NNRF9NT0RFKTsKPiArICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3Ms IERTSV9CVEFfVE9fQ05ULCAweGQwMCk7Cj4gKyAgICAgICByZWdtYXBfd3JpdGUoZHNpLT5yZWdz LCBEU0lfTU9ERV9DRkcsIEVOQUJMRV9DTURfTU9ERSk7Cj4gIH0KPgo+ICAvKiBHZXQgbGFuZSBi eXRlIGNsb2NrIGN5Y2xlcy4gKi8KPiBAQCAtNjkyLDEzICs2OTUsMTMgQEAgc3RhdGljIHZvaWQg ZHdfbWlwaV9kc2lfbGluZV90aW1lcl9jb25maWcoc3RydWN0IGR3X21pcGlfZHNpICpkc2ksCj4g ICAgICAgICAgKiBjb21wdXRhdGlvbnMgYmVsb3cgbWF5IGJlIGltcHJvdmVkLi4uCj4gICAgICAg ICAgKi8KPiAgICAgICAgIGxiY2MgPSBkd19taXBpX2RzaV9nZXRfaGNvbXBvbmVudF9sYmNjKGRz aSwgbW9kZSwgaHRvdGFsKTsKPiAtICAgICAgIGRzaV93cml0ZShkc2ksIERTSV9WSURfSExJTkVf VElNRSwgbGJjYyk7Cj4gKyAgICAgICByZWdtYXBfd3JpdGUoZHNpLT5yZWdzLCBEU0lfVklEX0hM SU5FX1RJTUUsIGxiY2MpOwo+Cj4gICAgICAgICBsYmNjID0gZHdfbWlwaV9kc2lfZ2V0X2hjb21w b25lbnRfbGJjYyhkc2ksIG1vZGUsIGhzYSk7Cj4gLSAgICAgICBkc2lfd3JpdGUoZHNpLCBEU0lf VklEX0hTQV9USU1FLCBsYmNjKTsKPiArICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3MsIERT SV9WSURfSFNBX1RJTUUsIGxiY2MpOwo+Cj4gICAgICAgICBsYmNjID0gZHdfbWlwaV9kc2lfZ2V0 X2hjb21wb25lbnRfbGJjYyhkc2ksIG1vZGUsIGhicCk7Cj4gLSAgICAgICBkc2lfd3JpdGUoZHNp LCBEU0lfVklEX0hCUF9USU1FLCBsYmNjKTsKPiArICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJl Z3MsIERTSV9WSURfSEJQX1RJTUUsIGxiY2MpOwo+ICB9Cj4KPiAgc3RhdGljIHZvaWQgZHdfbWlw aV9kc2lfdmVydGljYWxfdGltaW5nX2NvbmZpZyhzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSwKPiBA QCAtNzExLDEwICs3MTQsMTAgQEAgc3RhdGljIHZvaWQgZHdfbWlwaV9kc2lfdmVydGljYWxfdGlt aW5nX2NvbmZpZyhzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSwKPiAgICAgICAgIHZmcCA9IG1vZGUt PnZzeW5jX3N0YXJ0IC0gbW9kZS0+dmRpc3BsYXk7Cj4gICAgICAgICB2YnAgPSBtb2RlLT52dG90 YWwgLSBtb2RlLT52c3luY19lbmQ7Cj4KPiAtICAgICAgIGRzaV93cml0ZShkc2ksIERTSV9WSURf VkFDVElWRV9MSU5FUywgdmFjdGl2ZSk7Cj4gLSAgICAgICBkc2lfd3JpdGUoZHNpLCBEU0lfVklE X1ZTQV9MSU5FUywgdnNhKTsKPiAtICAgICAgIGRzaV93cml0ZShkc2ksIERTSV9WSURfVkZQX0xJ TkVTLCB2ZnApOwo+IC0gICAgICAgZHNpX3dyaXRlKGRzaSwgRFNJX1ZJRF9WQlBfTElORVMsIHZi cCk7Cj4gKyAgICAgICByZWdtYXBfd3JpdGUoZHNpLT5yZWdzLCBEU0lfVklEX1ZBQ1RJVkVfTElO RVMsIHZhY3RpdmUpOwo+ICsgICAgICAgcmVnbWFwX3dyaXRlKGRzaS0+cmVncywgRFNJX1ZJRF9W U0FfTElORVMsIHZzYSk7Cj4gKyAgICAgICByZWdtYXBfd3JpdGUoZHNpLT5yZWdzLCBEU0lfVklE X1ZGUF9MSU5FUywgdmZwKTsKPiArICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3MsIERTSV9W SURfVkJQX0xJTkVTLCB2YnApOwo+ICB9Cj4KPiAgc3RhdGljIHZvaWQgZHdfbWlwaV9kc2lfZHBo eV90aW1pbmdfY29uZmlnKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpKQo+IEBAIC03MzcsMjMgKzc0 MCwyNSBAQCBzdGF0aWMgdm9pZCBkd19taXBpX2RzaV9kcGh5X3RpbWluZ19jb25maWcoc3RydWN0 IGR3X21pcGlfZHNpICpkc2kpCj4gICAgICAgICAgKiBEU0lfQ01EX01PREVfQ0ZHLk1BWF9SRF9Q S1RfU0laRV9MUCAoc2VlIENNRF9NT0RFX0FMTF9MUCkKPiAgICAgICAgICAqLwo+Cj4gLSAgICAg ICBod192ZXJzaW9uID0gZHNpX3JlYWQoZHNpLCBEU0lfVkVSU0lPTikgJiBWRVJTSU9OOwo+ICsg ICAgICAgcmVnbWFwX3JlYWQoZHNpLT5yZWdzLCBEU0lfVkVSU0lPTiwgJmh3X3ZlcnNpb24pOwo+ ICsgICAgICAgaHdfdmVyc2lvbiAmPSBWRVJTSU9OOwoKSWYgSSBhbSBub3Qgd3JvbmcsIHlvdSBh bHJlYWR5IGludHJvZHVjZWQgYSBmdW5jdGlvbiB0byBnZXQgdGhlCmhhcmR3YXJlIHZlcnNpb24g YW5kIGlzIHN0b3JlZCBpbiBkc2ktPmh3X3ZlcnNpb24uIE1heWJlIHlvdSBjb3VsZCB5b3UKdXNl IHRoYXQgdmFyaWFibGUgYW5kIHJlbW92ZSB0aGF0IGNvZGUuCgo+Cj4gICAgICAgICBpZiAoaHdf dmVyc2lvbiA+PSBIV1ZFUl8xMzEpIHsKPiAtICAgICAgICAgICAgICAgZHNpX3dyaXRlKGRzaSwg RFNJX1BIWV9UTVJfQ0ZHLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgUEhZX0hTMkxQX1RJ TUVfVjEzMSh0aW1pbmcuZGF0YV9oczJscCkgfAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg UEhZX0xQMkhTX1RJTUVfVjEzMSh0aW1pbmcuZGF0YV9scDJocykpOwo+IC0gICAgICAgICAgICAg ICBkc2lfd3JpdGUoZHNpLCBEU0lfUEhZX1RNUl9SRF9DRkcsIE1BWF9SRF9USU1FX1YxMzEoMTAw MDApKTsKPiArICAgICAgICAgICAgICAgcmVnbWFwX3dyaXRlKGRzaS0+cmVncywgRFNJX1BIWV9U TVJfQ0ZHLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhZX0hTMkxQX1RJTUVfVjEz MSh0aW1pbmcuZGF0YV9oczJscCkgfAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhZ X0xQMkhTX1RJTUVfVjEzMSh0aW1pbmcuZGF0YV9scDJocykpOwo+ICsgICAgICAgICAgICAgICBy ZWdtYXBfd3JpdGUoZHNpLT5yZWdzLCBEU0lfUEhZX1RNUl9SRF9DRkcsCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBNQVhfUkRfVElNRV9WMTMxKDEwMDAwKSk7Cj4gICAgICAgICB9IGVs c2Ugewo+IC0gICAgICAgICAgICAgICBkc2lfd3JpdGUoZHNpLCBEU0lfUEhZX1RNUl9DRkcsCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICBQSFlfSFMyTFBfVElNRSh0aW1pbmcuZGF0YV9oczJs cCkgfAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgUEhZX0xQMkhTX1RJTUUodGltaW5nLmRh dGFfbHAyaHMpIHwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9SRF9USU1FKDEwMDAw KSk7Cj4gKyAgICAgICAgICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3MsIERTSV9QSFlfVE1S X0NGRywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBIWV9IUzJMUF9USU1FKHRpbWlu Zy5kYXRhX2hzMmxwKSB8Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSFlfTFAySFNf VElNRSh0aW1pbmcuZGF0YV9scDJocykgfAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg TUFYX1JEX1RJTUUoMTAwMDApKTsKPiAgICAgICAgIH0KPgo+IC0gICAgICAgZHNpX3dyaXRlKGRz aSwgRFNJX1BIWV9UTVJfTFBDTEtfQ0ZHLAo+IC0gICAgICAgICAgICAgICAgIFBIWV9DTEtIUzJM UF9USU1FKHRpbWluZy5jbGtfaHMybHApIHwKPiAtICAgICAgICAgICAgICAgICBQSFlfQ0xLTFAy SFNfVElNRSh0aW1pbmcuY2xrX2xwMmhzKSk7Cj4gKyAgICAgICByZWdtYXBfd3JpdGUoZHNpLT5y ZWdzLCBEU0lfUEhZX1RNUl9MUENMS19DRkcsCj4gKyAgICAgICAgICAgICAgICAgICAgUEhZX0NM S0hTMkxQX1RJTUUodGltaW5nLmNsa19oczJscCkgfAo+ICsgICAgICAgICAgICAgICAgICAgIFBI WV9DTEtMUDJIU19USU1FKHRpbWluZy5jbGtfbHAyaHMpKTsKPiAgfQo+Cj4gIHN0YXRpYyB2b2lk IGR3X21pcGlfZHNpX2RwaHlfaW50ZXJmYWNlX2NvbmZpZyhzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRz aSkKPiBAQCAtNzYzLDQ2ICs3NjgsNDkgQEAgc3RhdGljIHZvaWQgZHdfbWlwaV9kc2lfZHBoeV9p bnRlcmZhY2VfY29uZmlnKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpKQo+ICAgICAgICAgICogc3Rv cCB3YWl0IHRpbWUgc2hvdWxkIGJlIHRoZSBtYXhpbXVtIGJldHdlZW4gaG9zdCBkc2kKPiAgICAg ICAgICAqIGFuZCBwYW5lbCBzdG9wIHdhaXQgdGltZXMKPiAgICAgICAgICAqLwo+IC0gICAgICAg ZHNpX3dyaXRlKGRzaSwgRFNJX1BIWV9JRl9DRkcsIFBIWV9TVE9QX1dBSVRfVElNRSgweDIwKSB8 Cj4gLSAgICAgICAgICAgICAgICAgTl9MQU5FUyhkc2ktPmxhbmVzKSk7Cj4gKyAgICAgICByZWdt YXBfd3JpdGUoZHNpLT5yZWdzLCBEU0lfUEhZX0lGX0NGRywKPiArICAgICAgICAgICAgICAgICAg ICBQSFlfU1RPUF9XQUlUX1RJTUUoMHgyMCkgfCBOX0xBTkVTKGRzaS0+bGFuZXMpKTsKPiAgfQo+ Cj4gIHN0YXRpYyB2b2lkIGR3X21pcGlfZHNpX2RwaHlfaW5pdChzdHJ1Y3QgZHdfbWlwaV9kc2kg KmRzaSkKPiAgewo+ICAgICAgICAgLyogQ2xlYXIgUEhZIHN0YXRlICovCj4gLSAgICAgICBkc2lf d3JpdGUoZHNpLCBEU0lfUEhZX1JTVFosIFBIWV9ESVNGT1JDRVBMTCB8IFBIWV9ESVNBQkxFQ0xL Cj4gLSAgICAgICAgICAgICAgICAgfCBQSFlfUlNUWiB8IFBIWV9TSFVURE9XTlopOwo+IC0gICAg ICAgZHNpX3dyaXRlKGRzaSwgRFNJX1BIWV9UU1RfQ1RSTDAsIFBIWV9VTlRFU1RDTFIpOwo+IC0g ICAgICAgZHNpX3dyaXRlKGRzaSwgRFNJX1BIWV9UU1RfQ1RSTDAsIFBIWV9URVNUQ0xSKTsKPiAt ICAgICAgIGRzaV93cml0ZShkc2ksIERTSV9QSFlfVFNUX0NUUkwwLCBQSFlfVU5URVNUQ0xSKTsK PiArICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3MsIERTSV9QSFlfUlNUWiwgUEhZX0RJU0ZP UkNFUExMIHwgUEhZX0RJU0FCTEVDTEsKPiArICAgICAgICAgICAgICAgICAgICB8IFBIWV9SU1Ra IHwgUEhZX1NIVVRET1dOWik7Cj4gKyAgICAgICByZWdtYXBfd3JpdGUoZHNpLT5yZWdzLCBEU0lf UEhZX1RTVF9DVFJMMCwgUEhZX1VOVEVTVENMUik7Cj4gKyAgICAgICByZWdtYXBfd3JpdGUoZHNp LT5yZWdzLCBEU0lfUEhZX1RTVF9DVFJMMCwgUEhZX1RFU1RDTFIpOwo+ICsgICAgICAgcmVnbWFw X3dyaXRlKGRzaS0+cmVncywgRFNJX1BIWV9UU1RfQ1RSTDAsIFBIWV9VTlRFU1RDTFIpOwo+ICB9 Cj4KPiAgc3RhdGljIHZvaWQgZHdfbWlwaV9kc2lfZHBoeV9lbmFibGUoc3RydWN0IGR3X21pcGlf ZHNpICpkc2kpCj4gIHsKPiAtICAgICAgIHUzMiB2YWw7Cj4gKyAgICAgICB1MzIgdmFsID0gMDsK CmRpdHRvCgo+ICAgICAgICAgaW50IHJldDsKPgo+IC0gICAgICAgZHNpX3dyaXRlKGRzaSwgRFNJ X1BIWV9SU1RaLCBQSFlfRU5GT1JDRVBMTCB8IFBIWV9FTkFCTEVDTEsgfAo+IC0gICAgICAgICAg ICAgICAgIFBIWV9VTlJTVFogfCBQSFlfVU5TSFVURE9XTlopOwo+ICsgICAgICAgcmVnbWFwX3dy aXRlKGRzaS0+cmVncywgRFNJX1BIWV9SU1RaLCBQSFlfRU5GT1JDRVBMTCB8IFBIWV9FTkFCTEVD TEsgfAo+ICsgICAgICAgICAgICAgICAgICAgIFBIWV9VTlJTVFogfCBQSFlfVU5TSFVURE9XTlop Owo+Cj4gLSAgICAgICByZXQgPSByZWFkbF9wb2xsX3RpbWVvdXQoZHNpLT5iYXNlICsgRFNJX1BI WV9TVEFUVVMsIHZhbCwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgJiBQ SFlfTE9DSywgMTAwMCwgUEhZX1NUQVRVU19USU1FT1VUX1VTKTsKPiArICAgICAgIHJldCA9IHJl Z21hcF9yZWFkX3BvbGxfdGltZW91dChkc2ktPnJlZ3MsIERTSV9QSFlfU1RBVFVTLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCwgdmFsICYgUEhZX0xPQ0ssCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMCwgUEhZX1NUQVRVU19U SU1FT1VUX1VTKTsKPiAgICAgICAgIGlmIChyZXQpCj4gICAgICAgICAgICAgICAgIERSTV9ERUJV R19EUklWRVIoImZhaWxlZCB0byB3YWl0IHBoeSBsb2NrIHN0YXRlXG4iKTsKPgo+IC0gICAgICAg cmV0ID0gcmVhZGxfcG9sbF90aW1lb3V0KGRzaS0+YmFzZSArIERTSV9QSFlfU1RBVFVTLAo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCwgdmFsICYgUEhZX1NUT1BfU1RBVEVf Q0xLX0xBTkUsIDEwMDAsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhZX1NU QVRVU19USU1FT1VUX1VTKTsKPiArICAgICAgIHJldCA9IHJlZ21hcF9yZWFkX3BvbGxfdGltZW91 dChkc2ktPnJlZ3MsIERTSV9QSFlfU1RBVFVTLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZhbCwgdmFsICYgUEhZX1NUT1BfU1RBVEVfQ0xLX0xBTkUsIDEwMDAsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhZX1NUQVRVU19USU1FT1VU X1VTKTsKPiAgICAgICAgIGlmIChyZXQpCj4gICAgICAgICAgICAgICAgIERSTV9ERUJVR19EUklW RVIoImZhaWxlZCB0byB3YWl0IHBoeSBjbGsgbGFuZSBzdG9wIHN0YXRlXG4iKTsKPiAgfQo+Cj4g IHN0YXRpYyB2b2lkIGR3X21pcGlfZHNpX2NsZWFyX2VycihzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRz aSkKPiAgewo+IC0gICAgICAgZHNpX3JlYWQoZHNpLCBEU0lfSU5UX1NUMCk7Cj4gLSAgICAgICBk c2lfcmVhZChkc2ksIERTSV9JTlRfU1QxKTsKPiAtICAgICAgIGRzaV93cml0ZShkc2ksIERTSV9J TlRfTVNLMCwgMCk7Cj4gLSAgICAgICBkc2lfd3JpdGUoZHNpLCBEU0lfSU5UX01TSzEsIDApOwo+ ICsgICAgICAgdTMyIHZhbDsKPiArCj4gKyAgICAgICByZWdtYXBfcmVhZChkc2ktPnJlZ3MsIERT SV9JTlRfU1QwLCAmdmFsKTsKPiArICAgICAgIHJlZ21hcF9yZWFkKGRzaS0+cmVncywgRFNJX0lO VF9TVDEsICZ2YWwpOwo+ICsgICAgICAgcmVnbWFwX3dyaXRlKGRzaS0+cmVncywgRFNJX0lOVF9N U0swLCAwKTsKPiArICAgICAgIHJlZ21hcF93cml0ZShkc2ktPnJlZ3MsIERTSV9JTlRfTVNLMSwg MCk7Cj4gIH0KPgo+ICBzdGF0aWMgdm9pZCBkd19taXBpX2RzaV9icmlkZ2VfcG9zdF9kaXNhYmxl KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gQEAgLTk4OSw2ICs5OTcsMTQgQEAgc3RhdGlj IHZvaWQgZHdfbWlwaV9kc2lfZGVidWdmc19yZW1vdmUoc3RydWN0IGR3X21pcGlfZHNpICpkc2kp IHsgfQo+Cj4gICNlbmRpZiAvKiBDT05GSUdfREVCVUdfRlMgKi8KPgo+ICtzdGF0aWMgdm9pZCBk d19taXBpX2RzaV9nZXRfaHdfdmVyc2lvbihzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSkKPiArewo+ ICsgICAgICAgcmVnbWFwX3JlYWQoZHNpLT5yZWdzLCBEU0lfVkVSU0lPTiwgJmRzaS0+aHdfdmVy c2lvbik7Cj4gKyAgICAgICBkc2ktPmh3X3ZlcnNpb24gJj0gVkVSU0lPTjsKPiArICAgICAgIGlm ICghZHNpLT5od192ZXJzaW9uKQo+ICsgICAgICAgICAgICAgICBkZXZfZXJyKGRzaS0+ZGV2LCAi RmFpbGVkIHRvIHJlYWQgRFNJIGh3IHZlcnNpb24gcmVnaXN0ZXJcbiIpOwoKSXMgdGhpcyBhbiBl cnJvciB0aGF0IHNob3VsZCBiZSBpZ25vcmVkPyBJZiB5b3UgY2FuJ3QgZ2V0IHRoZSBIVwp2ZXJz aW9uLCBwcm9iYWJseSwgdGhlcmUgaXMgc29tZXRoaW5nIHdyb25nIHdpdGggeW91ciBoYXJkd2Fy ZSBzbywKZG9uJ3QgeW91IG5lZWQgdG8gcmV0dXJuIGFuIGVycm9yPwoKCj4gK30KPiArCj4gIHN0 YXRpYyBzdHJ1Y3QgZHdfbWlwaV9kc2kgKgo+ICBfX2R3X21pcGlfZHNpX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg ZHdfbWlwaV9kc2lfcGxhdF9kYXRhICpwbGF0X2RhdGEpCj4gQEAgLTEwMjAsNiArMTAzNiwxNCBA QCBfX2R3X21pcGlfZHNpX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gICAg ICAgICAgICAgICAgIGRzaS0+YmFzZSA9IHBsYXRfZGF0YS0+YmFzZTsKPiAgICAgICAgIH0KPgo+ ICsgICAgICAgZHNpLT5yZWdzID0gZGV2bV9yZWdtYXBfaW5pdF9tbWlvKGRldiwgZHNpLT5iYXNl LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkd19taXBpX2Rz aV9yZWdtYXBfY2ZnKTsKPiArICAgICAgIGlmIChJU19FUlIoZHNpLT5yZWdzKSkgewo+ICsgICAg ICAgICAgICAgICByZXQgPSBQVFJfRVJSKGRzaS0+cmVncyk7Cj4gKyAgICAgICAgICAgICAgIERS TV9FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBEVyBNSVBJIERTSSByZWdtYXA6ICVkXG4iLCByZXQp Owo+ICsgICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUihyZXQpOwo+ICsgICAgICAgfQo+ICsK PiAgICAgICAgIGRzaS0+cGNsayA9IGRldm1fY2xrX2dldChkZXYsICJwY2xrIik7Cj4gICAgICAg ICBpZiAoSVNfRVJSKGRzaS0+cGNsaykpIHsKPiAgICAgICAgICAgICAgICAgcmV0ID0gUFRSX0VS Uihkc2ktPnBjbGspOwo+IEBAIC0xMDU1LDYgKzEwNzksOCBAQCBfX2R3X21pcGlfZHNpX3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gICAgICAgICAgICAgICAgIGNsa19kaXNh YmxlX3VucHJlcGFyZShkc2ktPnBjbGspOwo+ICAgICAgICAgfQo+Cj4gKyAgICAgICBkd19taXBp X2RzaV9nZXRfaHdfdmVyc2lvbihkc2kpOwo+ICsKPiAgICAgICAgIGR3X21pcGlfZHNpX2RlYnVn ZnNfaW5pdChkc2kpOwo+ICAgICAgICAgcG1fcnVudGltZV9lbmFibGUoZGV2KTsKPgo+IC0tCj4g Mi4yNi4wCj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==