From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ayan Halder Subject: [PATCH v4 03/10] drm/arm/malidp: Set the AFBC register bits if the framebuffer has AFBC modifier Date: Tue, 26 Feb 2019 16:20:54 +0000 Message-ID: <1551198042-4314-4-git-send-email-ayan.halder@arm.com> References: <1551198042-4314-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-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10083.outbound.protection.outlook.com [40.107.1.83]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7E8E789F2D for ; Tue, 26 Feb 2019 16:20:59 +0000 (UTC) In-Reply-To: <1551198042-4314-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" , "maarten.lankhorst@linux.intel.com" , "maxime.ripard@bootlin.com" , "sean@poorly.run" , "airlied@linux.ie" , "daniel@ffwll.ch" , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" Cc: nd List-Id: dri-devel@lists.freedesktop.org RnJvbTogQXlhbiBLdW1hciBIYWxkZXIgPGF5YW4uaGFsZGVyQGFybS5jb20+CgpBZGRlZCB0aGUg QUZCQyBkZWNvZGVyIHJlZ2lzdGVycyBmb3IgRFA1MDAgLCBEUDU1MCBhbmQgRFA2NTAuClRoZXNl IHJlZ2lzdGVycyBjb250cm9sIHRoZSBwcm9jZXNzaW5nIG9mIEFGQkMgYnVmZmVycy4gSXQgY29u dHJvbHMgdmFyaW91cwpmZWF0dXJlcyBsaWtlIEFGQkMgZGVjb2RlciBlbmFibGUsIGxvc3NsZXNz IHRyYW5zZm9ybWF0aW9uIGFuZCBibG9jayBzcGxpdAphcyB3ZWxsIGFzIHNldHRpbmcgb2YgdGhl IGxlZnQsIHJpZ2h0LCB0b3AgYW5kIGJvdHRvbSBjcm9wcGluZyBvZiBBRkJDCmJ1ZmZlcnMgKGlu IG51bWJlciBvZiBwaXhlbHMpLgpBbGwgdGhlIGxheWVycyAoZXhjZXB0IERFX1NNQVJUKSBzdXBw b3J0IGZyYW1lYnVmZmVycyB3aXRoIEFGQkMgbW9kaWZpZXJzLgpPbmUgbmVlZHMgdG8gc2V0IHRo ZSBwaXhlbCB2YWx1ZXMgb2YgdGhlIHRvcCwgbGVmdCwgYm90dG9tIGFuZCByaWdodApjcm9wcGlu ZyBmb3IgdGhlIEFGQkMgZnJhbWVidWZmZXIuCkNyb3BwaW5nIGFuIEFGQkMgZnJhbWVidWZmZXIg aXMgY29udHJvbGxlZCBieSB0aGUgQUZCQyBjcm9wIHJlZ2lzdGVycy4KSW4gdGhhdCBjYXNlLCB0 aGUgbGF5ZXIgaW5wdXQgc2l6ZSByZWdpc3RlcnMgc2hvdWxkIGJlIGNvbmZpZ3VyZWQgd2l0aApm cmFtZWJ1ZmZlcidzIGRpbWVuc2lvbnMgYW5kIG5vdCB3aXRoIGRybV9wbGFuZV9zdGF0ZSBzb3Vy Y2Ugd2lkdGgvaGVpZ2h0CnZhbHVlcyAod2hpY2ggaXMgdXNlZCBmb3Igbm9uIEFGQkMgZnJhbWVi dWZmZXIgdG8gZGVub3RlIGNyb3BwaW5nKS4KCkNoYW5nZXMgZnJvbSB2MToKIC0gUmVtb3ZlZCB0 aGUgImlmIChmYi0+bW9kaWZpZXIpIiBjaGVjayBmcm9tIG1hbGlkcF9kZV9wbGFuZV91cGRhdGUo KQphbmQgYWRkZWQgaXQgaW4gbWFsaWRwX2RlX3NldF9wbGFuZV9hZmJjKCkuIFRoaXMgd2lsbCBj b25zb2xpZGF0ZSBhbGwgdGhlCkFGQkMgc3BlY2lmaWMgcmVnaXN0ZXIgY29uZmlndXJhdGlvbnMg aW4gYSBzaW5nbGUgZnVuY3Rpb24gaWUKbWFsaWRwX2RlX3NldF9wbGFuZV9hZmJjKCkuCgpDaGFu Z2VzIGZyb20gdjI6CiAtIEZvciBBRkJDIGZyYW1lYnVmZmVyLCBsYXllciBpbnB1dCBzaXplIHJl Z2lzdGVyIHNob3VsZCBiZSBzZXQgdG8KZnJhbWVidWZmZXIncyB3aWR0aCBhbmQgaGVpZ2h0LgoK Q2hhbmdlcyBmcm9tIHYzOgotIFJlYmFzZWQgb24gdG9wIG9mIGxhdGVzdCBkcm0tbWlzYy1uZXh0 Ci0gU29tZSBjbGVhbnVwcy9zYW5pdHkgY2hhbmdlcyBiYXNlZCBvbiBMaXZpdSdzIGNvbW1lbnRz CgpTaWduZWQtb2ZmLWJ5OiBBeWFuIEt1bWFyIEhhbGRlciA8YXlhbi5oYWxkZXJAYXJtLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9ody5jICAgICB8ICAzMCArKysrKystLS0t CiBkcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9ody5oICAgICB8ICAgMiArCiBkcml2ZXJzL2dw dS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYyB8IDEwNyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3JlZ3MuaCAgIHwgIDIwICsr KysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTM2IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3LmMgYi9kcml2ZXJz L2dwdS9kcm0vYXJtL21hbGlkcF9ody5jCmluZGV4IGI5YmVkMTEuLjY0YzJjYTMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FybS9tYWxpZHBfaHcuYwpAQCAtOTQsMTEgKzk0LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg bWFsaWRwX2xheWVyIG1hbGlkcDUwMF9sYXllcnNbXSA9IHsKIAkgKgl5dXYycmdiIG1hdHJpeCBv ZmZzZXQsIG1tdSBjb250cm9sIHJlZ2lzdGVyIG9mZnNldCwgcm90YXRpb25fZmVhdHVyZXMKIAkg Ki8KIAl7IERFX1ZJREVPMSwgTUFMSURQNTAwX0RFX0xWX0JBU0UsIE1BTElEUDUwMF9ERV9MVl9Q VFJfQkFTRSwKLQkJTUFMSURQX0RFX0xWX1NUUklERTAsIE1BTElEUDUwMF9MVl9ZVVYyUkdCLCAw LCBST1RBVEVfQU5ZIH0sCisJCU1BTElEUF9ERV9MVl9TVFJJREUwLCBNQUxJRFA1MDBfTFZfWVVW MlJHQiwgMCwgUk9UQVRFX0FOWSwKKwkJTUFMSURQNTAwX0RFX0xWX0FEX0NUUkwgfSwKIAl7IERF X0dSQVBISUNTMSwgTUFMSURQNTAwX0RFX0xHMV9CQVNFLCBNQUxJRFA1MDBfREVfTEcxX1BUUl9C QVNFLAotCQlNQUxJRFBfREVfTEdfU1RSSURFLCAwLCAwLCBST1RBVEVfQU5ZIH0sCisJCU1BTElE UF9ERV9MR19TVFJJREUsIDAsIDAsIFJPVEFURV9BTlksCisJCU1BTElEUDUwMF9ERV9MRzFfQURf Q1RSTCB9LAogCXsgREVfR1JBUEhJQ1MyLCBNQUxJRFA1MDBfREVfTEcyX0JBU0UsIE1BTElEUDUw MF9ERV9MRzJfUFRSX0JBU0UsCi0JCU1BTElEUF9ERV9MR19TVFJJREUsIDAsIDAsIFJPVEFURV9B TlkgfSwKKwkJTUFMSURQX0RFX0xHX1NUUklERSwgMCwgMCwgUk9UQVRFX0FOWSwKKwkJTUFMSURQ NTAwX0RFX0xHMl9BRF9DVFJMIH0sCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG1hbGlkcF9s YXllciBtYWxpZHA1NTBfbGF5ZXJzW10gPSB7CkBAIC0xMDYsMTMgKzEwOSwxNiBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IG1hbGlkcF9sYXllciBtYWxpZHA1NTBfbGF5ZXJzW10gPSB7CiAJICoJeXV2 MnJnYiBtYXRyaXggb2Zmc2V0LCBtbXUgY29udHJvbCByZWdpc3RlciBvZmZzZXQsIHJvdGF0aW9u X2ZlYXR1cmVzCiAJICovCiAJeyBERV9WSURFTzEsIE1BTElEUDU1MF9ERV9MVjFfQkFTRSwgTUFM SURQNTUwX0RFX0xWMV9QVFJfQkFTRSwKLQkJTUFMSURQX0RFX0xWX1NUUklERTAsIE1BTElEUDU1 MF9MVl9ZVVYyUkdCLCAwLCBST1RBVEVfQU5ZIH0sCisJCU1BTElEUF9ERV9MVl9TVFJJREUwLCBN QUxJRFA1NTBfTFZfWVVWMlJHQiwgMCwgUk9UQVRFX0FOWSwKKwkJTUFMSURQNTUwX0RFX0xWMV9B RF9DVFJMIH0sCiAJeyBERV9HUkFQSElDUzEsIE1BTElEUDU1MF9ERV9MR19CQVNFLCBNQUxJRFA1 NTBfREVfTEdfUFRSX0JBU0UsCi0JCU1BTElEUF9ERV9MR19TVFJJREUsIDAsIDAsIFJPVEFURV9B TlkgfSwKKwkJTUFMSURQX0RFX0xHX1NUUklERSwgMCwgMCwgUk9UQVRFX0FOWSwKKwkJTUFMSURQ NTUwX0RFX0xHX0FEX0NUUkwgfSwKIAl7IERFX1ZJREVPMiwgTUFMSURQNTUwX0RFX0xWMl9CQVNF LCBNQUxJRFA1NTBfREVfTFYyX1BUUl9CQVNFLAotCQlNQUxJRFBfREVfTFZfU1RSSURFMCwgTUFM SURQNTUwX0xWX1lVVjJSR0IsIDAsIFJPVEFURV9BTlkgfSwKKwkJTUFMSURQX0RFX0xWX1NUUklE RTAsIE1BTElEUDU1MF9MVl9ZVVYyUkdCLCAwLCBST1RBVEVfQU5ZLAorCQlNQUxJRFA1NTBfREVf TFYyX0FEX0NUUkwgfSwKIAl7IERFX1NNQVJULCBNQUxJRFA1NTBfREVfTFNfQkFTRSwgTUFMSURQ NTUwX0RFX0xTX1BUUl9CQVNFLAotCQlNQUxJRFA1NTBfREVfTFNfUjFfU1RSSURFLCAwLCAwLCBS T1RBVEVfTk9ORSB9LAorCQlNQUxJRFA1NTBfREVfTFNfUjFfU1RSSURFLCAwLCAwLCBST1RBVEVf Tk9ORSwgMCB9LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBtYWxpZHBfbGF5ZXIgbWFsaWRw NjUwX2xheWVyc1tdID0gewpAQCAtMTIyLDE2ICsxMjgsMTggQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBtYWxpZHBfbGF5ZXIgbWFsaWRwNjUwX2xheWVyc1tdID0gewogCSAqLwogCXsgREVfVklERU8x LCBNQUxJRFA1NTBfREVfTFYxX0JBU0UsIE1BTElEUDU1MF9ERV9MVjFfUFRSX0JBU0UsCiAJCU1B TElEUF9ERV9MVl9TVFJJREUwLCBNQUxJRFA1NTBfTFZfWVVWMlJHQiwKLQkJTUFMSURQNjUwX0RF X0xWX01NVV9DVFJMLCBST1RBVEVfQU5ZIH0sCisJCU1BTElEUDY1MF9ERV9MVl9NTVVfQ1RSTCwg Uk9UQVRFX0FOWSwKKwkJTUFMSURQNTUwX0RFX0xWMV9BRF9DVFJMIH0sCiAJeyBERV9HUkFQSElD UzEsIE1BTElEUDU1MF9ERV9MR19CQVNFLCBNQUxJRFA1NTBfREVfTEdfUFRSX0JBU0UsCiAJCU1B TElEUF9ERV9MR19TVFJJREUsIDAsIE1BTElEUDY1MF9ERV9MR19NTVVfQ1RSTCwKLQkJUk9UQVRF X0NPTVBSRVNTRUQgfSwKKwkJUk9UQVRFX0NPTVBSRVNTRUQsIE1BTElEUDU1MF9ERV9MR19BRF9D VFJMIH0sCiAJeyBERV9WSURFTzIsIE1BTElEUDU1MF9ERV9MVjJfQkFTRSwgTUFMSURQNTUwX0RF X0xWMl9QVFJfQkFTRSwKIAkJTUFMSURQX0RFX0xWX1NUUklERTAsIE1BTElEUDU1MF9MVl9ZVVYy UkdCLAotCQlNQUxJRFA2NTBfREVfTFZfTU1VX0NUUkwsIFJPVEFURV9BTlkgfSwKKwkJTUFMSURQ NjUwX0RFX0xWX01NVV9DVFJMLCBST1RBVEVfQU5ZLAorCQlNQUxJRFA1NTBfREVfTFYyX0FEX0NU UkwgfSwKIAl7IERFX1NNQVJULCBNQUxJRFA1NTBfREVfTFNfQkFTRSwgTUFMSURQNTUwX0RFX0xT X1BUUl9CQVNFLAogCQlNQUxJRFA1NTBfREVfTFNfUjFfU1RSSURFLCAwLCBNQUxJRFA2NTBfREVf TFNfTU1VX0NUUkwsCi0JCVJPVEFURV9OT05FIH0sCisJCVJPVEFURV9OT05FLCAwIH0sCiB9Owog CiAjZGVmaW5lIFNFX05fU0NBTElOR19DT0VGRlMJOTYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hcm0vbWFsaWRwX2h3LmggYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9ody5oCmlu ZGV4IDQwMTU1ZTIuLjY1MTU1OGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFs aWRwX2h3LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfaHcuaApAQCAtNzAsNiAr NzAsOCBAQCBzdHJ1Y3QgbWFsaWRwX2xheWVyIHsKIAlzMTYgeXV2MnJnYl9vZmZzZXQ7CS8qIG9m ZnNldCB0byB0aGUgWVVWLT5SR0IgbWF0cml4IGVudHJpZXMgKi8KIAl1MTYgbW11X2N0cmxfb2Zm c2V0OyAgICAvKiBvZmZzZXQgdG8gdGhlIE1NVSBjb250cm9sIHJlZ2lzdGVyICovCiAJZW51bSBy b3RhdGlvbl9mZWF0dXJlcyByb3Q7CS8qIHR5cGUgb2Ygcm90YXRpb24gc3VwcG9ydGVkICovCisJ LyogYWRkcmVzcyBvZmZzZXQgZm9yIHRoZSBBRkJDIGRlY29kZXIgcmVnaXN0ZXJzICovCisJdTE2 IGFmYmNfZGVjb2Rlcl9vZmZzZXQ7CiB9OwogCiBlbnVtIG1hbGlkcF9zY2FsaW5nX2NvZWZmX3Nl dCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jCmluZGV4IGM5YTZkM2UuLjE4MTk1N2Mg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jCkBAIC01OTIsNiArNTkyLDgzIEBAIHN0 YXRpYyB2b2lkIG1hbGlkcF9kZV9zZXRfbW11X2NvbnRyb2woc3RydWN0IG1hbGlkcF9wbGFuZSAq bXAsCiAJCQltcC0+bGF5ZXItPmJhc2UgKyBtcC0+bGF5ZXItPm1tdV9jdHJsX29mZnNldCk7CiB9 CiAKK3N0YXRpYyB2b2lkIG1hbGlkcF9zZXRfcGxhbmVfYmFzZV9hZGRyKHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiLAorCQkJCSAgICAgICBzdHJ1Y3QgbWFsaWRwX3BsYW5lICptcCwKKwkJCQkg ICAgICAgaW50IHBsYW5lX2luZGV4KQoreworCWRtYV9hZGRyX3QgcGFkZHI7CisJdTE2IHB0cjsK KwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9ICZtcC0+YmFzZTsKKwlib29sIGFmYmMgPSBmYi0+ bW9kaWZpZXIgPyB0cnVlIDogZmFsc2U7CisKKwlwdHIgPSBtcC0+bGF5ZXItPnB0ciArIChwbGFu ZV9pbmRleCA8PCA0KTsKKworCS8qCisJICogZHJtX2ZiX2NtYV9nZXRfZ2VtX2FkZHIoKSBhbHRl cnMgdGhlIHBoeXNpY2FsIGJhc2UgYWRkcmVzcyBvZiB0aGUKKwkgKiBmcmFtZWJ1ZmZlciBhcyBw ZXIgdGhlIHBsYW5lJ3Mgc3JjX3gsIHNyY195IGNvLW9yZGluYXRlcyAoaWUgdG8KKwkgKiB0YWtl IGNhcmUgb2Ygc291cmNlIGNyb3BwaW5nKS4KKwkgKiBGb3IgQUZCQywgdGhpcyBpcyBub3QgbmVl ZGVkIGFzIHRoZSBjcm9wcGluZyBpcyBoYW5kbGVkIGJ5IF9BRF9DUk9QX0gKKwkgKiBhbmQgX0FE X0NST1BfViByZWdpc3RlcnMuCisJICovCisJaWYgKCFhZmJjKSB7CisJCXBhZGRyID0gZHJtX2Zi X2NtYV9nZXRfZ2VtX2FkZHIoZmIsIHBsYW5lLT5zdGF0ZSwKKwkJCQkJCXBsYW5lX2luZGV4KTsK Kwl9IGVsc2UgeworCQlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpvYmo7CisKKwkJb2JqID0g ZHJtX2ZiX2NtYV9nZXRfZ2VtX29iaihmYiwgcGxhbmVfaW5kZXgpOworCisJCWlmIChXQVJOX09O KCFvYmopKQorCQkJcmV0dXJuOworCQlwYWRkciA9IG9iai0+cGFkZHI7CisJfQorCisJbWFsaWRw X2h3X3dyaXRlKG1wLT5od2RldiwgbG93ZXJfMzJfYml0cyhwYWRkciksIHB0cik7CisJbWFsaWRw X2h3X3dyaXRlKG1wLT5od2RldiwgdXBwZXJfMzJfYml0cyhwYWRkciksIHB0ciArIDQpOworfQor CitzdGF0aWMgdm9pZCBtYWxpZHBfZGVfc2V0X3BsYW5lX2FmYmMoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUpCit7CisJc3RydWN0IG1hbGlkcF9wbGFuZSAqbXA7CisJdTMyIHNyY193LCBzcmNfaCwg dmFsID0gMCwgc3JjX3gsIHNyY195OworCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmUtPnN0YXRlLT5mYjsKKworCW1wID0gdG9fbWFsaWRwX3BsYW5lKHBsYW5lKTsKKworCS8qIG5v IGFmYmNfZGVjb2Rlcl9vZmZzZXQgbWVhbnMgQUZCQyBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMg cGxhbmUgKi8KKwlpZiAoIW1wLT5sYXllci0+YWZiY19kZWNvZGVyX29mZnNldCkKKwkJcmV0dXJu OworCisJaWYgKCFmYi0+bW9kaWZpZXIpIHsKKwkJbWFsaWRwX2h3X3dyaXRlKG1wLT5od2Rldiwg MCwgbXAtPmxheWVyLT5hZmJjX2RlY29kZXJfb2Zmc2V0KTsKKwkJcmV0dXJuOworCX0KKworCS8q IGNvbnZlcnQgc3JjIHZhbHVlcyBmcm9tIFExNiBmaXhlZCBwb2ludCB0byBpbnRlZ2VyICovCisJ c3JjX3cgPSBwbGFuZS0+c3RhdGUtPnNyY193ID4+IDE2OworCXNyY19oID0gcGxhbmUtPnN0YXRl LT5zcmNfaCA+PiAxNjsKKwlzcmNfeCA9IHBsYW5lLT5zdGF0ZS0+c3JjX3ggPj4gMTY7CisJc3Jj X3kgPSBwbGFuZS0+c3RhdGUtPnNyY195ID4+IDE2OworCisJdmFsID0gKChmYi0+d2lkdGggLSAo c3JjX3ggKyBzcmNfdykpIDw8IE1BTElEUF9BRF9DUk9QX1JJR0hUX09GRlNFVCkgfAorCQkgICBz cmNfeDsKKwltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCB2YWwsCisJCQltcC0+bGF5ZXItPmFm YmNfZGVjb2Rlcl9vZmZzZXQgKyBNQUxJRFBfQURfQ1JPUF9IKTsKKworCXZhbCA9ICgoZmItPmhl aWdodCAtIChzcmNfeSArIHNyY19oKSkgPDwgTUFMSURQX0FEX0NST1BfQk9UVE9NX09GRlNFVCkg fAorCQkgICBzcmNfeTsKKwltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCB2YWwsCisJCQltcC0+ bGF5ZXItPmFmYmNfZGVjb2Rlcl9vZmZzZXQgKyBNQUxJRFBfQURfQ1JPUF9WKTsKKworCXZhbCA9 IE1BTElEUF9BRF9FTjsKKwlpZiAoZmItPm1vZGlmaWVyICYgQUZCQ19GT1JNQVRfTU9EX1NQTElU KQorCQl2YWwgfD0gTUFMSURQX0FEX0JTOworCWlmIChmYi0+bW9kaWZpZXIgJiBBRkJDX0ZPUk1B VF9NT0RfWVRSKQorCQl2YWwgfD0gTUFMSURQX0FEX1lUUjsKKworCW1hbGlkcF9od193cml0ZSht cC0+aHdkZXYsIHZhbCwgbXAtPmxheWVyLT5hZmJjX2RlY29kZXJfb2Zmc2V0KTsKK30KKwogc3Rh dGljIHZvaWQgbWFsaWRwX2RlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IAkJCQkgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCiB7CkBAIC02MDIsMTIg KzY3OSwyMyBAQCBzdGF0aWMgdm9pZCBtYWxpZHBfZGVfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAogCXU4IHBsYW5lX2FscGhhID0gc3RhdGUtPmFscGhhID4+IDg7CiAJdTMy IHNyY193LCBzcmNfaCwgZGVzdF93LCBkZXN0X2gsIHZhbDsKIAlpbnQgaTsKKwlzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lLT5zdGF0ZS0+ZmI7CiAKIAltcCA9IHRvX21hbGlkcF9w bGFuZShwbGFuZSk7CiAKLQkvKiBjb252ZXJ0IHNyYyB2YWx1ZXMgZnJvbSBRMTYgZml4ZWQgcG9p bnQgdG8gaW50ZWdlciAqLwotCXNyY193ID0gc3RhdGUtPnNyY193ID4+IDE2OwotCXNyY19oID0g c3RhdGUtPnNyY19oID4+IDE2OworCS8qCisJICogRm9yIEFGQkMgZnJhbWVidWZmZXIsIHVzZSB0 aGUgZnJhbWVidWZmZXIgd2lkdGggYW5kIGhlaWdodCBmb3IKKwkgKiBjb25maWd1cmluZyBsYXll ciBpbnB1dCBzaXplIHJlZ2lzdGVyLgorCSAqLworCWlmIChmYi0+bW9kaWZpZXIpIHsKKwkJc3Jj X3cgPSBmYi0+d2lkdGg7CisJCXNyY19oID0gZmItPmhlaWdodDsKKwl9IGVsc2UgeworCQkvKiBj b252ZXJ0IHNyYyB2YWx1ZXMgZnJvbSBRMTYgZml4ZWQgcG9pbnQgdG8gaW50ZWdlciAqLworCQlz cmNfdyA9IHN0YXRlLT5zcmNfdyA+PiAxNjsKKwkJc3JjX2ggPSBzdGF0ZS0+c3JjX2ggPj4gMTY7 CisJfQorCiAJZGVzdF93ID0gc3RhdGUtPmNydGNfdzsKIAlkZXN0X2ggPSBzdGF0ZS0+Y3J0Y19o OwogCkBAIC02MTUsMTUgKzcwMyw4IEBAIHN0YXRpYyB2b2lkIG1hbGlkcF9kZV9wbGFuZV91cGRh dGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJdmFsID0gKHZhbCAmIH5MQVlFUl9GT1JNQVRf TUFTSykgfCBtcy0+Zm9ybWF0OwogCW1hbGlkcF9od193cml0ZShtcC0+aHdkZXYsIHZhbCwgbXAt PmxheWVyLT5iYXNlKTsKIAotCWZvciAoaSA9IDA7IGkgPCBtcy0+bl9wbGFuZXM7IGkrKykgewot CQkvKiBjYWxjdWxhdGUgdGhlIG9mZnNldCBmb3IgdGhlIGxheWVyJ3MgcGxhbmUgcmVnaXN0ZXJz ICovCi0JCXUxNiBwdHIgPSBtcC0+bGF5ZXItPnB0ciArIChpIDw8IDQpOwotCQlkbWFfYWRkcl90 IGZiX2FkZHIgPSBkcm1fZmJfY21hX2dldF9nZW1fYWRkcihzdGF0ZS0+ZmIsCi0JCQkJCQkJICAg ICBzdGF0ZSwgaSk7Ci0KLQkJbWFsaWRwX2h3X3dyaXRlKG1wLT5od2RldiwgbG93ZXJfMzJfYml0 cyhmYl9hZGRyKSwgcHRyKTsKLQkJbWFsaWRwX2h3X3dyaXRlKG1wLT5od2RldiwgdXBwZXJfMzJf Yml0cyhmYl9hZGRyKSwgcHRyICsgNCk7Ci0JfQorCWZvciAoaSA9IDA7IGkgPCBtcy0+bl9wbGFu ZXM7IGkrKykKKwkJbWFsaWRwX3NldF9wbGFuZV9iYXNlX2FkZHIoZmIsIG1wLCBpKTsKIAogCW1h bGlkcF9kZV9zZXRfbW11X2NvbnRyb2wobXAsIG1zKTsKIApAQCAtNjU3LDYgKzczOCw4IEBAIHN0 YXRpYyB2b2lkIG1hbGlkcF9kZV9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs CiAJCQkJbXAtPmxheWVyLT5iYXNlICsgTUFMSURQNTUwX0xTX1IxX0lOX1NJWkUpOwogCX0KIAor CW1hbGlkcF9kZV9zZXRfcGxhbmVfYWZiYyhwbGFuZSk7CisKIAkvKiBmaXJzdCBjbGVhciB0aGUg cm90YXRpb24gYml0cyAqLwogCXZhbCA9IG1hbGlkcF9od19yZWFkKG1wLT5od2RldiwgbXAtPmxh eWVyLT5iYXNlICsgTUFMSURQX0xBWUVSX0NPTlRST0wpOwogCXZhbCAmPSB+TEFZRVJfUk9UX01B U0s7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9yZWdzLmggYi9kcml2 ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9yZWdzLmgKaW5kZXggN2NlM2UxNC4uYTBkZDZlMSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcmVncy5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hcm0vbWFsaWRwX3JlZ3MuaApAQCAtMTk4LDEwICsxOTgsMTMgQEAKICNkZWZpbmUg TUFMSURQNTAwX0xWX1lVVjJSR0IJCSgoczE2KSgtMHhCOCkpCiAjZGVmaW5lIE1BTElEUDUwMF9E RV9MVl9CQVNFCQkweDAwMTAwCiAjZGVmaW5lIE1BTElEUDUwMF9ERV9MVl9QVFJfQkFTRQkweDAw MTI0CisjZGVmaW5lIE1BTElEUDUwMF9ERV9MVl9BRF9DVFJMCQkweDAwNDAwCiAjZGVmaW5lIE1B TElEUDUwMF9ERV9MRzFfQkFTRQkJMHgwMDIwMAogI2RlZmluZSBNQUxJRFA1MDBfREVfTEcxX1BU Ul9CQVNFCTB4MDAyMWMKKyNkZWZpbmUgTUFMSURQNTAwX0RFX0xHMV9BRF9DVFJMCTB4MDA0MGMK ICNkZWZpbmUgTUFMSURQNTAwX0RFX0xHMl9CQVNFCQkweDAwMzAwCiAjZGVmaW5lIE1BTElEUDUw MF9ERV9MRzJfUFRSX0JBU0UJMHgwMDMxYworI2RlZmluZSBNQUxJRFA1MDBfREVfTEcyX0FEX0NU UkwJMHgwMDQxOAogI2RlZmluZSBNQUxJRFA1MDBfU0VfQkFTRQkJMHgwMGMwMAogI2RlZmluZSBN QUxJRFA1MDBfU0VfQ09OVFJPTAkJMHgwMGMwYwogI2RlZmluZSBNQUxJRFA1MDBfU0VfTUVNV1JJ VEVfT1VUX1NJWkUJMHgwMGMyYwpAQCAtMjI4LDEwICsyMzEsMTMgQEAKICNkZWZpbmUgTUFMSURQ NTUwX0xWX1lVVjJSR0IJCTB4MDAwODQKICNkZWZpbmUgTUFMSURQNTUwX0RFX0xWMV9CQVNFCQkw eDAwMTAwCiAjZGVmaW5lIE1BTElEUDU1MF9ERV9MVjFfUFRSX0JBU0UJMHgwMDEyNAorI2RlZmlu ZSBNQUxJRFA1NTBfREVfTFYxX0FEX0NUUkwJMHgwMDFCOAogI2RlZmluZSBNQUxJRFA1NTBfREVf TFYyX0JBU0UJCTB4MDAyMDAKICNkZWZpbmUgTUFMSURQNTUwX0RFX0xWMl9QVFJfQkFTRQkweDAw MjI0CisjZGVmaW5lIE1BTElEUDU1MF9ERV9MVjJfQURfQ1RSTAkweDAwMkI4CiAjZGVmaW5lIE1B TElEUDU1MF9ERV9MR19CQVNFCQkweDAwMzAwCiAjZGVmaW5lIE1BTElEUDU1MF9ERV9MR19QVFJf QkFTRQkweDAwMzFjCisjZGVmaW5lIE1BTElEUDU1MF9ERV9MR19BRF9DVFJMCQkweDAwMzMwCiAj ZGVmaW5lIE1BTElEUDU1MF9ERV9MU19CQVNFCQkweDAwNDAwCiAjZGVmaW5lIE1BTElEUDU1MF9E RV9MU19QVFJfQkFTRQkweDAwNDJjCiAjZGVmaW5lIE1BTElEUDU1MF9ERV9QRVJGX0JBU0UJCTB4 MDA1MDAKQEAgLTI1OCw2ICsyNjQsMjAgQEAKICNkZWZpbmUgTUFMSURQX01NVV9DVFJMX1BYX1BT KHgpCSgxIDw8ICg4ICsgKHgpKSkKICNkZWZpbmUgTUFMSURQX01NVV9DVFJMX1BQX05VTV9SRVEo eCkJKCgoeCkgJiAweDdmKSA8PCAxMikKIAorLyogQUZCQyByZWdpc3RlciBvZmZzZXRzIHJlbGF0 aXZlIHRvIE1BTElEUFhYWF9ERV9MWF9BRF9DVFJMICovCisvKiBUaGUgZm9sbG93aW5nIHJlZ2lz dGVyIG9mZnNldHMgYXJlIGNvbW1vbiBmb3IgRFA1MDAsIERQNTUwIGFuZCBEUDY1MCAqLworI2Rl ZmluZSBNQUxJRFBfQURfQ1JPUF9IICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNQUxJRFBf QURfQ1JPUF9WICAgICAgICAgICAgICAgIDB4OAorI2RlZmluZSBNQUxJRFBfQURfRU5EX1BUUl9M T1cgICAgICAgICAgIDB4YworI2RlZmluZSBNQUxJRFBfQURfRU5EX1BUUl9ISUdIICAgICAgICAg IDB4MTAKKworLyogQUZCQyBkZWNvZGVyIFJlZ2lzdGVycyAqLworI2RlZmluZSBNQUxJRFBfQURf RU4gICAgICAgICAgICAgICAgICAgIEJJVCgwKQorI2RlZmluZSBNQUxJRFBfQURfWVRSICAgICAg ICAgICAgICAgICAgIEJJVCg0KQorI2RlZmluZSBNQUxJRFBfQURfQlMgICAgICAgICAgICAgICAg ICAgIEJJVCg4KQorI2RlZmluZSBNQUxJRFBfQURfQ1JPUF9SSUdIVF9PRkZTRVQgICAgIDE2Cisj ZGVmaW5lIE1BTElEUF9BRF9DUk9QX0JPVFRPTV9PRkZTRVQgICAgMTYKKwogLyoKICAqIFN0YXJ0 aW5nIHdpdGggRFA1NTAgdGhlIHJlZ2lzdGVyIG1hcCBibG9ja3MgaGFzIGJlZW4gc3RhbmRhcmRp c2VkIHRvIHRoZQogICogZm9sbG93aW5nIGxheW91dDoKLS0gCjIuNy40CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=