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.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,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 16CF6C54FCB for ; Thu, 23 Apr 2020 18:20:36 +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 C2A6820767 for ; Thu, 23 Apr 2020 18:20:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="PqUasEyd"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="q25kiY4l" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C2A6820767 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-mediatek-bounces+linux-mediatek=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=ZQ9wqLe58ED1JH8RFaaAt7RAwtu3RbOvCRjoosf5BMI=; b=PqUasEyd4bE7Qh p3rYDVZ+zW3XSfRd5sik1BTu4gS8X0vzr7tARb13esp886OSnxSvDOefO3sUjMV+KVDdwUL1qPwwh 1VF2m4/knvkDUrPc3NgIZZIMjXTswptWjzAFybFu5LdEclOClIL31mffcUQ2oE1QXBwGnBCToUmTd xbZk2PysRsTN7AITltwUjh42JhKvwKINNAgfHAxbdkvAs2p/HDkotNC2YqfN8at9LU3OJuMLKCyIn OqgTfIMhF5Qn/buIZR2vIPO5LcStjuxDPPu7j9IzF3oP61VHi2YBd6w2xu9iutj9mPrD90Wc6D/ta 9utmR4GnqOlUeCOSwH2w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jRgSZ-00086d-0O; Thu, 23 Apr 2020 18:20:27 +0000 Received: from mail-qt1-x841.google.com ([2607:f8b0:4864:20::841]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jRgSC-0005Lm-0V; Thu, 23 Apr 2020 18:20:07 +0000 Received: by mail-qt1-x841.google.com with SMTP id c23so5141556qtp.11; Thu, 23 Apr 2020 11:20:02 -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=9GSc+XJA60ifVVRdwUR6EJUxO4rYwjfZ3dYenTrxt+E=; b=q25kiY4liUw6GYd7VF7kqLrM96lKL7cn/iayUurPy6QPoKL+utm9D+Wst6m5SsCSK8 lTg99yrX4LsbOOWRxGlZU4A5XFCyzCJ9dnUDvCThbUykawNVvwvtBvjE2J1AdQ/3Pnok BSNCyEoTozEAsLMq7ggmD1wdW6st4NygRRWFheE7/cut0rHcel/CKLxTTgLJWKQkc9Rc rVa7ijpj07uImHHMQWkEi/fIlLpxJRKX+H4z7atNcl90IO1YLcNpz83ldQqMkWsGOfQP bDcbJdDPHyVO2OSPA9KAf3wrMxCAqMg6xxY/Y7fsEaCF8rYwE/Bxsn4/Rpmod12TK5a7 104Q== 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=9GSc+XJA60ifVVRdwUR6EJUxO4rYwjfZ3dYenTrxt+E=; b=tzEU/Tur+O71GKyUYzig4bD9nzxngsaqrHVwzUirnScxwIsZOagpU5s814zM02KAo+ Cu+uYBbDOL9ILXwsSes5sNtTdd8LxwHKyD7a94pJWwcouvpeEG6D4RJ+LThMq7RkKaS1 aZXNBkomhgybmnFOjor3DZQpvwfCN8HurokmVuEePVjfGe14nbxvYhaMIX4B6vX0uToN X6BjDfLoRgw4kb+DxLzRej8XIenUI6nD82KyUJkHJOcgEsHBOXy6xN8ycnv/805WQoc3 XXn3r2KSwV92WdRNpz0GCSd/21cSHm/R0KwGOWose/SAsGTmPZBoZao5np63kPr/0eyn hQ8A== X-Gm-Message-State: AGi0PuYOQxdqmB0tG/vDEWAHoTd7d0KgtWx3YyJ4aI9Eirir7K+vHOSV oo2m7ZMbqOVzXolCGqe8xpCX1rgJ/DXt7iEGzIM= X-Google-Smtp-Source: APiQypI8enSeot7dUs5JCNXuCdvmdb9Y2zZzgFolF6y9Dj1KJM/f1YoppoEmEnMxYn3GMi4ATgniyPaidaCGa4VQDtU= X-Received: by 2002:aed:24ee:: with SMTP id u43mr5363655qtc.178.1587666001054; Thu, 23 Apr 2020 11:20:01 -0700 (PDT) MIME-Version: 1.0 References: <1584689540-5227-1-git-send-email-weiyi.lu@mediatek.com> <1584689540-5227-6-git-send-email-weiyi.lu@mediatek.com> In-Reply-To: <1584689540-5227-6-git-send-email-weiyi.lu@mediatek.com> From: Enric Balletbo Serra Date: Thu, 23 Apr 2020 20:19:48 +0200 Message-ID: Subject: Re: [PATCH v13 05/11] soc: mediatek: Add multiple step bus protection control To: Weiyi Lu X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200423_112004_334762_E5082D2D X-CRM114-Status: GOOD ( 23.13 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Herring , Nicolas Boichat , srv_heupstream , James Liao , linux-kernel , Fan Chen , "moderated list:ARM/Mediatek SoC support" , Sascha Hauer , Matthias Brugger , Linux ARM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org SGkgV2l5aSBMdSwKClRoYW5rIHlvdSBmb3IgeW91ciBwYXRjaC4KCk1pc3NhdGdlIGRlIFdlaXlp IEx1IDx3ZWl5aS5sdUBtZWRpYXRlay5jb20+IGRlbCBkaWEgZHYuLCAyMCBkZSBtYXLDpwoyMDIw IGEgbGVzIDg6MzM6Cj4KPiBCb3RoIE1UODE4MyAmIE1UNjc2NSBoYXZlIG1vcmUgY29udHJvbCBz dGVwcyBvZiBidXMgcHJvdGVjdGlvbgo+IHRoYW4gcHJldmlvdXMgcHJvamVjdC4gQW5kIHRoZXJl IGFkZCBtb3JlIGJ1cyBwcm90ZWN0aW9uIHJlZ2lzdGVycwo+IHJlc2lkZSBhdCBpbmZyYWNmZyAm IHNtaS1jb21tb24uCj4gRXh0ZW5kIGZ1bmN0aW9uIHRvIHN1cHBvcnQgbXVsdGlwbGUgc3RlcCBi dXMgcHJvdGVjdGlvbiBjb250cm9sCj4gd2l0aCBtb3JlIGN1c3RvbWl6ZWQgYXJndW1lbnRzLgo+ IEFuZCB0aGVuIHVzZSBicF90YWJsZSBmb3IgYnVzIHByb3RlY3Rpb24gb2YgYWxsIGNvbXBhdGli bGVzLAo+IGluc3RlYWQgb2YgbWl4aW5nIGJ1c19wcm90X21hc2sgYW5kIGJ1c19wcm90X3JlZ191 cGRhdGUuCj4KPiBTaWduZWQtb2ZmLWJ5OiBXZWl5aSBMdSA8d2VpeWkubHVAbWVkaWF0ZWsuY29t Pgo+IC0tLQo+ICBkcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstc2Nwc3lzLmMgfCAyMDYgKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9zb2MvbWVkaWF0ZWsv c2Nwc3lzLmggICAgIHwgIDQyICsrKysrKystCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTgyIGluc2Vy dGlvbnMoKyksIDY2IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc29jL21l ZGlhdGVrL210ay1zY3BzeXMuYyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL210ay1zY3BzeXMuYwo+ IGluZGV4IGU1MGE1NjguLmE0ZmIwYjIzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvc29jL21lZGlh dGVrL210ay1zY3BzeXMuYwo+ICsrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL210ay1zY3BzeXMu Ywo+IEBAIC04OCw5ICs4OCw5IEBACj4gICAqIEBjdGxfb2ZmczogVGhlIG9mZnNldCBmb3IgbWFp biBwb3dlciBjb250cm9sIHJlZ2lzdGVyLgo+ICAgKiBAc3JhbV9wZG5fYml0czogVGhlIG1hc2sg Zm9yIHNyYW0gcG93ZXIgY29udHJvbCBiaXRzLgo+ICAgKiBAc3JhbV9wZG5fYWNrX2JpdHM6IFRo ZSBtYXNrIGZvciBzcmFtIHBvd2VyIGNvbnRyb2wgYWNrZWQgYml0cy4KPiAtICogQGJ1c19wcm90 X21hc2s6IFRoZSBtYXNrIGZvciBzaW5nbGUgc3RlcCBidXMgcHJvdGVjdGlvbi4KPiAgICogQGJh c2ljX2Nsa19uYW1lOiBUaGUgYmFzaWMgY2xvY2tzIHJlcXVpcmVkIGJ5IHRoaXMgcG93ZXIgZG9t YWluLgo+ICAgKiBAY2FwczogVGhlIGZsYWcgZm9yIGFjdGl2ZSB3YWtlLXVwIGFjdGlvbi4KPiAr ICogQGJwX3RhYmxlOiBUaGUgbWFzayB0YWJsZSBmb3IgbXVsdGlwbGUgc3RlcCBidXMgcHJvdGVj dGlvbi4KPiAgICovCj4gIHN0cnVjdCBzY3BfZG9tYWluX2RhdGEgewo+ICAgICAgICAgY29uc3Qg Y2hhciAqbmFtZTsKPiBAQCAtOTgsOSArOTgsOSBAQCBzdHJ1Y3Qgc2NwX2RvbWFpbl9kYXRhIHsK PiAgICAgICAgIGludCBjdGxfb2ZmczsKPiAgICAgICAgIHUzMiBzcmFtX3Bkbl9iaXRzOwo+ICAg ICAgICAgdTMyIHNyYW1fcGRuX2Fja19iaXRzOwo+IC0gICAgICAgdTMyIGJ1c19wcm90X21hc2s7 Cj4gICAgICAgICBjb25zdCBjaGFyICpiYXNpY19jbGtfbmFtZVtNQVhfQ0xLU107Cj4gICAgICAg ICB1OCBjYXBzOwo+ICsgICAgICAgc3RydWN0IGJ1c19wcm90IGJwX3RhYmxlW01BWF9TVEVQU107 Cj4gIH07Cj4KPiAgc3RydWN0IHNjcDsKPiBAQCAtMTI0LDggKzEyNCw4IEBAIHN0cnVjdCBzY3Ag ewo+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2Owo+ICAgICAgICAgdm9pZCBfX2lvbWVtICpi YXNlOwo+ICAgICAgICAgc3RydWN0IHJlZ21hcCAqaW5mcmFjZmc7Cj4gKyAgICAgICBzdHJ1Y3Qg cmVnbWFwICpzbWlfY29tbW9uOwo+ICAgICAgICAgc3RydWN0IHNjcF9jdHJsX3JlZyBjdHJsX3Jl ZzsKPiAtICAgICAgIGJvb2wgYnVzX3Byb3RfcmVnX3VwZGF0ZTsKPiAgfTsKPgo+ICBzdHJ1Y3Qg c2NwX3N1YmRvbWFpbiB7Cj4gQEAgLTEzOSw3ICsxMzksNiBAQCBzdHJ1Y3Qgc2NwX3NvY19kYXRh IHsKPiAgICAgICAgIGNvbnN0IHN0cnVjdCBzY3Bfc3ViZG9tYWluICpzdWJkb21haW5zOwo+ICAg ICAgICAgaW50IG51bV9zdWJkb21haW5zOwo+ICAgICAgICAgY29uc3Qgc3RydWN0IHNjcF9jdHJs X3JlZyByZWdzOwo+IC0gICAgICAgYm9vbCBidXNfcHJvdF9yZWdfdXBkYXRlOwo+ICB9Owo+Cj4g IHN0YXRpYyBpbnQgc2Nwc3lzX2RvbWFpbl9pc19vbihzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2NwZCkK PiBAQCAtMjQ5LDUzICsyNDgsMTAyIEBAIHN0YXRpYyBpbnQgc2Nwc3lzX3NyYW1fZGlzYWJsZShz dHJ1Y3Qgc2NwX2RvbWFpbiAqc2NwZCwgdm9pZCBfX2lvbWVtICpjdGxfYWRkcikKPiAgICAgICAg ICAgICAgICAgICAgICAgICBNVEtfUE9MTF9ERUxBWV9VUywgTVRLX1BPTExfVElNRU9VVCk7Cj4g IH0KPgo+ICtzdGF0aWMgaW50IHNldF9idXNfcHJvdGVjdGlvbihzdHJ1Y3QgcmVnbWFwICptYXAs IHN0cnVjdCBidXNfcHJvdCAqYnApCj4gK3sKPiArICAgICAgIHUzMiB2YWw7Cj4gKyAgICAgICB1 MzIgc2V0X29mcyA9IGJwLT5zZXRfb2ZzOwo+ICsgICAgICAgdTMyIGVuX29mcyA9IGJwLT5lbl9v ZnM7Cj4gKyAgICAgICB1MzIgc3RhX29mcyA9IGJwLT5zdGFfb2ZzOwo+ICsgICAgICAgdTMyIG1h c2sgPSBicC0+bWFzazsKClJlbW92ZSB1bm5lY2Vzc2FyeSBsb2NhbCB2YXJpYWJsZXMgKHNldF9v ZnMsIGVuX29mcywgc3RhX29mcyBhbmQKbWFzayksIGFuZCB1c2UgdGhlaXIgYnAtPiBmb3JtIGRp cmVjdGx5LgoKPiArCj4gKyAgICAgICBpZiAoc2V0X29mcykKPiArICAgICAgICAgICAgICAgcmVn bWFwX3dyaXRlKG1hcCwgc2V0X29mcywgbWFzayk7Cj4gKyAgICAgICBlbHNlCj4gKyAgICAgICAg ICAgICAgIHJlZ21hcF91cGRhdGVfYml0cyhtYXAsIGVuX29mcywgbWFzaywgbWFzayk7Cj4gKwo+ ICsgICAgICAgcmV0dXJuIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChtYXAsIHN0YV9vZnMsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgdmFsLCAodmFsICYgbWFzaykgPT0gbWFzaywKPiArICAg ICAgICAgICAgICAgICAgICAgICBNVEtfUE9MTF9ERUxBWV9VUywgTVRLX1BPTExfVElNRU9VVCk7 Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgY2xlYXJfYnVzX3Byb3RlY3Rpb24oc3RydWN0IHJlZ21h cCAqbWFwLCBzdHJ1Y3QgYnVzX3Byb3QgKmJwKQo+ICt7Cj4gKyAgICAgICB1MzIgdmFsOwo+ICsg ICAgICAgdTMyIGNscl9vZnMgPSBicC0+Y2xyX29mczsKPiArICAgICAgIHUzMiBlbl9vZnMgPSBi cC0+ZW5fb2ZzOwo+ICsgICAgICAgdTMyIHN0YV9vZnMgPSBicC0+c3RhX29mczsKPiArICAgICAg IHUzMiBtYXNrID0gYnAtPm1hc2s7Cj4gKyAgICAgICBib29sIGlnbm9yZV9hY2sgPSBicC0+aWdu b3JlX2Nscl9hY2s7CgpSZW1vdmUgdW5uZWNlc3NhcnkgbG9jYWwgdmFyaWFibGVzIChjbHJfb2Zz LCBlbl9vZnMsIHN0YV9vZnMsIG1hc2sgYW5kCmlnbm9yZV9hY2spLCBhbmQgdXNlIHRoZWlyIGJw LT4gZm9ybSBkaXJlY3RseS4KCj4gKwo+ICsgICAgICAgaWYgKGNscl9vZnMpCj4gKyAgICAgICAg ICAgICAgIHJlZ21hcF93cml0ZShtYXAsIGNscl9vZnMsIG1hc2spOwo+ICsgICAgICAgZWxzZQo+ ICsgICAgICAgICAgICAgICByZWdtYXBfdXBkYXRlX2JpdHMobWFwLCBlbl9vZnMsIG1hc2ssIDAp Owo+ICsKPiArICAgICAgIGlmIChpZ25vcmVfYWNrKQo+ICsgICAgICAgICAgICAgICByZXR1cm4g MDsKPiArCj4gKyAgICAgICByZXR1cm4gcmVnbWFwX3JlYWRfcG9sbF90aW1lb3V0KG1hcCwgc3Rh X29mcywKPiArICAgICAgICAgICAgICAgICAgICAgICB2YWwsICEodmFsICYgbWFzayksCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgTVRLX1BPTExfREVMQVlfVVMsIE1US19QT0xMX1RJTUVPVVQp Owo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IHNjcHN5c19idXNfcHJvdGVjdF9lbmFibGUoc3RydWN0 IHNjcF9kb21haW4gKnNjcGQpCj4gIHsKPiAgICAgICAgIHN0cnVjdCBzY3AgKnNjcCA9IHNjcGQt PnNjcDsKPiArICAgICAgIGNvbnN0IHN0cnVjdCBidXNfcHJvdCAqYnBfdGFibGUgPSBzY3BkLT5k YXRhLT5icF90YWJsZTsKPiAgICAgICAgIHN0cnVjdCByZWdtYXAgKmluZnJhY2ZnID0gc2NwLT5p bmZyYWNmZzsKPiAtICAgICAgIHUzMiBtYXNrID0gc2NwZC0+ZGF0YS0+YnVzX3Byb3RfbWFzazsK PiAtICAgICAgIGJvb2wgcmVnX3VwZGF0ZSA9IHNjcC0+YnVzX3Byb3RfcmVnX3VwZGF0ZTsKPiAt ICAgICAgIHUzMiB2YWw7Cj4gLSAgICAgICBpbnQgcmV0OwoKTm8gbmVlZCB0byByZW1vdmUgcmV0 IGlmIHlvdSdyZSBnb2luZyB0byBhZGQgYW55d2F5IGxhdGVyLgoKPiArICAgICAgIHN0cnVjdCBy ZWdtYXAgKnNtaV9jb21tb24gPSBzY3AtPnNtaV9jb21tb247Cj4gKyAgICAgICBpbnQgaTsKPgo+ IC0gICAgICAgaWYgKCFtYXNrKQo+IC0gICAgICAgICAgICAgICByZXR1cm4gMDsKPiArICAgICAg IGZvciAoaSA9IDA7IGkgPCBNQVhfU1RFUFM7IGkrKykgewo+ICsgICAgICAgICAgICAgICBzdHJ1 Y3QgcmVnbWFwICptYXAgPSBOVUxMOwoKRGVjbGFyZSB0aGlzIG9uIHRvcCBvZiB0aGUgZnVuY3Rp b24gYW5kIG5vIG5lZWQgdG8gaW5pdGlhbGl6ZSB0byBOVWxMCgo+ICsgICAgICAgICAgICAgICBp bnQgcmV0Owo+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgYnVzX3Byb3QgYnAgPSBicF90YWJsZVtp XTsKClVubmVlZGVkIGxvY2FsIHZhcmlhYmxlIC4uLgoKPgo+IC0gICAgICAgaWYgKHJlZ191cGRh dGUpCj4gLSAgICAgICAgICAgICAgIHJlZ21hcF91cGRhdGVfYml0cyhpbmZyYWNmZywgSU5GUkFf VE9QQVhJX1BST1RFQ1RFTiwgbWFzaywKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1hc2spOwo+IC0gICAgICAgZWxzZQo+IC0gICAgICAgICAgICAgICByZWdtYXBfd3JpdGUoaW5m cmFjZmcsIElORlJBX1RPUEFYSV9QUk9URUNURU5fU0VULCBtYXNrKTsKPiArICAgICAgICAgICAg ICAgaWYgKGJwLnR5cGUgPT0gSUZSX1RZUEUpCgpicF90YWJsZVtpXS50eXBlPwoKPiArICAgICAg ICAgICAgICAgICAgICAgICBtYXAgPSBpbmZyYWNmZzsKPiArICAgICAgICAgICAgICAgZWxzZSBp ZiAoYnAudHlwZSA9PSBTTUlfVFlQRSkKCmRpdHRvCgo+ICsgICAgICAgICAgICAgICAgICAgICAg IG1hcCA9IHNtaV9jb21tb247Cj4gKyAgICAgICAgICAgICAgIGVsc2UKPiArICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKClNvIGlmIHRoZSB0eXBlIGlzIGludmFsaWQgeW91IGJyZWFrIHRo ZSBsb29wLCB0aGlzIGlzIGRpZmZlcmVudCB0bwp3aGF0IHlvdSBhcmUgZG9pbmcgYmVsb3cgd2l0 aCB0aGUgc2Nwc3lzX2J1c19wcm90ZWN0X3Byb3RlY3RfZGlzYWJsZSgpCmZ1bmN0aW9uIHdoZXJl IHlvdSBhcmUgImlnbm9yaW5nIiBpbnN0ZWFkIG9mIGJlYWtpbmcgdGhlIGxvb3AuIEkgYW0Kd29u ZGVyaW5nIHdoeT8gTG9va3MgdG8gbWUgdGhhdCwgb3IgeW91IGJyZWFrIGFuZCBwcmludCBhbiBl cnJvcgpiZWNhdXNlIHNvbWV0aGluZyB3YXMgcmVhbGx5IHdyb25nPyBvciB5b3UgaWdub3JlIGlu IGJvdGggY2FzZXM/Cgo+Cj4gLSAgICAgICByZXQgPSByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQo aW5mcmFjZmcsIElORlJBX1RPUEFYSV9QUk9URUNUU1RBMSwKPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2YWwsICh2YWwgJiBtYXNrKSA9PSBtYXNrLAo+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1US19QT0xMX0RFTEFZX1VTLCBNVEtfUE9M TF9USU1FT1VUKTsKPiArICAgICAgICAgICAgICAgcmV0ID0gc2V0X2J1c19wcm90ZWN0aW9uKG1h cCwgJmJwKTsKPgo+IC0gICAgICAgcmV0dXJuIHJldDsKPiArICAgICAgICAgICAgICAgaWYgKHJl dCkKPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ICsgICAgICAgfQo+ICsK PiArICAgICAgIHJldHVybiAwOwo+ICB9Cj4KPiAgc3RhdGljIGludCBzY3BzeXNfYnVzX3Byb3Rl Y3RfZGlzYWJsZShzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2NwZCkKPiAgewo+ICAgICAgICAgc3RydWN0 IHNjcCAqc2NwID0gc2NwZC0+c2NwOwo+ICsgICAgICAgY29uc3Qgc3RydWN0IGJ1c19wcm90ICpi cF90YWJsZSA9IHNjcGQtPmRhdGEtPmJwX3RhYmxlOwo+ICAgICAgICAgc3RydWN0IHJlZ21hcCAq aW5mcmFjZmcgPSBzY3AtPmluZnJhY2ZnOwo+IC0gICAgICAgdTMyIG1hc2sgPSBzY3BkLT5kYXRh LT5idXNfcHJvdF9tYXNrOwo+IC0gICAgICAgYm9vbCByZWdfdXBkYXRlID0gc2NwLT5idXNfcHJv dF9yZWdfdXBkYXRlOwo+IC0gICAgICAgdTMyIHZhbDsKPiAtICAgICAgIGludCByZXQ7Cj4gKyAg ICAgICBzdHJ1Y3QgcmVnbWFwICpzbWlfY29tbW9uID0gc2NwLT5zbWlfY29tbW9uOwo+ICsgICAg ICAgaW50IGk7Cj4KPiAtICAgICAgIGlmICghbWFzaykKPiAtICAgICAgICAgICAgICAgcmV0dXJu IDA7Cj4gKyAgICAgICBmb3IgKGkgPSBNQVhfU1RFUFMgLSAxOyBpID49IDA7IGktLSkgewo+ICsg ICAgICAgICAgICAgICBzdHJ1Y3QgcmVnbWFwICptYXAgPSBOVUxMOwo+ICsgICAgICAgICAgICAg ICBpbnQgcmV0Owo+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgYnVzX3Byb3QgYnAgPSBicF90YWJs ZVtpXTsKClRoZSBzYW1lIGNvbW1lbnRzIGRvbmUgZm9yIHNjcHN5c19idXNfcHJvdGVjdF9kaXNh YmxlIGFwcGx5IGhlcmUuCgo+Cj4gLSAgICAgICBpZiAocmVnX3VwZGF0ZSkKPiAtICAgICAgICAg ICAgICAgcmVnbWFwX3VwZGF0ZV9iaXRzKGluZnJhY2ZnLCBJTkZSQV9UT1BBWElfUFJPVEVDVEVO LCBtYXNrLCAwKTsKPiAtICAgICAgIGVsc2UKPiAtICAgICAgICAgICAgICAgcmVnbWFwX3dyaXRl KGluZnJhY2ZnLCBJTkZSQV9UT1BBWElfUFJPVEVDVEVOX0NMUiwgbWFzayk7Cj4gKyAgICAgICAg ICAgICAgIGlmIChicC50eXBlID09IElGUl9UWVBFKQo+ICsgICAgICAgICAgICAgICAgICAgICAg IG1hcCA9IGluZnJhY2ZnOwo+ICsgICAgICAgICAgICAgICBlbHNlIGlmIChicC50eXBlID09IFNN SV9UWVBFKQo+ICsgICAgICAgICAgICAgICAgICAgICAgIG1hcCA9IHNtaV9jb21tb247Cj4gKyAg ICAgICAgICAgICAgIGVsc2UKPiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPgo+ IC0gICAgICAgcmV0ID0gcmVnbWFwX3JlYWRfcG9sbF90aW1lb3V0KGluZnJhY2ZnLCBJTkZSQV9U T1BBWElfUFJPVEVDVFNUQTEsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFsLCAhKHZhbCAmIG1hc2spLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE1US19QT0xMX0RFTEFZX1VTLCBNVEtfUE9MTF9USU1FT1VUKTsKPiArICAgICAgICAg ICAgICAgcmV0ID0gY2xlYXJfYnVzX3Byb3RlY3Rpb24obWFwLCAmYnApOwo+Cj4gLSAgICAgICBy ZXR1cm4gcmV0Owo+ICsgICAgICAgICAgICAgICBpZiAocmV0KQo+ICsgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiByZXQ7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgcmV0dXJuIDA7Cj4g IH0KPgo+ICBzdGF0aWMgaW50IHNjcHN5c19wb3dlcl9vbihzdHJ1Y3QgZ2VuZXJpY19wbV9kb21h aW4gKmdlbnBkKQo+IEBAIC00MzAsOCArNDc4LDcgQEAgc3RhdGljIGludCBpbml0X2Jhc2ljX2Ns a3Moc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgc3RydWN0IGNsayAqKmNsaywKPgo+ICBz dGF0aWMgc3RydWN0IHNjcCAqaW5pdF9zY3Aoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwK PiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc2NwX2RvbWFpbl9kYXRhICpz Y3BfZG9tYWluX2RhdGEsIGludCBudW0sCj4gLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IHNjcF9jdHJsX3JlZyAqc2NwX2N0cmxfcmVnLAo+IC0gICAgICAgICAgICAgICAgICAg ICAgIGJvb2wgYnVzX3Byb3RfcmVnX3VwZGF0ZSkKPiArICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3Qgc2NwX2N0cmxfcmVnICpzY3BfY3RybF9yZWcpCj4gIHsKPiAgICAgICAgIHN0 cnVjdCBnZW5wZF9vbmVjZWxsX2RhdGEgKnBkX2RhdGE7Cj4gICAgICAgICBzdHJ1Y3QgcmVzb3Vy Y2UgKnJlczsKPiBAQCAtNDQ1LDggKzQ5Miw2IEBAIHN0YXRpYyBzdHJ1Y3Qgc2NwICppbml0X3Nj cChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICAgICAgICAgc2NwLT5jdHJsX3JlZy5w d3Jfc3RhX29mZnMgPSBzY3BfY3RybF9yZWctPnB3cl9zdGFfb2ZmczsKPiAgICAgICAgIHNjcC0+ Y3RybF9yZWcucHdyX3N0YTJuZF9vZmZzID0gc2NwX2N0cmxfcmVnLT5wd3Jfc3RhMm5kX29mZnM7 Cj4KPiAtICAgICAgIHNjcC0+YnVzX3Byb3RfcmVnX3VwZGF0ZSA9IGJ1c19wcm90X3JlZ191cGRh dGU7Cj4gLQo+ICAgICAgICAgc2NwLT5kZXYgPSAmcGRldi0+ZGV2Owo+Cj4gICAgICAgICByZXMg PSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+IEBAIC00 NzQsNiArNTE5LDE3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2NwICppbml0X3NjcChzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2LAo+ICAgICAgICAgICAgICAgICByZXR1cm4gRVJSX0NBU1Qoc2NwLT5p bmZyYWNmZyk7Cj4gICAgICAgICB9Cj4KPiArICAgICAgIHNjcC0+c21pX2NvbW1vbiA9IHN5c2Nv bl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGUocGRldi0+ZGV2Lm9mX25vZGUsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgInNtaV9jb21tIik7CgpIbW0sIGlzIHRoaXMgcHJvcGVydHkgZG9jdW1l bnRlZD8gSSBjb3VsZG4ndCBmaW5kIGl0LgoKPiArCj4gKyAgICAgICBpZiAoc2NwLT5zbWlfY29t bW9uID09IEVSUl9QVFIoLUVOT0RFVikpIHsKPiArICAgICAgICAgICAgICAgc2NwLT5zbWlfY29t bW9uID0gTlVMTDsKPiArICAgICAgIH0gZWxzZSBpZiAoSVNfRVJSKHNjcC0+c21pX2NvbW1vbikp IHsKPiArICAgICAgICAgICAgICAgZGV2X2VycigmcGRldi0+ZGV2LCAiQ2Fubm90IGZpbmQgc21p X2NvbW1vbiBjb250cm9sbGVyOiAlbGRcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQVFJfRVJSKHNjcC0+c21pX2NvbW1vbikpOwo+ICsgICAgICAgICAgICAgICByZXR1cm4g RVJSX0NBU1Qoc2NwLT5zbWlfY29tbW9uKTsKPiArICAgICAgIH0KPiArCj4gICAgICAgICBmb3Ig KGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKPiAgICAgICAgICAgICAgICAgc3RydWN0IHNjcF9kb21h aW4gKnNjcGQgPSAmc2NwLT5kb21haW5zW2ldOwo+ICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3Qgc2NwX2RvbWFpbl9kYXRhICpkYXRhID0gJnNjcF9kb21haW5fZGF0YVtpXTsKPiBAQCAtNTU2 LDggKzYxMiwxMSBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICAgICAgICAgICAgICAgICAubmFtZSA9ICJjb25u IiwKPiAgICAgICAgICAgICAgICAgLnN0YV9tYXNrID0gUFdSX1NUQVRVU19DT05OLAo+ICAgICAg ICAgICAgICAgICAuY3RsX29mZnMgPSBTUE1fQ09OTl9QV1JfQ09OLAo+IC0gICAgICAgICAgICAg ICAuYnVzX3Byb3RfbWFzayA9IE1UMjcwMV9UT1BfQVhJX1BST1RfRU5fQ09OTl9NIHwKPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5f UywKPiArICAgICAgICAgICAgICAgLmJwX3RhYmxlID0gewo+ICsgICAgICAgICAgICAgICAgICAg ICAgIEJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgsCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fTSB8Cj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5f UyksCj4gKyAgICAgICAgICAgICAgIH0sCj4gICAgICAgICAgICAgICAgIC5jYXBzID0gTVRLX1ND UERfQUNUSVZFX1dBS0VVUCwKPiAgICAgICAgIH0sCj4gICAgICAgICBbTVQyNzAxX1BPV0VSX0RP TUFJTl9ESVNQXSA9IHsKPiBAQCAtNTY2LDcgKzYyNSwxMCBAQCBzdGF0aWMgdm9pZCBtdGtfcmVn aXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICAgICAg ICAgICAgICAgICAuY3RsX29mZnMgPSBTUE1fRElTX1BXUl9DT04sCj4gICAgICAgICAgICAgICAg IC5zcmFtX3Bkbl9iaXRzID0gR0VOTUFTSygxMSwgOCksCj4gICAgICAgICAgICAgICAgIC5iYXNp Y19jbGtfbmFtZSA9IHsibW0ifSwKPiAtICAgICAgICAgICAgICAgLmJ1c19wcm90X21hc2sgPSBN VDI3MDFfVE9QX0FYSV9QUk9UX0VOX01NX00wLAo+ICsgICAgICAgICAgICAgICAuYnBfdGFibGUg PSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4 MjIwLCAweDIyOCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UMjcwMV9UT1Bf QVhJX1BST1RfRU5fTU1fTTApLAo+ICsgICAgICAgICAgICAgICB9LAo+ICAgICAgICAgICAgICAg ICAuY2FwcyA9IE1US19TQ1BEX0FDVElWRV9XQUtFVVAsCj4gICAgICAgICB9LAo+ICAgICAgICAg W01UMjcwMV9QT1dFUl9ET01BSU5fTUZHXSA9IHsKPiBAQCAtNzAxLDcgKzc2MywxMCBAQCBzdGF0 aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2LAo+ICAgICAgICAgICAgICAgICAuc3JhbV9wZG5fYml0cyA9IEdFTk1BU0soOCwgOCks Cj4gICAgICAgICAgICAgICAgIC5zcmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMTYsIDE2KSwK PiAgICAgICAgICAgICAgICAgLmJhc2ljX2Nsa19uYW1lID0geyJtZmcifSwKPiAtICAgICAgICAg ICAgICAgLmJ1c19wcm90X21hc2sgPSBCSVQoMTQpIHwgQklUKDIxKSB8IEJJVCgyMyksCj4gKyAg ICAgICAgICAgICAgIC5icF90YWJsZSA9IHsKPiArICAgICAgICAgICAgICAgICAgICAgICBCVVNf UFJPVChJRlJfVFlQRSwgMHgyNjAsIDB4MjY0LCAweDIyMCwgMHgyMjgsCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBCSVQoMTQpIHwgQklUKDIxKSB8IEJJVCgyMykpLAo+ICsgICAg ICAgICAgICAgICB9LAo+ICAgICAgICAgICAgICAgICAuY2FwcyA9IE1US19TQ1BEX0FDVElWRV9X QUtFVVAsCj4gICAgICAgICB9LAo+ICAgICAgICAgW01UMjcxMl9QT1dFUl9ET01BSU5fTUZHX1ND MV0gPSB7Cj4gQEAgLTc3Myw3ICs4MzgsMTAgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bv d2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiAgICAgICAgICAgICAg ICAgLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDgsIDgpLAo+ICAgICAgICAgICAgICAgICAuc3Jh bV9wZG5fYWNrX2JpdHMgPSBHRU5NQVNLKDEyLCAxMiksCj4gICAgICAgICAgICAgICAgIC5iYXNp Y19jbGtfbmFtZSA9IHsibW0ifSwKPiAtICAgICAgICAgICAgICAgLmJ1c19wcm90X21hc2sgPSAo QklUKDEpIHwgQklUKDIpKSwKPiArICAgICAgICAgICAgICAgLmJwX3RhYmxlID0gewo+ICsgICAg ICAgICAgICAgICAgICAgICAgIEJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgs Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCSVQoMSkgfCBCSVQoMikpLAo+ICsg ICAgICAgICAgICAgICB9LAo+ICAgICAgICAgfSwKPiAgICAgICAgIFtNVDY3OTdfUE9XRVJfRE9N QUlOX0FVRElPXSA9IHsKPiAgICAgICAgICAgICAgICAgLm5hbWUgPSAiYXVkaW8iLAo+IEBAIC04 MjAsNyArODg4LDEwIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gICAgICAgICAgICAgICAgIC5jdGxfb2ZmcyA9 IFNQTV9FVEhTWVNfUFdSX0NPTiwKPiAgICAgICAgICAgICAgICAgLnNyYW1fcGRuX2JpdHMgPSBH RU5NQVNLKDExLCA4KSwKPiAgICAgICAgICAgICAgICAgLnNyYW1fcGRuX2Fja19iaXRzID0gR0VO TUFTSygxNSwgMTIpLAo+IC0gICAgICAgICAgICAgICAuYnVzX3Byb3RfbWFzayA9IE1UNzYyMl9U T1BfQVhJX1BST1RfRU5fRVRIU1lTLAo+ICsgICAgICAgICAgICAgICAuYnBfdGFibGUgPSB7Cj4g KyAgICAgICAgICAgICAgICAgICAgICAgQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAw eDIyOCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UNzYyMl9UT1BfQVhJX1BS T1RfRU5fRVRIU1lTKSwKPiArICAgICAgICAgICAgICAgfSwKPiAgICAgICAgICAgICAgICAgLmNh cHMgPSBNVEtfU0NQRF9BQ1RJVkVfV0FLRVVQLAo+ICAgICAgICAgfSwKPiAgICAgICAgIFtNVDc2 MjJfUE9XRVJfRE9NQUlOX0hJRjBdID0gewo+IEBAIC04MzAsNyArOTAxLDEwIEBAIHN0YXRpYyB2 b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYsCj4gICAgICAgICAgICAgICAgIC5zcmFtX3Bkbl9iaXRzID0gR0VOTUFTSygxMSwgOCksCj4g ICAgICAgICAgICAgICAgIC5zcmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMTUsIDEyKSwKPiAg ICAgICAgICAgICAgICAgLmJhc2ljX2Nsa19uYW1lID0geyJoaWZfc2VsIn0sCj4gLSAgICAgICAg ICAgICAgIC5idXNfcHJvdF9tYXNrID0gTVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9ISUYwLAo+ICsg ICAgICAgICAgICAgICAuYnBfdGFibGUgPSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgQlVT X1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwKPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE1UNzYyMl9UT1BfQVhJX1BST1RfRU5fSElGMCksCj4gKyAgICAgICAgICAg ICAgIH0sCj4gICAgICAgICAgICAgICAgIC5jYXBzID0gTVRLX1NDUERfQUNUSVZFX1dBS0VVUCwK PiAgICAgICAgIH0sCj4gICAgICAgICBbTVQ3NjIyX1BPV0VSX0RPTUFJTl9ISUYxXSA9IHsKPiBA QCAtODQwLDcgKzkxNCwxMCBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlu cyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICAgICAgICAgICAgICAgICAuc3JhbV9w ZG5fYml0cyA9IEdFTk1BU0soMTEsIDgpLAo+ICAgICAgICAgICAgICAgICAuc3JhbV9wZG5fYWNr X2JpdHMgPSBHRU5NQVNLKDE1LCAxMiksCj4gICAgICAgICAgICAgICAgIC5iYXNpY19jbGtfbmFt ZSA9IHsiaGlmX3NlbCJ9LAo+IC0gICAgICAgICAgICAgICAuYnVzX3Byb3RfbWFzayA9IE1UNzYy Ml9UT1BfQVhJX1BST1RfRU5fSElGMSwKPiArICAgICAgICAgICAgICAgLmJwX3RhYmxlID0gewo+ ICsgICAgICAgICAgICAgICAgICAgICAgIEJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwg MHgyMjgsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVDc2MjJfVE9QX0FYSV9Q Uk9UX0VOX0hJRjEpLAo+ICsgICAgICAgICAgICAgICB9LAo+ICAgICAgICAgICAgICAgICAuY2Fw cyA9IE1US19TQ1BEX0FDVElWRV9XQUtFVVAsCj4gICAgICAgICB9LAo+ICAgICAgICAgW01UNzYy Ml9QT1dFUl9ET01BSU5fV0JdID0gewo+IEBAIC04NDksNyArOTI2LDEwIEBAIHN0YXRpYyB2b2lk IG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYs Cj4gICAgICAgICAgICAgICAgIC5jdGxfb2ZmcyA9IFNQTV9XQl9QV1JfQ09OLAo+ICAgICAgICAg ICAgICAgICAuc3JhbV9wZG5fYml0cyA9IDAsCj4gICAgICAgICAgICAgICAgIC5zcmFtX3Bkbl9h Y2tfYml0cyA9IDAsCj4gLSAgICAgICAgICAgICAgIC5idXNfcHJvdF9tYXNrID0gTVQ3NjIyX1RP UF9BWElfUFJPVF9FTl9XQiwKPiArICAgICAgICAgICAgICAgLmJwX3RhYmxlID0gewo+ICsgICAg ICAgICAgICAgICAgICAgICAgIEJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgs Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVDc2MjJfVE9QX0FYSV9QUk9UX0VO X1dCKSwKPiArICAgICAgICAgICAgICAgfSwKPiAgICAgICAgICAgICAgICAgLmNhcHMgPSBNVEtf U0NQRF9BQ1RJVkVfV0FLRVVQIHwgTVRLX1NDUERfRldBSVRfU1JBTSwKPiAgICAgICAgIH0sCj4g IH07Cj4gQEAgLTg2Myw4ICs5NDMsMTEgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2Vy X2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiAgICAgICAgICAgICAgICAg Lm5hbWUgPSAiY29ubiIsCj4gICAgICAgICAgICAgICAgIC5zdGFfbWFzayA9IFBXUl9TVEFUVVNf Q09OTiwKPiAgICAgICAgICAgICAgICAgLmN0bF9vZmZzID0gU1BNX0NPTk5fUFdSX0NPTiwKPiAt ICAgICAgICAgICAgICAgLmJ1c19wcm90X21hc2sgPSBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NP Tk5fTSB8Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVQyNzAxX1RPUF9BWElf UFJPVF9FTl9DT05OX1MsCj4gKyAgICAgICAgICAgICAgIC5icF90YWJsZSA9IHsKPiArICAgICAg ICAgICAgICAgICAgICAgICBCVVNfUFJPVChJRlJfVFlQRSwgMCwgMCwgMHgyMjAsIDB4MjI4LAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9D T05OX00gfAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVQyNzAxX1RPUF9BWElf UFJPVF9FTl9DT05OX1MpLAo+ICsgICAgICAgICAgICAgICB9LAo+ICAgICAgICAgICAgICAgICAu Y2FwcyA9IE1US19TQ1BEX0FDVElWRV9XQUtFVVAsCj4gICAgICAgICB9LAo+ICAgICAgICAgW01U NzYyM0FfUE9XRVJfRE9NQUlOX0VUSF0gPSB7Cj4gQEAgLTkyOSw4ICsxMDEyLDExIEBAIHN0YXRp YyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYsCj4gICAgICAgICAgICAgICAgIC5zcmFtX3Bkbl9iaXRzID0gR0VOTUFTSygxMSwgOCks Cj4gICAgICAgICAgICAgICAgIC5zcmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMTIsIDEyKSwK PiAgICAgICAgICAgICAgICAgLmJhc2ljX2Nsa19uYW1lID0geyJtbSJ9LAo+IC0gICAgICAgICAg ICAgICAuYnVzX3Byb3RfbWFzayA9IE1UODE3M19UT1BfQVhJX1BST1RfRU5fTU1fTTAgfAo+IC0g ICAgICAgICAgICAgICAgICAgICAgIE1UODE3M19UT1BfQVhJX1BST1RfRU5fTU1fTTEsCj4gKyAg ICAgICAgICAgICAgIC5icF90YWJsZSA9IHsKPiArICAgICAgICAgICAgICAgICAgICAgICBCVVNf UFJPVChJRlJfVFlQRSwgMCwgMCwgMHgyMjAsIDB4MjI4LAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NTV9NMCB8Cj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01NX00xKSwKPiArICAg ICAgICAgICAgICAgfSwKPiAgICAgICAgIH0sCj4gICAgICAgICBbTVQ4MTczX1BPV0VSX0RPTUFJ Tl9WRU5DX0xUXSA9IHsKPiAgICAgICAgICAgICAgICAgLm5hbWUgPSAidmVuY19sdCIsCj4gQEAg LTk3NiwxMCArMTA2MiwxMyBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlu cyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICAgICAgICAgICAgICAgICAuY3RsX29m ZnMgPSBTUE1fTUZHX1BXUl9DT04sCj4gICAgICAgICAgICAgICAgIC5zcmFtX3Bkbl9iaXRzID0g R0VOTUFTSygxMywgOCksCj4gICAgICAgICAgICAgICAgIC5zcmFtX3Bkbl9hY2tfYml0cyA9IEdF Tk1BU0soMjEsIDE2KSwKPiAtICAgICAgICAgICAgICAgLmJ1c19wcm90X21hc2sgPSBNVDgxNzNf VE9QX0FYSV9QUk9UX0VOX01GR19TIHwKPiAtICAgICAgICAgICAgICAgICAgICAgICBNVDgxNzNf VE9QX0FYSV9QUk9UX0VOX01GR19NMCB8Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgTVQ4MTcz X1RPUF9BWElfUFJPVF9FTl9NRkdfTTEgfAo+IC0gICAgICAgICAgICAgICAgICAgICAgIE1UODE3 M19UT1BfQVhJX1BST1RfRU5fTUZHX1NOT09QX09VVCwKPiArICAgICAgICAgICAgICAgLmJwX3Rh YmxlID0gewo+ICsgICAgICAgICAgICAgICAgICAgICAgIEJVU19QUk9UKElGUl9UWVBFLCAwLCAw LCAweDIyMCwgMHgyMjgsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVDgxNzNf VE9QX0FYSV9QUk9UX0VOX01GR19TIHwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE1UODE3M19UT1BfQVhJX1BST1RfRU5fTUZHX00wIHwKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1UODE3M19UT1BfQVhJX1BST1RfRU5fTUZHX00xIHwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE1UODE3M19UT1BfQVhJX1BST1RfRU5fTUZHX1NOT09QX09VVCks Cj4gKyAgICAgICAgICAgICAgIH0sCj4gICAgICAgICB9LAo+ICB9Owo+Cj4gQEAgLTk5NSw3ICsx MDg0LDYgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldiwKPiAgICAgICAgICAgICAgICAgLnB3cl9zdGFfb2ZmcyA9IFNQ TV9QV1JfU1RBVFVTLAo+ICAgICAgICAgICAgICAgICAucHdyX3N0YTJuZF9vZmZzID0gU1BNX1BX Ul9TVEFUVVNfMk5ECj4gICAgICAgICB9LAo+IC0gICAgICAgLmJ1c19wcm90X3JlZ191cGRhdGUg PSB0cnVlLAo+ICB9Owo+Cj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2NwX3NvY19kYXRhIG10Mjcx Ml9kYXRhID0gewo+IEBAIC0xMDA3LDcgKzEwOTUsNiBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0 ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICAgICAgICAg ICAgICAgICAucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9TVEFUVVMsCj4gICAgICAgICAgICAgICAg IC5wd3Jfc3RhMm5kX29mZnMgPSBTUE1fUFdSX1NUQVRVU18yTkQKPiAgICAgICAgIH0sCj4gLSAg ICAgICAuYnVzX3Byb3RfcmVnX3VwZGF0ZSA9IGZhbHNlLAo+ICB9Owo+Cj4gIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgc2NwX3NvY19kYXRhIG10Njc5N19kYXRhID0gewo+IEBAIC0xMDE5LDcgKzExMDYs NiBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2LAo+ICAgICAgICAgICAgICAgICAucHdyX3N0YV9vZmZzID0gU1BNX1BX Ul9TVEFUVVNfTVQ2Nzk3LAo+ICAgICAgICAgICAgICAgICAucHdyX3N0YTJuZF9vZmZzID0gU1BN X1BXUl9TVEFUVVNfMk5EX01UNjc5Nwo+ICAgICAgICAgfSwKPiAtICAgICAgIC5idXNfcHJvdF9y ZWdfdXBkYXRlID0gdHJ1ZSwKPiAgfTsKPgo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHNjcF9zb2Nf ZGF0YSBtdDc2MjJfZGF0YSA9IHsKPiBAQCAtMTAyOSw3ICsxMTE1LDYgQEAgc3RhdGljIHZvaWQg bXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwK PiAgICAgICAgICAgICAgICAgLnB3cl9zdGFfb2ZmcyA9IFNQTV9QV1JfU1RBVFVTLAo+ICAgICAg ICAgICAgICAgICAucHdyX3N0YTJuZF9vZmZzID0gU1BNX1BXUl9TVEFUVVNfMk5ECj4gICAgICAg ICB9LAo+IC0gICAgICAgLmJ1c19wcm90X3JlZ191cGRhdGUgPSB0cnVlLAo+ICB9Owo+Cj4gIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qgc2NwX3NvY19kYXRhIG10NzYyM2FfZGF0YSA9IHsKPiBAQCAtMTAz OSw3ICsxMTI0LDYgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiAgICAgICAgICAgICAgICAgLnB3cl9zdGFfb2Zm cyA9IFNQTV9QV1JfU1RBVFVTLAo+ICAgICAgICAgICAgICAgICAucHdyX3N0YTJuZF9vZmZzID0g U1BNX1BXUl9TVEFUVVNfMk5ECj4gICAgICAgICB9LAo+IC0gICAgICAgLmJ1c19wcm90X3JlZ191 cGRhdGUgPSB0cnVlLAo+ICB9Owo+Cj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2NwX3NvY19kYXRh IG10ODE3M19kYXRhID0gewo+IEBAIC0xMDUxLDcgKzExMzUsNiBAQCBzdGF0aWMgdm9pZCBtdGtf cmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICAg ICAgICAgICAgICAgICAucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9TVEFUVVMsCj4gICAgICAgICAg ICAgICAgIC5wd3Jfc3RhMm5kX29mZnMgPSBTUE1fUFdSX1NUQVRVU18yTkQKPiAgICAgICAgIH0s Cj4gLSAgICAgICAuYnVzX3Byb3RfcmVnX3VwZGF0ZSA9IHRydWUsCj4gIH07Cj4KPiAgLyoKPiBA QCAtMTA5Miw4ICsxMTc1LDcgQEAgc3RhdGljIGludCBzY3BzeXNfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPgo+ICAgICAgICAgc29jID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9k YXRhKCZwZGV2LT5kZXYpOwo+Cj4gLSAgICAgICBzY3AgPSBpbml0X3NjcChwZGV2LCBzb2MtPmRv bWFpbnMsIHNvYy0+bnVtX2RvbWFpbnMsICZzb2MtPnJlZ3MsCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgc29jLT5idXNfcHJvdF9yZWdfdXBkYXRlKTsKPiArICAgICAgIHNjcCA9IGluaXRfc2Nw KHBkZXYsIHNvYy0+ZG9tYWlucywgc29jLT5udW1fZG9tYWlucywgJnNvYy0+cmVncyk7Cj4gICAg ICAgICBpZiAoSVNfRVJSKHNjcCkpCj4gICAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKHNj cCk7Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvc2Nwc3lzLmggYi9kcml2 ZXJzL3NvYy9tZWRpYXRlay9zY3BzeXMuaAo+IGluZGV4IGFkMjU1OWIuLjQ1YmM2NDQgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvc2Nwc3lzLmgKPiArKysgYi9kcml2ZXJzL3Nv Yy9tZWRpYXRlay9zY3BzeXMuaAo+IEBAIC0yLDEwICsyLDI4IEBACj4gICNpZm5kZWYgX19TT0Nf TUVESUFURUtfU0NQU1lTX0gKPiAgI2RlZmluZSBfX1NPQ19NRURJQVRFS19TQ1BTWVNfSAo+Cj4g LSNkZWZpbmUgSU5GUkFfVE9QQVhJX1BST1RFQ1RFTiAgICAgICAgIDB4MDIyMAo+IC0jZGVmaW5l IElORlJBX1RPUEFYSV9QUk9URUNUU1RBMSAgICAgICAweDAyMjgKPiAtI2RlZmluZSBJTkZSQV9U T1BBWElfUFJPVEVDVEVOX1NFVCAgICAgMHgwMjYwCj4gLSNkZWZpbmUgSU5GUkFfVE9QQVhJX1BS T1RFQ1RFTl9DTFIgICAgIDB4MDI2NAo+ICsjZGVmaW5lIE1BWF9TVEVQUyAgICAgIDQKPiArCj4g KyNkZWZpbmUgX0JVU19QUk9UKF90eXBlLCBfc2V0X29mcywgX2Nscl9vZnMsICAgICAgICAgICAg ICAgICAgIFwKPiArICAgICAgICAgICAgICAgX2VuX29mcywgX3N0YV9vZnMsIF9tYXNrLCBfaWdu b3JlX2Nscl9hY2spIHsgICAgXAo+ICsgICAgICAgICAgICAgICAudHlwZSA9IF90eXBlLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgICAgICAgIC5zZXRfb2Zz ID0gX3NldF9vZnMsICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgICAgICAg ICAgLmNscl9vZnMgPSBfY2xyX29mcywgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsg ICAgICAgICAgICAgICAuZW5fb2ZzID0gX2VuX29mcywgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCj4gKyAgICAgICAgICAgICAgIC5zdGFfb2ZzID0gX3N0YV9vZnMsICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKPiArICAgICAgICAgICAgICAgLm1hc2sgPSBfbWFzaywgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgICAgICAgICAuaWdub3JlX2Ns cl9hY2sgPSBfaWdub3JlX2Nscl9hY2ssICAgICAgICAgICAgICBcCj4gKyAgICAgICB9Cj4gKwo+ ICsjZGVmaW5lIEJVU19QUk9UKF90eXBlLCBfc2V0X29mcywgX2Nscl9vZnMsICAgICAgICAgICAg XAo+ICsgICAgICAgICAgICAgICBfZW5fb2ZzLCBfc3RhX29mcywgX21hc2spICAgICAgICAgICAg ICAgXAo+ICsgICAgICAgICAgICAgICBfQlVTX1BST1QoX3R5cGUsIF9zZXRfb2ZzLCBfY2xyX29m cywgICAgXAo+ICsgICAgICAgICAgICAgICBfZW5fb2ZzLCBfc3RhX29mcywgX21hc2ssIGZhbHNl KQo+ICsKPiArI2RlZmluZSBCVVNfUFJPVF9JR04oX3R5cGUsIF9zZXRfb2ZzLCBfY2xyX29mcywg ICAgICAgIFwKPiArICAgICAgICAgICAgICAgX2VuX29mcywgX3N0YV9vZnMsIF9tYXNrKSAgICAg ICAgICAgICAgIFwKPiArICAgICAgICAgICAgICAgX0JVU19QUk9UKF90eXBlLCBfc2V0X29mcywg X2Nscl9vZnMsICAgIFwKPiArICAgICAgICAgICAgICAgX2VuX29mcywgX3N0YV9vZnMsIF9tYXNr LCB0cnVlKQo+Cj4gICNkZWZpbmUgTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9NTV9NMCAgICAgICAg ICAgQklUKDEpCj4gICNkZWZpbmUgTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9DT05OX00gICAgICAg ICAgQklUKDIpCj4gQEAgLTI1LDQgKzQzLDIwIEBACj4gICNkZWZpbmUgTVQ4MTczX1RPUF9BWElf UFJPVF9FTl9NRkdfTTEgICAgICAgICAgQklUKDIyKQo+ICAjZGVmaW5lIE1UODE3M19UT1BfQVhJ X1BST1RfRU5fTUZHX1NOT09QX09VVCAgIEJJVCgyMykKPgo+ICtlbnVtIHJlZ21hcF90eXBlIHsK PiArICAgICAgIElOVkFMSURfVFlQRSA9IDAsCgpJIGRpZG4ndCBzZWUgYW55IHVzZSBvZiB0aGF0 IHR5cGUsIGlzIHRoaXMgYW4gb3B0aW9uPwoKCj4gKyAgICAgICBJRlJfVFlQRSwKPiArICAgICAg IFNNSV9UWVBFLAo+ICt9Owo+ICsKPiArc3RydWN0IGJ1c19wcm90IHsKPiArICAgICAgIGVudW0g cmVnbWFwX3R5cGUgdHlwZTsKPiArICAgICAgIHUzMiBzZXRfb2ZzOwo+ICsgICAgICAgdTMyIGNs cl9vZnM7Cj4gKyAgICAgICB1MzIgZW5fb2ZzOwo+ICsgICAgICAgdTMyIHN0YV9vZnM7Cj4gKyAg ICAgICB1MzIgbWFzazsKPiArICAgICAgIGJvb2wgaWdub3JlX2Nscl9hY2s7Cj4gK307Cj4gKwo+ ICAjZW5kaWYgLyogX19TT0NfTUVESUFURUtfU0NQU1lTX0ggKi8KPiAtLQo+IDEuOC4xLjEuZGly dHkKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IExp bnV4LW1lZGlhdGVrIG1haWxpbmcgbGlzdAo+IExpbnV4LW1lZGlhdGVrQGxpc3RzLmluZnJhZGVh ZC5vcmcKPiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LW1lZGlhdGVrCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpMaW51eC1tZWRpYXRlayBtYWlsaW5nIGxpc3QKTGludXgtbWVkaWF0ZWtAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LW1lZGlhdGVrCg==