From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ayan Halder Subject: [RFC v3 AFBC 04/12] drm/arm/malidp: Set the AFBC register bits if the framebuffer has AFBC modifier Date: Mon, 3 Dec 2018 11:31:58 +0000 Message-ID: <1543836703-8491-5-git-send-email-ayan.halder@arm.com> References: <1543836703-8491-1-git-send-email-ayan.halder@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20083.outbound.protection.outlook.com [40.107.2.83]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9341889CE3 for ; Mon, 3 Dec 2018 11:32:00 +0000 (UTC) In-Reply-To: <1543836703-8491-1-git-send-email-ayan.halder@arm.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ayan Halder , Liviu Dudau , Brian Starkey , "malidp@foss.arm.com" , "airlied@linux.ie" , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "maxime.ripard@bootlin.com" , "sean@poorly.run" , "maarten.lankhorst@linux.intel.com" , "corbet@lwn.net" , "mchehab+samsung@kernel.org" , "gregkh@linuxfoundation.org" , "davem@davemloft.net" , "akpm@linux-foundation.org" , "nicolas.ferre@microchip.com" , "arnd@arndb.de" , "linux-doc@vger.kernel.org" Cc: nd List-Id: dri-devel@lists.freedesktop.org QWRkZWQgdGhlIEFGQkMgZGVjb2RlciByZWdpc3RlcnMgZm9yIERQNTAwICwgRFA1NTAgYW5kIERQ NjUwLgpUaGVzZSByZWdpc3RlcnMgY29udHJvbCB0aGUgcHJvY2Vzc2luZyBvZiBBRkJDIGJ1ZmZl cnMuIEl0IGNvbnRyb2xzIHZhcmlvdXMKZmVhdHVyZXMgbGlrZSBBRkJDIGRlY29kZXIgZW5hYmxl LCBsb3NzbGVzcyB0cmFuc2Zvcm1hdGlvbiBhbmQgYmxvY2sgc3BsaXQKYXMgd2VsbCBhcyBzZXR0 aW5nIG9mIHRoZSBsZWZ0LCByaWdodCwgdG9wIGFuZCBib3R0b20gY3JvcHBpbmcgb2YgQUZCQyBi dWZmZXJzCihpbiBudW1iZXIgb2YgcGl4ZWxzKS4KQWxsIHRoZSBsYXllcnMgKGV4Y2VwdCBERV9T TUFSVCkgc3VwcG9ydCBmcmFtZWJ1ZmZlcnMgd2l0aCBBRkJDIG1vZGlmaWVycy4KT25lIG5lZWRz IHRvIHNldCB0aGUgcGl4ZWwgdmFsdWVzIG9mIHRoZSB0b3AsIGxlZnQsIGJvdHRvbSBhbmQgcmln aHQgY3JvcHBpbmcKZm9yIHRoZSBBRkJDIGZyYW1lYnVmZmVyLgpDcm9wcGluZyBhbiBBRkJDIGZy YW1lYnVmZmVyIGlzIGNvbnRyb2xsZWQgYnkgdGhlIEFGQkMgY3JvcCByZWdpc3RlcnMuCkluIHRo YXQgY2FzZSwgdGhlIGxheWVyIGlucHV0IHNpemUgcmVnaXN0ZXJzIHNob3VsZCBiZSBjb25maWd1 cmVkIHdpdGgKZnJhbWVidWZmZXIncyBkaW1lbnNpb25zIGFuZCBub3Qgd2l0aCBkcm1fcGxhbmVf c3RhdGUgc291cmNlIHdpZHRoL2hlaWdodAp2YWx1ZXMgKHdoaWNoIGlzIHVzZWQgZm9yIG5vbiBB RkJDIGZyYW1lYnVmZmVyIHRvIGRlbm90ZSBjcm9wcGluZykuCgpDaGFuZ2VzIGZyb20gdjE6CiAt IFJlbW92ZWQgdGhlICJpZiAoZmItPm1vZGlmaWVyKSIgY2hlY2sgZnJvbSBtYWxpZHBfZGVfcGxh bmVfdXBkYXRlKCkKYW5kIGFkZGVkIGl0IGluIG1hbGlkcF9kZV9zZXRfcGxhbmVfYWZiYygpLiBU aGlzIHdpbGwgY29uc29saWRhdGUgYWxsIHRoZQpBRkJDIHNwZWNpZmljIHJlZ2lzdGVyIGNvbmZp Z3VyYXRpb25zIGluIGEgc2luZ2xlIGZ1bmN0aW9uIGllCm1hbGlkcF9kZV9zZXRfcGxhbmVfYWZi YygpLgoKQ2hhbmdlcyBmcm9tIHYyOgogLSBGb3IgQUZCQyBmcmFtZWJ1ZmZlciwgbGF5ZXIgaW5w dXQgc2l6ZSByZWdpc3RlciBzaG91bGQgYmUgc2V0IHRvIGZyYW1lYnVmZmVyJ3MKd2lkdGggYW5k IGhlaWdodAoKU2lnbmVkLW9mZi1ieTogQXlhbiBLdW1hciBIYWxkZXIgPGF5YW4uaGFsZGVyQGFy bS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfaHcuYyAgICAgfCAgMjUgKysr KystLS0tCiBkcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9ody5oICAgICB8ICAgMiArCiBkcml2 ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYyB8IDEwOSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3JlZ3MuaCAgIHwg IDIwICsrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTMwIGluc2VydGlvbnMoKyksIDI2IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3LmMgYi9k cml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9ody5jCmluZGV4IGI5YmVkMTEuLjg3YjdiMTIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FybS9tYWxpZHBfaHcuYwpAQCAtOTQsMTEgKzk0LDEyIEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgbWFsaWRwX2xheWVyIG1hbGlkcDUwMF9sYXllcnNbXSA9IHsKIAkgKgl5dXYycmdiIG1h dHJpeCBvZmZzZXQsIG1tdSBjb250cm9sIHJlZ2lzdGVyIG9mZnNldCwgcm90YXRpb25fZmVhdHVy ZXMKIAkgKi8KIAl7IERFX1ZJREVPMSwgTUFMSURQNTAwX0RFX0xWX0JBU0UsIE1BTElEUDUwMF9E RV9MVl9QVFJfQkFTRSwKLQkJTUFMSURQX0RFX0xWX1NUUklERTAsIE1BTElEUDUwMF9MVl9ZVVYy UkdCLCAwLCBST1RBVEVfQU5ZIH0sCisJCU1BTElEUF9ERV9MVl9TVFJJREUwLCBNQUxJRFA1MDBf TFZfWVVWMlJHQiwgMCwgUk9UQVRFX0FOWSwKKwkJTUFMSURQNTAwX0RFX0xWX0FEX0NUUkwgfSwK IAl7IERFX0dSQVBISUNTMSwgTUFMSURQNTAwX0RFX0xHMV9CQVNFLCBNQUxJRFA1MDBfREVfTEcx X1BUUl9CQVNFLAotCQlNQUxJRFBfREVfTEdfU1RSSURFLCAwLCAwLCBST1RBVEVfQU5ZIH0sCisJ CU1BTElEUF9ERV9MR19TVFJJREUsIDAsIDAsIFJPVEFURV9BTlksIE1BTElEUDUwMF9ERV9MRzFf QURfQ1RSTCB9LAogCXsgREVfR1JBUEhJQ1MyLCBNQUxJRFA1MDBfREVfTEcyX0JBU0UsIE1BTElE UDUwMF9ERV9MRzJfUFRSX0JBU0UsCi0JCU1BTElEUF9ERV9MR19TVFJJREUsIDAsIDAsIFJPVEFU RV9BTlkgfSwKKwkJTUFMSURQX0RFX0xHX1NUUklERSwgMCwgMCwgUk9UQVRFX0FOWSwgTUFMSURQ NTAwX0RFX0xHMl9BRF9DVFJMIH0sCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG1hbGlkcF9s YXllciBtYWxpZHA1NTBfbGF5ZXJzW10gPSB7CkBAIC0xMDYsMTMgKzEwNywxNSBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IG1hbGlkcF9sYXllciBtYWxpZHA1NTBfbGF5ZXJzW10gPSB7CiAJICoJeXV2 MnJnYiBtYXRyaXggb2Zmc2V0LCBtbXUgY29udHJvbCByZWdpc3RlciBvZmZzZXQsIHJvdGF0aW9u X2ZlYXR1cmVzCiAJICovCiAJeyBERV9WSURFTzEsIE1BTElEUDU1MF9ERV9MVjFfQkFTRSwgTUFM SURQNTUwX0RFX0xWMV9QVFJfQkFTRSwKLQkJTUFMSURQX0RFX0xWX1NUUklERTAsIE1BTElEUDU1 MF9MVl9ZVVYyUkdCLCAwLCBST1RBVEVfQU5ZIH0sCisJCU1BTElEUF9ERV9MVl9TVFJJREUwLCBN QUxJRFA1NTBfTFZfWVVWMlJHQiwgMCwgUk9UQVRFX0FOWSwKKwkJTUFMSURQNTUwX0RFX0xWMV9B RF9DVFJMIH0sCiAJeyBERV9HUkFQSElDUzEsIE1BTElEUDU1MF9ERV9MR19CQVNFLCBNQUxJRFA1 NTBfREVfTEdfUFRSX0JBU0UsCi0JCU1BTElEUF9ERV9MR19TVFJJREUsIDAsIDAsIFJPVEFURV9B TlkgfSwKKwkJTUFMSURQX0RFX0xHX1NUUklERSwgMCwgMCwgUk9UQVRFX0FOWSwgTUFMSURQNTUw X0RFX0xHX0FEX0NUUkwgfSwKIAl7IERFX1ZJREVPMiwgTUFMSURQNTUwX0RFX0xWMl9CQVNFLCBN QUxJRFA1NTBfREVfTFYyX1BUUl9CQVNFLAotCQlNQUxJRFBfREVfTFZfU1RSSURFMCwgTUFMSURQ NTUwX0xWX1lVVjJSR0IsIDAsIFJPVEFURV9BTlkgfSwKKwkJTUFMSURQX0RFX0xWX1NUUklERTAs IE1BTElEUDU1MF9MVl9ZVVYyUkdCLCAwLCBST1RBVEVfQU5ZLAorCQlNQUxJRFA1NTBfREVfTFYy X0FEX0NUUkwgfSwKIAl7IERFX1NNQVJULCBNQUxJRFA1NTBfREVfTFNfQkFTRSwgTUFMSURQNTUw X0RFX0xTX1BUUl9CQVNFLAotCQlNQUxJRFA1NTBfREVfTFNfUjFfU1RSSURFLCAwLCAwLCBST1RB VEVfTk9ORSB9LAorCQlNQUxJRFA1NTBfREVfTFNfUjFfU1RSSURFLCAwLCAwLCBST1RBVEVfTk9O RSwgMCB9LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBtYWxpZHBfbGF5ZXIgbWFsaWRwNjUw X2xheWVyc1tdID0gewpAQCAtMTIyLDE2ICsxMjUsMTYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBt YWxpZHBfbGF5ZXIgbWFsaWRwNjUwX2xheWVyc1tdID0gewogCSAqLwogCXsgREVfVklERU8xLCBN QUxJRFA1NTBfREVfTFYxX0JBU0UsIE1BTElEUDU1MF9ERV9MVjFfUFRSX0JBU0UsCiAJCU1BTElE UF9ERV9MVl9TVFJJREUwLCBNQUxJRFA1NTBfTFZfWVVWMlJHQiwKLQkJTUFMSURQNjUwX0RFX0xW X01NVV9DVFJMLCBST1RBVEVfQU5ZIH0sCisJCU1BTElEUDY1MF9ERV9MVl9NTVVfQ1RSTCwgUk9U QVRFX0FOWSwgTUFMSURQNTUwX0RFX0xWMV9BRF9DVFJMIH0sCiAJeyBERV9HUkFQSElDUzEsIE1B TElEUDU1MF9ERV9MR19CQVNFLCBNQUxJRFA1NTBfREVfTEdfUFRSX0JBU0UsCiAJCU1BTElEUF9E RV9MR19TVFJJREUsIDAsIE1BTElEUDY1MF9ERV9MR19NTVVfQ1RSTCwKLQkJUk9UQVRFX0NPTVBS RVNTRUQgfSwKKwkJUk9UQVRFX0NPTVBSRVNTRUQsIE1BTElEUDU1MF9ERV9MR19BRF9DVFJMIH0s CiAJeyBERV9WSURFTzIsIE1BTElEUDU1MF9ERV9MVjJfQkFTRSwgTUFMSURQNTUwX0RFX0xWMl9Q VFJfQkFTRSwKIAkJTUFMSURQX0RFX0xWX1NUUklERTAsIE1BTElEUDU1MF9MVl9ZVVYyUkdCLAot CQlNQUxJRFA2NTBfREVfTFZfTU1VX0NUUkwsIFJPVEFURV9BTlkgfSwKKwkJTUFMSURQNjUwX0RF X0xWX01NVV9DVFJMLCBST1RBVEVfQU5ZLCBNQUxJRFA1NTBfREVfTFYyX0FEX0NUUkwgfSwKIAl7 IERFX1NNQVJULCBNQUxJRFA1NTBfREVfTFNfQkFTRSwgTUFMSURQNTUwX0RFX0xTX1BUUl9CQVNF LAogCQlNQUxJRFA1NTBfREVfTFNfUjFfU1RSSURFLCAwLCBNQUxJRFA2NTBfREVfTFNfTU1VX0NU UkwsCi0JCVJPVEFURV9OT05FIH0sCisJCVJPVEFURV9OT05FLCAwIH0sCiB9OwogCiAjZGVmaW5l IFNFX05fU0NBTElOR19DT0VGRlMJOTYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0v bWFsaWRwX2h3LmggYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9ody5oCmluZGV4IDQwMTU1 ZTIuLjY1MTU1OGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfaHcuaApAQCAtNzAsNiArNzAsOCBAQCBz dHJ1Y3QgbWFsaWRwX2xheWVyIHsKIAlzMTYgeXV2MnJnYl9vZmZzZXQ7CS8qIG9mZnNldCB0byB0 aGUgWVVWLT5SR0IgbWF0cml4IGVudHJpZXMgKi8KIAl1MTYgbW11X2N0cmxfb2Zmc2V0OyAgICAv KiBvZmZzZXQgdG8gdGhlIE1NVSBjb250cm9sIHJlZ2lzdGVyICovCiAJZW51bSByb3RhdGlvbl9m ZWF0dXJlcyByb3Q7CS8qIHR5cGUgb2Ygcm90YXRpb24gc3VwcG9ydGVkICovCisJLyogYWRkcmVz cyBvZmZzZXQgZm9yIHRoZSBBRkJDIGRlY29kZXIgcmVnaXN0ZXJzICovCisJdTE2IGFmYmNfZGVj b2Rlcl9vZmZzZXQ7CiB9OwogCiBlbnVtIG1hbGlkcF9zY2FsaW5nX2NvZWZmX3NldCB7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jCmluZGV4IGM5YTZkM2UuLmNkNjBmNzMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jCkBAIC01OTIsNiArNTkyLDgwIEBAIHN0YXRpYyB2b2lk IG1hbGlkcF9kZV9zZXRfbW11X2NvbnRyb2woc3RydWN0IG1hbGlkcF9wbGFuZSAqbXAsCiAJCQlt cC0+bGF5ZXItPmJhc2UgKyBtcC0+bGF5ZXItPm1tdV9jdHJsX29mZnNldCk7CiB9CiAKK3N0YXRp YyB2b2lkIG1hbGlkcF9zZXRfcGxhbmVfYmFzZV9hZGRyKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiLAorCQkJCSAgICAgICBzdHJ1Y3QgbWFsaWRwX3BsYW5lICptcCwKKwkJCQkgICAgICAgaW50 IHBsYW5lX2luZGV4KQoreworCWRtYV9hZGRyX3QgcGFkZHI7CisJdTE2IHB0cjsKKwlzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSA9ICZtcC0+YmFzZTsKKwlib29sIGFmYmMgPSBmYi0+bW9kaWZpZXIg PyB0cnVlIDogZmFsc2U7CisKKwlwdHIgPSBtcC0+bGF5ZXItPnB0ciArIChwbGFuZV9pbmRleCA8 PCA0KTsKKworCS8qCisJICogRm9yIEFGQkMgYnVmZmVycywgY3JvcHBpbmcgaXMgaGFuZGxlZCBi eSBBRkJDIGRlY29kZXIgcmF0aGVyIHRoYW4KKwkgKiBwb2ludGVyIG1hbmlwdWxhdGlvbi4KKwkg Ki8KKwlpZiAoIWFmYmMpIHsKKwkJcGFkZHIgPSBkcm1fZmJfY21hX2dldF9nZW1fYWRkcihmYiwg cGxhbmUtPnN0YXRlLAorCQkJCQkJcGxhbmVfaW5kZXgpOworCX0gZWxzZSB7CisJCXN0cnVjdCBk cm1fZ2VtX2NtYV9vYmplY3QgKm9iajsKKworCQlvYmogPSBkcm1fZmJfY21hX2dldF9nZW1fb2Jq KGZiLCBwbGFuZV9pbmRleCk7CisKKwkJaWYgKFdBUk5fT04oIW9iaikpCisJCQlyZXR1cm47CisJ CXBhZGRyID0gb2JqLT5wYWRkcjsKKwl9CisKKwltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCBs b3dlcl8zMl9iaXRzKHBhZGRyKSwgcHRyKTsKKwltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCB1 cHBlcl8zMl9iaXRzKHBhZGRyKSwgcHRyICsgNCk7Cit9CisKK3N0YXRpYyB2b2lkIG1hbGlkcF9k ZV9zZXRfcGxhbmVfYWZiYyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKK3sKKwlzdHJ1Y3QgbWFs aWRwX3BsYW5lICptcDsKKwl1MzIgc3JjX3csIHNyY19oLCB2YWwgPSAwLCBzcmNfeCwgc3JjX3k7 CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZS0+c3RhdGUtPmZiOworCisJbXAg PSB0b19tYWxpZHBfcGxhbmUocGxhbmUpOworCisJLyogbm8gYWZiY19kZWNvZGVyX29mZnNldCBt ZWFucyBBRkJDIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGFuZSAqLworCWlmICghbXAtPmxh eWVyLT5hZmJjX2RlY29kZXJfb2Zmc2V0KQorCQlyZXR1cm47CisKKwlpZiAoIWZiLT5tb2RpZmll cikgeworCQltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCAwLCBtcC0+bGF5ZXItPmFmYmNfZGVj b2Rlcl9vZmZzZXQpOworCQlyZXR1cm47CisJfQorCisJLyogY29udmVydCBzcmMgdmFsdWVzIGZy b20gUTE2IGZpeGVkIHBvaW50IHRvIGludGVnZXIgKi8KKwlzcmNfdyA9IHBsYW5lLT5zdGF0ZS0+ c3JjX3cgPj4gMTY7CisJc3JjX2ggPSBwbGFuZS0+c3RhdGUtPnNyY19oID4+IDE2OworCXNyY194 ID0gcGxhbmUtPnN0YXRlLT5zcmNfeCA+PiAxNjsKKwlzcmNfeSA9IHBsYW5lLT5zdGF0ZS0+c3Jj X3kgPj4gMTY7CisKKwl2YWwgPSAoKGZiLT53aWR0aCAtIChzcmNfeCArIHNyY193KSkgPDwgTUFM SURQX0FEX0NST1BfUklHSFRfT0ZGU0VUKSB8CisJCSAgIHNyY194OworCW1hbGlkcF9od193cml0 ZShtcC0+aHdkZXYsIHZhbCwKKwkJCW1wLT5sYXllci0+YWZiY19kZWNvZGVyX29mZnNldCArIE1B TElEUF9BRF9DUk9QX0gpOworCisJdmFsID0gKChmYi0+aGVpZ2h0IC0gKHNyY195ICsgc3JjX2gp KSA8PCBNQUxJRFBfQURfQ1JPUF9CT1RUT01fT0ZGU0VUKSB8CisJCSAgIHNyY195OworCW1hbGlk cF9od193cml0ZShtcC0+aHdkZXYsIHZhbCwKKwkJCW1wLT5sYXllci0+YWZiY19kZWNvZGVyX29m ZnNldCArIE1BTElEUF9BRF9DUk9QX1YpOworCisJdmFsID0gTUFMSURQX0FEX0VOOworCWlmIChm Yi0+bW9kaWZpZXIgJiBBRkJDX0ZPUk1BVF9NT0RfU1BMSVQpCisJCXZhbCB8PSBNQUxJRFBfQURf QlM7CisJaWYgKGZiLT5tb2RpZmllciAmIEFGQkNfRk9STUFUX01PRF9ZVFIpCisJCXZhbCB8PSBN QUxJRFBfQURfWVRSOworCisJbWFsaWRwX2h3X3dyaXRlKG1wLT5od2RldiwgdmFsLCBtcC0+bGF5 ZXItPmFmYmNfZGVjb2Rlcl9vZmZzZXQpOworfQorCiBzdGF0aWMgdm9pZCBtYWxpZHBfZGVfcGxh bmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJCSAgIHN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKm9sZF9zdGF0ZSkKIHsKQEAgLTYwMCwzMCArNjc0LDMzIEBAIHN0YXRpYyB2b2lk IG1hbGlkcF9kZV9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBwbGFuZS0+c3RhdGU7CiAJdTE2IHBpeGVsX2FscGhh ID0gc3RhdGUtPnBpeGVsX2JsZW5kX21vZGU7CiAJdTggcGxhbmVfYWxwaGEgPSBzdGF0ZS0+YWxw aGEgPj4gODsKKwlib29sIGZvcm1hdF9oYXNfYWxwaGEgPSBzdGF0ZS0+ZmItPmZvcm1hdC0+aGFz X2FscGhhOwogCXUzMiBzcmNfdywgc3JjX2gsIGRlc3RfdywgZGVzdF9oLCB2YWw7CiAJaW50IGk7 CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZS0+c3RhdGUtPmZiOwogCiAJbXAg PSB0b19tYWxpZHBfcGxhbmUocGxhbmUpOwogCi0JLyogY29udmVydCBzcmMgdmFsdWVzIGZyb20g UTE2IGZpeGVkIHBvaW50IHRvIGludGVnZXIgKi8KLQlzcmNfdyA9IHN0YXRlLT5zcmNfdyA+PiAx NjsKLQlzcmNfaCA9IHN0YXRlLT5zcmNfaCA+PiAxNjsKLQlkZXN0X3cgPSBzdGF0ZS0+Y3J0Y193 OwotCWRlc3RfaCA9IHN0YXRlLT5jcnRjX2g7CisJLyogRm9yIEFGQkMgZnJhbWVidWZmZXIsIHVz ZSB0aGUgZnJhbWVidWZmZXIgd2lkdGggYW5kIGhlaWdodCBmb3IgY29uZmlndXJpbmcKKwkgKiBs YXllciBpbnB1dCBzaXplIHJlZ2lzdGVyLgorCSAqLworCWlmIChmYi0+bW9kaWZpZXIpIHsKKwkJ c3JjX3cgPSBmYi0+d2lkdGg7CisJCXNyY19oID0gZmItPmhlaWdodDsKKwl9IGVsc2UgeworCQkv KiBjb252ZXJ0IHNyYyB2YWx1ZXMgZnJvbSBRMTYgZml4ZWQgcG9pbnQgdG8gaW50ZWdlciAqLwor CQlzcmNfdyA9IG1zLT5iYXNlLnNyY193ID4+IDE2OworCQlzcmNfaCA9IG1zLT5iYXNlLnNyY19o ID4+IDE2OworCX0KKwlkZXN0X3cgPSBtcy0+YmFzZS5jcnRjX3c7CisJZGVzdF9oID0gbXMtPmJh c2UuY3J0Y19oOwogCiAJdmFsID0gbWFsaWRwX2h3X3JlYWQobXAtPmh3ZGV2LCBtcC0+bGF5ZXIt PmJhc2UpOwogCXZhbCA9ICh2YWwgJiB+TEFZRVJfRk9STUFUX01BU0spIHwgbXMtPmZvcm1hdDsK IAltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCB2YWwsIG1wLT5sYXllci0+YmFzZSk7CiAKLQlm b3IgKGkgPSAwOyBpIDwgbXMtPm5fcGxhbmVzOyBpKyspIHsKLQkJLyogY2FsY3VsYXRlIHRoZSBv ZmZzZXQgZm9yIHRoZSBsYXllcidzIHBsYW5lIHJlZ2lzdGVycyAqLwotCQl1MTYgcHRyID0gbXAt PmxheWVyLT5wdHIgKyAoaSA8PCA0KTsKLQkJZG1hX2FkZHJfdCBmYl9hZGRyID0gZHJtX2ZiX2Nt YV9nZXRfZ2VtX2FkZHIoc3RhdGUtPmZiLAotCQkJCQkJCSAgICAgc3RhdGUsIGkpOwotCi0JCW1h bGlkcF9od193cml0ZShtcC0+aHdkZXYsIGxvd2VyXzMyX2JpdHMoZmJfYWRkciksIHB0cik7Ci0J CW1hbGlkcF9od193cml0ZShtcC0+aHdkZXYsIHVwcGVyXzMyX2JpdHMoZmJfYWRkciksIHB0ciAr IDQpOwotCX0KKwlmb3IgKGkgPSAwOyBpIDwgbXMtPm5fcGxhbmVzOyBpKyspCisJCW1hbGlkcF9z ZXRfcGxhbmVfYmFzZV9hZGRyKGZiLCBtcCwgaSk7CiAKIAltYWxpZHBfZGVfc2V0X21tdV9jb250 cm9sKG1wLCBtcyk7CiAKQEAgLTY1Nyw2ICs3MzQsOCBAQCBzdGF0aWMgdm9pZCBtYWxpZHBfZGVf cGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJCW1wLT5sYXllci0+YmFz ZSArIE1BTElEUDU1MF9MU19SMV9JTl9TSVpFKTsKIAl9CiAKKwltYWxpZHBfZGVfc2V0X3BsYW5l X2FmYmMocGxhbmUpOworCiAJLyogZmlyc3QgY2xlYXIgdGhlIHJvdGF0aW9uIGJpdHMgKi8KIAl2 YWwgPSBtYWxpZHBfaHdfcmVhZChtcC0+aHdkZXYsIG1wLT5sYXllci0+YmFzZSArIE1BTElEUF9M QVlFUl9DT05UUk9MKTsKIAl2YWwgJj0gfkxBWUVSX1JPVF9NQVNLOwpAQCAtNjc0LDcgKzc1Myw3 IEBAIHN0YXRpYyB2b2lkIG1hbGlkcF9kZV9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCiAKIAlpZiAoc3RhdGUtPmFscGhhICE9IERSTV9CTEVORF9BTFBIQV9PUEFRVUUpIHsK IAkJdmFsIHw9IExBWUVSX0NPTVBfUExBTkU7Ci0JfSBlbHNlIGlmIChzdGF0ZS0+ZmItPmZvcm1h dC0+aGFzX2FscGhhKSB7CisJfSBlbHNlIGlmIChmb3JtYXRfaGFzX2FscGhhKSB7CiAJCS8qIFdl IG9ubHkgY2FyZSBhYm91dCBibGVuZCBtb2RlIGlmIHRoZSBmb3JtYXQgaGFzIGFscGhhICovCiAJ CXN3aXRjaCAocGl4ZWxfYWxwaGEpIHsKIAkJY2FzZSBEUk1fTU9ERV9CTEVORF9QUkVNVUxUSToK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3JlZ3MuaCBiL2RyaXZlcnMv Z3B1L2RybS9hcm0vbWFsaWRwX3JlZ3MuaAppbmRleCA3Y2UzZTE0Li5hMGRkNmUxIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9yZWdzLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FybS9tYWxpZHBfcmVncy5oCkBAIC0xOTgsMTAgKzE5OCwxMyBAQAogI2RlZmluZSBNQUxJ RFA1MDBfTFZfWVVWMlJHQgkJKChzMTYpKC0weEI4KSkKICNkZWZpbmUgTUFMSURQNTAwX0RFX0xW X0JBU0UJCTB4MDAxMDAKICNkZWZpbmUgTUFMSURQNTAwX0RFX0xWX1BUUl9CQVNFCTB4MDAxMjQK KyNkZWZpbmUgTUFMSURQNTAwX0RFX0xWX0FEX0NUUkwJCTB4MDA0MDAKICNkZWZpbmUgTUFMSURQ NTAwX0RFX0xHMV9CQVNFCQkweDAwMjAwCiAjZGVmaW5lIE1BTElEUDUwMF9ERV9MRzFfUFRSX0JB U0UJMHgwMDIxYworI2RlZmluZSBNQUxJRFA1MDBfREVfTEcxX0FEX0NUUkwJMHgwMDQwYwogI2Rl ZmluZSBNQUxJRFA1MDBfREVfTEcyX0JBU0UJCTB4MDAzMDAKICNkZWZpbmUgTUFMSURQNTAwX0RF X0xHMl9QVFJfQkFTRQkweDAwMzFjCisjZGVmaW5lIE1BTElEUDUwMF9ERV9MRzJfQURfQ1RSTAkw eDAwNDE4CiAjZGVmaW5lIE1BTElEUDUwMF9TRV9CQVNFCQkweDAwYzAwCiAjZGVmaW5lIE1BTElE UDUwMF9TRV9DT05UUk9MCQkweDAwYzBjCiAjZGVmaW5lIE1BTElEUDUwMF9TRV9NRU1XUklURV9P VVRfU0laRQkweDAwYzJjCkBAIC0yMjgsMTAgKzIzMSwxMyBAQAogI2RlZmluZSBNQUxJRFA1NTBf TFZfWVVWMlJHQgkJMHgwMDA4NAogI2RlZmluZSBNQUxJRFA1NTBfREVfTFYxX0JBU0UJCTB4MDAx MDAKICNkZWZpbmUgTUFMSURQNTUwX0RFX0xWMV9QVFJfQkFTRQkweDAwMTI0CisjZGVmaW5lIE1B TElEUDU1MF9ERV9MVjFfQURfQ1RSTAkweDAwMUI4CiAjZGVmaW5lIE1BTElEUDU1MF9ERV9MVjJf QkFTRQkJMHgwMDIwMAogI2RlZmluZSBNQUxJRFA1NTBfREVfTFYyX1BUUl9CQVNFCTB4MDAyMjQK KyNkZWZpbmUgTUFMSURQNTUwX0RFX0xWMl9BRF9DVFJMCTB4MDAyQjgKICNkZWZpbmUgTUFMSURQ NTUwX0RFX0xHX0JBU0UJCTB4MDAzMDAKICNkZWZpbmUgTUFMSURQNTUwX0RFX0xHX1BUUl9CQVNF CTB4MDAzMWMKKyNkZWZpbmUgTUFMSURQNTUwX0RFX0xHX0FEX0NUUkwJCTB4MDAzMzAKICNkZWZp bmUgTUFMSURQNTUwX0RFX0xTX0JBU0UJCTB4MDA0MDAKICNkZWZpbmUgTUFMSURQNTUwX0RFX0xT X1BUUl9CQVNFCTB4MDA0MmMKICNkZWZpbmUgTUFMSURQNTUwX0RFX1BFUkZfQkFTRQkJMHgwMDUw MApAQCAtMjU4LDYgKzI2NCwyMCBAQAogI2RlZmluZSBNQUxJRFBfTU1VX0NUUkxfUFhfUFMoeCkJ KDEgPDwgKDggKyAoeCkpKQogI2RlZmluZSBNQUxJRFBfTU1VX0NUUkxfUFBfTlVNX1JFUSh4KQko KCh4KSAmIDB4N2YpIDw8IDEyKQogCisvKiBBRkJDIHJlZ2lzdGVyIG9mZnNldHMgcmVsYXRpdmUg dG8gTUFMSURQWFhYX0RFX0xYX0FEX0NUUkwgKi8KKy8qIFRoZSBmb2xsb3dpbmcgcmVnaXN0ZXIg b2Zmc2V0cyBhcmUgY29tbW9uIGZvciBEUDUwMCwgRFA1NTAgYW5kIERQNjUwICovCisjZGVmaW5l IE1BTElEUF9BRF9DUk9QX0ggICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1BTElEUF9BRF9D Uk9QX1YgICAgICAgICAgICAgICAgMHg4CisjZGVmaW5lIE1BTElEUF9BRF9FTkRfUFRSX0xPVyAg ICAgICAgICAgMHhjCisjZGVmaW5lIE1BTElEUF9BRF9FTkRfUFRSX0hJR0ggICAgICAgICAgMHgx MAorCisvKiBBRkJDIGRlY29kZXIgUmVnaXN0ZXJzICovCisjZGVmaW5lIE1BTElEUF9BRF9FTiAg ICAgICAgICAgICAgICAgICAgQklUKDApCisjZGVmaW5lIE1BTElEUF9BRF9ZVFIgICAgICAgICAg ICAgICAgICAgQklUKDQpCisjZGVmaW5lIE1BTElEUF9BRF9CUyAgICAgICAgICAgICAgICAgICAg QklUKDgpCisjZGVmaW5lIE1BTElEUF9BRF9DUk9QX1JJR0hUX09GRlNFVCAgICAgMTYKKyNkZWZp bmUgTUFMSURQX0FEX0NST1BfQk9UVE9NX09GRlNFVCAgICAxNgorCiAvKgogICogU3RhcnRpbmcg d2l0aCBEUDU1MCB0aGUgcmVnaXN0ZXIgbWFwIGJsb2NrcyBoYXMgYmVlbiBzdGFuZGFyZGlzZWQg dG8gdGhlCiAgKiBmb2xsb3dpbmcgbGF5b3V0OgotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=