From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH 3/4] drm/fb-helper: Set up gamma_lut during restore_fbdev_mode_atomic() Date: Fri, 7 Jun 2019 19:26:10 +0300 Message-ID: <20190607162611.23514-3-ville.syrjala@linux.intel.com> References: <20190607162611.23514-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: <20190607162611.23514-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: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCmk5 MTUgd2lsbCBub3cgcmVmdXNlIHRvIGVuYWJsZSBhIEM4IHBsYW5lIHVubGVzcyB0aGUgZ2FtbWFf bHV0CmlzIGFscmVhZHkgZW5hYmxlZCAodG8gYXZvaWQgc2Nhbm5pbmcgb3V0IHdoYXRldmVyIGdh cmJhZ2UgZ290CmxlZnQgaW4gdGhlIGh3IExVVCBwcmV2aW91c2x5KS4gU28gaW4gb3JkZXIgdG8g bWFrZSB0aGUgZmJkZXYKY29kZSB3b3JrIHdpdGggQzggd2UgbmVlZCB0byBwcm9ncmFtIHRoZSBn YW1tYV9sdXQgYWxyZWFkeQpkdXJpbmcgcmVzdG9yZV9mYmRldl9tb2RlX2F0b21pYygpLgoKVG8g YXZvaWQgaGF2aW5nIHRvIHVwZGF0ZSB0aGUgaHcgTFVUIGV2ZXJ5IHRpbWUKcmVzdG9yZV9mYmRl dl9tb2RlX2F0b21pYygpIGlzIGNhbGxlZCB3ZSBoYW5nIG9uIHRvIHRoZQpjdXJyZW50IGdhbW1h X2x1dCBibG9iLiBOb3RlIHRoYXQgdGhlIGZpcnN0IGNydGMgdG8gZ2V0CmVuYWJsZWQgd2lsbCBk aWN0YXRlIHRoZSBzaXplIG9mIHRoZSBnYW1tYV9sdXQsIHNvIHRoaXMKYXBwcm9hY2ggaXNuJ3Qg MTAwJSBncmVhdCBmb3IgaGFyZHdhcmUgd2l0aCBub24tdW5pZm9ybQpjcnRjcy4gQnV0IHRoYXQg cHJvYmxlbSBhbHJlYWR5IGV4aXN0cyBpbiBzZXRjbWFwX2F0b21pYygpCnNvIHdlJ2xsIGp1c3Qg a2VlcCBpZ25vcmluZyBpdC4KClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxw ZXIuYyB8IDE2NSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogaW5jbHVkZS9kcm0v ZHJtX2ZiX2hlbHBlci5oICAgICB8ICAgNyArKwogMiBmaWxlcyBjaGFuZ2VkLCAxMTMgaW5zZXJ0 aW9ucygrKSwgNTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9mYl9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKaW5kZXggYmRm YTE0Y2Q3ZjZkLi4wZWNlYzc2Mzc4OWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZmJfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwpAQCAtNDM2 LDEwICs0MzYsNzYgQEAgc3RhdGljIGJvb2wgZHJtX2ZiX2hlbHBlcl9wYW5lbF9yb3RhdGlvbihz dHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0LAogCXJldHVybiB0cnVlOwogfQogCitzdGF0aWMg aW50IHNldGNtYXBfY3J0Y19hdG9taWMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAor CQkJICAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX3By b3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCkKK3sKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNf c3RhdGU7CisJYm9vbCByZXBsYWNlZDsKKworCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9j cnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQorCQlyZXR1 cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsKKworCXJlcGxhY2VkICA9IGRybV9wcm9wZXJ0eV9yZXBs YWNlX2Jsb2IoJmNydGNfc3RhdGUtPmRlZ2FtbWFfbHV0LAorCQkJCQkgICAgICBOVUxMKTsKKwly ZXBsYWNlZCB8PSBkcm1fcHJvcGVydHlfcmVwbGFjZV9ibG9iKCZjcnRjX3N0YXRlLT5jdG0sIE5V TEwpOworCXJlcGxhY2VkIHw9IGRybV9wcm9wZXJ0eV9yZXBsYWNlX2Jsb2IoJmNydGNfc3RhdGUt PmdhbW1hX2x1dCwKKwkJCQkJICAgICAgZ2FtbWFfbHV0KTsKKwljcnRjX3N0YXRlLT5jb2xvcl9t Z210X2NoYW5nZWQgfD0gcmVwbGFjZWQ7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVj dCBkcm1fcHJvcGVydHlfYmxvYiAqc2V0Y21hcF9uZXdfZ2FtbWFfbHV0KHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKKwkJCQkJCSAgICAgICBzdHJ1Y3QgZmJfY21hcCAqY21hcCkKK3sKKwlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OworCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAq Z2FtbWFfbHV0OworCXN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQ7CisJaW50IHNpemUgPSBjcnRj LT5nYW1tYV9zaXplOworCWludCBpOworCisJaWYgKCFzaXplIHx8IGNtYXAtPnN0YXJ0ICsgY21h cC0+bGVuID4gc2l6ZSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisKKwlnYW1tYV9sdXQg PSBkcm1fcHJvcGVydHlfY3JlYXRlX2Jsb2IoZGV2LCBzaXplb2YoKmx1dCkgKiBzaXplLCBOVUxM KTsKKwlpZiAoSVNfRVJSKGdhbW1hX2x1dCkpCisJCXJldHVybiBnYW1tYV9sdXQ7CisKKwlsdXQg PSBnYW1tYV9sdXQtPmRhdGE7CisJaWYgKGNtYXAtPnN0YXJ0IHx8IGNtYXAtPmxlbiAhPSBzaXpl KSB7CisJCXUxNiAqciA9IGNydGMtPmdhbW1hX3N0b3JlOworCQl1MTYgKmcgPSByICsgY3J0Yy0+ Z2FtbWFfc2l6ZTsKKwkJdTE2ICpiID0gZyArIGNydGMtPmdhbW1hX3NpemU7CisKKwkJZm9yIChp ID0gMDsgaSA8IGNtYXAtPnN0YXJ0OyBpKyspIHsKKwkJCWx1dFtpXS5yZWQgPSByW2ldOworCQkJ bHV0W2ldLmdyZWVuID0gZ1tpXTsKKwkJCWx1dFtpXS5ibHVlID0gYltpXTsKKwkJfQorCQlmb3Ig KGkgPSBjbWFwLT5zdGFydCArIGNtYXAtPmxlbjsgaSA8IHNpemU7IGkrKykgeworCQkJbHV0W2ld LnJlZCA9IHJbaV07CisJCQlsdXRbaV0uZ3JlZW4gPSBnW2ldOworCQkJbHV0W2ldLmJsdWUgPSBi W2ldOworCQl9CisJfQorCisJZm9yIChpID0gMDsgaSA8IGNtYXAtPmxlbjsgaSsrKSB7CisJCWx1 dFtjbWFwLT5zdGFydCArIGldLnJlZCA9IGNtYXAtPnJlZFtpXTsKKwkJbHV0W2NtYXAtPnN0YXJ0 ICsgaV0uZ3JlZW4gPSBjbWFwLT5ncmVlbltpXTsKKwkJbHV0W2NtYXAtPnN0YXJ0ICsgaV0uYmx1 ZSA9IGNtYXAtPmJsdWVbaV07CisJfQorCisJcmV0dXJuIGdhbW1hX2x1dDsKK30KKwogc3RhdGlj IGludCByZXN0b3JlX2ZiZGV2X21vZGVfYXRvbWljKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9o ZWxwZXIsIGJvb2wgYWN0aXZlKQogeworCXN0cnVjdCBmYl9pbmZvICppbmZvID0gZmJfaGVscGVy LT5mYmRldjsKIAlzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCA9ICZmYl9oZWxwZXItPmNs aWVudDsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmJfaGVscGVyLT5kZXY7CisJc3RydWN0 IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQ7CiAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAq cGxhbmVfc3RhdGU7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAJc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlOwpAQCAtNDU1LDYgKzUyMSwxMCBAQCBzdGF0aWMgaW50IHJlc3RvcmVf ZmJkZXZfbW9kZV9hdG9taWMoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwgYm9vbCBh Y3RpdgogCQlnb3RvIG91dF9jdHg7CiAJfQogCisJZ2FtbWFfbHV0ID0gZmJfaGVscGVyLT5nYW1t YV9sdXQ7CisJaWYgKGdhbW1hX2x1dCkKKwkJZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0KGdhbW1hX2x1 dCk7CisKIAlzdGF0ZS0+YWNxdWlyZV9jdHggPSAmY3R4OwogcmV0cnk6CiAJZHJtX2Zvcl9lYWNo X3BsYW5lKHBsYW5lLCBkZXYpIHsKQEAgLTQ3Niw3ICs1NDYsOCBAQCBzdGF0aWMgaW50IHJlc3Rv cmVfZmJkZXZfbW9kZV9hdG9taWMoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwgYm9v bCBhY3RpdgogCX0KIAogCWRybV9jbGllbnRfZm9yX2VhY2hfbW9kZXNldChtb2RlX3NldCwgY2xp ZW50KSB7Ci0JCXN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnkgPSBtb2RlX3NldC0+Y3J0Yy0+cHJp bWFyeTsKKwkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gbW9kZV9zZXQtPmNydGM7CisJCXN0cnVj dCBkcm1fcGxhbmUgKnByaW1hcnkgPSBjcnRjLT5wcmltYXJ5OwogCQl1bnNpZ25lZCBpbnQgcm90 YXRpb247CiAKIAkJaWYgKGRybV9mYl9oZWxwZXJfcGFuZWxfcm90YXRpb24obW9kZV9zZXQsICZy b3RhdGlvbikpIHsKQEAgLTQ4OSwyNCArNTYwLDQ2IEBAIHN0YXRpYyBpbnQgcmVzdG9yZV9mYmRl dl9tb2RlX2F0b21pYyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLCBib29sIGFjdGl2 CiAJCWlmIChyZXQgIT0gMCkKIAkJCWdvdG8gb3V0X3N0YXRlOwogCisJCWlmIChpbmZvLT5maXgu dmlzdWFsICE9IEZCX1ZJU1VBTF9UUlVFQ09MT1IpIHsKKwkJCWlmICghZ2FtbWFfbHV0KQorCQkJ CWdhbW1hX2x1dCA9IHNldGNtYXBfbmV3X2dhbW1hX2x1dChjcnRjLCAmaW5mby0+Y21hcCk7CisJ CQlpZiAoSVNfRVJSKGdhbW1hX2x1dCkpIHsKKwkJCQlyZXQgPSBQVFJfRVJSKGdhbW1hX2x1dCk7 CisJCQkJZ2FtbWFfbHV0ID0gTlVMTDsKKwkJCQlnb3RvIG91dF9zdGF0ZTsKKwkJCX0KKworCQkJ cmV0ID0gc2V0Y21hcF9jcnRjX2F0b21pYyhzdGF0ZSwgY3J0YywgZ2FtbWFfbHV0KTsKKwkJCWlm IChyZXQpCisJCQkJZ290byBvdXRfc3RhdGU7CisJCX0KKwogCQkvKgogCQkgKiBfX2RybV9hdG9t aWNfaGVscGVyX3NldF9jb25maWcoKSBzZXRzIGFjdGl2ZSB3aGVuIGEKIAkJICogbW9kZSBpcyBz ZXQsIHVuY29uZGl0aW9uYWxseSBjbGVhciBpdCBpZiB3ZSBmb3JjZSBEUE1TIG9mZgogCQkgKi8K IAkJaWYgKCFhY3RpdmUpIHsKLQkJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG1vZGVfc2V0LT5j cnRjOwotCQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gZHJtX2F0b21pY19n ZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOworCQkJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlID0KKwkJCQlkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwg Y3J0Yyk7CiAKIAkJCWNydGNfc3RhdGUtPmFjdGl2ZSA9IGZhbHNlOwogCQl9CiAJfQogCiAJcmV0 ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOworCWlmIChyZXQpCisJCWdvdG8gb3V0X3N0YXRl OworCisJaWYgKGdhbW1hX2x1dCkKKwkJZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0KGdhbW1hX2x1dCk7 CisJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KGZiX2hlbHBlci0+Z2FtbWFfbHV0KTsKKwlmYl9oZWxw ZXItPmdhbW1hX2x1dCA9IGdhbW1hX2x1dDsKIAogb3V0X3N0YXRlOgogCWlmIChyZXQgPT0gLUVE RUFETEspCiAJCWdvdG8gYmFja29mZjsKIAorCWRybV9wcm9wZXJ0eV9ibG9iX3B1dChnYW1tYV9s dXQpOwogCWRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKIG91dF9jdHg6CiAJZHJtX21vZGVz ZXRfZHJvcF9sb2NrcygmY3R4KTsKQEAgLTk5Niw2ICsxMDg5LDkgQEAgdm9pZCBkcm1fZmJfaGVs cGVyX2Zpbmkoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikKIAl9CiAJZmJfaGVscGVy LT5mYmRldiA9IE5VTEw7CiAKKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQoZmJfaGVscGVyLT5nYW1t YV9sdXQpOworCWZiX2hlbHBlci0+Z2FtbWFfbHV0ID0gTlVMTDsKKwogCW11dGV4X2xvY2soJmtl cm5lbF9mYl9oZWxwZXJfbG9jayk7CiAJaWYgKCFsaXN0X2VtcHR5KCZmYl9oZWxwZXItPmtlcm5l bF9mYl9saXN0KSkgewogCQlsaXN0X2RlbCgmZmJfaGVscGVyLT5rZXJuZWxfZmJfbGlzdCk7CkBA IC0xMzkwLDYxICsxNDg2LDE2IEBAIHN0YXRpYyBpbnQgc2V0Y21hcF9sZWdhY3koc3RydWN0IGZi X2NtYXAgKmNtYXAsIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXJldHVybiByZXQ7CiB9CiAKLXN0 YXRpYyBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKnNldGNtYXBfbmV3X2dhbW1hX2x1dChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCi0JCQkJCQkgICAgICAgc3RydWN0IGZiX2NtYXAgKmNtYXApCi17 Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKLQlzdHJ1Y3QgZHJtX3Byb3Bl cnR5X2Jsb2IgKmdhbW1hX2x1dDsKLQlzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0OwotCWludCBz aXplID0gY3J0Yy0+Z2FtbWFfc2l6ZTsKLQlpbnQgaTsKLQotCWlmICghc2l6ZSB8fCBjbWFwLT5z dGFydCArIGNtYXAtPmxlbiA+IHNpemUpCi0JCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwotCi0J Z2FtbWFfbHV0ID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9ibG9iKGRldiwgc2l6ZW9mKCpsdXQpICog c2l6ZSwgTlVMTCk7Ci0JaWYgKElTX0VSUihnYW1tYV9sdXQpKQotCQlyZXR1cm4gZ2FtbWFfbHV0 OwotCi0JbHV0ID0gZ2FtbWFfbHV0LT5kYXRhOwotCWlmIChjbWFwLT5zdGFydCB8fCBjbWFwLT5s ZW4gIT0gc2l6ZSkgewotCQl1MTYgKnIgPSBjcnRjLT5nYW1tYV9zdG9yZTsKLQkJdTE2ICpnID0g ciArIGNydGMtPmdhbW1hX3NpemU7Ci0JCXUxNiAqYiA9IGcgKyBjcnRjLT5nYW1tYV9zaXplOwot Ci0JCWZvciAoaSA9IDA7IGkgPCBjbWFwLT5zdGFydDsgaSsrKSB7Ci0JCQlsdXRbaV0ucmVkID0g cltpXTsKLQkJCWx1dFtpXS5ncmVlbiA9IGdbaV07Ci0JCQlsdXRbaV0uYmx1ZSA9IGJbaV07Ci0J CX0KLQkJZm9yIChpID0gY21hcC0+c3RhcnQgKyBjbWFwLT5sZW47IGkgPCBzaXplOyBpKyspIHsK LQkJCWx1dFtpXS5yZWQgPSByW2ldOwotCQkJbHV0W2ldLmdyZWVuID0gZ1tpXTsKLQkJCWx1dFtp XS5ibHVlID0gYltpXTsKLQkJfQotCX0KLQotCWZvciAoaSA9IDA7IGkgPCBjbWFwLT5sZW47IGkr KykgewotCQlsdXRbY21hcC0+c3RhcnQgKyBpXS5yZWQgPSBjbWFwLT5yZWRbaV07Ci0JCWx1dFtj bWFwLT5zdGFydCArIGldLmdyZWVuID0gY21hcC0+Z3JlZW5baV07Ci0JCWx1dFtjbWFwLT5zdGFy dCArIGldLmJsdWUgPSBjbWFwLT5ibHVlW2ldOwotCX0KLQotCXJldHVybiBnYW1tYV9sdXQ7Ci19 Ci0KIHN0YXRpYyBpbnQgc2V0Y21hcF9hdG9taWMoc3RydWN0IGZiX2NtYXAgKmNtYXAsIHN0cnVj dCBmYl9pbmZvICppbmZvKQogewogCXN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBp bmZvLT5wYXI7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGZiX2hlbHBlci0+ZGV2OwogCXN0 cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gTlVMTDsKIAlzdHJ1Y3QgZHJtX21v ZGVzZXRfYWNxdWlyZV9jdHggY3R4OwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZTsKIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7CiAJc3RydWN0IGRybV9tb2RlX3Nl dCAqbW9kZXNldDsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAJdTE2ICpyLCAqZywgKmI7Ci0J Ym9vbCByZXBsYWNlZDsKIAlpbnQgcmV0ID0gMDsKIAogCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5p dCgmY3R4LCAwKTsKQEAgLTE0NjgsMTggKzE1MTksOSBAQCBzdGF0aWMgaW50IHNldGNtYXBfYXRv bWljKHN0cnVjdCBmYl9jbWFwICpjbWFwLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAkJCWdvdG8g b3V0X3N0YXRlOwogCQl9CiAKLQkJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3Rh dGUoc3RhdGUsIGNydGMpOwotCQlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKSB7Ci0JCQlyZXQgPSBQ VFJfRVJSKGNydGNfc3RhdGUpOworCQlyZXQgPSBzZXRjbWFwX2NydGNfYXRvbWljKHN0YXRlLCBj cnRjLCBnYW1tYV9sdXQpOworCQlpZiAocmV0KQogCQkJZ290byBvdXRfc3RhdGU7Ci0JCX0KLQot CQlyZXBsYWNlZCAgPSBkcm1fcHJvcGVydHlfcmVwbGFjZV9ibG9iKCZjcnRjX3N0YXRlLT5kZWdh bW1hX2x1dCwKLQkJCQkJCSAgICAgIE5VTEwpOwotCQlyZXBsYWNlZCB8PSBkcm1fcHJvcGVydHlf cmVwbGFjZV9ibG9iKCZjcnRjX3N0YXRlLT5jdG0sIE5VTEwpOwotCQlyZXBsYWNlZCB8PSBkcm1f cHJvcGVydHlfcmVwbGFjZV9ibG9iKCZjcnRjX3N0YXRlLT5nYW1tYV9sdXQsCi0JCQkJCQkgICAg ICBnYW1tYV9sdXQpOwotCQljcnRjX3N0YXRlLT5jb2xvcl9tZ210X2NoYW5nZWQgfD0gcmVwbGFj ZWQ7CiAJfQogCiAJcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwpAQCAtMTQ5OCw2ICsx NTQwLDExIEBAIHN0YXRpYyBpbnQgc2V0Y21hcF9hdG9taWMoc3RydWN0IGZiX2NtYXAgKmNtYXAs IHN0cnVjdCBmYl9pbmZvICppbmZvKQogCQltZW1jcHkoYiArIGNtYXAtPnN0YXJ0LCBjbWFwLT5i bHVlLCBjbWFwLT5sZW4gKiBzaXplb2YoKmIpKTsKIAl9CiAKKwlpZiAoZ2FtbWFfbHV0KQorCQlk cm1fcHJvcGVydHlfYmxvYl9nZXQoZ2FtbWFfbHV0KTsKKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQo ZmJfaGVscGVyLT5nYW1tYV9sdXQpOworCWZiX2hlbHBlci0+Z2FtbWFfbHV0ID0gZ2FtbWFfbHV0 OworCiBvdXRfc3RhdGU6CiAJaWYgKHJldCA9PSAtRURFQURMSykKIAkJZ290byBiYWNrb2ZmOwpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJt X2ZiX2hlbHBlci5oCmluZGV4IDZiMzM0ZjRkOGEyMi4uOWM3OTczNDZlZGU0IDEwMDY0NAotLS0g YS9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hl bHBlci5oCkBAIC0xNTUsNiArMTU1LDEzIEBAIHN0cnVjdCBkcm1fZmJfaGVscGVyIHsKIAlzdHJ1 Y3Qgd29ya19zdHJ1Y3QgZGlydHlfd29yazsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgcmVzdW1lX3dv cms7CiAKKwkvKioKKwkgKiBAZ2FtbWFfbHV0OgorCSAqCisJICogQ3VycmVudCBnYW1tYV9sdXQu CisJICovCisJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQ7CisKIAkvKioKIAkg KiBAbG9jazoKIAkgKgotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZng=