From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 5/7] drm/i915/skl: Support secondary (rotated) frame buffer mapping Date: Mon, 23 Mar 2015 11:10:36 +0000 Message-ID: <1427109038-19597-6-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1427109038-19597-1-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 9CBDB72029 for ; Mon, 23 Mar 2015 04:10:55 -0700 (PDT) In-Reply-To: <1427109038-19597-1-git-send-email-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCjkwLzI3MCBy b3RhdGVkIHNjYW5vdXQgbmVlZHMgYSByb3RhdGVkIEdUVCB2aWV3IG9mIHRoZSBmcmFtZWJ1ZmZl ci4KClRoaXMgaXMgcHV0IGluIGEgc2VwYXJhdGUgVk1BIHdpdGggYSBkZWRpY2F0ZWQgZ2d0dCB2 aWV3IGFuZCB3aXJlZCBzdWNoIHRoYXQKaXQgaXMgY3JlYXRlZCB3aGVuIGEgZnJhbWVidWZmZXIg aXMgcGlubmVkIHRvIGEgOTAvMjcwIHJvdGF0ZWQgcGxhbmUuCgpSb3RhdGlvbiBpcyBvbmx5IHBv c3NpYmxlIHdpdGggWWIvWWYgYnVmZmVycyBhbmQgZXJyb3IgaXMgcHJvcGFnYXRlZCB0bwp1c2Vy IHNwYWNlIGluIGNhc2Ugb2YgYSBtaXNtYXRjaC4KClNwZWNpYWwgcm90YXRlZCBwYWdlIHZpZXcg aXMgY29uc3RydWN0ZWQgYXQgdGhlIFZNQSBjcmVhdGlvbiB0aW1lIGJ5CmJvcnJvd2luZyB0aGUg RE1BIGFkZHJlc3NlcyBmcm9tIG9iai0+cGFnZXMuCgp2MjoKICAgICogRG8gbm90IGJvdGhlciB3 aXRoIHBhZ2VzIGZvciByb3RhdGVkIHNnIGxpc3QsIGp1c3QgcG9wdWxhdGUgdGhlIERNQQogICAg ICBhZGRyZXNzZXMuIChEYW5pZWwgVmV0dGVyKQogICAgKiBDaGVja3BhdGNoIGNsZWFudXAuCgp2 MzoKICAgICogUmViYXNlZCBvbiB0b3Agb2YgbmV3IHBsYW5lIGhhbmRsaW5nIChjcmVhdGUgcm90 YXRlZCBtYXBwaW5nIHdoZW4KICAgICAgc2V0dGluZyB0aGUgcm90YXRpb24gcHJvcGVydHkpLgog ICAgKiBVbnBpbiByb3RhdGVkIFZNQSBvbiB1bnBpbm5pbmcgZnJvbSBkaXNwbGF5IHBsYW5lLgog ICAgKiBTaW1wbGlmeSByb3RhdGlvbiBjaGVjayB1c2luZyBiaXR3aXNlIEFORC4gKENocmlzIFdp bHNvbikKCnY0OgogICAgKiBGaXggdW5waW5uaW5nIG9mIG9wdGlvbmFsIHJvdGF0ZWQgbWFwcGlu ZyBzbyBpdCBpcyByZWFsbHkgY29uc2lkZXJlZAogICAgICB0byBiZSBvcHRpb25hbC4KCnY1Ogog ICAqIFJlYmFzZWQgZm9yIGZiIG1vZGlmaWVyIGNoYW5nZXMuCiAgICogUmViYXNlZCBmb3IgYXRv bWljIGNvbW1pdC4KICAgKiBPbmx5IHBpbiBuZWVkZWQgdmlldyBmb3IgZGlzcGxheS4gKFZpbGxl IFN5cmrDpGzDpCwgRGFuaWVsIFZldHRlcikKCnY2OgogICAqIFJlYmFzZWQgYWZ0ZXIgcHJlcGFy YXRvcnkgd29yayBoYXMgYmVlbiBleHRyYWN0ZWQgb3V0LiAoRGFuaWVsIFZldHRlcikKCnY3Ogog ICAqIFNsaWdodGx5IHNpbXBsaWZpZWQgdGlsaW5nIGdlb21ldHJ5IGNhbGN1bGF0aW9uLgogICAq IE1vdmVkIHJvdGF0ZWQgR0dUVCB2aWV3IGltcGxlbWVudGF0aW9uIGludG8gaTkxNV9nZW1fZ3R0 LmMgKERhbmllbCBWZXR0ZXIpCgp2ODoKICAgKiBEbyBub3QgdXNlIGk5MTVfZ2VtX29ial9zaXpl IHRvIGdldCBvYmplY3Qgc2l6ZSBzaW5jZSB0aGF0IGFjdHVhbGx5CiAgICAgcmV0dXJucyB0aGUg c2l6ZSBvZiBhbiBWTUEgd2hpY2ggbWF5IG5vdCBleGlzdC4KICAgKiBSZWJhc2VkIGZvciBnZ3R0 IHZpZXcgY2hhbmdlcy4KCnY5OgogICAqIFJlYmFzZWQgYWZ0ZXIgY29kZSByZXZpZXcgY2hhbmdl cyBvbiB0aGUgcHJlY2VkaW5nIHBhdGNoZXMuCiAgICogVGlkeSBmdW5jdGlvbiBkZWZpbml0aW9u cy4gKEpvb25hcyBMYWh0aW5lbikKCkZvcjogVklaLTQ3MjYKU2lnbmVkLW9mZi1ieTogVHZydGtv IFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IE1pY2hlbCBU aGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+ICh2NCkKLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jICB8IDExNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggIHwgIDEyICsrKysKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAyNyArKysrKysrLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICA0ICsrCiA1IGZpbGVzIGNoYW5nZWQsIDE1OCBp bnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4 IDczYjI2MzguLmI2ZDRiMDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMzkwOCw3ICsz OTA4LDkgQEAgaTkxNV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5X3BsYW5lKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJICogKGUuZy4gbGlia21zIGZvciB0aGUgYm9vdHVwIHNw bGFzaCksIHdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgd2UKIAkgKiBhbHdheXMgdXNlIG1hcF9hbmRf ZmVuY2VhYmxlIGZvciBhbGwgc2Nhbm91dCBidWZmZXJzLgogCSAqLwotCXJldCA9IGk5MTVfZ2Vt X29iamVjdF9nZ3R0X3BpbihvYmosIHZpZXcsIGFsaWdubWVudCwgUElOX01BUFBBQkxFKTsKKwly ZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCB2aWV3LCBhbGlnbm1lbnQsCisJCQkJ ICAgICAgIHZpZXctPnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfTk9STUFMID8KKwkJCQkgICAgICAg UElOX01BUFBBQkxFIDogMCk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfdW5waW5fZGlzcGxheTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCA2NDVjMzYzLi5mYzU2YzExIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMjUwMCwxNSArMjUwMCwxMTkgQEAg aTkxNV9nZW1fb2JqX2xvb2t1cF9vcl9jcmVhdGVfZ2d0dF92bWEoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiwKIAogfQogCitzdGF0aWMgdm9pZAorcm90YXRlX3BhZ2VzKGRtYV9hZGRy X3QgKmluLCB1bnNpZ25lZCBpbnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQsCisJICAgICBz dHJ1Y3Qgc2dfdGFibGUgKnN0KQoreworCXVuc2lnbmVkIGludCBjb2x1bW4sIHJvdzsKKwl1bnNp Z25lZCBpbnQgc3JjX2lkeDsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnID0gc3QtPnNnbDsKKwor CXN0LT5uZW50cyA9IDA7CisKKwlmb3IgKGNvbHVtbiA9IDA7IGNvbHVtbiA8IHdpZHRoOyBjb2x1 bW4rKykgeworCQlzcmNfaWR4ID0gd2lkdGggKiAoaGVpZ2h0IC0gMSkgKyBjb2x1bW47CisJCWZv ciAocm93ID0gMDsgcm93IDwgaGVpZ2h0OyByb3crKykgeworCQkJc3QtPm5lbnRzKys7CisJCQkv KiBXZSBkb24ndCBuZWVkIHRoZSBwYWdlcywgYnV0IG5lZWQgdG8gaW5pdGlhbGl6ZQorCQkJICog dGhlIGVudHJpZXMgc28gdGhlIHNnIGxpc3QgY2FuIGJlIGhhcHBpbHkgdHJhdmVyc2VkLgorCQkJ ICogVGhlIG9ubHkgdGhpbmcgd2UgbmVlZCBhcmUgRE1BIGFkZHJlc3Nlcy4KKwkJCSAqLworCQkJ c2dfc2V0X3BhZ2Uoc2csIE5VTEwsIFBBR0VfU0laRSwgMCk7CisJCQlzZ19kbWFfYWRkcmVzcyhz ZykgPSBpbltzcmNfaWR4XTsKKwkJCXNnX2RtYV9sZW4oc2cpID0gUEFHRV9TSVpFOworCQkJc2cg PSBzZ19uZXh0KHNnKTsKKwkJCXNyY19pZHggLT0gd2lkdGg7CisJCX0KKwl9Cit9CisKK3N0YXRp YyBzdHJ1Y3Qgc2dfdGFibGUgKgoraW50ZWxfcm90YXRlX2ZiX29ial9wYWdlcyhzdHJ1Y3QgaTkx NV9nZ3R0X3ZpZXcgKmdndHRfdmlldywKKwkJCSAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKKwlzdHJ1 Y3QgaW50ZWxfcm90YXRpb25faW5mbyAqcm90X2luZm8gPSAmZ2d0dF92aWV3LT5yb3RhdGlvbl9p bmZvOworCXVuc2lnbmVkIGxvbmcgc2l6ZSwgcGFnZXMsIHJvdF9wYWdlczsKKwlzdHJ1Y3Qgc2df cGFnZV9pdGVyIHNnX2l0ZXI7CisJdW5zaWduZWQgbG9uZyBpOworCWRtYV9hZGRyX3QgKnBhZ2Vf YWRkcl9saXN0OworCXN0cnVjdCBzZ190YWJsZSAqc3Q7CisJdW5zaWduZWQgaW50IHRpbGVfcGl0 Y2gsIHRpbGVfaGVpZ2h0OworCXVuc2lnbmVkIGludCB3aWR0aF9wYWdlcywgaGVpZ2h0X3BhZ2Vz OworCWludCByZXQgPSBFTk9NRU07CisKKwlwYWdlcyA9IG9iai0+YmFzZS5zaXplIC8gUEFHRV9T SVpFOworCisJLyogQ2FsY3VsYXRlIHRpbGluZyBnZW9tZXRyeS4gKi8KKwl0aWxlX2hlaWdodCA9 IGludGVsX3RpbGVfaGVpZ2h0KGRldiwgcm90X2luZm8tPnBpeGVsX2Zvcm1hdCwKKwkJCQkJcm90 X2luZm8tPmZiX21vZGlmaWVyKTsKKwl0aWxlX3BpdGNoID0gUEFHRV9TSVpFIC8gdGlsZV9oZWln aHQ7CisJd2lkdGhfcGFnZXMgPSBESVZfUk9VTkRfVVAocm90X2luZm8tPnBpdGNoLCB0aWxlX3Bp dGNoKTsKKwloZWlnaHRfcGFnZXMgPSBESVZfUk9VTkRfVVAocm90X2luZm8tPmhlaWdodCwgdGls ZV9oZWlnaHQpOworCXJvdF9wYWdlcyA9IHdpZHRoX3BhZ2VzICogaGVpZ2h0X3BhZ2VzOworCXNp emUgPSByb3RfcGFnZXMgKiBQQUdFX1NJWkU7CisKKwkvKiBBbGxvY2F0ZSBhIHRlbXBvcmFyeSBs aXN0IG9mIHNvdXJjZSBwYWdlcyBmb3IgcmFuZG9tIGFjY2Vzcy4gKi8KKwlwYWdlX2FkZHJfbGlz dCA9IGRybV9tYWxsb2NfYWIocGFnZXMsIHNpemVvZihkbWFfYWRkcl90KSk7CisJaWYgKCFwYWdl X2FkZHJfbGlzdCkKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKworCS8qIEFsbG9jYXRlIHRhcmdl dCBTRyBsaXN0LiAqLworCXN0ID0ga21hbGxvYyhzaXplb2YoKnN0KSwgR0ZQX0tFUk5FTCk7CisJ aWYgKCFzdCkKKwkJZ290byBlcnJfc3RfYWxsb2M7CisKKwlyZXQgPSBzZ19hbGxvY190YWJsZShz dCwgcm90X3BhZ2VzLCBHRlBfS0VSTkVMKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9zZ19hbGxv YzsKKworCS8qIFBvcHVsYXRlIHNvdXJjZSBwYWdlIGxpc3QgZnJvbSB0aGUgb2JqZWN0LiAqLwor CWkgPSAwOworCWZvcl9lYWNoX3NnX3BhZ2Uob2JqLT5wYWdlcy0+c2dsLCAmc2dfaXRlciwgb2Jq LT5wYWdlcy0+bmVudHMsIDApIHsKKwkJcGFnZV9hZGRyX2xpc3RbaV0gPSBzZ19wYWdlX2l0ZXJf ZG1hX2FkZHJlc3MoJnNnX2l0ZXIpOworCQlpKys7CisJfQorCisJLyogUm90YXRlIHRoZSBwYWdl cy4gKi8KKwlyb3RhdGVfcGFnZXMocGFnZV9hZGRyX2xpc3QsIHdpZHRoX3BhZ2VzLCBoZWlnaHRf cGFnZXMsIHN0KTsKKworCURSTV9ERUJVR19LTVMoCisJCSAgICAgICJDcmVhdGVkIHJvdGF0ZWQg cGFnZSBtYXBwaW5nIGZvciBvYmplY3Qgc2l6ZSAlbHUgKHBpdGNoPSV1LCBoZWlnaHQ9JXUsIHBp eGVsX2Zvcm1hdD0weCV4LCAldXgldSB0aWxlcywgJWx1IHBhZ2VzKS5cbiIsCisJCSAgICAgIHNp emUsIHJvdF9pbmZvLT5waXRjaCwgcm90X2luZm8tPmhlaWdodCwKKwkJICAgICAgcm90X2luZm8t PnBpeGVsX2Zvcm1hdCwgd2lkdGhfcGFnZXMsIGhlaWdodF9wYWdlcywKKwkJICAgICAgcm90X3Bh Z2VzKTsKKworCWRybV9mcmVlX2xhcmdlKHBhZ2VfYWRkcl9saXN0KTsKKworCXJldHVybiBzdDsK KworZXJyX3NnX2FsbG9jOgorCWtmcmVlKHN0KTsKK2Vycl9zdF9hbGxvYzoKKwlkcm1fZnJlZV9s YXJnZShwYWdlX2FkZHJfbGlzdCk7CisKKwlEUk1fREVCVUdfS01TKAorCQkgICAgICAiRmFpbGVk IHRvIGNyZWF0ZSByb3RhdGVkIG1hcHBpbmcgZm9yIG9iamVjdCBzaXplICVsdSEgKCVkKSAocGl0 Y2g9JXUsIGhlaWdodD0ldSwgcGl4ZWxfZm9ybWF0PTB4JXgsICV1eCV1IHRpbGVzLCAlbHUgcGFn ZXMpXG4iLAorCQkgICAgICBzaXplLCByZXQsIHJvdF9pbmZvLT5waXRjaCwgcm90X2luZm8tPmhl aWdodCwKKwkJICAgICAgcm90X2luZm8tPnBpeGVsX2Zvcm1hdCwgd2lkdGhfcGFnZXMsIGhlaWdo dF9wYWdlcywKKwkJICAgICAgcm90X3BhZ2VzKTsKKwlyZXR1cm4gRVJSX1BUUihyZXQpOworfQog Ci1zdGF0aWMgaW5saW5lCi1pbnQgaTkxNV9nZXRfZ2d0dF92bWFfcGFnZXMoc3RydWN0IGk5MTVf dm1hICp2bWEpCitzdGF0aWMgaW5saW5lIGludAoraTkxNV9nZXRfZ2d0dF92bWFfcGFnZXMoc3Ry dWN0IGk5MTVfdm1hICp2bWEpCiB7CisJaW50IHJldCA9IDA7CisKIAlpZiAodm1hLT5nZ3R0X3Zp ZXcucGFnZXMpCiAJCXJldHVybiAwOwogCiAJaWYgKHZtYS0+Z2d0dF92aWV3LnR5cGUgPT0gSTkx NV9HR1RUX1ZJRVdfTk9STUFMKQogCQl2bWEtPmdndHRfdmlldy5wYWdlcyA9IHZtYS0+b2JqLT5w YWdlczsKKwllbHNlIGlmICh2bWEtPmdndHRfdmlldy50eXBlID09IEk5MTVfR0dUVF9WSUVXX1JP VEFURUQpCisJCXZtYS0+Z2d0dF92aWV3LnBhZ2VzID0KKwkJCWludGVsX3JvdGF0ZV9mYl9vYmpf cGFnZXMoJnZtYS0+Z2d0dF92aWV3LCB2bWEtPm9iaik7CiAJZWxzZQogCQlXQVJOX09OQ0UoMSwg IkdHVFQgdmlldyAldSBub3QgaW1wbGVtZW50ZWQhXG4iLAogCQkJICB2bWEtPmdndHRfdmlldy50 eXBlKTsKQEAgLTI1MTYsMTAgKzI2MjAsMTUgQEAgaW50IGk5MTVfZ2V0X2dndHRfdm1hX3BhZ2Vz KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCWlmICghdm1hLT5nZ3R0X3ZpZXcucGFnZXMpIHsKIAkJ RFJNX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IHBhZ2VzIGZvciBHR1RUIHZpZXcgdHlwZSAldSFcbiIs CiAJCQkgIHZtYS0+Z2d0dF92aWV3LnR5cGUpOwotCQlyZXR1cm4gLUVJTlZBTDsKKwkJcmV0ID0g LUVJTlZBTDsKKwl9IGVsc2UgaWYgKElTX0VSUih2bWEtPmdndHRfdmlldy5wYWdlcykpIHsKKwkJ cmV0ID0gUFRSX0VSUih2bWEtPmdndHRfdmlldy5wYWdlcyk7CisJCXZtYS0+Z2d0dF92aWV3LnBh Z2VzID0gTlVMTDsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IHBhZ2VzIGZvciBWTUEgdmll dyB0eXBlICV1ICglZCkhXG4iLAorCQkJICB2bWEtPmdndHRfdmlldy50eXBlLCByZXQpOwogCX0K IAotCXJldHVybiAwOworCXJldHVybiByZXQ7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuaAppbmRleCA3NWUyOWY3Li4wZGFkNDI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuaApAQCAtMTE3LDEyICsxMTcsMjQgQEAgdHlwZWRlZiB1aW50NjRfdCBnZW44X3Bk ZV90OwogCiBlbnVtIGk5MTVfZ2d0dF92aWV3X3R5cGUgewogCUk5MTVfR0dUVF9WSUVXX05PUk1B TCA9IDAsCisJSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRAorfTsKKworc3RydWN0IGludGVsX3JvdGF0 aW9uX2luZm8geworCXVuc2lnbmVkIGludCBoZWlnaHQ7CisJdW5zaWduZWQgaW50IHBpdGNoOwor CXVpbnQzMl90IHBpeGVsX2Zvcm1hdDsKKwl1aW50NjRfdCBmYl9tb2RpZmllcjsKIH07CiAKIHN0 cnVjdCBpOTE1X2dndHRfdmlldyB7CiAJZW51bSBpOTE1X2dndHRfdmlld190eXBlIHR5cGU7CiAK IAlzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzOworCisJdW5pb24geworCQlzdHJ1Y3QgaW50ZWxfcm90 YXRpb25faW5mbyByb3RhdGlvbl9pbmZvOworCX07CiB9OwogCiBleHRlcm4gY29uc3Qgc3RydWN0 IGk5MTVfZ2d0dF92aWV3IGk5MTVfZ2d0dF92aWV3X25vcm1hbDsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwppbmRleCBkM2ZhMDliLi5mNjA1YjA5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCkBAIC0yMjMzLDcgKzIyMzMsNyBAQCBzdGF0aWMgYm9vbCBuZWVkX3Z0 ZF93YShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJldHVybiBmYWxzZTsKIH0KIAotc3RhdGlj IHVuc2lnbmVkIGludAordW5zaWduZWQgaW50CiBpbnRlbF90aWxlX2hlaWdodChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1aW50MzJfdCBwaXhlbF9mb3JtYXQsCiAJCSAgdWludDY0X3QgZmJfZm9y bWF0X21vZGlmaWVyKQogewpAQCAtMjI5Miw4ICsyMjkyLDMzIEBAIHN0YXRpYyBpbnQKIGludGVs X2ZpbGxfZmJfZ2d0dF92aWV3KHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmlldywgc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIsCiAJCQljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSkKIHsKKwlzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyAqaW5mbyA9ICZ2aWV3LT5y b3RhdGlvbl9pbmZvOworCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgcm90YXRl ZF92aWV3ID0KKwkJCQl7IC50eXBlID0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCB9OworCiAJKnZp ZXcgPSBpOTE1X2dndHRfdmlld19ub3JtYWw7CiAKKwlpZiAoIXBsYW5lX3N0YXRlKQorCQlyZXR1 cm4gMDsKKworCWlmICghKHBsYW5lX3N0YXRlLT5yb3RhdGlvbiAmCisJICAgIChCSVQoRFJNX1JP VEFURV85MCkgfCBCSVQoRFJNX1JPVEFURV8yNzApKSkpCisJCXJldHVybiAwOworCisJKnZpZXcg PSByb3RhdGVkX3ZpZXc7CisKKwlpbmZvLT5oZWlnaHQgPSBmYi0+aGVpZ2h0OworCWluZm8tPnBp eGVsX2Zvcm1hdCA9IGZiLT5waXhlbF9mb3JtYXQ7CisJaW5mby0+cGl0Y2ggPSBmYi0+cGl0Y2hl c1swXTsKKwlpbmZvLT5mYl9tb2RpZmllciA9IGZiLT5tb2RpZmllclswXTsKKworCWlmICghKGlu Zm8tPmZiX21vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEIHx8CisJICAgICAgaW5m by0+ZmJfbW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEKSkgeworCQlEUk1fREVC VUdfS01TKAorCQkJICAgICAgIlkgb3IgWWYgdGlsaW5nIGlzIG5lZWRlZCBmb3IgOTAvMjcwIHJv dGF0aW9uIVxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwogCXJldHVybiAwOwogfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IGEwZGY1NTYuLmNiMDBiZDAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCkBAIC05ODQsNiArOTg0LDEwIEBAIGludCBpbnRlbF9wbGFuZV9hdG9t aWNfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJCSAgICBzdHJ1Y3Qg ZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKIAkJCQkgICAgdWludDY0X3QgdmFsKTsKIAordW5zaWdu ZWQgaW50CitpbnRlbF90aWxlX2hlaWdodChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50MzJf dCBwaXhlbF9mb3JtYXQsCisJCSAgdWludDY0X3QgZmJfZm9ybWF0X21vZGlmaWVyKTsKKwogLyog c2hhcmVkIGRwbGwgZnVuY3Rpb25zICovCiBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmludGVs X2NydGNfdG9fc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwogdm9pZCBhc3Nl cnRfc2hhcmVkX2RwbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotLSAKMi4z LjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==