From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ray Strode Subject: [PATCH] drm/qxl: reapply cursor after SetCrtc calls Date: Fri, 9 Sep 2016 11:09:05 -0400 Message-ID: <1473433745-11016-1-git-send-email-halfline@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yw0-x242.google.com (mail-yw0-x242.google.com [IPv6:2607:f8b0:4002:c05::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 300B86E8E1 for ; Fri, 9 Sep 2016 15:09:32 +0000 (UTC) Received: by mail-yw0-x242.google.com with SMTP id g192so3049042ywh.0 for ; Fri, 09 Sep 2016 08:09:32 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Dave Airlie , Ray Strode , Gerd Hoffmann List-Id: dri-devel@lists.freedesktop.org RnJvbTogUmF5IFN0cm9kZSA8cnN0cm9kZUByZWRoYXQuY29tPgoKVGhlIHF4bCBkcml2ZXIgY3Vy cmVudGx5IGRlc3Ryb3lzIGFuZCByZWNyZWF0ZXMgdGhlCnF4bCAicHJpbWFyeSIgYW55IHRpbWUg dGhlIGZpcnN0IGNydGMgaXMgc2V0LgoKQSBzaWRlLWVmZmVjdCBvZiBkZXN0cm95aW5nIHRoZSBw cmltYXJ5IGlzIG1vdXNlIHN0YXRlCmFzc29jaWF0ZWQgd2l0aCB0aGUgY3J0YyBpcyBsb3N0LCB3 aGljaCBsZWFkcyB0bwpkaXNhcHBlYXJpbmcgbW91c2UgY3Vyc29ycyBvbiB3YXlsYW5kIHNlc3Np b25zLgoKVGhpcyBjb21taXQgY2hhbmdlcyB0aGUgZHJpdmVyIHRvIHJlYXBwbHkgdGhlIGN1cnNv cgphbnkgdGltZSBTZXRDcnRjIGlzIGNhbGxlZC4gSXQgYWNoaWV2ZXMgdGhpcyBieSBrZWVwaW5n CmEgcmVmZXJlbmNlIHRvIHRoZSBjdXJzb3IgYm8gb24gdGhlIHF4bF9jcnRjIHN0cnVjdC4KClNp Z25lZC1vZmYtYnk6IFJheSBTdHJvZGUgPHJzdHJvZGVAcmVkaGF0LmNvbT4KCmh0dHBzOi8vYnVn emlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTIwMDkwMQotLS0KIGRyaXZlcnMvZ3B1 L2RybS9xeGwvcXhsX2Rpc3BsYXkuYyB8IDU2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmggICAgIHwgIDEgKwogMiBm aWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4 bC9xeGxfZGlzcGxheS5jCmluZGV4IDNhZWYxMjcuLmE2MWMwZDQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9xeGwvcXhsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4 bF9kaXNwbGF5LmMKQEAgLTE4NCw2MCArMTg0LDYxIEBAIHN0YXRpYyBzdHJ1Y3QgbW9kZV9zaXpl IHsKIAl7MTQ0MCwgIDkwMH0sCiAJezE0MDAsIDEwNTB9LAogCXsxNjgwLCAxMDUwfSwKIAl7MTYw MCwgMTIwMH0sCiAJezE5MjAsIDEwODB9LAogCXsxOTIwLCAxMjAwfQogfTsKIAogc3RhdGljIGlu dCBxeGxfYWRkX2NvbW1vbl9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBwd2lkdGgsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHBoZWlnaHQpCiB7CiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2OwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICptb2RlID0gTlVMTDsKIAlpbnQgaTsKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjb21t b25fbW9kZXMpOyBpKyspIHsKIAkJbW9kZSA9IGRybV9jdnRfbW9kZShkZXYsIGNvbW1vbl9tb2Rl c1tpXS53LCBjb21tb25fbW9kZXNbaV0uaCwKIAkJCQkgICAgNjAsIGZhbHNlLCBmYWxzZSwgZmFs c2UpOwogCQlpZiAoY29tbW9uX21vZGVzW2ldLncgPT0gcHdpZHRoICYmIGNvbW1vbl9tb2Rlc1tp XS5oID09IHBoZWlnaHQpCiAJCQltb2RlLT50eXBlIHw9IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVE OwogCQlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CiAJfQogCXJldHVybiBp IC0gMTsKIH0KIAogc3RhdGljIHZvaWQgcXhsX2NydGNfZGVzdHJveShzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCiB7CiAJc3RydWN0IHF4bF9jcnRjICpxeGxfY3J0YyA9IHRvX3F4bF9jcnRjKGNydGMp OwogCiAJZHJtX2NydGNfY2xlYW51cChjcnRjKTsKKwlxeGxfYm9fdW5yZWYoJnF4bF9jcnRjLT5j dXJzb3JfYm8pOwogCWtmcmVlKHF4bF9jcnRjKTsKIH0KIAogc3RhdGljIGludCBxeGxfY3J0Y19w YWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHBhZ2VfZmxpcF9mbGFncykKIHsKIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBxeGxfZGV2aWNlICpxZGV2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgcXhsX2ZyYW1lYnVmZmVyICpxZmJfc3JjID0g dG9fcXhsX2ZyYW1lYnVmZmVyKGZiKTsKIAlzdHJ1Y3QgcXhsX2ZyYW1lYnVmZmVyICpxZmJfb2xk ID0gdG9fcXhsX2ZyYW1lYnVmZmVyKGNydGMtPnByaW1hcnktPmZiKTsKIAlzdHJ1Y3QgcXhsX2Jv ICpib19vbGQgPSBnZW1fdG9fcXhsX2JvKHFmYl9vbGQtPm9iaik7CiAJc3RydWN0IHF4bF9ibyAq Ym8gPSBnZW1fdG9fcXhsX2JvKHFmYl9zcmMtPm9iaik7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsK IAlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBub3JlY3QgPSB7CiAJICAgIC54MSA9IDAsCiAJICAgIC55 MSA9IDAsCiAJICAgIC54MiA9IGZiLT53aWR0aCwKIAkgICAgLnkyID0gZmItPmhlaWdodAogCX07 CiAJaW50IGluYyA9IDE7CiAJaW50IG9uZV9jbGlwX3JlY3QgPSAxOwogCWludCByZXQgPSAwOwog CiAJY3J0Yy0+cHJpbWFyeS0+ZmIgPSBmYjsKIAlib19vbGQtPmlzX3ByaW1hcnkgPSBmYWxzZTsK IAliby0+aXNfcHJpbWFyeSA9IHRydWU7CiAKIAlyZXQgPSBxeGxfYm9fcmVzZXJ2ZShibywgZmFs c2UpOwpAQCAtMjY5LDYwICsyNzAsMTA2IEBAIHN0YXRpYyBpbnQgcXhsX2NydGNfcGFnZV9mbGlw KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludAogcXhs X2hpZGVfY3Vyc29yKHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2KQogewogCXN0cnVjdCBxeGxfcmVs ZWFzZSAqcmVsZWFzZTsKIAlzdHJ1Y3QgcXhsX2N1cnNvcl9jbWQgKmNtZDsKIAlpbnQgcmV0Owog CiAJcmV0ID0gcXhsX2FsbG9jX3JlbGVhc2VfcmVzZXJ2ZWQocWRldiwgc2l6ZW9mKCpjbWQpLCBR WExfUkVMRUFTRV9DVVJTT1JfQ01ELAogCQkJCQkgJnJlbGVhc2UsIE5VTEwpOwogCWlmIChyZXQp CiAJCXJldHVybiByZXQ7CiAKIAlyZXQgPSBxeGxfcmVsZWFzZV9yZXNlcnZlX2xpc3QocmVsZWFz ZSwgdHJ1ZSk7CiAJaWYgKHJldCkgewogCQlxeGxfcmVsZWFzZV9mcmVlKHFkZXYsIHJlbGVhc2Up OwogCQlyZXR1cm4gcmV0OwogCX0KIAogCWNtZCA9IChzdHJ1Y3QgcXhsX2N1cnNvcl9jbWQgKilx eGxfcmVsZWFzZV9tYXAocWRldiwgcmVsZWFzZSk7CiAJY21kLT50eXBlID0gUVhMX0NVUlNPUl9I SURFOwogCXF4bF9yZWxlYXNlX3VubWFwKHFkZXYsIHJlbGVhc2UsICZjbWQtPnJlbGVhc2VfaW5m byk7CiAKIAlxeGxfcHVzaF9jdXJzb3JfcmluZ19yZWxlYXNlKHFkZXYsIHJlbGVhc2UsIFFYTF9D TURfQ1VSU09SLCBmYWxzZSk7CiAJcXhsX3JlbGVhc2VfZmVuY2VfYnVmZmVyX29iamVjdHMocmVs ZWFzZSk7CiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgcXhsX2NydGNfYXBwbHlfY3Vyc29y KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3QgcXhsX2NydGMgKnFjcnRjID0gdG9f cXhsX2NydGMoY3J0Yyk7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKKwlz dHJ1Y3QgcXhsX2RldmljZSAqcWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IHF4bF9j dXJzb3JfY21kICpjbWQ7CisJc3RydWN0IHF4bF9yZWxlYXNlICpyZWxlYXNlOworCWludCByZXQg PSAwOworCisJaWYgKCFxY3J0Yy0+Y3Vyc29yX2JvKQorCQlyZXR1cm4gMDsKKworCXJldCA9IHF4 bF9hbGxvY19yZWxlYXNlX3Jlc2VydmVkKHFkZXYsIHNpemVvZigqY21kKSwKKwkJCQkJIFFYTF9S RUxFQVNFX0NVUlNPUl9DTUQsCisJCQkJCSAmcmVsZWFzZSwgTlVMTCk7CisJaWYgKHJldCkKKwkJ cmV0dXJuIHJldDsKKworCXJldCA9IHF4bF9yZWxlYXNlX2xpc3RfYWRkKHJlbGVhc2UsIHFjcnRj LT5jdXJzb3JfYm8pOworCWlmIChyZXQpCisJCWdvdG8gb3V0X2ZyZWVfcmVsZWFzZTsKKworCXJl dCA9IHF4bF9yZWxlYXNlX3Jlc2VydmVfbGlzdChyZWxlYXNlLCBmYWxzZSk7CisJaWYgKHJldCkK KwkJZ290byBvdXRfZnJlZV9yZWxlYXNlOworCisJY21kID0gKHN0cnVjdCBxeGxfY3Vyc29yX2Nt ZCAqKXF4bF9yZWxlYXNlX21hcChxZGV2LCByZWxlYXNlKTsKKwljbWQtPnR5cGUgPSBRWExfQ1VS U09SX1NFVDsKKwljbWQtPnUuc2V0LnBvc2l0aW9uLnggPSBxY3J0Yy0+Y3VyX3ggKyBxY3J0Yy0+ aG90X3Nwb3RfeDsKKwljbWQtPnUuc2V0LnBvc2l0aW9uLnkgPSBxY3J0Yy0+Y3VyX3kgKyBxY3J0 Yy0+aG90X3Nwb3RfeTsKKworCWNtZC0+dS5zZXQuc2hhcGUgPSBxeGxfYm9fcGh5c2ljYWxfYWRk cmVzcyhxZGV2LCBxY3J0Yy0+Y3Vyc29yX2JvLCAwKTsKKworCWNtZC0+dS5zZXQudmlzaWJsZSA9 IDE7CisJcXhsX3JlbGVhc2VfdW5tYXAocWRldiwgcmVsZWFzZSwgJmNtZC0+cmVsZWFzZV9pbmZv KTsKKworCXF4bF9wdXNoX2N1cnNvcl9yaW5nX3JlbGVhc2UocWRldiwgcmVsZWFzZSwgUVhMX0NN RF9DVVJTT1IsIGZhbHNlKTsKKwlxeGxfcmVsZWFzZV9mZW5jZV9idWZmZXJfb2JqZWN0cyhyZWxl YXNlKTsKKworCXJldHVybiByZXQ7CisKK291dF9mcmVlX3JlbGVhc2U6CisJcXhsX3JlbGVhc2Vf ZnJlZShxZGV2LCByZWxlYXNlKTsKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgaW50IHF4bF9j cnRjX2N1cnNvcl9zZXQyKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQlzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdiwKIAkJCQl1aW50MzJfdCBoYW5kbGUsCiAJCQkJdWludDMyX3Qgd2lkdGgs CiAJCQkJdWludDMyX3QgaGVpZ2h0LCBpbnQzMl90IGhvdF94LCBpbnQzMl90IGhvdF95KQogewog CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IHF4bF9kZXZpY2Ug KnFkZXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBxeGxfY3J0YyAqcWNydGMgPSB0b19x eGxfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iajsKIAlzdHJ1Y3QgcXhs X2N1cnNvciAqY3Vyc29yOwogCXN0cnVjdCBxeGxfY3Vyc29yX2NtZCAqY21kOwogCXN0cnVjdCBx eGxfYm8gKmN1cnNvcl9ibywgKnVzZXJfYm87CiAJc3RydWN0IHF4bF9yZWxlYXNlICpyZWxlYXNl OwogCXZvaWQgKnVzZXJfcHRyOwogCiAJaW50IHNpemUgPSA2NCo2NCo0OwogCWludCByZXQgPSAw OwogCWlmICghaGFuZGxlKQogCQlyZXR1cm4gcXhsX2hpZGVfY3Vyc29yKHFkZXYpOwogCiAJb2Jq ID0gZHJtX2dlbV9vYmplY3RfbG9va3VwKGZpbGVfcHJpdiwgaGFuZGxlKTsKIAlpZiAoIW9iaikg ewogCQlEUk1fRVJST1IoImNhbm5vdCBmaW5kIGN1cnNvciBvYmplY3RcbiIpOwogCQlyZXR1cm4g LUVOT0VOVDsKIAl9CiAKIAl1c2VyX2JvID0gZ2VtX3RvX3F4bF9ibyhvYmopOwogCiAJcmV0ID0g cXhsX2JvX3Jlc2VydmUodXNlcl9ibywgZmFsc2UpOwpAQCAtMzczLDYxICs0MjAsNjIgQEAgc3Rh dGljIGludCBxeGxfY3J0Y19jdXJzb3Jfc2V0MihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJcXhs X2JvX2t1bm1hcChjdXJzb3JfYm8pOwogCiAJcXhsX2JvX2t1bm1hcCh1c2VyX2JvKTsKIAogCXFj cnRjLT5jdXJfeCArPSBxY3J0Yy0+aG90X3Nwb3RfeCAtIGhvdF94OwogCXFjcnRjLT5jdXJfeSAr PSBxY3J0Yy0+aG90X3Nwb3RfeSAtIGhvdF95OwogCXFjcnRjLT5ob3Rfc3BvdF94ID0gaG90X3g7 CiAJcWNydGMtPmhvdF9zcG90X3kgPSBob3RfeTsKIAogCWNtZCA9IChzdHJ1Y3QgcXhsX2N1cnNv cl9jbWQgKilxeGxfcmVsZWFzZV9tYXAocWRldiwgcmVsZWFzZSk7CiAJY21kLT50eXBlID0gUVhM X0NVUlNPUl9TRVQ7CiAJY21kLT51LnNldC5wb3NpdGlvbi54ID0gcWNydGMtPmN1cl94ICsgcWNy dGMtPmhvdF9zcG90X3g7CiAJY21kLT51LnNldC5wb3NpdGlvbi55ID0gcWNydGMtPmN1cl95ICsg cWNydGMtPmhvdF9zcG90X3k7CiAKIAljbWQtPnUuc2V0LnNoYXBlID0gcXhsX2JvX3BoeXNpY2Fs X2FkZHJlc3MocWRldiwgY3Vyc29yX2JvLCAwKTsKIAogCWNtZC0+dS5zZXQudmlzaWJsZSA9IDE7 CiAJcXhsX3JlbGVhc2VfdW5tYXAocWRldiwgcmVsZWFzZSwgJmNtZC0+cmVsZWFzZV9pbmZvKTsK IAogCXF4bF9wdXNoX2N1cnNvcl9yaW5nX3JlbGVhc2UocWRldiwgcmVsZWFzZSwgUVhMX0NNRF9D VVJTT1IsIGZhbHNlKTsKIAlxeGxfcmVsZWFzZV9mZW5jZV9idWZmZXJfb2JqZWN0cyhyZWxlYXNl KTsKIAogCS8qIGZpbmlzaCB3aXRoIHRoZSB1c2Vyc3BhY2UgYm8gKi8KIAlyZXQgPSBxeGxfYm9f cmVzZXJ2ZSh1c2VyX2JvLCBmYWxzZSk7CiAJaWYgKCFyZXQpIHsKIAkJcXhsX2JvX3VucGluKHVz ZXJfYm8pOwogCQlxeGxfYm9fdW5yZXNlcnZlKHVzZXJfYm8pOwogCX0KIAlkcm1fZ2VtX29iamVj dF91bnJlZmVyZW5jZV91bmxvY2tlZChvYmopOwogCi0JcXhsX2JvX3VucmVmKCZjdXJzb3JfYm8p OworCXF4bF9ib191bnJlZiAoJnFjcnRjLT5jdXJzb3JfYm8pOworCXFjcnRjLT5jdXJzb3JfYm8g PSBjdXJzb3JfYm87CiAKIAlyZXR1cm4gcmV0OwogCiBvdXRfYmFja29mZjoKIAlxeGxfcmVsZWFz ZV9iYWNrb2ZmX3Jlc2VydmVfbGlzdChyZWxlYXNlKTsKIG91dF9mcmVlX2JvOgogCXF4bF9ib191 bnJlZigmY3Vyc29yX2JvKTsKIG91dF9mcmVlX3JlbGVhc2U6CiAJcXhsX3JlbGVhc2VfZnJlZShx ZGV2LCByZWxlYXNlKTsKIG91dF9rdW5tYXA6CiAJcXhsX2JvX2t1bm1hcCh1c2VyX2JvKTsKIG91 dF91bnBpbjoKIAlxeGxfYm9fdW5waW4odXNlcl9ibyk7CiBvdXRfdW5yZWY6CiAJZHJtX2dlbV9v YmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsKIAlyZXR1cm4gcmV0OwogfQogCiBzdGF0 aWMgaW50IHF4bF9jcnRjX2N1cnNvcl9tb3ZlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQlp bnQgeCwgaW50IHkpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlz dHJ1Y3QgcXhsX2RldmljZSAqcWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IHF4bF9j cnRjICpxY3J0YyA9IHRvX3F4bF9jcnRjKGNydGMpOwogCXN0cnVjdCBxeGxfcmVsZWFzZSAqcmVs ZWFzZTsKIAlzdHJ1Y3QgcXhsX2N1cnNvcl9jbWQgKmNtZDsKIAlpbnQgcmV0OwogCiAJcmV0ID0g cXhsX2FsbG9jX3JlbGVhc2VfcmVzZXJ2ZWQocWRldiwgc2l6ZW9mKCpjbWQpLCBRWExfUkVMRUFT RV9DVVJTT1JfQ01ELAogCQkJCSAgICZyZWxlYXNlLCBOVUxMKTsKQEAgLTYyOCw2MCArNjc2LDY2 IEBAIHN0YXRpYyBpbnQgcXhsX2NydGNfbW9kZV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAog CQkgIHgsIHksCiAJCSAgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5LAogCQkgIGFkanVz dGVkX21vZGUtPmhkaXNwbGF5LAogCQkgIGFkanVzdGVkX21vZGUtPnZkaXNwbGF5KTsKIAogCWlm IChiby0+aXNfcHJpbWFyeSA9PSBmYWxzZSkKIAkJcmVjcmVhdGVfcHJpbWFyeSA9IHRydWU7CiAK IAlpZiAoYm8tPnN1cmYuc3RyaWRlICogYm8tPnN1cmYuaGVpZ2h0ID4gcWRldi0+dnJhbV9zaXpl KSB7CiAJCURSTV9FUlJPUigiTW9kZSBkb2Vzbid0IGZpdCBpbiB2cmFtIHNpemUgKHZnYW1lbSki KTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAgICAgICAgIH0KIAogCXJldCA9IHF4bF9ib19yZXNlcnZl KGJvLCBmYWxzZSk7CiAJaWYgKHJldCAhPSAwKQogCQlyZXR1cm4gcmV0OwogCXJldCA9IHF4bF9i b19waW4oYm8sIGJvLT50eXBlLCBOVUxMKTsKIAlpZiAocmV0ICE9IDApIHsKIAkJcXhsX2JvX3Vu cmVzZXJ2ZShibyk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlxeGxfYm9fdW5yZXNlcnZlKGJv KTsKIAlpZiAocmVjcmVhdGVfcHJpbWFyeSkgewogCQlxeGxfaW9fZGVzdHJveV9wcmltYXJ5KHFk ZXYpOwogCQlxeGxfaW9fbG9nKHFkZXYsCiAJCQkgICAicmVjcmVhdGUgcHJpbWFyeTogJWR4JWQs JWQsJWRcbiIsCiAJCQkgICBiby0+c3VyZi53aWR0aCwgYm8tPnN1cmYuaGVpZ2h0LAogCQkJICAg Ym8tPnN1cmYuc3RyaWRlLCBiby0+c3VyZi5mb3JtYXQpOwogCQlxeGxfaW9fY3JlYXRlX3ByaW1h cnkocWRldiwgMCwgYm8pOwogCQliby0+aXNfcHJpbWFyeSA9IHRydWU7CisKKwkJcmV0ID0gcXhs X2NydGNfYXBwbHlfY3Vyc29yKGNydGMpOworCQlpZiAocmV0KSB7CisJCQlEUk1fRVJST1IoImNv dWxkIG5vdCBzZXQgY3Vyc29yIGFmdGVyIG1vZGVzZXQiKTsKKwkJCXJldCA9IDA7CisJCX0KIAl9 CiAKIAlpZiAoYm8tPmlzX3ByaW1hcnkpIHsKIAkJRFJNX0RFQlVHX0tNUygic2V0dGluZyBzdXJm YWNlX2lkIHRvIDAgZm9yIHByaW1hcnkgc3VyZmFjZSAlZCBvbiBjcnRjICVkXG4iLCBiby0+c3Vy ZmFjZV9pZCwgcWNydGMtPmluZGV4KTsKIAkJc3VyZl9pZCA9IDA7CiAJfSBlbHNlIHsKIAkJc3Vy Zl9pZCA9IGJvLT5zdXJmYWNlX2lkOwogCX0KIAogCWlmIChvbGRfYm8gJiYgb2xkX2JvICE9IGJv KSB7CiAJCW9sZF9iby0+aXNfcHJpbWFyeSA9IGZhbHNlOwogCQlyZXQgPSBxeGxfYm9fcmVzZXJ2 ZShvbGRfYm8sIGZhbHNlKTsKIAkJcXhsX2JvX3VucGluKG9sZF9ibyk7CiAJCXF4bF9ib191bnJl c2VydmUob2xkX2JvKTsKIAl9CiAKIAlxeGxfbW9uaXRvcnNfY29uZmlnX3NldChxZGV2LCBxY3J0 Yy0+aW5kZXgsIHgsIHksCiAJCQkJbW9kZS0+aGRpc3BsYXksCiAJCQkJbW9kZS0+dmRpc3BsYXks IHN1cmZfaWQpOwogCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBxeGxfY3J0Y19wcmVwYXJl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlEUk1fREVCVUcoImN1cnJlbnQ6ICVkeCVkKyVk KyVkICglZCkuXG4iLAogCQkgIGNydGMtPm1vZGUuaGRpc3BsYXksIGNydGMtPm1vZGUudmRpc3Bs YXksCiAJCSAgY3J0Yy0+eCwgY3J0Yy0+eSwgY3J0Yy0+ZW5hYmxlZCk7CiB9CiAKIHN0YXRpYyB2 b2lkIHF4bF9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Ry di5oCmluZGV4IDhlNjMzY2EuLjVmM2U1YWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9x eGwvcXhsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oCkBAIC0xMTAs NjAgKzExMCw2MSBAQCBzdHJ1Y3QgcXhsX2JvIHsKIAl2b2lkCQkJCSprcHRyOwogCWludCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTsKIAogCS8qIENvbnN0YW50IGFmdGVyIGluaXRp YWxpemF0aW9uICovCiAJc3RydWN0IGRybV9nZW1fb2JqZWN0CQlnZW1fYmFzZTsKIAlib29sIGlz X3ByaW1hcnk7IC8qIGlzIHRoaXMgbm93IGEgcHJpbWFyeSBzdXJmYWNlICovCiAJYm9vbCBod19z dXJmX2FsbG9jOwogCXN0cnVjdCBxeGxfc3VyZmFjZSBzdXJmOwogCXVpbnQzMl90IHN1cmZhY2Vf aWQ7CiAJc3RydWN0IHF4bF9yZWxlYXNlICpzdXJmX2NyZWF0ZTsKIH07CiAjZGVmaW5lIGdlbV90 b19xeGxfYm8oZ29iaikgY29udGFpbmVyX29mKChnb2JqKSwgc3RydWN0IHF4bF9ibywgZ2VtX2Jh c2UpCiAjZGVmaW5lIHRvX3F4bF9ibyh0b2JqKSBjb250YWluZXJfb2YoKHRvYmopLCBzdHJ1Y3Qg cXhsX2JvLCB0Ym8pCiAKIHN0cnVjdCBxeGxfZ2VtIHsKIAlzdHJ1Y3QgbXV0ZXgJCW11dGV4Owog CXN0cnVjdCBsaXN0X2hlYWQJb2JqZWN0czsKIH07CiAKIHN0cnVjdCBxeGxfYm9fbGlzdCB7CiAJ c3RydWN0IHR0bV92YWxpZGF0ZV9idWZmZXIgdHY7CiB9OwogCiBzdHJ1Y3QgcXhsX2NydGMgewog CXN0cnVjdCBkcm1fY3J0YyBiYXNlOwogCWludCBpbmRleDsKIAlpbnQgY3VyX3g7CiAJaW50IGN1 cl95OwogCWludCBob3Rfc3BvdF94OwogCWludCBob3Rfc3BvdF95OworCXN0cnVjdCBxeGxfYm8g KmN1cnNvcl9ibzsKIH07CiAKIHN0cnVjdCBxeGxfb3V0cHV0IHsKIAlpbnQgaW5kZXg7CiAJc3Ry dWN0IGRybV9jb25uZWN0b3IgYmFzZTsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgZW5jOwogfTsKIAog c3RydWN0IHF4bF9mcmFtZWJ1ZmZlciB7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciBiYXNlOwog CXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwogfTsKIAogI2RlZmluZSB0b19xeGxfY3J0Yyh4 KSBjb250YWluZXJfb2YoeCwgc3RydWN0IHF4bF9jcnRjLCBiYXNlKQogI2RlZmluZSBkcm1fY29u bmVjdG9yX3RvX3F4bF9vdXRwdXQoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBxeGxfb3V0cHV0 LCBiYXNlKQogI2RlZmluZSBkcm1fZW5jb2Rlcl90b19xeGxfb3V0cHV0KHgpIGNvbnRhaW5lcl9v Zih4LCBzdHJ1Y3QgcXhsX291dHB1dCwgZW5jKQogI2RlZmluZSB0b19xeGxfZnJhbWVidWZmZXIo eCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBxeGxfZnJhbWVidWZmZXIsIGJhc2UpCiAKIHN0cnVj dCBxeGxfbW1hbiB7CiAJc3RydWN0IHR0bV9ib19nbG9iYWxfcmVmICAgICAgICBib19nbG9iYWxf cmVmOwogCXN0cnVjdCBkcm1fZ2xvYmFsX3JlZmVyZW5jZQltZW1fZ2xvYmFsX3JlZjsKIAlib29s CQkJCW1lbV9nbG9iYWxfcmVmZXJlbmNlZDsKIAlzdHJ1Y3QgdHRtX2JvX2RldmljZQkJYmRldjsK IH07CiAKIHN0cnVjdCBxeGxfbW9kZV9pbmZvIHsKIAlpbnQgbnVtX21vZGVzOwogCXN0cnVjdCBx eGxfbW9kZSAqbW9kZXM7CiAJYm9vbCBtb2RlX2NvbmZpZ19pbml0aWFsaXplZDsKIAotLSAKMi43 LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=