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 2E49AEB64DC for ; Fri, 21 Jul 2023 09:07:21 +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:In-Reply-To:From:References:CC:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=IFt9ihjhC5FVXjlpmhHUKA5gUmLbh1xg5D3gYNLWCvc=; b=kIVvcUFpeuZYcT pXAaRZOoXM4EDMIbIFPTgTqGku5xCuPBBVrjZbP9Lf3tRLd3bK8VFHHCbHZVy7SzDzJuFq+Pcutnr 9SK0QLTqmglrY2LlSkeDyMIxCrEeb2SEYBDu5k2azcTUzYllWUIqrQ7hQk6Ew0ikP3gRYA0e24fQa Qz3couSq2aNYy7FAs1NQCQYRHCa1KwvhI1zJbG5hjUuUSYZC2NXAlUjosyvXbOKaVnLbYgN+mFJJC qZk9NMDIAF48gcn4HE36xdQ5UbNoGCOdlrAmnaJstAYDis4Rd/25VGM4cHeODuT54XT9tKpfOFoT4 FwCqlimS6GKYdW5M+34w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qMm6X-00DTh3-1J; Fri, 21 Jul 2023 09:07:17 +0000 Received: from fd01.gateway.ufhost.com ([61.152.239.71]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qMm6S-00DTd5-0O for linux-riscv@lists.infradead.org; Fri, 21 Jul 2023 09:07:15 +0000 Received: from EXMBX165.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX165", Issuer "EXMBX165" (not verified)) by fd01.gateway.ufhost.com (Postfix) with ESMTP id 829F424DED7; Fri, 21 Jul 2023 17:06:33 +0800 (CST) Received: from EXMBX061.cuchost.com (172.16.6.61) by EXMBX165.cuchost.com (172.16.6.75) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Fri, 21 Jul 2023 17:06:33 +0800 Received: from [192.168.60.102] (180.164.60.184) by EXMBX061.cuchost.com (172.16.6.61) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Fri, 21 Jul 2023 17:06:32 +0800 Message-ID: Date: Fri, 21 Jul 2023 17:06:32 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH 5/9] drm/verisilicon: Add mode config funcs Content-Language: en-US To: Thomas Zimmermann , , , , , , CC: David Airlie , Daniel Vetter , "Rob Herring" , Krzysztof Kozlowski , Conor Dooley , "Emil Renner Berthing" , Paul Walmsley , Palmer Dabbelt , Albert Ou , Maarten Lankhorst , Maxime Ripard , Philipp Zabel , Sumit Semwal , , Bjorn Andersson , Heiko Stuebner , Shawn Guo , Jagan Teki , Chris Morgan , Jack Zhu , "Shengyang Chen" , Changhuang Liang References: <20230602074043.33872-1-keith.zhao@starfivetech.com> <20230602074043.33872-6-keith.zhao@starfivetech.com> <30008535-8606-fc6d-9c07-23d46f59c957@suse.de> From: Keith Zhao In-Reply-To: <30008535-8606-fc6d-9c07-23d46f59c957@suse.de> X-Originating-IP: [180.164.60.184] X-ClientProxiedBy: EXCAS064.cuchost.com (172.16.6.24) To EXMBX061.cuchost.com (172.16.6.61) X-YovoleRuleAgent: yovoleflag X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230721_020712_846649_C938B468 X-CRM114-Status: GOOD ( 18.96 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org CgpPbiAyMDIzLzYvMjEgMTk6MDQsIFRob21hcyBaaW1tZXJtYW5uIHdyb3RlOgo+IEhpIEtlaXRo Cj4gCj4gQW0gMDIuMDYuMjMgdW0gMDk6NDAgc2NocmllYiBLZWl0aCBaaGFvOgo+PiBBZGQgbW9k ZSBzZXR0aW5nIGZ1bmN0aW9ucyBmb3IgSkg3MTEwIFNvQy4KPj4KPj4gU2lnbmVkLW9mZi1ieTog S2VpdGggWmhhbyA8a2VpdGguemhhb0BzdGFyZml2ZXRlY2guY29tPgo+PiAtLS0KPj4gwqAgZHJp dmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL01ha2VmaWxlIHzCoMKgIDEgKwo+PiDCoCBkcml2ZXJz L2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZHJ2LmMgfMKgwqAgMyArCj4gCj4+IMKgIGRyaXZlcnMv Z3B1L2RybS92ZXJpc2lsaWNvbi92c19mYi5jwqAgfCAxODEgKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19mYi5owqAgfMKgIDE1 ICsrKwo+IAo+IEknZCBjYWxsIHRoZXNlIGZpbGVzIHZzX21vZGVzZXQue2MsaH0gdG8gYmUgY29u c2lzdGVudCB3aXRoIHRoZSByZXN0IG9mIHRoZSBkcml2ZXJzLgo+IAo+PiDCoCA0IGZpbGVzIGNo YW5nZWQsIDIwMCBpbnNlcnRpb25zKCspCj4+IMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZmIuYwo+PiDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2ZiLmgKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2ls aWNvbi9NYWtlZmlsZQo+PiBpbmRleCAzMDM2MGUzNzBlNDcuLjM4MjU0ZGM1ZDk4ZCAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL01ha2VmaWxlCj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9NYWtlZmlsZQo+PiBAQCAtMSw2ICsxLDcgQEAKPj4g wqAgIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+PiDCoCDCoCB2c19kcm0tb2Jq cyA6PSB2c19kcnYubyBcCj4+ICvCoMKgwqDCoMKgwqDCoCB2c19mYi5vIFwKPj4gwqDCoMKgwqDC oMKgwqDCoMKgIHZzX2dlbS5vCj4+IMKgIMKgIG9iai0kKENPTkZJR19EUk1fVkVSSVNJTElDT04p ICs9IHZzX2RybS5vCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24v dnNfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZHJ2LmMKPj4gaW5kZXgg ZTBhMmZjNDNiNTVmLi5kODRhYWNkNzUxYmMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92ZXJpc2lsaWNvbi92c19kcnYuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGlj b24vdnNfZHJ2LmMKPj4gQEAgLTMwLDYgKzMwLDcgQEAKPj4gwqAgI2luY2x1ZGUgPGRybS9kcm1f dmJsYW5rLmg+Cj4+IMKgIMKgICNpbmNsdWRlICJ2c19kcnYuaCIKPj4gKyNpbmNsdWRlICJ2c19m Yi5oIgo+PiDCoCAjaW5jbHVkZSAidnNfZ2VtLmgiCj4+IMKgIMKgICNkZWZpbmUgRFJWX05BTUXC oMKgwqAgInN0YXJmaXZlIgo+PiBAQCAtMTE4LDYgKzExOSw4IEBAIHN0YXRpYyBpbnQgdnNfZHJt X2JpbmQoc3RydWN0IGRldmljZSAqZGV2KQo+PiDCoMKgwqDCoMKgIGlmIChyZXQpCj4+IMKgwqDC oMKgwqDCoMKgwqDCoCBnb3RvIGVycl9tb2RlOwo+PiDCoCArwqDCoMKgIHZzX21vZGVfY29uZmln X2luaXQoZHJtX2Rldik7Cj4+ICsKPj4gwqDCoMKgwqDCoCByZXQgPSBkcm1fdmJsYW5rX2luaXQo ZHJtX2RldiwgZHJtX2Rldi0+bW9kZV9jb25maWcubnVtX2NydGMpOwo+PiDCoMKgwqDCoMKgIGlm IChyZXQpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVycl9iaW5kOwo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0v dmVyaXNpbGljb24vdnNfZmIuYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAw MDAwMDAwMDAuLjNlODVmNzM2NTA4NAo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS92ZXJpc2lsaWNvbi92c19mYi5jCj4+IEBAIC0wLDAgKzEsMTgxIEBACj4+ICsvLyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+PiArLyoKPj4gKyAqIENvcHlyaWdodCAo QykgMjAyMyBWZXJpU2lsaWNvbiBIb2xkaW5ncyBDby4sIEx0ZC4KPj4gKyAqLwo+PiArCj4+ICsj aW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgo+ PiArCj4+ICsjaW5jbHVkZSA8ZHJtL2RybV9kYW1hZ2VfaGVscGVyLmg+Cj4+ICsjaW5jbHVkZSA8 ZHJtL2RybV9mYl9oZWxwZXIuaD4KPj4gKyNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KPj4gKyNp bmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4+ICsjaW5jbHVkZSA8ZHJtL2RybV9mb3Vy Y2MuaD4KPj4gKyNpbmNsdWRlIDxkcm0vZHJtX2ZyYW1lYnVmZmVyLmg+Cj4+ICsjaW5jbHVkZSA8 ZHJtL2RybV9nZW0uaD4KPj4gKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxw ZXIuaD4KPj4gKwo+PiArI2luY2x1ZGUgInZzX2ZiLmgiCj4+ICsjaW5jbHVkZSAidnNfZ2VtLmgi Cj4+ICsKPj4gKyNkZWZpbmUgZm91cmNjX21vZF92c19nZXRfdHlwZSh2YWwpIFwKPj4gK8KgwqDC oCAoKCh2YWwpICYgRFJNX0ZPUk1BVF9NT0RfVlNfVFlQRV9NQVNLKSA+PiA1NCkKPj4gKwo+PiAr c3RhdGljIHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgdnNfZmJfZnVuY3MgPSB7Cj4+ICvC oMKgwqAgLmNyZWF0ZV9oYW5kbGXCoMKgwqAgPSBkcm1fZ2VtX2ZiX2NyZWF0ZV9oYW5kbGUsCj4+ ICvCoMKgwqAgLmRlc3Ryb3nCoMKgwqAgPSBkcm1fZ2VtX2ZiX2Rlc3Ryb3ksCj4+ICvCoMKgwqAg LmRpcnR5wqDCoMKgwqDCoMKgwqAgPSBkcm1fYXRvbWljX2hlbHBlcl9kaXJ0eWZiLAo+PiArfTsK Pj4gKwo+PiArc3RhdGljIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKgo+PiArdnNfZmJfYWxsb2Mo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1v ZGVfY21kLAo+PiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IHZzX2dlbV9vYmplY3QgKipvYmosIHVu c2lnbmVkIGludCBudW1fcGxhbmVzKQo+PiArewo+PiArwqDCoMKgIHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiOwo+PiArwqDCoMKgIGludCByZXQsIGk7Cj4+ICsKPj4gK8KgwqDCoCBmYiA9IGt6 YWxsb2Moc2l6ZW9mKCpmYiksIEdGUF9LRVJORUwpOwo+PiArwqDCoMKgIGlmICghZmIpCj4+ICvC oMKgwqDCoMKgwqDCoCByZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPj4gKwo+PiArwqDCoMKgIGRy bV9oZWxwZXJfbW9kZV9maWxsX2ZiX3N0cnVjdChkZXYsIGZiLCBtb2RlX2NtZCk7Cj4+ICsKPj4g K8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgbnVtX3BsYW5lczsgaSsrKQo+PiArwqDCoMKgwqDCoMKg wqAgZmItPm9ialtpXSA9ICZvYmpbaV0tPmJhc2U7Cj4+ICsKPj4gK8KgwqDCoCByZXQgPSBkcm1f ZnJhbWVidWZmZXJfaW5pdChkZXYsIGZiLCAmdnNfZmJfZnVuY3MpOwo+PiArwqDCoMKgIGlmIChy ZXQpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGRldl9lcnIoZGV2LT5kZXYsICJGYWlsZWQgdG8gaW5p dGlhbGl6ZSBmcmFtZWJ1ZmZlcjogJWRcbiIsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJl dCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBrZnJlZShmYik7Cj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1 cm4gRVJSX1BUUihyZXQpOwo+PiArwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIHJldHVybiBmYjsK Pj4gK30KPj4gKwo+PiArc3RhdGljIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKnZzX2ZiX2NyZWF0 ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3Qgc3RydWN0IGRy bV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kKQo+PiArewo+PiArwqDCoMKgIHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiOwo+PiArwqDCoMKgIGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKmlu Zm87Cj4+ICvCoMKgwqAgc3RydWN0IHZzX2dlbV9vYmplY3QgKm9ianNbTUFYX05VTV9QTEFORVNd Owo+PiArwqDCoMKgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwo+PiArwqDCoMKgIHVuc2ln bmVkIGludCBoZWlnaHQsIHNpemU7Cj4+ICvCoMKgwqAgdW5zaWduZWQgY2hhciBpLCBudW1fcGxh bmVzOwo+PiArwqDCoMKgIGludCByZXQgPSAwOwo+PiArCj4+ICvCoMKgwqAgaW5mbyA9IGRybV9n ZXRfZm9ybWF0X2luZm8oZGV2LCBtb2RlX2NtZCk7Cj4+ICvCoMKgwqAgaWYgKCFpbmZvKQo+PiAr wqDCoMKgwqDCoMKgwqAgcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4+ICsKPj4gK8KgwqDCoCBu dW1fcGxhbmVzID0gaW5mby0+bnVtX3BsYW5lczsKPj4gK8KgwqDCoCBpZiAobnVtX3BsYW5lcyA+ IE1BWF9OVU1fUExBTkVTKQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIEVSUl9QVFIoLUVJTlZB TCk7Cj4+ICsKPj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgbnVtX3BsYW5lczsgaSsrKSB7Cj4+ ICvCoMKgwqDCoMKgwqDCoCBvYmogPSBkcm1fZ2VtX29iamVjdF9sb29rdXAoZmlsZV9wcml2LCBt b2RlX2NtZC0+aGFuZGxlc1tpXSk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIW9iaikgewo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZXZfZXJyKGRldi0+ZGV2LCAiRmFpbGVkIHRvIGxvb2t1 cCBHRU0gb2JqZWN0LlxuIik7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IC1FTlhJ TzsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnI7Cj4+ICvCoMKgwqDCoMKgwqDC oCB9Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGhlaWdodCA9IGRybV9mb3JtYXRfaW5mb19wbGFu ZV9oZWlnaHQoaW5mbywKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgbW9kZV9jbWQtPmhlaWdodCwgaSk7Cj4+ICsKPj4gK8KgwqDC oMKgwqDCoMKgIHNpemUgPSBoZWlnaHQgKiBtb2RlX2NtZC0+cGl0Y2hlc1tpXSArIG1vZGVfY21k LT5vZmZzZXRzW2ldOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAob2JqLT5zaXplIDwgc2l6 ZSkgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkcm1fZ2VtX29iamVjdF9wdXQob2JqKTsK Pj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSAtRUlOVkFMOwo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVycjsKPj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4gKwo+PiAr wqDCoMKgwqDCoMKgwqAgb2Jqc1tpXSA9IHRvX3ZzX2dlbV9vYmplY3Qob2JqKTsKPj4gK8KgwqDC oCB9Cj4+ICsKPj4gK8KgwqDCoCBmYiA9IHZzX2ZiX2FsbG9jKGRldiwgbW9kZV9jbWQsIG9ianMs IGkpOwo+PiArwqDCoMKgIGlmIChJU19FUlIoZmIpKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCByZXQg PSBQVFJfRVJSKGZiKTsKPj4gK8KgwqDCoMKgwqDCoMKgIGdvdG8gZXJyOwo+PiArwqDCoMKgIH0K Pj4gKwo+PiArwqDCoMKgIHJldHVybiBmYjsKPj4gKwo+PiArZXJyOgo+PiArwqDCoMKgIGZvciAo OyBpID4gMDsgaS0tKQo+PiArwqDCoMKgwqDCoMKgwqAgZHJtX2dlbV9vYmplY3RfcHV0KCZvYmpz W2kgLSAxXS0+YmFzZSk7Cj4+ICsKPj4gK8KgwqDCoCByZXR1cm4gRVJSX1BUUihyZXQpOwo+PiAr fQo+PiArCj4+ICtzdHJ1Y3QgdnNfZ2VtX29iamVjdCAqdnNfZmJfZ2V0X2dlbV9vYmooc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB1bnNpZ25lZCBjaGFyIHBsYW5lKQo+PiArewo+PiArwqDCoMKgIGlmIChwbGFuZSA+ IE1BWF9OVU1fUExBTkVTKQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIE5VTEw7Cj4+ICsKPj4g K8KgwqDCoCByZXR1cm4gdG9fdnNfZ2VtX29iamVjdChmYi0+b2JqW3BsYW5lXSk7Cj4+ICt9Cj4+ ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIHZzX2Zvcm1hdHNbXSA9 IHsKPj4gK8KgwqDCoCB7LmZvcm1hdCA9IERSTV9GT1JNQVRfTlYxMiwgLmRlcHRoID0gMCwgLm51 bV9wbGFuZXMgPSAyLCAuY2hhcl9wZXJfYmxvY2sgPSB7IDIwLCA0MCwgMCB9LAo+PiArwqDCoMKg wqAgLmJsb2NrX3cgPSB7IDQsIDQsIDAgfSwgLmJsb2NrX2ggPSB7IDQsIDQsIDAgfSwgLmhzdWIg PSAyLCAudnN1YiA9IDIsIC5pc195dXYgPSB0cnVlfSwKPj4gK8KgwqDCoCB7LmZvcm1hdCA9IERS TV9GT1JNQVRfWVVWNDQ0LCAuZGVwdGggPSAwLCAubnVtX3BsYW5lcyA9IDMsIC5jaGFyX3Blcl9i bG9jayA9IHsgMjAsIDIwLCAyMCB9LAo+PiArwqDCoMKgwqAgLmJsb2NrX3cgPSB7IDQsIDQsIDQg fSwgLmJsb2NrX2ggPSB7IDQsIDQsIDQgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEsIC5pc195dXYg PSB0cnVlfSwKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9p bmZvICoKPj4gK3ZzX2xvb2t1cF9mb3JtYXRfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9p bmZvIGZvcm1hdHNbXSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBudW1fZm9y bWF0cywgdTMyIGZvcm1hdCkKPj4gK3sKPj4gK8KgwqDCoCBpbnQgaTsKPj4gKwo+PiArwqDCoMKg IGZvciAoaSA9IDA7IGkgPCBudW1fZm9ybWF0czsgaSsrKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBp ZiAoZm9ybWF0c1tpXS5mb3JtYXQgPT0gZm9ybWF0KQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCByZXR1cm4gJmZvcm1hdHNbaV07Cj4+ICvCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqAgcmV0dXJu IE5VTEw7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZv ICoKPj4gK3ZzX2dldF9mb3JtYXRfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAq Y21kKQo+PiArewo+PiArwqDCoMKgIGlmIChmb3VyY2NfbW9kX3ZzX2dldF90eXBlKGNtZC0+bW9k aWZpZXJbMF0pID09Cj4+ICvCoMKgwqDCoMKgwqDCoCBEUk1fRk9STUFUX01PRF9WU19UWVBFX0NV U1RPTV8xMEJJVCkKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiB2c19sb29rdXBfZm9ybWF0X2lu Zm8odnNfZm9ybWF0cywgQVJSQVlfU0laRSh2c19mb3JtYXRzKSwKPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBjbWQtPnBpeGVsX2Zvcm1hdCk7Cj4+ICvCoMKgwqAgZWxzZQo+PiArwqDCoMKgwqDCoMKgwqAg cmV0dXJuIE5VTEw7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVf Y29uZmlnX2Z1bmNzIHZzX21vZGVfY29uZmlnX2Z1bmNzID0gewo+PiArwqDCoMKgIC5mYl9jcmVh dGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPSB2c19mYl9jcmVhdGUsCj4gCj4gTWF5YmUgSSdt IG1pc3Npbmcgc29tZXRoaW5nIGhlcmUsIGJ1dCBpdCBsb29rcyBsaWtlIHlvdSBjYW4gY2FsbAo+ IGRybV9nZW1fZmJfY3JlYXRlX3dpdGhfZnVuY3MoKSB0byBjcmVhdGUgdGhlIGZyYW1lYnVmZmVy Lgo+IApUaGF0J3MgYSBicmlsbGlhbnQgc3VnZ2VzdGlvbiEhISAKCgo+PiArwqDCoMKgIC5nZXRf Zm9ybWF0X2luZm/CoMKgwqDCoCA9IHZzX2dldF9mb3JtYXRfaW5mbywKPj4gK8KgwqDCoCAub3V0 cHV0X3BvbGxfY2hhbmdlZCA9IGRybV9mYl9oZWxwZXJfb3V0cHV0X3BvbGxfY2hhbmdlZCwKPj4g K8KgwqDCoCAuYXRvbWljX2NoZWNrwqDCoMKgwqDCoMKgwqDCoCA9IGRybV9hdG9taWNfaGVscGVy X2NoZWNrLAo+PiArwqDCoMKgIC5hdG9taWNfY29tbWl0wqDCoMKgwqDCoMKgwqDCoCA9IGRybV9h dG9taWNfaGVscGVyX2NvbW1pdCwKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX21v ZGVfY29uZmlnX2hlbHBlcl9mdW5jcyB2c19tb2RlX2NvbmZpZ19oZWxwZXJzID0gewo+PiArwqDC oMKgIC5hdG9taWNfY29tbWl0X3RhaWwgPSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfdGFpbF9y cG0sCj4+ICt9Owo+PiArCj4+ICt2b2lkIHZzX21vZGVfY29uZmlnX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPj4gK3sKPiAKPiBJZiBwb3NzaWJsZSwgbW92ZSB0aGUgY2FsbCB0byBkcm1f bW9kZV9jb25maWdfaW5pdCgpIGludG8gdGhpcyBmdW5jdGlvbi4KPiAKbW92ZSBkcm1fbW9kZV9j b25maWdfaW5pdCgpIGludG8gdnNfbW9kZV9jb25maWdfaW5pdC4gCmFuZCB2c19tb2RlX2NvbmZp Z19pbml0IG11c3QgYmUgY2FsbGVkIGFoZWFkIGNvbXBvbmVudF9iaW5kX2FsbAoKbGlrZSB0aGlz OgpzdGF0aWMgaW50IHZzX2RybV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldikKewoJLi4uLi4uCgoJ dnNfbW9kZV9jb25maWdfaW5pdChkcm1fZGV2KTsKCgkvKiBOb3cgdHJ5IGFuZCBiaW5kIGFsbCBv dXIgc3ViLWNvbXBvbmVudHMgKi8KCXJldCA9IGNvbXBvbmVudF9iaW5kX2FsbChkZXYsIGRybV9k ZXYpOwoJaWYgKHJldCkKCQlnb3RvIGVycl9tb2RlOwoJLi4uLi4uCn0KCj4+ICvCoMKgwqAgZGV2 LT5tb2RlX2NvbmZpZy5mYl9tb2RpZmllcnNfbm90X3N1cHBvcnRlZCA9IGZhbHNlOwo+PiArCj4+ ICvCoMKgwqAgaWYgKGRldi0+bW9kZV9jb25maWcubWF4X3dpZHRoID09IDAgfHwKPj4gK8KgwqDC oMKgwqDCoMKgIGRldi0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9PSAwKSB7Cj4+ICvCoMKgwqDC oMKgwqDCoCBkZXYtPm1vZGVfY29uZmlnLm1pbl93aWR0aMKgID0gMDsKPj4gK8KgwqDCoMKgwqDC oMKgIGRldi0+bW9kZV9jb25maWcubWluX2hlaWdodCA9IDA7Cj4+ICvCoMKgwqDCoMKgwqDCoCBk ZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aMKgID0gNDA5NjsKPj4gK8KgwqDCoMKgwqDCoMKgIGRl di0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9IDQwOTY7Cj4+ICvCoMKgwqAgfQo+PiArwqDCoMKg IGRldi0+bW9kZV9jb25maWcuZnVuY3MgPSAmdnNfbW9kZV9jb25maWdfZnVuY3M7Cj4+ICvCoMKg wqAgZGV2LT5tb2RlX2NvbmZpZy5oZWxwZXJfcHJpdmF0ZSA9ICZ2c19tb2RlX2NvbmZpZ19oZWxw ZXJzOwo+PiArfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3Zz X2ZiLmggYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZmIuaAo+PiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjc4ZGRhOGU0Mjg5NAo+PiAtLS0gL2Rl di9udWxsCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19mYi5oCj4+IEBA IC0wLDAgKzEsMTUgQEAKPj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICov Cj4+ICsvKgo+PiArICogQ29weXJpZ2h0IChDKSAyMDIzIFZlcmlTaWxpY29uIEhvbGRpbmdzIENv LiwgTHRkLgo+PiArICovCj4+ICsKPj4gKyNpZm5kZWYgX19WU19GQl9IX18KPj4gKyNkZWZpbmUg X19WU19GQl9IX18KPj4gKwo+PiArI2RlZmluZSBNQVhfTlVNX1BMQU5FU8KgwqDCoMKgwqDCoMKg IDMgLyogY29sb3VyIGZvcm1hdCBwbGFuZSAqLwo+IAo+IFRoZXJlJ3MgRFJNX0ZPUk1BVF9NQVhf UExBTkVTIGFscmVhZHkuIFBsZWFzZSBkb24ndCBpbnRyb2R1Y2UgYSBjb25zdGFudCB3aXRoIHRo ZSBzYW1lIHB1cnBvc2UuCj4gCm9rIGdvb2QgaWRlYe+8gSAKPiBCZXN0IHJlZ2FyZHMKPiBUaG9t YXMKPiAKPj4gKwo+PiArc3RydWN0IHZzX2dlbV9vYmplY3QgKnZzX2ZiX2dldF9nZW1fb2JqKHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgdW5zaWduZWQgY2hhciBwbGFuZSk7Cj4+ICsKPj4gK3ZvaWQgdnNfbW9kZV9j b25maWdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPj4gKyNlbmRpZiAvKiBfX1ZTX0ZC X0hfXyAqLwo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5v cmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNj dgo=