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: Tue, 17 Mar 2015 15:45:15 +0000 Message-ID: <1426607117-10626-6-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1426607117-10626-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id A14156E70E for ; Tue, 17 Mar 2015 08:45:28 -0700 (PDT) In-Reply-To: <1426607117-10626-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 IHZpZXcgY2hhbmdlcy4KCkZvcjogVklaLTQ3MjYKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3Vs aW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IE1pY2hlbCBUaGllcnJ5 IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+ICh2NCkKQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9v bmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYyAgfCAxMTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oICB8ICAxMiArKysrCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgMjkgKysrKysrKystCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDQgKysKIDQgZmlsZXMgY2hhbmdlZCwgMTU0 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuYwppbmRleCBmMWI5ZWE2Li41MzgxZWJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuYwpAQCAtMjQxMywxNSArMjQxMywxMTkgQEAgaTkxNV9nZW1fb2JqX2xvb2t1cF9vcl9jcmVh dGVfZ2d0dF92bWEoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAogfQogCitzdGF0 aWMKK3ZvaWQgcm90YXRlX3BhZ2VzKGRtYV9hZGRyX3QgKmluLCB1bnNpZ25lZCBpbnQgd2lkdGgs IHVuc2lnbmVkIGludCBoZWlnaHQsCisJCSAgc3RydWN0IHNnX3RhYmxlICpzdCkKK3sKKwl1bnNp Z25lZCBpbnQgY29sdW1uLCByb3c7CisJdW5zaWduZWQgaW50IHNyY19pZHg7CisJc3RydWN0IHNj YXR0ZXJsaXN0ICpzZyA9IHN0LT5zZ2w7CisKKwlzdC0+bmVudHMgPSAwOworCisJZm9yIChjb2x1 bW4gPSAwOyBjb2x1bW4gPCB3aWR0aDsgY29sdW1uKyspIHsKKwkJc3JjX2lkeCA9IHdpZHRoICog KGhlaWdodCAtIDEpICsgY29sdW1uOworCQlmb3IgKHJvdyA9IDA7IHJvdyA8IGhlaWdodDsgcm93 KyspIHsKKwkJCXN0LT5uZW50cysrOworCQkJLyogV2UgZG9uJ3QgbmVlZCB0aGUgcGFnZXMsIGJ1 dCBuZWVkIHRvIGluaXRpYWxpemUKKwkJCSAqIHRoZSBlbnRyaWVzIHNvIHRoZSBzZyBsaXN0IGNh biBiZSBoYXBwaWx5IHRyYXZlcnNlZC4KKwkJCSAqIFRoZSBvbmx5IHRoaW5nIHdlIG5lZWQgYXJl IERNQSBhZGRyZXNzZXMuCisJCQkgKi8KKwkJCXNnX3NldF9wYWdlKHNnLCBOVUxMLCBQQUdFX1NJ WkUsIDApOworCQkJc2dfZG1hX2FkZHJlc3Moc2cpID0gaW5bc3JjX2lkeF07CisJCQlzZ19kbWFf bGVuKHNnKSA9IFBBR0VfU0laRTsKKwkJCXNnID0gc2dfbmV4dChzZyk7CisJCQlzcmNfaWR4IC09 IHdpZHRoOworCQl9CisJfQorfQorCitzdGF0aWMKK3N0cnVjdCBzZ190YWJsZSAqaW50ZWxfcm90 YXRlX2ZiX29ial9wYWdlcyhzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKmdndHRfdmlldywKKwkJCQkJ ICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKKwlzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyAqcm90 X2luZm8gPSAmZ2d0dF92aWV3LT5yb3RhdGlvbl9pbmZvOworCXVuc2lnbmVkIGxvbmcgc2l6ZSwg cGFnZXMsIHJvdF9wYWdlczsKKwlzdHJ1Y3Qgc2dfcGFnZV9pdGVyIHNnX2l0ZXI7CisJdW5zaWdu ZWQgbG9uZyBpOworCWRtYV9hZGRyX3QgKnBhZ2VfYWRkcl9saXN0OworCXN0cnVjdCBzZ190YWJs ZSAqc3Q7CisJdW5zaWduZWQgaW50IHRpbGVfcGl0Y2gsIHRpbGVfaGVpZ2h0OworCXVuc2lnbmVk IGludCB3aWR0aF9wYWdlcywgaGVpZ2h0X3BhZ2VzOworCWludCByZXQgPSBFTk9NRU07CisKKwlw YWdlcyA9IG9iai0+YmFzZS5zaXplIC8gUEFHRV9TSVpFOworCisJLyogQ2FsY3VsYXRlIHRpbGlu ZyBnZW9tZXRyeS4gKi8KKwl0aWxlX2hlaWdodCA9IGludGVsX3RpbGVfaGVpZ2h0KGRldiwgcm90 X2luZm8tPnBpeGVsX2Zvcm1hdCwKKwkJCQkJcm90X2luZm8tPmZiX21vZGlmaWVyKTsKKwl0aWxl X3BpdGNoID0gUEFHRV9TSVpFIC8gdGlsZV9oZWlnaHQ7CisJd2lkdGhfcGFnZXMgPSBESVZfUk9V TkRfVVAocm90X2luZm8tPnBpdGNoLCB0aWxlX3BpdGNoKTsKKwloZWlnaHRfcGFnZXMgPSBESVZf Uk9VTkRfVVAocm90X2luZm8tPmhlaWdodCwgdGlsZV9oZWlnaHQpOworCXJvdF9wYWdlcyA9IHdp ZHRoX3BhZ2VzICogaGVpZ2h0X3BhZ2VzOworCXNpemUgPSByb3RfcGFnZXMgKiBQQUdFX1NJWkU7 CisKKwkvKiBBbGxvY2F0ZSBhIHRlbXBvcmFyeSBsaXN0IG9mIHNvdXJjZSBwYWdlcyBmb3IgcmFu ZG9tIGFjY2Vzcy4gKi8KKwlwYWdlX2FkZHJfbGlzdCA9IGRybV9tYWxsb2NfYWIocGFnZXMsIHNp emVvZihkbWFfYWRkcl90KSk7CisJaWYgKCFwYWdlX2FkZHJfbGlzdCkKKwkJcmV0dXJuIEVSUl9Q VFIocmV0KTsKKworCS8qIEFsbG9jYXRlIHRhcmdldCBTRyBsaXN0LiAqLworCXN0ID0ga21hbGxv YyhzaXplb2YoKnN0KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFzdCkKKwkJZ290byBlcnJfc3RfYWxs b2M7CisKKwlyZXQgPSBzZ19hbGxvY190YWJsZShzdCwgcm90X3BhZ2VzLCBHRlBfS0VSTkVMKTsK KwlpZiAocmV0KQorCQlnb3RvIGVycl9zZ19hbGxvYzsKKworCS8qIFBvcHVsYXRlIHNvdXJjZSBw YWdlIGxpc3QgZnJvbSB0aGUgb2JqZWN0LiAqLworCWkgPSAwOworCWZvcl9lYWNoX3NnX3BhZ2Uo b2JqLT5wYWdlcy0+c2dsLCAmc2dfaXRlciwgb2JqLT5wYWdlcy0+bmVudHMsIDApIHsKKwkJcGFn ZV9hZGRyX2xpc3RbaV0gPSBzZ19wYWdlX2l0ZXJfZG1hX2FkZHJlc3MoJnNnX2l0ZXIpOworCQlp Kys7CisJfQorCisJLyogUm90YXRlIHRoZSBwYWdlcy4gKi8KKwlyb3RhdGVfcGFnZXMocGFnZV9h ZGRyX2xpc3QsIHdpZHRoX3BhZ2VzLCBoZWlnaHRfcGFnZXMsIHN0KTsKKworCURSTV9ERUJVR19L TVMoCisJCSAgICAgICJDcmVhdGVkIHJvdGF0ZWQgcGFnZSBtYXBwaW5nIGZvciBvYmplY3Qgc2l6 ZSAlbHUgKHBpdGNoPSV1LCBoZWlnaHQ9JXUsIHBpeGVsX2Zvcm1hdD0weCV4LCAldXgldSB0aWxl cywgJWx1IHBhZ2VzKS5cbiIsCisJCSAgICAgIHNpemUsIHJvdF9pbmZvLT5waXRjaCwgcm90X2lu Zm8tPmhlaWdodCwKKwkJICAgICAgcm90X2luZm8tPnBpeGVsX2Zvcm1hdCwgd2lkdGhfcGFnZXMs IGhlaWdodF9wYWdlcywKKwkJICAgICAgcm90X3BhZ2VzKTsKKworCWRybV9mcmVlX2xhcmdlKHBh Z2VfYWRkcl9saXN0KTsKKworCXJldHVybiBzdDsKKworZXJyX3NnX2FsbG9jOgorCWtmcmVlKHN0 KTsKK2Vycl9zdF9hbGxvYzoKKwlkcm1fZnJlZV9sYXJnZShwYWdlX2FkZHJfbGlzdCk7CisKKwlE Uk1fREVCVUdfS01TKAorCQkgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSByb3RhdGVkIG1hcHBpbmcg Zm9yIG9iamVjdCBzaXplICVsdSEgKCVkKSAocGl0Y2g9JXUsIGhlaWdodD0ldSwgcGl4ZWxfZm9y bWF0PTB4JXgsICV1eCV1IHRpbGVzLCAlbHUgcGFnZXMpXG4iLAorCQkgICAgICBzaXplLCByZXQs IHJvdF9pbmZvLT5waXRjaCwgcm90X2luZm8tPmhlaWdodCwKKwkJICAgICAgcm90X2luZm8tPnBp eGVsX2Zvcm1hdCwgd2lkdGhfcGFnZXMsIGhlaWdodF9wYWdlcywKKwkJICAgICAgcm90X3BhZ2Vz KTsKKwlyZXR1cm4gRVJSX1BUUihyZXQpOworfQogCiBzdGF0aWMgaW5saW5lCiBpbnQgaTkxNV9n ZXRfZ2d0dF92bWFfcGFnZXMoc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7CisJaW50IHJldCA9IDA7 CisKIAlpZiAodm1hLT5nZ3R0X3ZpZXcucGFnZXMpCiAJCXJldHVybiAwOwogCiAJaWYgKHZtYS0+ Z2d0dF92aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfTk9STUFMKQogCQl2bWEtPmdndHRfdmll dy5wYWdlcyA9IHZtYS0+b2JqLT5wYWdlczsKKwllbHNlIGlmICh2bWEtPmdndHRfdmlldy50eXBl ID09IEk5MTVfR0dUVF9WSUVXX1JPVEFURUQpCisJCXZtYS0+Z2d0dF92aWV3LnBhZ2VzID0KKwkJ CWludGVsX3JvdGF0ZV9mYl9vYmpfcGFnZXMoJnZtYS0+Z2d0dF92aWV3LCB2bWEtPm9iaik7CiAJ ZWxzZQogCQlXQVJOX09OQ0UoMSwgIkdHVFQgdmlldyAldSBub3QgaW1wbGVtZW50ZWQhXG4iLAog CQkJICB2bWEtPmdndHRfdmlldy50eXBlKTsKQEAgLTI0MjksMTAgKzI1MzMsMTUgQEAgaW50IGk5 MTVfZ2V0X2dndHRfdm1hX3BhZ2VzKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCWlmICghdm1hLT5n Z3R0X3ZpZXcucGFnZXMpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IHBhZ2VzIGZvciBH R1RUIHZpZXcgdHlwZSAldSFcbiIsCiAJCQkgIHZtYS0+Z2d0dF92aWV3LnR5cGUpOwotCQlyZXR1 cm4gLUVJTlZBTDsKKwkJcmV0ID0gLUVJTlZBTDsKKwl9IGVsc2UgaWYgKElTX0VSUih2bWEtPmdn dHRfdmlldy5wYWdlcykpIHsKKwkJcmV0ID0gUFRSX0VSUih2bWEtPmdndHRfdmlldy5wYWdlcyk7 CisJCXZtYS0+Z2d0dF92aWV3LnBhZ2VzID0gTlVMTDsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8g Z2V0IHBhZ2VzIGZvciBWTUEgdmlldyB0eXBlICV1ICglZCkhXG4iLAorCQkJICB2bWEtPmdndHRf dmlldy50eXBlLCByZXQpOwogCX0KIAotCXJldHVybiAwOworCXJldHVybiByZXQ7CiB9CiAKIC8q KgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAppbmRleCBjOWU5M2Y1Li5hNjFlOGRkIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaApAQCAtMTExLDEyICsxMTEsMjQgQEAgdHlw ZWRlZiBnZW44X2d0dF9wdGVfdCBnZW44X3BwZ3R0X3BkZV90OwogCiBlbnVtIGk5MTVfZ2d0dF92 aWV3X3R5cGUgewogCUk5MTVfR0dUVF9WSUVXX05PUk1BTCA9IDAsCisJSTkxNV9HR1RUX1ZJRVdf Uk9UQVRFRAorfTsKKworc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8geworCXVuc2lnbmVkIGlu dCBoZWlnaHQ7CisJdW5zaWduZWQgaW50IHBpdGNoOworCXVpbnQzMl90IHBpeGVsX2Zvcm1hdDsK Kwl1aW50NjRfdCBmYl9tb2RpZmllcjsKIH07CiAKIHN0cnVjdCBpOTE1X2dndHRfdmlldyB7CiAJ ZW51bSBpOTE1X2dndHRfdmlld190eXBlIHR5cGU7CiAKIAlzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2Vz OworCisJdW5pb24geworCQlzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyByb3RhdGlvbl9pbmZv OworCX07CiB9OwogCiBleHRlcm4gY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3IGk5MTVfZ2d0 dF92aWV3X25vcm1hbDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBmZTEx ZTk5Li5jMmMzYTc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0yMTk0 LDcgKzIxOTQsNyBAQCBzdGF0aWMgYm9vbCBuZWVkX3Z0ZF93YShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCXJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGludAordW5zaWduZWQg aW50CiBpbnRlbF90aWxlX2hlaWdodChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50MzJfdCBw aXhlbF9mb3JtYXQsCiAJCSAgdWludDY0X3QgZmJfZm9ybWF0X21vZGlmaWVyKQogewpAQCAtMjI1 NCw5ICsyMjU0LDM0IEBAIGludCBpbnRlbF9maWxsX2ZiX2dndHRfdmlldyhzdHJ1Y3QgaTkxNV9n Z3R0X3ZpZXcgKnZpZXcsCiAJCQkgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiAJCQkg ICAgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CisJc3RydWN0 IGludGVsX3JvdGF0aW9uX2luZm8gKmluZm8gPSAmdmlldy0+cm90YXRpb25faW5mbzsKKwlzdGF0 aWMgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3IHJvdGF0ZWRfdmlldyA9CisJCQkJeyAudHlw ZSA9IEk5MTVfR0dUVF9WSUVXX1JPVEFURUQgfTsKKwogCSp2aWV3ID0gaTkxNV9nZ3R0X3ZpZXdf bm9ybWFsOwogCi0JcmV0dXJuIDA7CisJaWYgKCFwbGFuZV9zdGF0ZSkKKwkJcmV0dXJuIDA7CisK KwlpZiAoIShwbGFuZV9zdGF0ZS0+cm90YXRpb24gJgorCSAgICAoQklUKERSTV9ST1RBVEVfOTAp IHwgQklUKERSTV9ST1RBVEVfMjcwKSkpKQorCQlyZXR1cm4gMDsKKworCSp2aWV3ID0gcm90YXRl ZF92aWV3OworCisJaW5mby0+aGVpZ2h0ID0gZmItPmhlaWdodDsKKwlpbmZvLT5waXhlbF9mb3Jt YXQgPSBmYi0+cGl4ZWxfZm9ybWF0OworCWluZm8tPnBpdGNoID0gZmItPnBpdGNoZXNbMF07CisJ aW5mby0+ZmJfbW9kaWZpZXIgPSBmYi0+bW9kaWZpZXJbMF07CisKKwlpZiAoIShpbmZvLT5mYl9t b2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB8fAorCSAgICAgIGluZm8tPmZiX21v ZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkpIHsKKwkJRFJNX0RFQlVHX0tNUygK KwkJCSAgICAgICJZIG9yIFlmIHRpbGluZyBpcyBuZWVkZWQgZm9yIDkwLzI3MCByb3RhdGlvbiFc biIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMTsKIH0KIAogaW50CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDM3MjE4NzguLjUzYTEzNzIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCkBAIC05ODcsNiArOTg3LDEwIEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNf c2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJCSAgICBzdHJ1Y3QgZHJt X3Byb3BlcnR5ICpwcm9wZXJ0eSwKIAkJCQkgICAgdWludDY0X3QgdmFsKTsKIAordW5zaWduZWQg aW50CitpbnRlbF90aWxlX2hlaWdodChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50MzJfdCBw aXhlbF9mb3JtYXQsCisJCSAgdWludDY0X3QgZmJfZm9ybWF0X21vZGlmaWVyKTsKKwogLyogc2hh cmVkIGRwbGwgZnVuY3Rpb25zICovCiBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmludGVsX2Ny dGNfdG9fc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwogdm9pZCBhc3NlcnRf c2hhcmVkX2RwbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotLSAKMi4zLjIK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==