From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 2/9] drm/i915: Plumb drm_framebuffer into more places Date: Wed, 4 Jan 2017 20:42:25 +0200 Message-ID: <20170104184232.23048-3-ville.syrjala@linux.intel.com> References: <20170104184232.23048-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170104184232.23048-1-ville.syrjala@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 Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCk5v dyB0aGF0IGZyYW1lYnVmZmVycyBjYW4gYmUgdXNlZCBldmVuIGJlZm9yZSBjYWxsaW5nCmRybV9m cmFtZWJ1ZmZlcl9pbml0KCkgd2UgY2FuIHN0YXJ0IHRvIHBsdW1iIHRoZW0gaW50byBtb3JlIHBs YWNlcywKaW5zdGVhZCBvZiBwYXNzaW5nIGluZGl2aWR1YWwgcGllY2VzIGZvciBmYiBtZXRhZGF0 YS4KClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTI3 ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCAgICAgfCAgMTEgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9m YmRldi5jICAgfCAgIDQgKy0KIDMgZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgODUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGUyMTUw YTY0ODYwYy4uZjBjYjgwYWJhODlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CkBAIC0yMDUwLDEwICsyMDUwLDEzIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfdGlsZV9z aXplKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gSVNf R0VOMihkZXZfcHJpdikgPyAyMDQ4IDogNDA5NjsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGludCBp bnRlbF90aWxlX3dpZHRoX2J5dGVzKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKLQkJCQkJICAgdWludDY0X3QgZmJfbW9kaWZpZXIsIHVuc2lnbmVkIGludCBjcHApCitz dGF0aWMgdW5zaWduZWQgaW50CitpbnRlbF90aWxlX3dpZHRoX2J5dGVzKGNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxhbmUpCiB7Ci0Jc3dpdGNoIChmYl9tb2RpZmllcikg eworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZmItPmRldik7 CisJdW5zaWduZWQgaW50IGNwcCA9IGZiLT5mb3JtYXQtPmNwcFtwbGFuZV07CisKKwlzd2l0Y2gg KGZiLT5tb2RpZmllcikgewogCWNhc2UgRFJNX0ZPUk1BVF9NT0RfTk9ORToKIAkJcmV0dXJuIGNw cDsKIAljYXNlIEk5MTVfRk9STUFUX01PRF9YX1RJTEVEOgpAQCAtMjA4Miw0MSArMjA4NSwzOCBA QCBzdGF0aWMgdW5zaWduZWQgaW50IGludGVsX3RpbGVfd2lkdGhfYnl0ZXMoY29uc3Qgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcgogCQl9CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCU1J U1NJTkdfQ0FTRShmYl9tb2RpZmllcik7CisJCU1JU1NJTkdfQ0FTRShmYi0+bW9kaWZpZXIpOwog CQlyZXR1cm4gY3BwOwogCX0KIH0KIAotdW5zaWduZWQgaW50IGludGVsX3RpbGVfaGVpZ2h0KGNv bnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCSAgICAgICB1aW50NjRf dCBmYl9tb2RpZmllciwgdW5zaWduZWQgaW50IGNwcCkKK3N0YXRpYyB1bnNpZ25lZCBpbnQKK2lu dGVsX3RpbGVfaGVpZ2h0KGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxh bmUpCiB7Ci0JaWYgKGZiX21vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX05PTkUpCisJaWYgKGZi LT5tb2RpZmllciA9PSBEUk1fRk9STUFUX01PRF9OT05FKQogCQlyZXR1cm4gMTsKIAllbHNlCi0J CXJldHVybiBpbnRlbF90aWxlX3NpemUoZGV2X3ByaXYpIC8KLQkJCWludGVsX3RpbGVfd2lkdGhf Ynl0ZXMoZGV2X3ByaXYsIGZiX21vZGlmaWVyLCBjcHApOworCQlyZXR1cm4gaW50ZWxfdGlsZV9z aXplKHRvX2k5MTUoZmItPmRldikpIC8KKwkJCWludGVsX3RpbGVfd2lkdGhfYnl0ZXMoZmIsIHBs YW5lKTsKIH0KIAogLyogUmV0dXJuIHRoZSB0aWxlIGRpbWVuc2lvbnMgaW4gcGl4ZWwgdW5pdHMg Ki8KLXN0YXRpYyB2b2lkIGludGVsX3RpbGVfZGltcyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCitzdGF0aWMgdm9pZCBpbnRlbF90aWxlX2RpbXMoY29uc3Qgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBwbGFuZSwKIAkJCSAgICB1bnNpZ25lZCBpbnQgKnRp bGVfd2lkdGgsCi0JCQkgICAgdW5zaWduZWQgaW50ICp0aWxlX2hlaWdodCwKLQkJCSAgICB1aW50 NjRfdCBmYl9tb2RpZmllciwKLQkJCSAgICB1bnNpZ25lZCBpbnQgY3BwKQorCQkJICAgIHVuc2ln bmVkIGludCAqdGlsZV9oZWlnaHQpCiB7Ci0JdW5zaWduZWQgaW50IHRpbGVfd2lkdGhfYnl0ZXMg PQotCQlpbnRlbF90aWxlX3dpZHRoX2J5dGVzKGRldl9wcml2LCBmYl9tb2RpZmllciwgY3BwKTsK Kwl1bnNpZ25lZCBpbnQgdGlsZV93aWR0aF9ieXRlcyA9IGludGVsX3RpbGVfd2lkdGhfYnl0ZXMo ZmIsIHBsYW5lKTsKKwl1bnNpZ25lZCBpbnQgY3BwID0gZmItPmZvcm1hdC0+Y3BwW3BsYW5lXTsK IAogCSp0aWxlX3dpZHRoID0gdGlsZV93aWR0aF9ieXRlcyAvIGNwcDsKLQkqdGlsZV9oZWlnaHQg PSBpbnRlbF90aWxlX3NpemUoZGV2X3ByaXYpIC8gdGlsZV93aWR0aF9ieXRlczsKKwkqdGlsZV9o ZWlnaHQgPSBpbnRlbF90aWxlX3NpemUodG9faTkxNShmYi0+ZGV2KSkgLyB0aWxlX3dpZHRoX2J5 dGVzOwogfQogCiB1bnNpZ25lZCBpbnQKLWludGVsX2ZiX2FsaWduX2hlaWdodChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgaGVpZ2h0LAotCQkgICAgICB1aW50MzJfdCBwaXhl bF9mb3JtYXQsIHVpbnQ2NF90IGZiX21vZGlmaWVyKQoraW50ZWxfZmJfYWxpZ25faGVpZ2h0KGNv bnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQkgICAgICBpbnQgcGxhbmUsIHVuc2ln bmVkIGludCBoZWlnaHQpCiB7Ci0JdW5zaWduZWQgaW50IGNwcCA9IGRybV9mb3JtYXRfcGxhbmVf Y3BwKHBpeGVsX2Zvcm1hdCwgMCk7Ci0JdW5zaWduZWQgaW50IHRpbGVfaGVpZ2h0ID0gaW50ZWxf dGlsZV9oZWlnaHQodG9faTkxNShkZXYpLCBmYl9tb2RpZmllciwgY3BwKTsKKwl1bnNpZ25lZCBp bnQgdGlsZV9oZWlnaHQgPSBpbnRlbF90aWxlX2hlaWdodChmYiwgcGxhbmUpOwogCiAJcmV0dXJu IEFMSUdOKGhlaWdodCwgdGlsZV9oZWlnaHQpOwogfQpAQCAtMjE1OCwyMSArMjE1OCwyMyBAQCBz dGF0aWMgdW5zaWduZWQgaW50IGludGVsX2xpbmVhcl9hbGlnbm1lbnQoY29uc3Qgc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcgogCQlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHVuc2lnbmVk IGludCBpbnRlbF9zdXJmX2FsaWdubWVudChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCi0JCQkJCSB1aW50NjRfdCBmYl9tb2RpZmllcikKK3N0YXRpYyB1bnNpZ25lZCBp bnQgaW50ZWxfc3VyZl9hbGlnbm1lbnQoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIs CisJCQkJCSBpbnQgcGxhbmUpCiB7Ci0Jc3dpdGNoIChmYl9tb2RpZmllcikgeworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZmItPmRldik7CisKKwlzd2l0Y2gg KGZiLT5tb2RpZmllcikgewogCWNhc2UgRFJNX0ZPUk1BVF9NT0RfTk9ORToKIAkJcmV0dXJuIGlu dGVsX2xpbmVhcl9hbGlnbm1lbnQoZGV2X3ByaXYpOwogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1hf VElMRUQ6Ci0JCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDkpCisJCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDkpCiAJCQlyZXR1cm4gMjU2ICogMTAyNDsKIAkJcmV0dXJuIDA7 CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRDoKIAljYXNlIEk5MTVfRk9STUFUX01PRF9Z Zl9USUxFRDoKIAkJcmV0dXJuIDEgKiAxMDI0ICogMTAyNDsKIAlkZWZhdWx0OgotCQlNSVNTSU5H X0NBU0UoZmJfbW9kaWZpZXIpOworCQlNSVNTSU5HX0NBU0UoZmItPm1vZGlmaWVyKTsKIAkJcmV0 dXJuIDA7CiAJfQogfQpAQCAtMjE4OSw3ICsyMTkxLDcgQEAgaW50ZWxfcGluX2FuZF9mZW5jZV9m Yl9vYmooc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIHVuc2lnbmVkIGludCByb3RhdGlvbikK IAogCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKIAotCWFs aWdubWVudCA9IGludGVsX3N1cmZfYWxpZ25tZW50KGRldl9wcml2LCBmYi0+bW9kaWZpZXIpOwor CWFsaWdubWVudCA9IGludGVsX3N1cmZfYWxpZ25tZW50KGZiLCAwKTsKIAogCWludGVsX2ZpbGxf ZmJfZ2d0dF92aWV3KCZ2aWV3LCBmYiwgcm90YXRpb24pOwogCkBAIC0yMzU1LDggKzIzNTcsNyBA QCBzdGF0aWMgdTMyIGludGVsX2FkanVzdF90aWxlX29mZnNldChpbnQgKngsIGludCAqeSwKIAkJ dW5zaWduZWQgaW50IHBpdGNoX3RpbGVzOwogCiAJCXRpbGVfc2l6ZSA9IGludGVsX3RpbGVfc2l6 ZShkZXZfcHJpdik7Ci0JCWludGVsX3RpbGVfZGltcyhkZXZfcHJpdiwgJnRpbGVfd2lkdGgsICZ0 aWxlX2hlaWdodCwKLQkJCQlmYi0+bW9kaWZpZXIsIGNwcCk7CisJCWludGVsX3RpbGVfZGltcyhm YiwgcGxhbmUsICZ0aWxlX3dpZHRoLCAmdGlsZV9oZWlnaHQpOwogCiAJCWlmIChkcm1fcm90YXRp b25fOTBfb3JfMjcwKHJvdGF0aW9uKSkgewogCQkJcGl0Y2hfdGlsZXMgPSBwaXRjaCAvIHRpbGVf aGVpZ2h0OwpAQCAtMjQxMSw4ICsyNDEyLDcgQEAgc3RhdGljIHUzMiBfaW50ZWxfY29tcHV0ZV90 aWxlX29mZnNldChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCXVu c2lnbmVkIGludCB0aWxlX3Jvd3MsIHRpbGVzLCBwaXRjaF90aWxlczsKIAogCQl0aWxlX3NpemUg PSBpbnRlbF90aWxlX3NpemUoZGV2X3ByaXYpOwotCQlpbnRlbF90aWxlX2RpbXMoZGV2X3ByaXYs ICZ0aWxlX3dpZHRoLCAmdGlsZV9oZWlnaHQsCi0JCQkJZmJfbW9kaWZpZXIsIGNwcCk7CisJCWlu dGVsX3RpbGVfZGltcyhmYiwgcGxhbmUsICZ0aWxlX3dpZHRoLCAmdGlsZV9oZWlnaHQpOwogCiAJ CWlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHJvdGF0aW9uKSkgewogCQkJcGl0Y2hfdGlsZXMg PSBwaXRjaCAvIHRpbGVfaGVpZ2h0OwpAQCAtMjQ1OCw3ICsyNDU4LDcgQEAgdTMyIGludGVsX2Nv bXB1dGVfdGlsZV9vZmZzZXQoaW50ICp4LCBpbnQgKnksCiAJaWYgKGZiLT5mb3JtYXQtPmZvcm1h dCA9PSBEUk1fRk9STUFUX05WMTIgJiYgcGxhbmUgPT0gMSkKIAkJYWxpZ25tZW50ID0gNDA5NjsK IAllbHNlCi0JCWFsaWdubWVudCA9IGludGVsX3N1cmZfYWxpZ25tZW50KGRldl9wcml2LCBmYi0+ bW9kaWZpZXIpOworCQlhbGlnbm1lbnQgPSBpbnRlbF9zdXJmX2FsaWdubWVudChmYiwgcGxhbmUp OwogCiAJcmV0dXJuIF9pbnRlbF9jb21wdXRlX3RpbGVfb2Zmc2V0KGRldl9wcml2LCB4LCB5LCBm YiwgcGxhbmUsIHBpdGNoLAogCQkJCQkgIHJvdGF0aW9uLCBhbGlnbm1lbnQpOwpAQCAtMjU0NCw4 ICsyNTQ0LDcgQEAgaW50ZWxfZmlsbF9mYl9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAkJCXVuc2lnbmVkIGludCBwaXRjaF90aWxlczsKIAkJCXN0cnVjdCBkcm1fcmVj dCByOwogCi0JCQlpbnRlbF90aWxlX2RpbXMoZGV2X3ByaXYsICZ0aWxlX3dpZHRoLCAmdGlsZV9o ZWlnaHQsCi0JCQkJCWZiLT5tb2RpZmllciwgY3BwKTsKKwkJCWludGVsX3RpbGVfZGltcyhmYiwg aSwgJnRpbGVfd2lkdGgsICZ0aWxlX2hlaWdodCk7CiAKIAkJCXJvdF9pbmZvLT5wbGFuZVtpXS5v ZmZzZXQgPSBvZmZzZXQ7CiAJCQlyb3RfaW5mby0+cGxhbmVbaV0uc3RyaWRlID0gRElWX1JPVU5E X1VQKGZiLT5waXRjaGVzW2ldLCB0aWxlX3dpZHRoICogY3BwKTsKQEAgLTI4NzMsNyArMjg3Miw2 IEBAIHN0YXRpYyBpbnQgc2tsX21heF9wbGFuZV93aWR0aChjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwgaW50IHBsYW5lLAogCiBzdGF0aWMgaW50IHNrbF9jaGVja19tYWluX3N1cmZh Y2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQljb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lX3N0YXRlLT5iYXNl LnBsYW5lLT5kZXYpOwogCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVf c3RhdGUtPmJhc2UuZmI7CiAJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJh c2Uucm90YXRpb247CiAJaW50IHggPSBwbGFuZV9zdGF0ZS0+YmFzZS5zcmMueDEgPj4gMTY7CkBA IC0yODkyLDggKzI4OTAsNyBAQCBzdGF0aWMgaW50IHNrbF9jaGVja19tYWluX3N1cmZhY2Uoc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIAogCWludGVsX2FkZF9mYl9vZmZz ZXRzKCZ4LCAmeSwgcGxhbmVfc3RhdGUsIDApOwogCW9mZnNldCA9IGludGVsX2NvbXB1dGVfdGls ZV9vZmZzZXQoJngsICZ5LCBwbGFuZV9zdGF0ZSwgMCk7Ci0KLQlhbGlnbm1lbnQgPSBpbnRlbF9z dXJmX2FsaWdubWVudChkZXZfcHJpdiwgZmItPm1vZGlmaWVyKTsKKwlhbGlnbm1lbnQgPSBpbnRl bF9zdXJmX2FsaWdubWVudChmYiwgMCk7CiAKIAkvKgogCSAqIEFVWCBzdXJmYWNlIG9mZnNldCBp cyBzcGVjaWZpZWQgYXMgdGhlIGRpc3RhbmNlIGZyb20gdGhlCkBAIC0zMjEwLDE2ICszMjA3LDEz IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1f cGxhbmUgKnByaW1hcnksCiAJUE9TVElOR19SRUFEKHJlZyk7CiB9CiAKLXUzMiBpbnRlbF9mYl9z dHJpZGVfYWxpZ25tZW50KGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK LQkJCSAgICAgIHVpbnQ2NF90IGZiX21vZGlmaWVyLCB1aW50MzJfdCBwaXhlbF9mb3JtYXQpCitz dGF0aWMgdTMyCitpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50KGNvbnN0IHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiLCBpbnQgcGxhbmUpCiB7Ci0JaWYgKGZiX21vZGlmaWVyID09IERSTV9GT1JN QVRfTU9EX05PTkUpIHsKKwlpZiAoZmItPm1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX05PTkUp CiAJCXJldHVybiA2NDsKLQl9IGVsc2UgewotCQlpbnQgY3BwID0gZHJtX2Zvcm1hdF9wbGFuZV9j cHAocGl4ZWxfZm9ybWF0LCAwKTsKLQotCQlyZXR1cm4gaW50ZWxfdGlsZV93aWR0aF9ieXRlcyhk ZXZfcHJpdiwgZmJfbW9kaWZpZXIsIGNwcCk7Ci0JfQorCWVsc2UKKwkJcmV0dXJuIGludGVsX3Rp bGVfd2lkdGhfYnl0ZXMoZmIsIHBsYW5lKTsKIH0KIAogdTMyIGludGVsX2ZiX2d0dF9vZmZzZXQo c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCkBAIC0zMjY5LDIxICszMjYzLDE2IEBAIHN0YXRp YyB2b2lkIHNrbF9kZXRhY2hfc2NhbGVycyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YykK IHUzMiBza2xfcGxhbmVfc3RyaWRlKGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBp bnQgcGxhbmUsCiAJCSAgICAgdW5zaWduZWQgaW50IHJvdGF0aW9uKQogewotCWNvbnN0IHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZmItPmRldik7CiAJdTMyIHN0 cmlkZSA9IGludGVsX2ZiX3BpdGNoKGZiLCBwbGFuZSwgcm90YXRpb24pOwogCiAJLyoKIAkgKiBU aGUgc3RyaWRlIGlzIGVpdGhlciBleHByZXNzZWQgYXMgYSBtdWx0aXBsZSBvZiA2NCBieXRlcyBj aHVua3MgZm9yCiAJICogbGluZWFyIGJ1ZmZlcnMgb3IgaW4gbnVtYmVyIG9mIHRpbGVzIGZvciB0 aWxlZCBidWZmZXJzLgogCSAqLwotCWlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHJvdGF0aW9u KSkgewotCQlpbnQgY3BwID0gZmItPmZvcm1hdC0+Y3BwW3BsYW5lXTsKLQotCQlzdHJpZGUgLz0g aW50ZWxfdGlsZV9oZWlnaHQoZGV2X3ByaXYsIGZiLT5tb2RpZmllciwgY3BwKTsKLQl9IGVsc2Ug ewotCQlzdHJpZGUgLz0gaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChkZXZfcHJpdiwgZmItPm1v ZGlmaWVyLAotCQkJCQkJICAgIGZiLT5mb3JtYXQtPmZvcm1hdCk7Ci0JfQorCWlmIChkcm1fcm90 YXRpb25fOTBfb3JfMjcwKHJvdGF0aW9uKSkKKwkJc3RyaWRlIC89IGludGVsX3RpbGVfaGVpZ2h0 KGZiLCBwbGFuZSk7CisJZWxzZQorCQlzdHJpZGUgLz0gaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVu dChmYiwgcGxhbmUpOwogCiAJcmV0dXJuIHN0cmlkZTsKIH0KQEAgLTg3NzMsOSArODc2Miw3IEBA IGk5eHhfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAog CXZhbCA9IEk5MTVfUkVBRChEU1BTVFJJREUocGlwZSkpOwogCWZiLT5waXRjaGVzWzBdID0gdmFs ICYgMHhmZmZmZmZjMDsKIAotCWFsaWduZWRfaGVpZ2h0ID0gaW50ZWxfZmJfYWxpZ25faGVpZ2h0 KGRldiwgZmItPmhlaWdodCwKLQkJCQkJICAgICAgIGZiLT5mb3JtYXQtPmZvcm1hdCwKLQkJCQkJ ICAgICAgIGZiLT5tb2RpZmllcik7CisJYWxpZ25lZF9oZWlnaHQgPSBpbnRlbF9mYl9hbGlnbl9o ZWlnaHQoZmIsIDAsIGZiLT5oZWlnaHQpOwogCiAJcGxhbmVfY29uZmlnLT5zaXplID0gZmItPnBp dGNoZXNbMF0gKiBhbGlnbmVkX2hlaWdodDsKIApAQCAtOTgxMCwxMyArOTc5NywxMCBAQCBza3ls YWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAlm Yi0+d2lkdGggPSAoKHZhbCA+PiAwKSAmIDB4MWZmZikgKyAxOwogCiAJdmFsID0gSTkxNV9SRUFE KFBMQU5FX1NUUklERShwaXBlLCAwKSk7Ci0Jc3RyaWRlX211bHQgPSBpbnRlbF9mYl9zdHJpZGVf YWxpZ25tZW50KGRldl9wcml2LCBmYi0+bW9kaWZpZXIsCi0JCQkJCQlmYi0+Zm9ybWF0LT5mb3Jt YXQpOworCXN0cmlkZV9tdWx0ID0gaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChmYiwgMCk7CiAJ ZmItPnBpdGNoZXNbMF0gPSAodmFsICYgMHgzZmYpICogc3RyaWRlX211bHQ7CiAKLQlhbGlnbmVk X2hlaWdodCA9IGludGVsX2ZiX2FsaWduX2hlaWdodChkZXYsIGZiLT5oZWlnaHQsCi0JCQkJCSAg ICAgICBmYi0+Zm9ybWF0LT5mb3JtYXQsCi0JCQkJCSAgICAgICBmYi0+bW9kaWZpZXIpOworCWFs aWduZWRfaGVpZ2h0ID0gaW50ZWxfZmJfYWxpZ25faGVpZ2h0KGZiLCAwLCBmYi0+aGVpZ2h0KTsK IAogCXBsYW5lX2NvbmZpZy0+c2l6ZSA9IGZiLT5waXRjaGVzWzBdICogYWxpZ25lZF9oZWlnaHQ7 CiAKQEAgLTk5MTIsOSArOTg5Niw3IEBAIGlyb25sYWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAl2YWwgPSBJOTE1X1JFQUQoRFNQU1RSSURFKHBp cGUpKTsKIAlmYi0+cGl0Y2hlc1swXSA9IHZhbCAmIDB4ZmZmZmZmYzA7CiAKLQlhbGlnbmVkX2hl aWdodCA9IGludGVsX2ZiX2FsaWduX2hlaWdodChkZXYsIGZiLT5oZWlnaHQsCi0JCQkJCSAgICAg ICBmYi0+Zm9ybWF0LT5mb3JtYXQsCi0JCQkJCSAgICAgICBmYi0+bW9kaWZpZXIpOworCWFsaWdu ZWRfaGVpZ2h0ID0gaW50ZWxfZmJfYWxpZ25faGVpZ2h0KGZiLCAwLCBmYi0+aGVpZ2h0KTsKIAog CXBsYW5lX2NvbmZpZy0+c2l6ZSA9IGZiLT5waXRjaGVzWzBdICogYWxpZ25lZF9oZWlnaHQ7CiAK QEAgLTE1OTY3LDE1ICsxNTk0OSw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfZnJhbWVidWZmZXJfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlzdHJp ZGVfYWxpZ25tZW50ID0gaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChkZXZfcHJpdiwKLQkJCQkJ CSAgICAgbW9kZV9jbWQtPm1vZGlmaWVyWzBdLAotCQkJCQkJICAgICBtb2RlX2NtZC0+cGl4ZWxf Zm9ybWF0KTsKLQlpZiAobW9kZV9jbWQtPnBpdGNoZXNbMF0gJiAoc3RyaWRlX2FsaWdubWVudCAt IDEpKSB7Ci0JCURSTV9ERUJVRygicGl0Y2ggKCVkKSBtdXN0IGJlIGF0IGxlYXN0ICV1IGJ5dGUg YWxpZ25lZFxuIiwKLQkJCSAgbW9kZV9jbWQtPnBpdGNoZXNbMF0sIHN0cmlkZV9hbGlnbm1lbnQp OwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KIAlwaXRjaF9saW1pdCA9IGludGVsX2ZiX3BpdGNo X2xpbWl0KGRldl9wcml2LCBtb2RlX2NtZC0+bW9kaWZpZXJbMF0sCiAJCQkJCSAgIG1vZGVfY21k LT5waXhlbF9mb3JtYXQpOwogCWlmIChtb2RlX2NtZC0+cGl0Y2hlc1swXSA+IHBpdGNoX2xpbWl0 KSB7CkBAIC0xNjA1Nyw2ICsxNjAzMCwxNCBAQCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVy X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlkcm1f aGVscGVyX21vZGVfZmlsbF9mYl9zdHJ1Y3QoZGV2LCAmaW50ZWxfZmItPmJhc2UsIG1vZGVfY21k KTsKKworCXN0cmlkZV9hbGlnbm1lbnQgPSBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50KCZpbnRl bF9mYi0+YmFzZSwgMCk7CisJaWYgKG1vZGVfY21kLT5waXRjaGVzWzBdICYgKHN0cmlkZV9hbGln bm1lbnQgLSAxKSkgeworCQlEUk1fREVCVUcoInBpdGNoICglZCkgbXVzdCBiZSBhdCBsZWFzdCAl dSBieXRlIGFsaWduZWRcbiIsCisJCQkgIG1vZGVfY21kLT5waXRjaGVzWzBdLCBzdHJpZGVfYWxp Z25tZW50KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCiAJaW50ZWxfZmItPm9iaiA9IG9iajsK IAogCXJldCA9IGludGVsX2ZpbGxfZmJfaW5mbyhkZXZfcHJpdiwgJmludGVsX2ZiLT5iYXNlKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggNmIwMmRhYzZlYTI2Li5lM2QxOWZjNjcyMGMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xMjA4LDEyICsxMjA4LDggQEAgdm9pZCBp bnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2Moc3RydWN0IGRybV9jcnRjICpjcnRjLCBib29s IHN0YXRlKTsKIHVpbnQzMl90IGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApOwogc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICppbnRlbF9kZGlfZ2V0X2xpbmtfZHBs bChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJCQkJICBpbnQgY2xvY2spOwotdW5zaWdu ZWQgaW50IGludGVsX2ZiX2FsaWduX2hlaWdodChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJ CSAgIHVuc2lnbmVkIGludCBoZWlnaHQsCi0JCQkJICAgdWludDMyX3QgcGl4ZWxfZm9ybWF0LAot CQkJCSAgIHVpbnQ2NF90IGZiX2Zvcm1hdF9tb2RpZmllcik7Ci11MzIgaW50ZWxfZmJfc3RyaWRl X2FsaWdubWVudChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkg ICAgICB1aW50NjRfdCBmYl9tb2RpZmllciwgdWludDMyX3QgcGl4ZWxfZm9ybWF0KTsKK3Vuc2ln bmVkIGludCBpbnRlbF9mYl9hbGlnbl9oZWlnaHQoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIsCisJCQkJICAgaW50IHBsYW5lLCB1bnNpZ25lZCBpbnQgaGVpZ2h0KTsKIAogLyogaW50 ZWxfYXVkaW8uYyAqLwogdm9pZCBpbnRlbF9pbml0X2F1ZGlvX2hvb2tzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7CkBAIC0xMzI1LDkgKzEzMjEsNiBAQCBpbnQgaW50ZWxfcGxh bmVfYXRvbWljX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIGludCBpbnRl bF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2VzKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAkJCQkgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwogCi11 bnNpZ25lZCBpbnQgaW50ZWxfdGlsZV9oZWlnaHQoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAotCQkJICAgICAgIHVpbnQ2NF90IGZiX21vZGlmaWVyLCB1bnNpZ25lZCBp bnQgY3BwKTsKLQogdm9pZCBhc3NlcnRfcGNoX3RyYW5zY29kZXJfZGlzYWJsZWQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAgICBlbnVtIHBpcGUgcGlwZSk7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCmluZGV4IDczZDAyZDIxYzc2OC4uMzcxNjU1NGUzMmE5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKQEAgLTYzMSw5ICs2MzEsNyBAQCBzdGF0 aWMgYm9vbCBpbnRlbF9mYmRldl9pbml0X2Jpb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJ fQogCiAJCWN1cl9zaXplID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUu Y3J0Y192ZGlzcGxheTsKLQkJY3VyX3NpemUgPSBpbnRlbF9mYl9hbGlnbl9oZWlnaHQoZGV2LCBj dXJfc2l6ZSwKLQkJCQkJCSBmYi0+YmFzZS5mb3JtYXQtPmZvcm1hdCwKLQkJCQkJCSBmYi0+YmFz ZS5tb2RpZmllcik7CisJCWN1cl9zaXplID0gaW50ZWxfZmJfYWxpZ25faGVpZ2h0KCZmYi0+YmFz ZSwgMCwgY3VyX3NpemUpOwogCQljdXJfc2l6ZSAqPSBmYi0+YmFzZS5waXRjaGVzWzBdOwogCQlE Uk1fREVCVUdfS01TKCJwaXBlICVjIGFyZWE6ICVkeCVkLCBicHA6ICVkLCBzaXplOiAlZFxuIiwK IAkJCSAgICAgIHBpcGVfbmFtZShpbnRlbF9jcnRjLT5waXBlKSwKLS0gCjIuMTAuMgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==