From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [RFC 2/2] [INCOMPLETE] drm/i915: Split up crtc_state into uapi and hw Date: Fri, 14 Jun 2019 22:21:15 +0200 Message-ID: <20190614202115.14098-3-maarten.lankhorst@linux.intel.com> References: <20190614202115.14098-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id E964B892CA for ; Fri, 14 Jun 2019 20:21:19 +0000 (UTC) In-Reply-To: <20190614202115.14098-1-maarten.lankhorst@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 IFVzZSB1YXBpIGZvciBkcm0sIGFuZCBrZWVwIHRoZSBpbnRlcm5hbCBzdGF0ZSBpbiBody4KIAog VGhpcyBwYXRjaCBpcyBpbmNvbXBsZXRlLCBqdXN0IHdhbnQgZmVlZGJhY2sgb24gdGhlIGRpcmVj dGlvbiBJJ20gZ29pbmcuCi0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMg IHwgMTMgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgODggKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgIHwgIDIgKy0KIDMgZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgNDYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWlj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwppbmRleCAxZjg5MWI1NTRl YWQuLjM2ZmJkNDA4YmE4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf YXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKQEAgLTE4 NSwxMiArMTg1LDE0IEBAIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqCiBpbnRlbF9jcnRjX2R1cGxp Y2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGU7CisJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9j cnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAKLQljcnRjX3N0 YXRlID0ga21lbWR1cChjcnRjLT5zdGF0ZSwgc2l6ZW9mKCpjcnRjX3N0YXRlKSwgR0ZQX0tFUk5F TCk7CisJY3J0Y19zdGF0ZSA9IGttZW1kdXAob2xkX2NydGNfc3RhdGUsIHNpemVvZigqY3J0Y19z dGF0ZSksIEdGUF9LRVJORUwpOwogCWlmICghY3J0Y19zdGF0ZSkKIAkJcmV0dXJuIE5VTEw7CiAK LQlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRlX3N0YXRlKGNydGMsICZjcnRjX3N0 YXRlLT5odyk7CisJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShjcnRj LCAmY3J0Y19zdGF0ZS0+dWFwaSk7CisJbWVtc2V0KCZjcnRjX3N0YXRlLT5odywgMCwgc2l6ZW9m KGNydGNfc3RhdGUtPmh3KSk7CiAKIAljcnRjX3N0YXRlLT51cGRhdGVfcGlwZSA9IGZhbHNlOwog CWNydGNfc3RhdGUtPmRpc2FibGVfbHBfd20gPSBmYWxzZTsKQEAgLTIwMyw3ICsyMDUsNyBAQCBp bnRlbF9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJY3J0Y19z dGF0ZS0+ZmJfYml0cyA9IDA7CiAJY3J0Y19zdGF0ZS0+dXBkYXRlX3BsYW5lcyA9IDA7CiAKLQly ZXR1cm4gJmNydGNfc3RhdGUtPmh3OworCXJldHVybiAmY3J0Y19zdGF0ZS0+dWFwaTsKIH0KIAog LyoqCkBAIC0yMTgsNyArMjIwLDEwIEBAIHZvaWQKIGludGVsX2NydGNfZGVzdHJveV9zdGF0ZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkK IHsKLQlkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoY3J0Yywgc3RhdGUpOwor CXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0 ZShzdGF0ZSk7CisKKwlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZShjcnRj LCAmY3J0Y19zdGF0ZS0+dWFwaSk7CisJa2ZyZWUoY3J0Y19zdGF0ZSk7CiB9CiAKIHN0YXRpYyB2 b2lkIGludGVsX2F0b21pY19zZXR1cF9zY2FsZXIoc3RydWN0IGludGVsX2NydGNfc2NhbGVyX3N0 YXRlICpzY2FsZXJfc3RhdGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXgg OWFhMjczZmI1NDE1Li4yZGU5NzhhYjhmYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKQEAgLTUxNCw5ICs1MTQsOSBAQCBpY2xfd2Ffc2NhbGVyY2xrZ2F0aW5nKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUsCiB9CiAKIHN0YXRpYyBi b29sCi1uZWVkc19tb2Rlc2V0KGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCitu ZWVkc19tb2Rlc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0ZSkKIHsKLQly ZXR1cm4gZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoc3RhdGUpOworCXJldHVybiBkcm1f YXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmc3RhdGUtPmh3KTsKIH0KIAogLyoKQEAgLTU3OTUs NyArNTc5NSw3IEBAIHN0YXRpYyBib29sIGhzd19wcmVfdXBkYXRlX2Rpc2FibGVfaXBzKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zCiAJaWYgKCFvbGRfY3J0Y19zdGF0 ZS0+aXBzX2VuYWJsZWQpCiAJCXJldHVybiBmYWxzZTsKIAotCWlmIChuZWVkc19tb2Rlc2V0KCZu ZXdfY3J0Y19zdGF0ZS0+aHcpKQorCWlmIChuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSkK IAkJcmV0dXJuIHRydWU7CiAKIAkvKgpAQCAtNTgyMiw3ICs1ODIyLDcgQEAgc3RhdGljIGJvb2wg aHN3X3Bvc3RfdXBkYXRlX2VuYWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg Km9sZF9jcnRjX3MKIAlpZiAoIW5ld19jcnRjX3N0YXRlLT5pcHNfZW5hYmxlZCkKIAkJcmV0dXJu IGZhbHNlOwogCi0JaWYgKG5lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5odykpCisJaWYg KG5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpKQogCQlyZXR1cm4gdHJ1ZTsKIAogCS8qCkBA IC01ODk5LDcgKzU4OTksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wb3N0X3BsYW5lX3VwZGF0ZShz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiAJCWludGVsX2ZiY19wb3N0 X3VwZGF0ZShjcnRjKTsKIAogCQlpZiAobmV3X3ByaW1hcnlfc3RhdGUtPnZpc2libGUgJiYKLQkJ ICAgIChuZWVkc19tb2Rlc2V0KCZwaXBlX2NvbmZpZy0+aHcpIHx8CisJCSAgICAobmVlZHNfbW9k ZXNldChwaXBlX2NvbmZpZykgfHwKIAkJICAgICAhb2xkX3ByaW1hcnlfc3RhdGUtPnZpc2libGUp KQogCQkJaW50ZWxfcG9zdF9lbmFibGVfcHJpbWFyeSgmY3J0Yy0+YmFzZSwgcGlwZV9jb25maWcp OwogCX0KQEAgLTU5MjMsNyArNTkyMyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZV9wbGFuZV91 cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCXN0cnVjdCBk cm1fcGxhbmUgKnByaW1hcnkgPSBjcnRjLT5iYXNlLnByaW1hcnk7CiAJc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqb2xkX3ByaW1hcnlfc3RhdGUgPQogCQlkcm1fYXRvbWljX2dldF9vbGRfcGxhbmVf c3RhdGUob2xkX3N0YXRlLCBwcmltYXJ5KTsKLQlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0 KCZwaXBlX2NvbmZpZy0+aHcpOworCWJvb2wgbW9kZXNldCA9IG5lZWRzX21vZGVzZXQocGlwZV9j b25maWcpOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKm9sZF9pbnRlbF9zdGF0ZSA9CiAJ CXRvX2ludGVsX2F0b21pY19zdGF0ZShvbGRfc3RhdGUpOwogCkBAIC01OTgzLDcgKzU5ODMsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkgKiBJZiB3ZSdyZSBkb2luZyBhIG1vZGVzZXQsIHdlJ3Jl IGRvbmUuICBObyBuZWVkIHRvIGRvIGFueSBwcmUtdmJsYW5rCiAJICogd2F0ZXJtYXJrIHByb2dy YW1taW5nIGhlcmUuCiAJICovCi0JaWYgKG5lZWRzX21vZGVzZXQoJnBpcGVfY29uZmlnLT5odykp CisJaWYgKG5lZWRzX21vZGVzZXQocGlwZV9jb25maWcpKQogCQlyZXR1cm47CiAKIAkvKgpAQCAt MTEzMzgsNyArMTEzMzgsNyBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdAogCXN0cnVjdCBpbnRl bF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+cGxhbmUpOwogCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCWJvb2wgbW9kZV9jaGFuZ2VkID0gbmVlZHNf bW9kZXNldChjcnRjX3N0YXRlKTsKKwlib29sIG1vZGVfY2hhbmdlZCA9IG5lZWRzX21vZGVzZXQo cGlwZV9jb25maWcpOwogCWJvb2wgd2FzX2NydGNfZW5hYmxlZCA9IG9sZF9jcnRjX3N0YXRlLT5o dy5hY3RpdmU7CiAJYm9vbCBpc19jcnRjX2VuYWJsZWQgPSBjcnRjX3N0YXRlLT5hY3RpdmU7CiAJ Ym9vbCB0dXJuX29mZiwgdHVybl9vbiwgdmlzaWJsZSwgd2FzX3Zpc2libGU7CkBAIC0xMTYwNyw3 ICsxMTYwNyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9CiAJ CXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7CiAJaW50IHJldDsKLQlib29sIG1vZGVf Y2hhbmdlZCA9IG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSk7CisJYm9vbCBtb2RlX2NoYW5nZWQg PSBuZWVkc19tb2Rlc2V0KHBpcGVfY29uZmlnKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgNSAmJiAhSVNfRzRYKGRldl9wcml2KSAmJgogCSAgICBtb2RlX2NoYW5nZWQgJiYgIWNydGNf c3RhdGUtPmFjdGl2ZSkKQEAgLTEzMDk1LDcgKzEzMDk1LDcgQEAgaW50ZWxfbW9kZXNldF92ZXJp ZnlfY3J0YyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkgIHN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqb2xkX3N0YXRlLAogCQkJICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19zdGF0ZSkKIHsK LQlpZiAoIW5lZWRzX21vZGVzZXQobmV3X3N0YXRlKSAmJgorCWlmICghbmVlZHNfbW9kZXNldCh0 b19pbnRlbF9jcnRjX3N0YXRlKG5ld19zdGF0ZSkpICYmCiAJICAgICF0b19pbnRlbF9jcnRjX3N0 YXRlKG5ld19zdGF0ZSktPnVwZGF0ZV9waXBlKQogCQlyZXR1cm47CiAKQEAgLTEzMTg3LDcgKzEz MTg3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9jbGVhcl9wbGxzKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKm9sZF9k cGxsID0KIAkJCW9sZF9jcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsKIAotCQlpZiAoIW5lZWRzX21v ZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5odykpCisJCWlmICghbmVlZHNfbW9kZXNldChuZXdfY3J0 Y19zdGF0ZSkpCiAJCQljb250aW51ZTsKIAogCQluZXdfY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwg PSBOVUxMOwpAQCAtMTMyMTcsNyArMTMyMTcsNyBAQCBzdGF0aWMgaW50IGhhc3dlbGxfbW9kZV9z ZXRfcGxhbmVzX3dvcmthcm91bmQoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJ LyogbG9vayBhdCBhbGwgY3J0YydzIHRoYXQgYXJlIGdvaW5nIHRvIGJlIGVuYWJsZWQgaW4gZHVy aW5nIG1vZGVzZXQgKi8KIAlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwg Y3J0YywgY3J0Y19zdGF0ZSwgaSkgewogCQlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSB8fAot CQkgICAgIW5lZWRzX21vZGVzZXQoJmNydGNfc3RhdGUtPmh3KSkKKwkJICAgICFuZWVkc19tb2Rl c2V0KGNydGNfc3RhdGUpKQogCQkJY29udGludWU7CiAKIAkJaWYgKGZpcnN0X2NydGNfc3RhdGUp IHsKQEAgLTEzMjQyLDcgKzEzMjQyLDcgQEAgc3RhdGljIGludCBoYXN3ZWxsX21vZGVfc2V0X3Bs YW5lc193b3JrYXJvdW5kKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQljcnRj X3N0YXRlLT5oc3dfd29ya2Fyb3VuZF9waXBlID0gSU5WQUxJRF9QSVBFOwogCiAJCWlmICghY3J0 Y19zdGF0ZS0+aHcuYWN0aXZlIHx8Ci0JCSAgICBuZWVkc19tb2Rlc2V0KCZjcnRjX3N0YXRlLT5o dykpCisJCSAgICBuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQogCQkJY29udGludWU7CiAKIAkJ LyogMiBvciBtb3JlIGVuYWJsZWQgY3J0Y3MgbWVhbnMgbm8gbmVlZCBmb3Igdy9hICovCkBAIC0x MzI3NiwzMiArMTMyNzYsMzIgQEAgc3RhdGljIGludCBpbnRlbF9sb2NrX2FsbF9waXBlcyhzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg aW50ZWxfbW9kZXNldF9hbGxfcGlwZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQor c3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2FsbF9waXBlcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGM7CiAKIAkvKgogCSAqIEFkZCBhbGwgcGlwZXMgdG8gdGhlIHN0YXRlLCBhbmQgZm9y Y2UKIAkgKiBhIG1vZGVzZXQgb24gYWxsIHRoZSBhY3RpdmUgb25lcy4KIAkgKi8KIAlmb3JfZWFj aF9jcnRjKHN0YXRlLT5kZXYsIGNydGMpIHsKLQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlOworCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKIAkJaW50IHJl dDsKIAotCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0 Yyk7CisJCWNydGNfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGNy dGMpOwogCQlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQogCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19z dGF0ZSk7CiAKLQkJaWYgKCFjcnRjX3N0YXRlLT5hY3RpdmUgfHwgbmVlZHNfbW9kZXNldChjcnRj X3N0YXRlKSkKKwkJaWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUgfHwgbmVlZHNfbW9kZXNldChj cnRjX3N0YXRlKSkKIAkJCWNvbnRpbnVlOwogCiAJCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9 IHRydWU7CiAKLQkJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfY29ubmVjdG9ycyhzdGF0 ZSwgY3J0Yyk7CisJCXJldCA9IGRybV9hdG9taWNfYWRkX2FmZmVjdGVkX2Nvbm5lY3RvcnMoJnN0 YXRlLT5iYXNlLCAmY3J0Yy0+YmFzZSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCi0J CXJldCA9IGRybV9hdG9taWNfYWRkX2FmZmVjdGVkX3BsYW5lcyhzdGF0ZSwgY3J0Yyk7CisJCXJl dCA9IGRybV9hdG9taWNfYWRkX2FmZmVjdGVkX3BsYW5lcygmc3RhdGUtPmJhc2UsICZjcnRjLT5i YXNlKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfQpAQCAtMTMzNjksMTIgKzEzMzY5 LDEyIEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUpCiAJCX0KIAogCQlpZiAoaXNfcG93ZXJfb2ZfMihzdGF0ZS0+YWN0aXZl X2NydGNzKSkgewotCQkJc3RydWN0IGRybV9jcnRjICpjcnRjOwotCQkJc3RydWN0IGRybV9jcnRj X3N0YXRlICpjcnRjX3N0YXRlOworCQkJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisJCQlzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKIAogCQkJcGlwZSA9IGlsb2cyKHN0YXRl LT5hY3RpdmVfY3J0Y3MpOwotCQkJY3J0YyA9ICZpbnRlbF9nZXRfY3J0Y19mb3JfcGlwZShkZXZf cHJpdiwgcGlwZSktPmJhc2U7Ci0JCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2Ny dGNfc3RhdGUoJnN0YXRlLT5iYXNlLCBjcnRjKTsKKwkJCWNydGMgPSBpbnRlbF9nZXRfY3J0Y19m b3JfcGlwZShkZXZfcHJpdiwgcGlwZSk7CisJCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRf bmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwogCQkJaWYgKGNydGNfc3RhdGUgJiYgbmVlZHNf bW9kZXNldChjcnRjX3N0YXRlKSkKIAkJCQlwaXBlID0gSU5WQUxJRF9QSVBFOwogCQl9IGVsc2Ug ewpAQCAtMTMzOTMsNyArMTMzOTMsNyBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tz KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQkJc3RhdGUtPmNkY2xrLnBpcGUg PSBwaXBlOwogCQl9IGVsc2UgaWYgKGludGVsX2NkY2xrX25lZWRzX21vZGVzZXQoJmRldl9wcml2 LT5jZGNsay5hY3R1YWwsCiAJCQkJCQkgICAgICZzdGF0ZS0+Y2RjbGsuYWN0dWFsKSkgewotCQkJ cmV0ID0gaW50ZWxfbW9kZXNldF9hbGxfcGlwZXMoJnN0YXRlLT5iYXNlKTsKKwkJCXJldCA9IGlu dGVsX21vZGVzZXRfYWxsX3BpcGVzKHN0YXRlKTsKIAkJCWlmIChyZXQgPCAwKQogCQkJCXJldHVy biByZXQ7CiAKQEAgLTEzNDUxLDYgKzEzNDUxLDggQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNf Y2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkvKiBDYXRjaCBJOTE1X01PREVfRkxBR19J TkhFUklURUQgKi8KIAlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwg Y3J0Yywgb2xkX2NydGNfc3RhdGUsCiAJCQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkgeworCQlu ZXdfaW50ZWxfY3J0Y19zdGF0ZS0+aHcgPSBuZXdfaW50ZWxfY3J0Y19zdGF0ZS0+dWFwaTsKKwog CQlpZiAobmV3X2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyAhPQogCQkgICAgb2xk X2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncykKIAkJCW5ld19jcnRjX3N0YXRlLT5o dy5tb2RlX2NoYW5nZWQgPSB0cnVlOwpAQCAtMTM0NjIsNyArMTM0NjQsNyBAQCBzdGF0aWMgaW50 IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJZm9yX2VhY2hf b2xkbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLAog CQkJCQkgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKLQkJaWYgKCFuZWVkc19tb2Rlc2V0KCZuZXdf Y3J0Y19zdGF0ZS0+aHcpKQorCQlpZiAoIW5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpKQog CQkJY29udGludWU7CiAKIAkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+aHcuZW5hYmxlKSB7CkBAIC0x MzQ4MCw3ICsxMzQ4Miw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJCQluZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUgPSB0cnVlOwog CQl9CiAKLQkJaWYgKG5lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5odykpCisJCWlmIChu ZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSkKIAkJCWFueV9tcyA9IHRydWU7CiAJfQogCkBA IC0xMzUxNSwxMiArMTM1MTcsMTIgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAogCWZvcl9lYWNoX29sZG5ld19pbnRlbF9jcnRjX2luX3N0 YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwKIAkJCQkJICAgIG5ld19jcnRjX3N0YXRl LCBpKSB7Ci0JCWlmICghbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmh3KSAmJgorCQlp ZiAoIW5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpICYmCiAJCSAgICAhbmV3X2NydGNfc3Rh dGUtPnVwZGF0ZV9waXBlKQogCQkJY29udGludWU7CiAKIAkJaW50ZWxfZHVtcF9waXBlX2NvbmZp ZyhuZXdfY3J0Y19zdGF0ZSwgc3RhdGUsCi0JCQkJICAgICAgIG5lZWRzX21vZGVzZXQoJm5ld19j cnRjX3N0YXRlLT5odykgPworCQkJCSAgICAgICBuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRl KSA/CiAJCQkJICAgICAgICJbbW9kZXNldF0iIDogIltmYXN0c2V0XSIpOwogCX0KIApAQCAtMTM1 NjcsNyArMTM1NjksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfY3J0YyhzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjKTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPSB0b19pbnRlbF9j cnRjX3N0YXRlKG5ld19jcnRjX3N0YXRlKTsKLQlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0 KG5ld19jcnRjX3N0YXRlKTsKKwlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KHBpcGVfY29u ZmlnKTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm5ld19wbGFuZV9zdGF0ZSA9CiAJCWlu dGVsX2F0b21pY19nZXRfbmV3X3BsYW5lX3N0YXRlKHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0 ZSksCiAJCQkJCQkgdG9faW50ZWxfcGxhbmUoY3J0Yy0+cHJpbWFyeSkpOwpAQCAtMTM3NzYsMjAg KzEzNzc4LDIzIEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCW5ld19pbnRlbF9jcnRjX3N0YXRlID0gdG9faW50 ZWxfY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSk7CiAJCWludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKGNydGMpOwogCi0JCWlmIChuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSB8fAotCQkg ICAgdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSktPnVwZGF0ZV9waXBlKSB7CisJ CS8qIENvcHkgZm9yIGRybV9hdG9taWNfaGVscGVyX3NldHVwX2NvbW1pdCgpICovCisJCW5ld19p bnRlbF9jcnRjX3N0YXRlLT5odyA9IG5ld19pbnRlbF9jcnRjX3N0YXRlLT51YXBpOworCisJCWlm IChuZWVkc19tb2Rlc2V0KG5ld19pbnRlbF9jcnRjX3N0YXRlKSB8fAorCQkgICAgbmV3X2ludGVs X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlKSB7CiAKIAkJCXB1dF9kb21haW5zW2ludGVsX2NydGMt PnBpcGVdID0KIAkJCQltb2Rlc2V0X2dldF9jcnRjX3Bvd2VyX2RvbWFpbnMoY3J0YywKIAkJCQkJ bmV3X2ludGVsX2NydGNfc3RhdGUpOwogCQl9CiAKLQkJaWYgKCFuZWVkc19tb2Rlc2V0KG5ld19j cnRjX3N0YXRlKSkKKwkJaWYgKCFuZWVkc19tb2Rlc2V0KG5ld19pbnRlbF9jcnRjX3N0YXRlKSkK IAkJCWNvbnRpbnVlOwogCiAJCWludGVsX3ByZV9wbGFuZV91cGRhdGUob2xkX2ludGVsX2NydGNf c3RhdGUsIG5ld19pbnRlbF9jcnRjX3N0YXRlKTsKIAotCQlpZiAob2xkX2NydGNfc3RhdGUtPmFj dGl2ZSkgeworCQlpZiAobmV3X2ludGVsX2NydGNfc3RhdGUtPmh3LmFjdGl2ZSkgewogCQkJaW50 ZWxfY3J0Y19kaXNhYmxlX3BsYW5lcyhpbnRlbF9zdGF0ZSwgaW50ZWxfY3J0Yyk7CiAKIAkJCS8q CkBAIC0xMzg3OCw4ICsxMzg4Myw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRf dGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJZm9yX2VhY2hfbmV3X2NydGNf aW5fc3RhdGUoc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7CiAJCW5ld19pbnRlbF9j cnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSk7CiAKLQkJaWYg KG5ld19jcnRjX3N0YXRlLT5hY3RpdmUgJiYKLQkJICAgICFuZWVkc19tb2Rlc2V0KG5ld19jcnRj X3N0YXRlKSAmJgorCQlpZiAobmV3X2ludGVsX2NydGNfc3RhdGUtPmh3LmFjdGl2ZSAmJgorCQkg ICAgIW5lZWRzX21vZGVzZXQobmV3X2ludGVsX2NydGNfc3RhdGUpICYmCiAJCSAgICAobmV3X2lu dGVsX2NydGNfc3RhdGUtPmh3LmNvbG9yX21nbXRfY2hhbmdlZCB8fAogCQkgICAgIG5ld19pbnRl bF9jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkpCiAJCQlpbnRlbF9jb2xvcl9sb2FkX2x1dHMobmV3 X2ludGVsX2NydGNfc3RhdGUpOwpAQCAtMTQyMzgsOSArMTQyNDMsOSBAQCBpbnRlbF9wcmVwYXJl X3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWludCByZXQ7CiAKIAlpZiAob2xk X29iaikgewotCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQotCQkJZHJtX2F0 b21pY19nZXRfbmV3X2NydGNfc3RhdGUobmV3X3N0YXRlLT5zdGF0ZSwKLQkJCQkJCSAgICAgIHBs YW5lLT5zdGF0ZS0+Y3J0Yyk7CisJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl ID0KKwkJCWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoaW50ZWxfc3RhdGUsCisJCQkJ CQkJcGxhbmUtPnN0YXRlLT5jcnRjKTsKIAogCQkvKiBCaWcgSGFtbWVyLCB3ZSBhbHNvIG5lZWQg dG8gZW5zdXJlIHRoYXQgYW55IHBlbmRpbmcKIAkJICogTUlfV0FJVF9GT1JfRVZFTlQgaW5zaWRl IGEgdXNlciBiYXRjaCBidWZmZXIgb24gdGhlCkBAIC0xNDQwMSw3ICsxNDQwNiw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29tbWl0KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlLAogCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsK IAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUgPQogCQlpbnRlbF9hdG9t aWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKLQlib29sIG1vZGVzZXQgPSBuZWVk c19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+aHcpOworCWJvb2wgbW9kZXNldCA9IG5lZWRzX21v ZGVzZXQobmV3X2NydGNfc3RhdGUpOwogCiAJLyogUGVyZm9ybSB2YmxhbmsgZXZhc2lvbiBhcm91 bmQgY29tbWl0IG9wZXJhdGlvbiAqLwogCWludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KG5ld19jcnRj X3N0YXRlKTsKQEAgLTE0NDU0LDcgKzE0NDU5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmluaXNo X2NydGNfY29tbWl0KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCWludGVsX3Bp cGVfdXBkYXRlX2VuZChuZXdfY3J0Y19zdGF0ZSk7CiAKIAlpZiAobmV3X2NydGNfc3RhdGUtPnVw ZGF0ZV9waXBlICYmCi0JICAgICFuZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+aHcpICYm CisJICAgICFuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSAmJgogCSAgICBvbGRfY3J0Y19z dGF0ZS0+aHcubW9kZS5wcml2YXRlX2ZsYWdzICYgSTkxNV9NT0RFX0ZMQUdfSU5IRVJJVEVEKQog CQlpbnRlbF9jcnRjX2FybV9maWZvX3VuZGVycnVuKGNydGMsIG5ld19jcnRjX3N0YXRlKTsKIH0K QEAgLTE0NjA4LDYgKzE0NjEzLDcgQEAgaW50ZWxfbGVnYWN5X2N1cnNvcl91cGRhdGUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAJCXJldCA9IC1FTk9NRU07CiAJCWdvdG8gb3V0X2ZyZWU7CiAJ fQorCW5ld19jcnRjX3N0YXRlLT5odyA9IG5ld19jcnRjX3N0YXRlLT51YXBpOwogCiAJZHJtX2F0 b21pY19zZXRfZmJfZm9yX3BsYW5lKG5ld19wbGFuZV9zdGF0ZSwgZmIpOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCmluZGV4IGVjNTBmOTE2NzE2MS4uZDM5ZWYyNDQzY2U5IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaApAQCAtNzEzLDcgKzcxMyw3IEBAIGVudW0gaW50ZWxfb3V0cHV0X2Zv cm1hdCB7CiB9OwogCiBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Ci0Jc3RydWN0IGRybV9jcnRj X3N0YXRlIGh3OworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSB1YXBpLCBodzsKIAogCS8qKgogCSAq IHF1aXJrcyAtIGJpdGZpZWxkIHdpdGggaHcgc3RhdGUgcmVhZG91dCBxdWlya3MKLS0gCjIuMjAu MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4