From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [RFC 1/2] drm/fb-helper: atomic restore_fbdev_mode().. Date: Wed, 19 Aug 2015 18:45:16 -0400 Message-ID: <1440024317-21944-2-git-send-email-robdclark@gmail.com> References: <1440024317-21944-1-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pd0-f181.google.com (mail-pd0-f181.google.com [209.85.192.181]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5E8446E2E9 for ; Wed, 19 Aug 2015 15:45:57 -0700 (PDT) Received: by pdob1 with SMTP id b1so6346564pdo.2 for ; Wed, 19 Aug 2015 15:45:57 -0700 (PDT) In-Reply-To: <1440024317-21944-1-git-send-email-robdclark@gmail.com> 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 List-Id: dri-devel@lists.freedesktop.org U29tZXdoYXQgcm91Z2gsIG5vdCBzdXJlIGlmIHNvbWUgb2YgdGhlIGNvZGUgc2hvdWxkIGJlIG1v dmVkIHRvCmRpZmZlcmVudCBwbGFjZXMsIGV0Yy4uCgpPbmx5IGNvbXBpbGUgdGVzdGVkIGF0bS4u CgpTaWduZWQtb2ZmLWJ5OiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAxMjkgKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jICAgICB8 ICA3NCArKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVy LmggICAgIHwgICA2ICsrCiAzIGZpbGVzIGNoYW5nZWQsIDE1NiBpbnNlcnRpb25zKCspLCA1MyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4IDUyZGJlZWQu LmEwNjA2OGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCkBAIC0xNDk0LDIxICsx NDk0LDkgQEAgcmV0cnk6CiAJCWdvdG8gZmFpbDsKIAl9CiAKLQlyZXQgPSBkcm1fYXRvbWljX3Nl dF9jcnRjX2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgTlVMTCk7CisJcmV0ID0gZHJtX2F0b21pY19o ZWxwZXJfZGlzYWJsZV9wbGFuZV9pbXBsKHBsYW5lLCBwbGFuZV9zdGF0ZSk7CiAJaWYgKHJldCAh PSAwKQogCQlnb3RvIGZhaWw7Ci0JZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHBsYW5lX3N0 YXRlLCBOVUxMKTsKLQlwbGFuZV9zdGF0ZS0+Y3J0Y194ID0gMDsKLQlwbGFuZV9zdGF0ZS0+Y3J0 Y195ID0gMDsKLQlwbGFuZV9zdGF0ZS0+Y3J0Y19oID0gMDsKLQlwbGFuZV9zdGF0ZS0+Y3J0Y193 ID0gMDsKLQlwbGFuZV9zdGF0ZS0+c3JjX3ggPSAwOwotCXBsYW5lX3N0YXRlLT5zcmNfeSA9IDA7 Ci0JcGxhbmVfc3RhdGUtPnNyY19oID0gMDsKLQlwbGFuZV9zdGF0ZS0+c3JjX3cgPSAwOwotCi0J aWYgKHBsYW5lID09IHBsYW5lLT5jcnRjLT5jdXJzb3IpCi0JCXN0YXRlLT5sZWdhY3lfY3Vyc29y X3VwZGF0ZSA9IHRydWU7CiAKIAlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7CiAJaWYg KHJldCAhPSAwKQpAQCAtMTUzOCw2ICsxNTI2LDMyIEBAIGJhY2tvZmY6CiB9CiBFWFBPUlRfU1lN Qk9MKGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUpOwogCisvKiBqdXN0IHVzZWQgZnJv bSBmYi1oZWxwZXIgYW5kIGF0b21pYy1oZWxwZXI6ICovCitpbnQgZHJtX2F0b21pY19oZWxwZXJf ZGlzYWJsZV9wbGFuZV9pbXBsKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQlzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gZHJtX2F0 b21pY19zZXRfY3J0Y19mb3JfcGxhbmUocGxhbmVfc3RhdGUsIE5VTEwpOworCWlmIChyZXQgIT0g MCkKKwkJcmV0dXJuIHJldDsKKworCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwbGFuZV9z dGF0ZSwgTlVMTCk7CisJcGxhbmVfc3RhdGUtPmNydGNfeCA9IDA7CisJcGxhbmVfc3RhdGUtPmNy dGNfeSA9IDA7CisJcGxhbmVfc3RhdGUtPmNydGNfaCA9IDA7CisJcGxhbmVfc3RhdGUtPmNydGNf dyA9IDA7CisJcGxhbmVfc3RhdGUtPnNyY194ID0gMDsKKwlwbGFuZV9zdGF0ZS0+c3JjX3kgPSAw OworCXBsYW5lX3N0YXRlLT5zcmNfaCA9IDA7CisJcGxhbmVfc3RhdGUtPnNyY193ID0gMDsKKwor CWlmIChwbGFuZSA9PSBwbGFuZS0+Y3J0Yy0+Y3Vyc29yKQorCQlwbGFuZV9zdGF0ZS0+c3RhdGUt PmxlZ2FjeV9jdXJzb3JfdXBkYXRlID0gdHJ1ZTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMg aW50IHVwZGF0ZV9vdXRwdXRfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAog CQkJICAgICAgIHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkKIHsKQEAgLTE2MjEsOCArMTYzNSw2 IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQg KnNldCkKIHsKIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7CiAJc3RydWN0IGRybV9j cnRjICpjcnRjID0gc2V0LT5jcnRjOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZTsKLQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwcmltYXJ5X3N0YXRlOwogCWludCByZXQgPSAw OwogCiAJc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGNydGMtPmRldik7CkBAIC0xNjMx LDE3ICsxNjQzLDUyIEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKHN0cnVjdCBk cm1fbW9kZV9zZXQgKnNldCkKIAogCXN0YXRlLT5hY3F1aXJlX2N0eCA9IGRybV9tb2Rlc2V0X2xl Z2FjeV9hY3F1aXJlX2N0eChjcnRjKTsKIHJldHJ5OgotCWNydGNfc3RhdGUgPSBkcm1fYXRvbWlj X2dldF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKLQlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKSB7 Ci0JCXJldCA9IFBUUl9FUlIoY3J0Y19zdGF0ZSk7CisJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJf c2V0X2NvbmZpZ19pbXBsKHNldCwgc3RhdGUpOworCisJcmV0ID0gZHJtX2F0b21pY19jb21taXQo c3RhdGUpOworCWlmIChyZXQgIT0gMCkKIAkJZ290byBmYWlsOwotCX0KKworCS8qIERyaXZlciB0 YWtlcyBvd25lcnNoaXAgb2Ygc3RhdGUgb24gc3VjY2Vzc2Z1bCBjb21taXQuICovCisJcmV0dXJu IDA7CitmYWlsOgorCWlmIChyZXQgPT0gLUVERUFETEspCisJCWdvdG8gYmFja29mZjsKKworCWRy bV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CisKKwlyZXR1cm4gcmV0OworYmFja29mZjoKKwlk cm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0YXRlKTsKKwlkcm1fYXRvbWljX2xlZ2FjeV9iYWNrb2Zm KHN0YXRlKTsKKworCS8qCisJICogU29tZW9uZSBtaWdodCBoYXZlIGV4Y2hhbmdlZCB0aGUgZnJh bWVidWZmZXIgd2hpbGUgd2UgZHJvcHBlZCBsb2NrcworCSAqIGluIHRoZSBiYWNrb2ZmIGNvZGUu IFdlIG5lZWQgdG8gZml4IHVwIHRoZSBmYiByZWZjb3VudCB0cmFja2luZyB0aGUKKwkgKiBjb3Jl IGRvZXMgZm9yIHVzLgorCSAqLworCWNydGMtPnByaW1hcnktPm9sZF9mYiA9IGNydGMtPnByaW1h cnktPmZiOworCisJZ290byByZXRyeTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxw ZXJfc2V0X2NvbmZpZyk7CisKKy8qIGp1c3QgdXNlZCBmcm9tIGZiLWhlbHBlciBhbmQgYXRvbWlj LWhlbHBlcjogKi8KK2ludCBkcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnX2ltcGwoc3RydWN0 IGRybV9tb2RlX3NldCAqc2V0LAorCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCit7 CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCXN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKnByaW1hcnlfc3RhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc2V0LT5jcnRj OworCWludCByZXQ7CisKKwljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShz dGF0ZSwgY3J0Yyk7CisJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkKKwkJcmV0dXJuIFBUUl9FUlIo Y3J0Y19zdGF0ZSk7CiAKIAlwcmltYXJ5X3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3Rh dGUoc3RhdGUsIGNydGMtPnByaW1hcnkpOwotCWlmIChJU19FUlIocHJpbWFyeV9zdGF0ZSkpIHsK LQkJcmV0ID0gUFRSX0VSUihwcmltYXJ5X3N0YXRlKTsKLQkJZ290byBmYWlsOwotCX0KKwlpZiAo SVNfRVJSKHByaW1hcnlfc3RhdGUpKQorCQlyZXR1cm4gUFRSX0VSUihwcmltYXJ5X3N0YXRlKTsK IAogCWlmICghc2V0LT5tb2RlKSB7CiAJCVdBUk5fT04oc2V0LT5mYik7CkBAIC0xNjQ5LDEzICsx Njk2LDEzIEBAIHJldHJ5OgogCiAJCXJldCA9IGRybV9hdG9taWNfc2V0X21vZGVfZm9yX2NydGMo Y3J0Y19zdGF0ZSwgTlVMTCk7CiAJCWlmIChyZXQgIT0gMCkKLQkJCWdvdG8gZmFpbDsKKwkJCXJl dHVybiByZXQ7CiAKIAkJY3J0Y19zdGF0ZS0+YWN0aXZlID0gZmFsc2U7CiAKIAkJcmV0ID0gZHJt X2F0b21pY19zZXRfY3J0Y19mb3JfcGxhbmUocHJpbWFyeV9zdGF0ZSwgTlVMTCk7CiAJCWlmIChy ZXQgIT0gMCkKLQkJCWdvdG8gZmFpbDsKKwkJCXJldHVybiByZXQ7CiAKIAkJZHJtX2F0b21pY19z ZXRfZmJfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUsIE5VTEwpOwogCkBAIC0xNjY3LDEzICsxNzE0 LDE0IEBAIHJldHJ5OgogCiAJcmV0ID0gZHJtX2F0b21pY19zZXRfbW9kZV9mb3JfY3J0YyhjcnRj X3N0YXRlLCBzZXQtPm1vZGUpOwogCWlmIChyZXQgIT0gMCkKLQkJZ290byBmYWlsOworCQlyZXR1 cm4gcmV0OwogCiAJY3J0Y19zdGF0ZS0+YWN0aXZlID0gdHJ1ZTsKIAogCXJldCA9IGRybV9hdG9t aWNfc2V0X2NydGNfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUsIGNydGMpOwogCWlmIChyZXQgIT0g MCkKLQkJZ290byBmYWlsOworCQlyZXR1cm4gcmV0OworCiAJZHJtX2F0b21pY19zZXRfZmJfZm9y X3BsYW5lKHByaW1hcnlfc3RhdGUsIHNldC0+ZmIpOwogCXByaW1hcnlfc3RhdGUtPmNydGNfeCA9 IDA7CiAJcHJpbWFyeV9zdGF0ZS0+Y3J0Y195ID0gMDsKQEAgLTE2ODcsMzUgKzE3MzUsMTAgQEAg cmV0cnk6CiBjb21taXQ6CiAJcmV0ID0gdXBkYXRlX291dHB1dF9zdGF0ZShzdGF0ZSwgc2V0KTsK IAlpZiAocmV0KQotCQlnb3RvIGZhaWw7Ci0KLQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0 ZSk7Ci0JaWYgKHJldCAhPSAwKQotCQlnb3RvIGZhaWw7CisJCXJldHVybiByZXQ7CiAKLQkvKiBE cml2ZXIgdGFrZXMgb3duZXJzaGlwIG9mIHN0YXRlIG9uIHN1Y2Nlc3NmdWwgY29tbWl0LiAqLwog CXJldHVybiAwOwotZmFpbDoKLQlpZiAocmV0ID09IC1FREVBRExLKQotCQlnb3RvIGJhY2tvZmY7 Ci0KLQlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwotCi0JcmV0dXJuIHJldDsKLWJhY2tv ZmY6Ci0JZHJtX2F0b21pY19zdGF0ZV9jbGVhcihzdGF0ZSk7Ci0JZHJtX2F0b21pY19sZWdhY3lf YmFja29mZihzdGF0ZSk7Ci0KLQkvKgotCSAqIFNvbWVvbmUgbWlnaHQgaGF2ZSBleGNoYW5nZWQg dGhlIGZyYW1lYnVmZmVyIHdoaWxlIHdlIGRyb3BwZWQgbG9ja3MKLQkgKiBpbiB0aGUgYmFja29m ZiBjb2RlLiBXZSBuZWVkIHRvIGZpeCB1cCB0aGUgZmIgcmVmY291bnQgdHJhY2tpbmcgdGhlCi0J ICogY29yZSBkb2VzIGZvciB1cy4KLQkgKi8KLQljcnRjLT5wcmltYXJ5LT5vbGRfZmIgPSBjcnRj LT5wcmltYXJ5LT5mYjsKLQotCWdvdG8gcmV0cnk7CiB9Ci1FWFBPUlRfU1lNQk9MKGRybV9hdG9t aWNfaGVscGVyX3NldF9jb25maWcpOwogCiAvKioKICAqIGRybV9hdG9taWNfaGVscGVyX2NydGNf c2V0X3Byb3BlcnR5IC0gaGVscGVyIGZvciBjcnRjIHByb3BlcnRpZXMKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hl bHBlci5jCmluZGV4IDQxOGQyOTkuLjM1NDliMWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZmJfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwpA QCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRy bS9kcm1fZmJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgorI2lu Y2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVy Lmg+CiAKIHN0YXRpYyBMSVNUX0hFQUQoa2VybmVsX2ZiX2hlbHBlcl9saXN0KTsKIApAQCAtMzIw LDYgKzMyMiw3NSBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9kZWJ1Z19sZWF2ZShzdHJ1Y3QgZmJfaW5m byAqaW5mbykKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9kZWJ1Z19sZWF2ZSk7CiAK K3N0YXRpYyBpbnQgcmVzdG9yZV9mYmRldl9tb2RlX2F0b21pYyhzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqZmJfaGVscGVyKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYl9oZWxwZXItPmRl djsKKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGU7CisJaW50IGksIHJldDsKKworCXN0YXRlID0gZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhk ZXYpOworCWlmICghc3RhdGUpCisJCXJldHVybiAtRU5PTUVNOworCisJLy8gWFhYIHRoaXMgbWF5 IGJlIGZ1YmFyIGluIHRoZSBvcHBzX2luX3Byb2dyZXNzIGNhc2UuLgorCXN0YXRlLT5hY3F1aXJl X2N0eCA9IGRldi0+bW9kZV9jb25maWcuYWNxdWlyZV9jdHg7CityZXRyeToKKwlkcm1fZm9yX2Vh Y2hfcGxhbmUocGxhbmUsIGRldikgeworCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZTsKKworCQlwbGFuZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRl LCBwbGFuZSk7CisJCWlmIChJU19FUlIocGxhbmVfc3RhdGUpKSB7CisJCQlyZXQgPSBQVFJfRVJS KHBsYW5lX3N0YXRlKTsKKwkJCWdvdG8gZmFpbDsKKwkJfQorCisJCS8qIHJlc2V0IHJvdGF0aW9u OiAqLworCQlyZXQgPSBkcm1fYXRvbWljX3BsYW5lX3NldF9wcm9wZXJ0eShwbGFuZSwgcGxhbmVf c3RhdGUsCisJCQkJZGV2LT5tb2RlX2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0eSwKKwkJCQlCSVQo RFJNX1JPVEFURV8wKSk7CisJCWlmIChyZXQgIT0gMCkKKwkJCWdvdG8gZmFpbDsKKworCQkvKiBk aXNhYmxlIG5vbi1wcmltYXJ5OiAqLworCQlpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZ UEVfUFJJTUFSWSkKKwkJCWNvbnRpbnVlOworCisJCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2Rp c2FibGVfcGxhbmVfaW1wbChwbGFuZSwgcGxhbmVfc3RhdGUpOworCQlpZiAocmV0ICE9IDApCisJ CQlnb3RvIGZhaWw7CisJfQorCisJZm9yKGkgPSAwOyBpIDwgZmJfaGVscGVyLT5jcnRjX2NvdW50 OyBpKyspIHsKKwkJc3RydWN0IGRybV9tb2RlX3NldCAqbW9kZV9zZXQgPSAmZmJfaGVscGVyLT5j cnRjX2luZm9baV0ubW9kZV9zZXQ7CisKKwkJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfc2V0X2Nv bmZpZ19pbXBsKG1vZGVfc2V0LCBzdGF0ZSk7CisJCWlmIChyZXQgIT0gMCkKKwkJCWdvdG8gZmFp bDsKKwl9CisKKwlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7CisJaWYgKHJldCAhPSAw KQorCQlnb3RvIGZhaWw7CisKKwlyZXR1cm4gMDsKKworZmFpbDoKKwlpZiAocmV0ID09IC1FREVB RExLKQorCQlnb3RvIGJhY2tvZmY7CisKKwlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwor CisJcmV0dXJuIHJldDsKKworYmFja29mZjoKKwlkcm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0YXRl KTsKKwkvLyBYWFggdGhpcyBtYXkgYWxzbyBiZSBhIGJpdCBmdWJhciBpbiBvcHBzX2luX3Byb2dy ZXNzCisJZHJtX2F0b21pY19sZWdhY3lfYmFja29mZihzdGF0ZSk7CisKKwlnb3RvIHJldHJ5Owor fQorCiBzdGF0aWMgYm9vbCByZXN0b3JlX2ZiZGV2X21vZGUoc3RydWN0IGRybV9mYl9oZWxwZXIg KmZiX2hlbHBlcikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmJfaGVscGVyLT5kZXY7 CkBAIC0zMjksNiArNDAwLDkgQEAgc3RhdGljIGJvb2wgcmVzdG9yZV9mYmRldl9tb2RlKHN0cnVj dCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpCiAKIAlkcm1fd2Fybl9vbl9tb2Rlc2V0X25vdF9h bGxfbG9ja2VkKGRldik7CiAKKwlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZF Ul9BVE9NSUMpKQorCQlyZXR1cm4gcmVzdG9yZV9mYmRldl9tb2RlX2F0b21pYyhmYl9oZWxwZXIp ID09IDA7CisKIAlkcm1fZm9yX2VhY2hfcGxhbmUocGxhbmUsIGRldikgewogCQlpZiAocGxhbmUt PnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkKIAkJCWRybV9wbGFuZV9mb3JjZV9kaXNh YmxlKHBsYW5lKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgg Yi9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCmluZGV4IDExMjY2ZDE0Li41NTVmOWI5 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCisrKyBiL2luY2x1 ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgKQEAgLTMwLDYgKzMwLDggQEAKIAogI2luY2x1ZGUg PGRybS9kcm1fY3J0Yy5oPgogCitzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZTsKKwogaW50IGRybV9h dG9taWNfaGVscGVyX2NoZWNrX21vZGVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogaW50IGRybV9hdG9taWNfaGVscGVyX2No ZWNrX3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LApAQCAtNzIsNyArNzQsMTEgQEAgaW50 IGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IAkJCQkgICB1aW50MzJfdCBzcmNfeCwgdWludDMyX3Qgc3JjX3ksCiAJCQkJICAgdWludDMyX3Qg c3JjX3csIHVpbnQzMl90IHNyY19oKTsKIGludCBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3Bs YW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKK2ludCBkcm1fYXRvbWljX2hlbHBlcl9kaXNh YmxlX3BsYW5lX2ltcGwoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCXN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKIGludCBkcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmln KHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCk7CitpbnQgZHJtX2F0b21pY19oZWxwZXJfc2V0X2Nv bmZpZ19pbXBsKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCwKKwkJc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKTsKIAogaW50IGRybV9hdG9taWNfaGVscGVyX2NydGNfc2V0X3Byb3BlcnR5 KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVy dHksCi0tIAoyLjQuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK