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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id EEC52C433F5 for ; Fri, 11 Feb 2022 22:36:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=S+/vj2ol/hXEISldNyMn5j5yKumFQdH3ns+u6Hdx17A=; b=Qo9UskZw4HVVq3 CxcuWAMpZNQBPADIHNUoZJNvnphkVnRGDTk0/2n0zDzE6aXTRuDKH/v82VZ6vEBX7VG6K3ekix7qj zGFQK9D3j+/hot3OBAU0aabA1gPZi99kTp/+3yxInYgoZmKJI9JW3JGOvx/N8q53+J1mIkGm3Np4T 1BhEJlPhsN7KShP31FcXoOkIUi++IoI3pkD5JM7sUcx5BO9h/5nCllnV7tLgDkwstXf0WeeMy7ClI F2pw4QuY8CrPAsW+smN1hFBA3wDFDGLP6TCqbi3OyntqCGkHzipTTGK7fbKnt+V1GHddmZpPSSS/N BbyhWWu1uDr000oLE/Gw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nIeVa-008y0H-Hb; Fri, 11 Feb 2022 22:35:18 +0000 Received: from mail-lj1-x230.google.com ([2a00:1450:4864:20::230]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nIeV6-008xn5-IJ for linux-arm-kernel@lists.infradead.org; Fri, 11 Feb 2022 22:34:51 +0000 Received: by mail-lj1-x230.google.com with SMTP id o17so14407295ljp.1 for ; Fri, 11 Feb 2022 14:34:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=V+Z9VOSdvBDHdbTv3KbUaMjQVV/tCN9nQaxPNL6UXHQ=; b=UVGFg6MFDeeuQrudVyvV/LPh35H7d5DwfeuJSVRVP2XblasSjcRuLQ95bjb0c7bhyR Sw88eiev7nZBP+QZ/XGFKlH+sNQoO2wsLE/rodsvoQYZSm4pDm1E7rau/nySR2FOifdR tzuoLHj9iSEHvPuGk1t8cmy3ZSOJz6NuUB6b7cYL1TPEveWIWGTf7KzGmJu6kyQlePDL P+ldGNhP5rwhCE6VbkoQx8OKfzbp+9tjJxobJc/nfBN2XTWjIX5+emETueFkaS+fb844 leeEgrfN7ChrT7oUIiXNUsDpy2lVDcM/KaDWtz5sg2xBC4kfwYj43eE5A+8vE/9MeS5L 4voA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=V+Z9VOSdvBDHdbTv3KbUaMjQVV/tCN9nQaxPNL6UXHQ=; b=rHKrkF7hyrdoEPtjBvbcZvffRMFxLLUu95LEGcQrzWYf4EdfII+wQNao2ebJAQHzFP Tpax+wWby2jkvjFpElxv0XQXcbJl2SRHwPPZ6wdHWv06VcXvOFLM6EzDxL/f9+L8iHEv LkfT5BUFJxE/Fm+uiKUsSUSZg/d48fZ1btI9ENBuKCYlf9e5zXNtnF437IHP5diD/PPR 8o9ghwht9bAdEdljYCRZAMeATksyDAibquV1KkOg5OvRZeGjQqkCmHNCltJTMcINBKIf rrnK0aOEkV1isBfBY0KSHfEocQp4MTKyKe8Bb04cEKMJgKABcCHowYraZ/xVzdQkIckB N8QA== X-Gm-Message-State: AOAM530VysdhWE+Em7twQW2bDSHir/i2ssrj/08sp0LuHq4fzwrYgpC5 7iAlJ8jvK+3F0dwsSlLeC8qU88xknMeT3uM2 X-Google-Smtp-Source: ABdhPJwEiSBWXhslMQUX00KJldY7fxz388PbmV5r7gOULxKtR1GAo2uMGVs141/PQx3mg03XlYJn9Q== X-Received: by 2002:a05:651c:1509:: with SMTP id e9mr2296785ljf.155.1644618886309; Fri, 11 Feb 2022 14:34:46 -0800 (PST) Received: from localhost.localdomain (c-fdcc225c.014-348-6c756e10.bbcust.telenor.se. [92.34.204.253]) by smtp.gmail.com with ESMTPSA id x2sm3296300lji.27.2022.02.11.14.34.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Feb 2022 14:34:45 -0800 (PST) From: Linus Walleij To: linux-arm-kernel@lists.infradead.org, Imre Kaloz , Krzysztof Halasa Cc: Linus Walleij Subject: [PATCH 02/13 v2] ARM: ixp4xx: Delete the Goramo MLR boardfile Date: Fri, 11 Feb 2022 23:32:27 +0100 Message-Id: <20220211223238.648934-3-linus.walleij@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220211223238.648934-1-linus.walleij@linaro.org> References: <20220211223238.648934-1-linus.walleij@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220211_143448_668602_961FC261 X-CRM114-Status: GOOD ( 23.98 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhpcyBib2FyZCBpcyByZXBsYWNlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGRldmljZSB0cmVl LgoKQWxzbyBkZWxldGUgZGFuZ2xpbmcgcGxhdGZvcm0gZGF0YSBmaWxlIG9ubHkgdXNlZCBieSB0 aGlzCmJvYXJkZmlsZSBhbmQgbm90aGluZyBlbHNlLgoKQ2M6IEtyenlzenRvZiBIYcWCYXNhIDxr aGFsYXNhQHBpYXAucGw+ClNpZ25lZC1vZmYtYnk6IExpbnVzIFdhbGxlaWogPGxpbnVzLndhbGxl aWpAbGluYXJvLm9yZz4KLS0tCkNoYW5nZUxvZyB2MS0+djI6Ci0gTmV3IHBhdGNoIG5vdyB0aGF0 IHdlIGhhdmUgYWxsIHdlIG5lZWQgaW4gdGhlIGRldmljZSB0cmVlCiAgd2UgY2FuIGRyb3AgdGhl IGJvYXJkZmlsZS4KLS0tCiBhcmNoL2FybS9tYWNoLWl4cDR4eC9LY29uZmlnICAgICAgICAgICAg ICAgICB8ICAgNyAtCiBhcmNoL2FybS9tYWNoLWl4cDR4eC9NYWtlZmlsZSAgICAgICAgICAgICAg ICB8ICAgMiAtCiBhcmNoL2FybS9tYWNoLWl4cDR4eC9nb3JhbW9fbWxyLmMgICAgICAgICAgICB8 IDUzMiAtLS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvd2Fu X2l4cDR4eF9oc3MuaCB8ICAxNyAtCiA0IGZpbGVzIGNoYW5nZWQsIDU1OCBkZWxldGlvbnMoLSkK IGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLWl4cDR4eC9nb3JhbW9fbWxyLmMKIGRl bGV0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvd2FuX2l4cDR4eF9o c3MuaAoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaXhwNHh4L0tjb25maWcgYi9hcmNoL2Fy bS9tYWNoLWl4cDR4eC9LY29uZmlnCmluZGV4IGU2YjIzYzNjZTUwYy4uMGZhYzEyY2IzMWE2IDEw MDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWl4cDR4eC9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21h Y2gtaXhwNHh4L0tjb25maWcKQEAgLTE3LDEzICsxNyw2IEBAIGNvbmZpZyBNQUNIX0lYUDRYWF9P RgogCWhlbHAKIAkgIFNheSAnWScgaGVyZSB0byBzdXBwb3J0IERldmljZSBUcmVlLWJhc2VkIElY UDR4eCBwbGF0Zm9ybXMuCiAKLWNvbmZpZyBNQUNIX0dPUkFNT19NTFIKLQlib29sICJHT1JBTU8g TXVsdGkgTGluayBSb3V0ZXIiCi0JZGVwZW5kcyBvbiBJWFA0WFhfUENJX0xFR0FDWQotCWhlbHAK LQkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IEdPUkFN TwotCSAgTXVsdGlMaW5rIHJvdXRlci4KLQogY29uZmlnIEFSQ0hfUFJQTUMxMTAwCiAJYm9vbCAi UHJQTUMxMTAwIgogCWhlbHAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaXhwNHh4L01ha2Vm aWxlIGIvYXJjaC9hcm0vbWFjaC1peHA0eHgvTWFrZWZpbGUKaW5kZXggMGE5MmY4YzQwZTFjLi44 MzcxOTcwNGE2MjYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaXhwNHh4L01ha2VmaWxlCisr KyBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L01ha2VmaWxlCkBAIC0xMSw2ICsxMSw0IEBAIG9iai1w Y2ktJChDT05GSUdfTUFDSF9JWFA0WFhfT0YpCSs9IGl4cDR4eC1vZi5vCiAKIG9iai15CSs9IGNv bW1vbi5vCiAKLW9iai0kKENPTkZJR19NQUNIX0dPUkFNT19NTFIpCSs9IGdvcmFtb19tbHIubwot CiBvYmotJChDT05GSUdfUENJKQkJKz0gJChvYmotcGNpLSQoQ09ORklHX1BDSSkpIGNvbW1vbi1w Y2kubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1peHA0eHgvZ29yYW1vX21sci5jIGIvYXJj aC9hcm0vbWFjaC1peHA0eHgvZ29yYW1vX21sci5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwN2I1MGRmY2M0ODkuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLWl4cDR4 eC9nb3JhbW9fbWxyLmMKKysrIC9kZXYvbnVsbApAQCAtMSw1MzIgKzAsMCBAQAotLy8gU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLS8qCi0gKiBHb3JhbW8gTXVsdGlMaW5rIHJvdXRl ciBwbGF0Zm9ybSBjb2RlCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwOSBLcnp5c3p0b2YgSGFs YXNhIDxraGNAcG0ud2F3LnBsPgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2lu Y2x1ZGUgPGxpbnV4L2dwaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9oZGxjLmg+Ci0jaW5jbHVkZSA8 bGludXgvaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9pcnEuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJu ZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9k YXRhL3dhbl9peHA0eHhfaHNzLmg+Ci0jaW5jbHVkZSA8bGludXgvc2VyaWFsXzgyNTAuaD4KLSNp bmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgotI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KLSNp bmNsdWRlIDxhc20vbWFjaC9mbGFzaC5oPgotI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgotI2lu Y2x1ZGUgPGFzbS9zeXN0ZW1faW5mby5oPgotCi0jaW5jbHVkZSAiaXJxcy5oIgotCi0jZGVmaW5l IFNMT1RfRVRIQQkJMHgwQgkvKiBJRFNFTCA9IEFEMjEgKi8KLSNkZWZpbmUgU0xPVF9FVEhCCQkw eDBDCS8qIElEU0VMID0gQUQyMCAqLwotI2RlZmluZSBTTE9UX01QQ0kJCTB4MEQJLyogSURTRUwg PSBBRDE5ICovCi0jZGVmaW5lIFNMT1RfTkVDCQkweDBFCS8qIElEU0VMID0gQUQxOCAqLwotCi0v KiBHUElPIGxpbmVzICovCi0jZGVmaW5lIEdQSU9fU0NMCQkwCi0jZGVmaW5lIEdQSU9fU0RBCQkx Ci0jZGVmaW5lIEdQSU9fU1RSCQkyCi0jZGVmaW5lIEdQSU9fSVJRX05FQwkJMwotI2RlZmluZSBH UElPX0lSUV9FVEhBCQk0Ci0jZGVmaW5lIEdQSU9fSVJRX0VUSEIJCTUKLSNkZWZpbmUgR1BJT19I U1MwX0RDRF9OCQk2Ci0jZGVmaW5lIEdQSU9fSFNTMV9EQ0RfTgkJNwotI2RlZmluZSBHUElPX1VB UlQwX0RDRAkJOAotI2RlZmluZSBHUElPX1VBUlQxX0RDRAkJOQotI2RlZmluZSBHUElPX0hTUzBf Q1RTX04JCTEwCi0jZGVmaW5lIEdQSU9fSFNTMV9DVFNfTgkJMTEKLSNkZWZpbmUgR1BJT19JUlFf TVBDSQkJMTIKLSNkZWZpbmUgR1BJT19IU1MxX1JUU19OCQkxMwotI2RlZmluZSBHUElPX0hTUzBf UlRTX04JCTE0Ci0vKiBHUElPMTUgaXMgbm90IGNvbm5lY3RlZCAqLwotCi0vKiBDb250cm9sIG91 dHB1dHMgZnJvbSA3NEhDNDA5NCAqLwotI2RlZmluZSBDT05UUk9MX0hTUzBfQ0xLX0lOVAkwCi0j ZGVmaW5lIENPTlRST0xfSFNTMV9DTEtfSU5UCTEKLSNkZWZpbmUgQ09OVFJPTF9IU1MwX0RUUl9O CTIKLSNkZWZpbmUgQ09OVFJPTF9IU1MxX0RUUl9OCTMKLSNkZWZpbmUgQ09OVFJPTF9FWFQJCTQK LSNkZWZpbmUgQ09OVFJPTF9BVVRPX1JFU0VUCTUKLSNkZWZpbmUgQ09OVFJPTF9QQ0lfUkVTRVRf Tgk2Ci0jZGVmaW5lIENPTlRST0xfRUVQUk9NX1dDX04JNwotCi0vKiBvZmZzZXRzIGZyb20gc3Rh cnQgb2YgZmxhc2ggUk9NID0gMHg1MDAwMDAwMCAqLwotI2RlZmluZSBDRkdfRVRIMF9BRERSRVNT CTB4NDAgLyogNiBieXRlcyAqLwotI2RlZmluZSBDRkdfRVRIMV9BRERSRVNTCTB4NDYgLyogNiBi eXRlcyAqLwotI2RlZmluZSBDRkdfUkVWCQkJMHg0QyAvKiB1MzIgKi8KLSNkZWZpbmUgQ0ZHX1NE UkFNX1NJWkUJCTB4NTAgLyogdTMyICovCi0jZGVmaW5lIENGR19TRFJBTV9DT05GCQkweDU0IC8q IHUzMiAqLwotI2RlZmluZSBDRkdfU0RSQU1fTU9ERQkJMHg1OCAvKiB1MzIgKi8KLSNkZWZpbmUg Q0ZHX1NEUkFNX1JFRlJFU0gJMHg1QyAvKiB1MzIgKi8KLQotI2RlZmluZSBDRkdfSFdfQklUUwkJ MHg2MCAvKiB1MzIgKi8KLSNkZWZpbmUgIENGR19IV19VU0JfUE9SVFMJMHgwMDAwMDAwNyAvKiAw ID0gbm8gTkVDIGNoaXAsIDEtNSA9IHBvcnRzICMgKi8KLSNkZWZpbmUgIENGR19IV19IQVNfUENJ X1NMT1QJMHgwMDAwMDAwOAotI2RlZmluZSAgQ0ZHX0hXX0hBU19FVEgwCTB4MDAwMDAwMTAKLSNk ZWZpbmUgIENGR19IV19IQVNfRVRIMQkweDAwMDAwMDIwCi0jZGVmaW5lICBDRkdfSFdfSEFTX0hT UzAJMHgwMDAwMDA0MAotI2RlZmluZSAgQ0ZHX0hXX0hBU19IU1MxCTB4MDAwMDAwODAKLSNkZWZp bmUgIENGR19IV19IQVNfVUFSVDAJMHgwMDAwMDEwMAotI2RlZmluZSAgQ0ZHX0hXX0hBU19VQVJU MQkweDAwMDAwMjAwCi0jZGVmaW5lICBDRkdfSFdfSEFTX0VFUFJPTQkweDAwMDAwNDAwCi0KLSNk ZWZpbmUgRkxBU0hfQ01EX1JFQURfQVJSQVkJMHhGRgotI2RlZmluZSBGTEFTSF9DTURfUkVBRF9J RAkweDkwCi0jZGVmaW5lIEZMQVNIX1NFUl9PRkYJCTB4MTAyIC8qIDB4ODEgaW4gMTYtYml0IG1v ZGUgKi8KLQotc3RhdGljIHUzMiBod19iaXRzID0gMHhGRkZGRkZGRDsgICAgLyogYXNzdW1lIGFs bCBoYXJkd2FyZSBwcmVzZW50ICovOwotc3RhdGljIHU4IGNvbnRyb2xfdmFsdWU7Ci0KLS8qCi0g KiBGSVhNRTogdGhpcyBpcyByZWltcGxlbWVudGluZyBJMkMgYml0LWJhbmdpbmluZy4gTW92ZSB0 aGlzCi0gKiBvdmVyIHRvIHVzaW5nIGRyaXZlci9pMmMvYnVzc2VzL2kyYy1ncGlvLmMgbGlrZSBh bGwgb3RoZXIgYm9hcmRzCi0gKiBhbmQgcmVnaXN0ZXIgcHJvcGVyIEkyQyBkZXZpY2Uocykgb24g dGhlIGJ1cyBmb3IgdGhpcy4gKFNlZQotICogb3RoZXIgSVhQNHh4IGJvYXJkcyBmb3IgZXhhbXBs ZXMuKQotICovCi1zdGF0aWMgdm9pZCBzZXRfc2NsKHU4IHZhbHVlKQotewotCWdwaW9fc2V0X3Zh bHVlKEdQSU9fU0NMLCAhIXZhbHVlKTsKLQl1ZGVsYXkoMyk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNl dF9zZGEodTggdmFsdWUpCi17Ci0JZ3Bpb19zZXRfdmFsdWUoR1BJT19TREEsICEhdmFsdWUpOwot CXVkZWxheSgzKTsKLX0KLQotc3RhdGljIHZvaWQgc2V0X3N0cih1OCB2YWx1ZSkKLXsKLQlncGlv X3NldF92YWx1ZShHUElPX1NUUiwgISF2YWx1ZSk7Ci0JdWRlbGF5KDMpOwotfQotCi1zdGF0aWMg aW5saW5lIHZvaWQgc2V0X2NvbnRyb2woaW50IGxpbmUsIGludCB2YWx1ZSkKLXsKLQlpZiAodmFs dWUpCi0JCWNvbnRyb2xfdmFsdWUgfD0gICgxIDw8IGxpbmUpOwotCWVsc2UKLQkJY29udHJvbF92 YWx1ZSAmPSB+KDEgPDwgbGluZSk7Ci19Ci0KLQotc3RhdGljIHZvaWQgb3V0cHV0X2NvbnRyb2wo dm9pZCkKLXsKLQlpbnQgaTsKLQotCWdwaW9fZGlyZWN0aW9uX291dHB1dChHUElPX1NDTCwgMSk7 Ci0JZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KEdQSU9fU0RBLCAxKTsKLQotCWZvciAoaSA9IDA7IGkg PCA4OyBpKyspIHsKLQkJc2V0X3NjbCgwKTsKLQkJc2V0X3NkYShjb250cm9sX3ZhbHVlICYgKDB4 ODAgPj4gaSkpOyAvKiBNU0IgZmlyc3QgKi8KLQkJc2V0X3NjbCgxKTsJLyogYWN0aXZlIGVkZ2Ug Ki8KLQl9Ci0KLQlzZXRfc3RyKDEpOwotCXNldF9zdHIoMCk7Ci0KLQlzZXRfc2NsKDApOwotCXNl dF9zZGEoMSk7CQkvKiBCZSByZWFkeSBmb3IgU1RBUlQgKi8KLQlzZXRfc2NsKDEpOwotfQotCi0K LXN0YXRpYyB2b2lkICgqc2V0X2NhcnJpZXJfY2JfdGFiWzJdKSh2b2lkICpwZGV2LCBpbnQgY2Fy cmllcik7Ci0KLXN0YXRpYyBpbnQgaHNzX3NldF9jbG9jayhpbnQgcG9ydCwgdW5zaWduZWQgaW50 IGNsb2NrX3R5cGUpCi17Ci0JaW50IGN0cmxfaW50ID0gcG9ydCA/IENPTlRST0xfSFNTMV9DTEtf SU5UIDogQ09OVFJPTF9IU1MwX0NMS19JTlQ7Ci0KLQlzd2l0Y2ggKGNsb2NrX3R5cGUpIHsKLQlj YXNlIENMT0NLX0RFRkFVTFQ6Ci0JY2FzZSBDTE9DS19FWFQ6Ci0JCXNldF9jb250cm9sKGN0cmxf aW50LCAwKTsKLQkJb3V0cHV0X2NvbnRyb2woKTsKLQkJcmV0dXJuIENMT0NLX0VYVDsKLQotCWNh c2UgQ0xPQ0tfSU5UOgotCQlzZXRfY29udHJvbChjdHJsX2ludCwgMSk7Ci0JCW91dHB1dF9jb250 cm9sKCk7Ci0JCXJldHVybiBDTE9DS19JTlQ7Ci0KLQlkZWZhdWx0OgotCQlyZXR1cm4gLUVJTlZB TDsKLQl9Ci19Ci0KLXN0YXRpYyBpcnFyZXR1cm5fdCBoc3NfZGNkX2lycShpbnQgaXJxLCB2b2lk ICpwZGV2KQotewotCWludCBwb3J0ID0gKGlycSA9PSBJWFA0WFhfR1BJT19JUlEoR1BJT19IU1Mx X0RDRF9OKSk7Ci0JaW50IGkgPSBncGlvX2dldF92YWx1ZShwb3J0ID8gR1BJT19IU1MxX0RDRF9O IDogR1BJT19IU1MwX0RDRF9OKTsKLQlzZXRfY2Fycmllcl9jYl90YWJbcG9ydF0ocGRldiwgIWkp OwotCXJldHVybiBJUlFfSEFORExFRDsKLX0KLQotCi1zdGF0aWMgaW50IGhzc19vcGVuKGludCBw b3J0LCB2b2lkICpwZGV2LAotCQkgICAgdm9pZCAoKnNldF9jYXJyaWVyX2NiKSh2b2lkICpwZGV2 LCBpbnQgY2FycmllcikpCi17Ci0JaW50IGksIGlycTsKLQotCWlmICghcG9ydCkKLQkJaXJxID0g SVhQNFhYX0dQSU9fSVJRKEdQSU9fSFNTMF9EQ0RfTik7Ci0JZWxzZQotCQlpcnEgPSBJWFA0WFhf R1BJT19JUlEoR1BJT19IU1MxX0RDRF9OKTsKLQotCWkgPSBncGlvX2dldF92YWx1ZShwb3J0ID8g R1BJT19IU1MxX0RDRF9OIDogR1BJT19IU1MwX0RDRF9OKTsKLQlzZXRfY2Fycmllcl9jYihwZGV2 LCAhaSk7Ci0KLQlzZXRfY2Fycmllcl9jYl90YWJbISFwb3J0XSA9IHNldF9jYXJyaWVyX2NiOwot Ci0JaWYgKChpID0gcmVxdWVzdF9pcnEoaXJxLCBoc3NfZGNkX2lycSwgMCwgIklYUDR4eCBIU1Mi LCBwZGV2KSkgIT0gMCkgewotCQlwcmludGsoS0VSTl9FUlIgIml4cDR4eF9oc3M6IGZhaWxlZCB0 byByZXF1ZXN0IElSUSVpICglaSlcbiIsCi0JCSAgICAgICBpcnEsIGkpOwotCQlyZXR1cm4gaTsK LQl9Ci0KLQlzZXRfY29udHJvbChwb3J0ID8gQ09OVFJPTF9IU1MxX0RUUl9OIDogQ09OVFJPTF9I U1MwX0RUUl9OLCAwKTsKLQlvdXRwdXRfY29udHJvbCgpOwotCWdwaW9fc2V0X3ZhbHVlKHBvcnQg PyBHUElPX0hTUzFfUlRTX04gOiBHUElPX0hTUzBfUlRTX04sIDApOwotCXJldHVybiAwOwotfQot Ci1zdGF0aWMgdm9pZCBoc3NfY2xvc2UoaW50IHBvcnQsIHZvaWQgKnBkZXYpCi17Ci0JZnJlZV9p cnEocG9ydCA/IElYUDRYWF9HUElPX0lSUShHUElPX0hTUzFfRENEX04pIDoKLQkJIElYUDRYWF9H UElPX0lSUShHUElPX0hTUzBfRENEX04pLCBwZGV2KTsKLQlzZXRfY2Fycmllcl9jYl90YWJbISFw b3J0XSA9IE5VTEw7IC8qIGNhdGNoIGJ1Z3MgKi8KLQotCXNldF9jb250cm9sKHBvcnQgPyBDT05U Uk9MX0hTUzFfRFRSX04gOiBDT05UUk9MX0hTUzBfRFRSX04sIDEpOwotCW91dHB1dF9jb250cm9s KCk7Ci0JZ3Bpb19zZXRfdmFsdWUocG9ydCA/IEdQSU9fSFNTMV9SVFNfTiA6IEdQSU9fSFNTMF9S VFNfTiwgMSk7Ci19Ci0KLQotLyogRmxhc2ggbWVtb3J5ICovCi1zdGF0aWMgc3RydWN0IGZsYXNo X3BsYXRmb3JtX2RhdGEgZmxhc2hfZGF0YSA9IHsKLQkubWFwX25hbWUJPSAiY2ZpX3Byb2JlIiwK LQkud2lkdGgJCT0gMiwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgZmxhc2hfcmVzb3Vy Y2UgPSB7Ci0JLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAotfTsKLQotc3RhdGljIHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgZGV2aWNlX2ZsYXNoID0gewotCS5uYW1lCQk9ICJJWFA0WFgtRmxhc2gi LAotCS5pZAkJPSAwLAotCS5kZXYJCT0geyAucGxhdGZvcm1fZGF0YSA9ICZmbGFzaF9kYXRhIH0s Ci0JLm51bV9yZXNvdXJjZXMJPSAxLAotCS5yZXNvdXJjZQk9ICZmbGFzaF9yZXNvdXJjZSwKLX07 Ci0KLS8qIElYUDQyNSAyIFVBUlQgcG9ydHMgKi8KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdWFy dF9yZXNvdXJjZXNbXSA9IHsKLQl7Ci0JCS5zdGFydAkJPSBJWFA0WFhfVUFSVDFfQkFTRV9QSFlT LAotCQkuZW5kCQk9IElYUDRYWF9VQVJUMV9CQVNFX1BIWVMgKyAweDBmZmYsCi0JCS5mbGFncwkJ PSBJT1JFU09VUkNFX01FTSwKLQl9LAotCXsKLQkJLnN0YXJ0CQk9IElYUDRYWF9VQVJUMl9CQVNF X1BIWVMsCi0JCS5lbmQJCT0gSVhQNFhYX1VBUlQyX0JBU0VfUEhZUyArIDB4MGZmZiwKLQkJLmZs YWdzCQk9IElPUkVTT1VSQ0VfTUVNLAotCX0KLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdF9zZXJp YWw4MjUwX3BvcnQgdWFydF9kYXRhW10gPSB7Ci0JewotCQkubWFwYmFzZQk9IElYUDRYWF9VQVJU MV9CQVNFX1BIWVMsCi0JCS5tZW1iYXNlCT0gKGNoYXIgX19pb21lbSAqKUlYUDRYWF9VQVJUMV9C QVNFX1ZJUlQgKwotCQkJUkVHX09GRlNFVCwKLQkJLmlycQkJPSBJUlFfSVhQNFhYX1VBUlQxLAot CQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYgfCBVUEZfU0tJUF9URVNULAotCQkuaW90eXBl CQk9IFVQSU9fTUVNLAotCQkucmVnc2hpZnQJPSAyLAotCQkudWFydGNsawk9IElYUDRYWF9VQVJU X1hUQUwsCi0JfSwKLQl7Ci0JCS5tYXBiYXNlCT0gSVhQNFhYX1VBUlQyX0JBU0VfUEhZUywKLQkJ Lm1lbWJhc2UJPSAoY2hhciBfX2lvbWVtICopSVhQNFhYX1VBUlQyX0JBU0VfVklSVCArCi0JCQlS RUdfT0ZGU0VULAotCQkuaXJxCQk9IElSUV9JWFA0WFhfVUFSVDIsCi0JCS5mbGFncwkJPSBVUEZf Qk9PVF9BVVRPQ09ORiB8IFVQRl9TS0lQX1RFU1QsCi0JCS5pb3R5cGUJCT0gVVBJT19NRU0sCi0J CS5yZWdzaGlmdAk9IDIsCi0JCS51YXJ0Y2xrCT0gSVhQNFhYX1VBUlRfWFRBTCwKLQl9LAotCXsg fSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGRldmljZV91YXJ0cyA9IHsK LQkubmFtZQkJCT0gInNlcmlhbDgyNTAiLAotCS5pZAkJCT0gUExBVDgyNTBfREVWX1BMQVRGT1JN LAotCS5kZXYucGxhdGZvcm1fZGF0YQk9IHVhcnRfZGF0YSwKLQkubnVtX3Jlc291cmNlcwkJPSAy LAotCS5yZXNvdXJjZQkJPSB1YXJ0X3Jlc291cmNlcywKLX07Ci0KLQotLyogQnVpbHQtaW4gMTAv MTAwIEV0aGVybmV0IE1BQyBpbnRlcmZhY2VzICovCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIGV0 aF9ucGViX3Jlc291cmNlc1tdID0gewotCXsKLQkJLnN0YXJ0CQk9IElYUDRYWF9FdGhCX0JBU0Vf UEhZUywKLQkJLmVuZAkJPSBJWFA0WFhfRXRoQl9CQVNFX1BIWVMgKyAweDBmZmYsCi0JCS5mbGFn cwkJPSBJT1JFU09VUkNFX01FTSwKLQl9LAotfTsKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBl dGhfbnBlY19yZXNvdXJjZXNbXSA9IHsKLQl7Ci0JCS5zdGFydAkJPSBJWFA0WFhfRXRoQ19CQVNF X1BIWVMsCi0JCS5lbmQJCT0gSVhQNFhYX0V0aENfQkFTRV9QSFlTICsgMHgwZmZmLAotCQkuZmxh Z3MJCT0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgZXRoX3BsYXRf aW5mbyBldGhfcGxhdFtdID0gewotCXsKLQkJLnBoeQkJPSAwLAotCQkucnhxCQk9IDMsCi0JCS50 eHJlYWR5cQk9IDMyLAotCX0sIHsKLQkJLnBoeQkJPSAxLAotCQkucnhxCQk9IDQsCi0JCS50eHJl YWR5cQk9IDMzLAotCX0KLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGRldmlj ZV9ldGhfdGFiW10gPSB7Ci0JewotCQkubmFtZQkJCT0gIml4cDR4eF9ldGgiLAotCQkuaWQJCQk9 IElYUDRYWF9FVEhfTlBFQiwKLQkJLmRldi5wbGF0Zm9ybV9kYXRhCT0gZXRoX3BsYXQsCi0JCS5u dW1fcmVzb3VyY2VzCQk9IEFSUkFZX1NJWkUoZXRoX25wZWJfcmVzb3VyY2VzKSwKLQkJLnJlc291 cmNlCQk9IGV0aF9ucGViX3Jlc291cmNlcywKLQl9LCB7Ci0JCS5uYW1lCQkJPSAiaXhwNHh4X2V0 aCIsCi0JCS5pZAkJCT0gSVhQNFhYX0VUSF9OUEVDLAotCQkuZGV2LnBsYXRmb3JtX2RhdGEJPSBl dGhfcGxhdCArIDEsCi0JCS5udW1fcmVzb3VyY2VzCQk9IEFSUkFZX1NJWkUoZXRoX25wZWNfcmVz b3VyY2VzKSwKLQkJLnJlc291cmNlCQk9IGV0aF9ucGVjX3Jlc291cmNlcywKLQl9Ci19OwotCi0K LS8qIElYUDQyNSAyIHN5bmNocm9ub3VzIHNlcmlhbCBwb3J0cyAqLwotc3RhdGljIHN0cnVjdCBo c3NfcGxhdF9pbmZvIGhzc19wbGF0W10gPSB7Ci0JewotCQkuc2V0X2Nsb2NrCT0gaHNzX3NldF9j bG9jaywKLQkJLm9wZW4JCT0gaHNzX29wZW4sCi0JCS5jbG9zZQkJPSBoc3NfY2xvc2UsCi0JCS50 eHJlYWR5cQk9IDM0LAotCX0sIHsKLQkJLnNldF9jbG9jawk9IGhzc19zZXRfY2xvY2ssCi0JCS5v cGVuCQk9IGhzc19vcGVuLAotCQkuY2xvc2UJCT0gaHNzX2Nsb3NlLAotCQkudHhyZWFkeXEJPSAz NSwKLQl9Ci19OwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBkZXZpY2VfaHNzX3Rh YltdID0gewotCXsKLQkJLm5hbWUJCQk9ICJpeHA0eHhfaHNzIiwKLQkJLmlkCQkJPSAwLAotCQku ZGV2LnBsYXRmb3JtX2RhdGEJPSBoc3NfcGxhdCwKLQl9LCB7Ci0JCS5uYW1lCQkJPSAiaXhwNHh4 X2hzcyIsCi0JCS5pZAkJCT0gMSwKLQkJLmRldi5wbGF0Zm9ybV9kYXRhCT0gaHNzX3BsYXQgKyAx LAotCX0KLX07Ci0KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldmljZV90YWJb N10gX19pbml0ZGF0YSA9IHsKLQkmZGV2aWNlX2ZsYXNoLAkJLyogaW5kZXggMCAqLwotfTsKLQot c3RhdGljIGlubGluZSB1OCBfX2luaXQgZmxhc2hfcmVhZGIodTggX19pb21lbSAqZmxhc2gsIHUz MiBhZGRyKQotewotI2lmZGVmIF9fQVJNRUJfXwotCXJldHVybiBfX3Jhd19yZWFkYihmbGFzaCAr IGFkZHIpOwotI2Vsc2UKLQlyZXR1cm4gX19yYXdfcmVhZGIoZmxhc2ggKyAoYWRkciBeIDMpKTsK LSNlbmRpZgotfQotCi1zdGF0aWMgaW5saW5lIHUxNiBfX2luaXQgZmxhc2hfcmVhZHcodTggX19p b21lbSAqZmxhc2gsIHUzMiBhZGRyKQotewotI2lmZGVmIF9fQVJNRUJfXwotCXJldHVybiBfX3Jh d19yZWFkdyhmbGFzaCArIGFkZHIpOwotI2Vsc2UKLQlyZXR1cm4gX19yYXdfcmVhZHcoZmxhc2gg KyAoYWRkciBeIDIpKTsKLSNlbmRpZgotfQotCi1zdGF0aWMgdm9pZCBfX2luaXQgZ21scl9pbml0 KHZvaWQpCi17Ci0JdTggX19pb21lbSAqZmxhc2g7Ci0JaW50IGksIGRldmljZXMgPSAxOyAvKiBm bGFzaCAqLwotCi0JaXhwNHh4X3N5c19pbml0KCk7Ci0KLQlpZiAoKGZsYXNoID0gaW9yZW1hcChJ WFA0WFhfRVhQX0JVU19CQVNFX1BIWVMsIDB4ODApKSA9PSBOVUxMKQotCQlwcmludGsoS0VSTl9F UlIgImdvcmFtby1tbHI6IHVuYWJsZSB0byBhY2Nlc3Mgc3lzdGVtIgotCQkgICAgICAgIiBjb25m aWd1cmF0aW9uIGRhdGFcbiIpOwotCWVsc2UgewotCQlzeXN0ZW1fcmV2ID0gX19yYXdfcmVhZGwo Zmxhc2ggKyBDRkdfUkVWKTsKLQkJaHdfYml0cyA9IF9fcmF3X3JlYWRsKGZsYXNoICsgQ0ZHX0hX X0JJVFMpOwotCi0JCWZvciAoaSA9IDA7IGkgPCBFVEhfQUxFTjsgaSsrKSB7Ci0JCQlldGhfcGxh dFswXS5od2FkZHJbaV0gPQotCQkJCWZsYXNoX3JlYWRiKGZsYXNoLCBDRkdfRVRIMF9BRERSRVNT ICsgaSk7Ci0JCQlldGhfcGxhdFsxXS5od2FkZHJbaV0gPQotCQkJCWZsYXNoX3JlYWRiKGZsYXNo LCBDRkdfRVRIMV9BRERSRVNTICsgaSk7Ci0JCX0KLQotCQlfX3Jhd193cml0ZXcoRkxBU0hfQ01E X1JFQURfSUQsIGZsYXNoKTsKLQkJc3lzdGVtX3NlcmlhbF9oaWdoID0gZmxhc2hfcmVhZHcoZmxh c2gsIEZMQVNIX1NFUl9PRkYpOwotCQlzeXN0ZW1fc2VyaWFsX2hpZ2ggPDw9IDE2OwotCQlzeXN0 ZW1fc2VyaWFsX2hpZ2ggfD0gZmxhc2hfcmVhZHcoZmxhc2gsIEZMQVNIX1NFUl9PRkYgKyAyKTsK LQkJc3lzdGVtX3NlcmlhbF9sb3cgPSBmbGFzaF9yZWFkdyhmbGFzaCwgRkxBU0hfU0VSX09GRiAr IDQpOwotCQlzeXN0ZW1fc2VyaWFsX2xvdyA8PD0gMTY7Ci0JCXN5c3RlbV9zZXJpYWxfbG93IHw9 IGZsYXNoX3JlYWR3KGZsYXNoLCBGTEFTSF9TRVJfT0ZGICsgNik7Ci0JCV9fcmF3X3dyaXRldyhG TEFTSF9DTURfUkVBRF9BUlJBWSwgZmxhc2gpOwotCi0JCWlvdW5tYXAoZmxhc2gpOwotCX0KLQot CXN3aXRjaCAoaHdfYml0cyAmIChDRkdfSFdfSEFTX1VBUlQwIHwgQ0ZHX0hXX0hBU19VQVJUMSkp IHsKLQljYXNlIENGR19IV19IQVNfVUFSVDA6Ci0JCW1lbXNldCgmdWFydF9kYXRhWzFdLCAwLCBz aXplb2YodWFydF9kYXRhWzFdKSk7Ci0JCWRldmljZV91YXJ0cy5udW1fcmVzb3VyY2VzID0gMTsK LQkJYnJlYWs7Ci0KLQljYXNlIENGR19IV19IQVNfVUFSVDE6Ci0JCWRldmljZV91YXJ0cy5kZXYu cGxhdGZvcm1fZGF0YSA9ICZ1YXJ0X2RhdGFbMV07Ci0JCWRldmljZV91YXJ0cy5yZXNvdXJjZSA9 ICZ1YXJ0X3Jlc291cmNlc1sxXTsKLQkJZGV2aWNlX3VhcnRzLm51bV9yZXNvdXJjZXMgPSAxOwot CQlicmVhazsKLQl9Ci0JaWYgKGh3X2JpdHMgJiAoQ0ZHX0hXX0hBU19VQVJUMCB8IENGR19IV19I QVNfVUFSVDEpKQotCQlkZXZpY2VfdGFiW2RldmljZXMrK10gPSAmZGV2aWNlX3VhcnRzOyAvKiBt YXggaW5kZXggMSAqLwotCi0JaWYgKGh3X2JpdHMgJiBDRkdfSFdfSEFTX0VUSDApCi0JCWRldmlj ZV90YWJbZGV2aWNlcysrXSA9ICZkZXZpY2VfZXRoX3RhYlswXTsgLyogbWF4IGluZGV4IDIgKi8K LQlpZiAoaHdfYml0cyAmIENGR19IV19IQVNfRVRIMSkKLQkJZGV2aWNlX3RhYltkZXZpY2VzKytd ID0gJmRldmljZV9ldGhfdGFiWzFdOyAvKiBtYXggaW5kZXggMyAqLwotCi0JaWYgKGh3X2JpdHMg JiBDRkdfSFdfSEFTX0hTUzApCi0JCWRldmljZV90YWJbZGV2aWNlcysrXSA9ICZkZXZpY2VfaHNz X3RhYlswXTsgLyogbWF4IGluZGV4IDQgKi8KLQlpZiAoaHdfYml0cyAmIENGR19IV19IQVNfSFNT MSkKLQkJZGV2aWNlX3RhYltkZXZpY2VzKytdID0gJmRldmljZV9oc3NfdGFiWzFdOyAvKiBtYXgg aW5kZXggNSAqLwotCi0JaHNzX3BsYXRbMF0udGltZXJfZnJlcSA9IGl4cDR4eF90aW1lcl9mcmVx OwotCWhzc19wbGF0WzFdLnRpbWVyX2ZyZXEgPSBpeHA0eHhfdGltZXJfZnJlcTsKLQotCWdwaW9f cmVxdWVzdChHUElPX1NDTCwgIlNDTC9jbG9jayIpOwotCWdwaW9fcmVxdWVzdChHUElPX1NEQSwg IlNEQS9kYXRhIik7Ci0JZ3Bpb19yZXF1ZXN0KEdQSU9fU1RSLCAic3Ryb2JlIik7Ci0JZ3Bpb19y ZXF1ZXN0KEdQSU9fSFNTMF9SVFNfTiwgIkhTUzAgUlRTIik7Ci0JZ3Bpb19yZXF1ZXN0KEdQSU9f SFNTMV9SVFNfTiwgIkhTUzEgUlRTIik7Ci0JZ3Bpb19yZXF1ZXN0KEdQSU9fSFNTMF9EQ0RfTiwg IkhTUzAgRENEIik7Ci0JZ3Bpb19yZXF1ZXN0KEdQSU9fSFNTMV9EQ0RfTiwgIkhTUzEgRENEIik7 Ci0KLQlncGlvX2RpcmVjdGlvbl9vdXRwdXQoR1BJT19TQ0wsIDEpOwotCWdwaW9fZGlyZWN0aW9u X291dHB1dChHUElPX1NEQSwgMSk7Ci0JZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KEdQSU9fU1RSLCAw KTsKLQlncGlvX2RpcmVjdGlvbl9vdXRwdXQoR1BJT19IU1MwX1JUU19OLCAxKTsKLQlncGlvX2Rp cmVjdGlvbl9vdXRwdXQoR1BJT19IU1MxX1JUU19OLCAxKTsKLQlncGlvX2RpcmVjdGlvbl9pbnB1 dChHUElPX0hTUzBfRENEX04pOwotCWdwaW9fZGlyZWN0aW9uX2lucHV0KEdQSU9fSFNTMV9EQ0Rf Tik7Ci0JaXJxX3NldF9pcnFfdHlwZShJWFA0WFhfR1BJT19JUlEoR1BJT19IU1MwX0RDRF9OKSwg SVJRX1RZUEVfRURHRV9CT1RIKTsKLQlpcnFfc2V0X2lycV90eXBlKElYUDRYWF9HUElPX0lSUShH UElPX0hTUzFfRENEX04pLCBJUlFfVFlQRV9FREdFX0JPVEgpOwotCi0Jc2V0X2NvbnRyb2woQ09O VFJPTF9IU1MwX0RUUl9OLCAxKTsKLQlzZXRfY29udHJvbChDT05UUk9MX0hTUzFfRFRSX04sIDEp OwotCXNldF9jb250cm9sKENPTlRST0xfRUVQUk9NX1dDX04sIDEpOwotCXNldF9jb250cm9sKENP TlRST0xfUENJX1JFU0VUX04sIDEpOwotCW91dHB1dF9jb250cm9sKCk7Ci0KLQltc2xlZXAoMSk7 CSAgICAgIC8qIFdhaXQgZm9yIFBDSSBkZXZpY2VzIHRvIGluaXRpYWxpemUgKi8KLQotCWZsYXNo X3Jlc291cmNlLnN0YXJ0ID0gSVhQNFhYX0VYUF9CVVNfQkFTRSgwKTsKLQlmbGFzaF9yZXNvdXJj ZS5lbmQgPSBJWFA0WFhfRVhQX0JVU19CQVNFKDApICsgaXhwNHh4X2V4cF9idXNfc2l6ZSAtIDE7 Ci0KLQlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhkZXZpY2VfdGFiLCBkZXZpY2VzKTsKLX0KLQotCi0j aWZkZWYgQ09ORklHX1BDSQotc3RhdGljIHZvaWQgX19pbml0IGdtbHJfcGNpX3ByZWluaXQodm9p ZCkKLXsKLQlpcnFfc2V0X2lycV90eXBlKElYUDRYWF9HUElPX0lSUShHUElPX0lSUV9FVEhBKSwg SVJRX1RZUEVfTEVWRUxfTE9XKTsKLQlpcnFfc2V0X2lycV90eXBlKElYUDRYWF9HUElPX0lSUShH UElPX0lSUV9FVEhCKSwgSVJRX1RZUEVfTEVWRUxfTE9XKTsKLQlpcnFfc2V0X2lycV90eXBlKElY UDRYWF9HUElPX0lSUShHUElPX0lSUV9ORUMpLCBJUlFfVFlQRV9MRVZFTF9MT1cpOwotCWlycV9z ZXRfaXJxX3R5cGUoSVhQNFhYX0dQSU9fSVJRKEdQSU9fSVJRX01QQ0kpLCBJUlFfVFlQRV9MRVZF TF9MT1cpOwotCWl4cDR4eF9wY2lfcHJlaW5pdCgpOwotfQotCi1zdGF0aWMgdm9pZCBfX2luaXQg Z21scl9wY2lfcG9zdGluaXQodm9pZCkKLXsKLQlpZiAoKGh3X2JpdHMgJiBDRkdfSFdfVVNCX1BP UlRTKSA+PSAyICYmCi0JICAgIChod19iaXRzICYgQ0ZHX0hXX1VTQl9QT1JUUykgPCA1KSB7Ci0J CS8qIG5lZWQgdG8gYWRqdXN0IG51bWJlciBvZiBVU0IgcG9ydHMgb24gTkVDIGNoaXAgKi8KLQkJ dTMyIHZhbHVlLCBhZGRyID0gQklUKDMyIC0gU0xPVF9ORUMpIHwgMHhFMDsKLQkJaWYgKCFpeHA0 eHhfcGNpX3JlYWQoYWRkciwgTlBfQ01EX0NPTkZJR1JFQUQsICZ2YWx1ZSkpIHsKLQkJCXZhbHVl ICY9IH43OwotCQkJdmFsdWUgfD0gKGh3X2JpdHMgJiBDRkdfSFdfVVNCX1BPUlRTKTsKLQkJCWl4 cDR4eF9wY2lfd3JpdGUoYWRkciwgTlBfQ01EX0NPTkZJR1dSSVRFLCB2YWx1ZSk7Ci0JCX0KLQl9 Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0IGdtbHJfbWFwX2lycShjb25zdCBzdHJ1Y3QgcGNpX2Rl diAqZGV2LCB1OCBzbG90LCB1OCBwaW4pCi17Ci0Jc3dpdGNoKHNsb3QpIHsKLQljYXNlIFNMT1Rf RVRIQToJcmV0dXJuIElYUDRYWF9HUElPX0lSUShHUElPX0lSUV9FVEhBKTsKLQljYXNlIFNMT1Rf RVRIQjoJcmV0dXJuIElYUDRYWF9HUElPX0lSUShHUElPX0lSUV9FVEhCKTsKLQljYXNlIFNMT1Rf TkVDOglyZXR1cm4gSVhQNFhYX0dQSU9fSVJRKEdQSU9fSVJRX05FQyk7Ci0JZGVmYXVsdDoJcmV0 dXJuIElYUDRYWF9HUElPX0lSUShHUElPX0lSUV9NUENJKTsKLQl9Ci19Ci0KLXN0YXRpYyBzdHJ1 Y3QgaHdfcGNpIGdtbHJfaHdfcGNpIF9faW5pdGRhdGEgPSB7Ci0JLm5yX2NvbnRyb2xsZXJzID0g MSwKLQkub3BzCQk9ICZpeHA0eHhfb3BzLAotCS5wcmVpbml0CT0gZ21scl9wY2lfcHJlaW5pdCwK LQkucG9zdGluaXQJPSBnbWxyX3BjaV9wb3N0aW5pdCwKLQkuc2V0dXAJCT0gaXhwNHh4X3NldHVw LAotCS5tYXBfaXJxCT0gZ21scl9tYXBfaXJxLAotfTsKLQotc3RhdGljIGludCBfX2luaXQgZ21s cl9wY2lfaW5pdCh2b2lkKQotewotCWlmIChtYWNoaW5lX2lzX2dvcmFtb19tbHIoKSAmJgotCSAg ICAoaHdfYml0cyAmIChDRkdfSFdfVVNCX1BPUlRTIHwgQ0ZHX0hXX0hBU19QQ0lfU0xPVCkpKQot CQlwY2lfY29tbW9uX2luaXQoJmdtbHJfaHdfcGNpKTsKLQlyZXR1cm4gMDsKLX0KLQotc3Vic3lz X2luaXRjYWxsKGdtbHJfcGNpX2luaXQpOwotI2VuZGlmIC8qIENPTkZJR19QQ0kgKi8KLQotCi1N QUNISU5FX1NUQVJUKEdPUkFNT19NTFIsICJNdWx0aUxpbmsiKQotCS8qIE1haW50YWluZXI6IEty enlzenRvZiBIYWxhc2EgKi8KLQkubWFwX2lvCQk9IGl4cDR4eF9tYXBfaW8sCi0JLmluaXRfZWFy bHkJPSBpeHA0eHhfaW5pdF9lYXJseSwKLQkuaW5pdF9pcnEJPSBpeHA0eHhfaW5pdF9pcnEsCi0J LmluaXRfdGltZQk9IGl4cDR4eF90aW1lcl9pbml0LAotCS5hdGFnX29mZnNldAk9IDB4MTAwLAot CS5pbml0X21hY2hpbmUJPSBnbWxyX2luaXQsCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKQotCS5k bWFfem9uZV9zaXplCT0gU1pfNjRNLAotI2VuZGlmCi0JLnJlc3RhcnQJPSBpeHA0eHhfcmVzdGFy dCwKLU1BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEv d2FuX2l4cDR4eF9oc3MuaCBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS93YW5faXhwNHh4 X2hzcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTI1YTBmZWI5ZTEuLjAwMDAw MDAwMDAwMAotLS0gYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvd2FuX2l4cDR4eF9oc3Mu aAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wICovCi0jaWZuZGVmIF9fUExBVEZPUk1fREFUQV9XQU5fSVhQNFhYX0hTU19I Ci0jZGVmaW5lIF9fUExBVEZPUk1fREFUQV9XQU5fSVhQNFhYX0hTU19ICi0KLSNpbmNsdWRlIDxs aW51eC90eXBlcy5oPgotCi0vKiBJbmZvcm1hdGlvbiBhYm91dCBidWlsdC1pbiBIU1MgKHN5bmNo cm9ub3VzIHNlcmlhbCkgaW50ZXJmYWNlcyAqLwotc3RydWN0IGhzc19wbGF0X2luZm8gewotCWlu dCAoKnNldF9jbG9jaykoaW50IHBvcnQsIHVuc2lnbmVkIGludCBjbG9ja190eXBlKTsKLQlpbnQg KCpvcGVuKShpbnQgcG9ydCwgdm9pZCAqcGRldiwKLQkJICAgIHZvaWQgKCpzZXRfY2Fycmllcl9j Yikodm9pZCAqcGRldiwgaW50IGNhcnJpZXIpKTsKLQl2b2lkICgqY2xvc2UpKGludCBwb3J0LCB2 b2lkICpwZGV2KTsKLQl1OCB0eHJlYWR5cTsKLQl1MzIgdGltZXJfZnJlcTsKLX07Ci0KLSNlbmRp ZgotLSAKMi4zNC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=