From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [PATCH v2 05/12] drm/fb-helper: Add generic fbdev emulation .fb_probe function Date: Mon, 18 Jun 2018 16:17:32 +0200 Message-ID: <20180618141739.48151-6-noralf@tronnes.org> References: <20180618141739.48151-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180618141739.48151-1-noralf@tronnes.org> 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, =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= , laurent.pinchart@ideasonboard.com List-Id: dri-devel@lists.freedesktop.org VGhpcyBpcyB0aGUgZmlyc3Qgc3RlcCBpbiBnZXR0aW5nIGdlbmVyaWMgZmJkZXYgZW11bGF0aW9u LgpBIGRybV9mYl9oZWxwZXJfZnVuY3MuZmJfcHJvYmUgZnVuY3Rpb24gaXMgYWRkZWQgd2hpY2gg dXNlcyB0aGUKRFJNIGNsaWVudCBBUEkgdG8gZ2V0IGEgZnJhbWVidWZmZXIgYmFja2VkIGJ5IGEg ZHVtYiBidWZmZXIuCgpBIHRyYW5zaXRpb25hbCBoYWNrIGZvciB0aW55ZHJtIGlzIG5lZWRlZCBp biBvcmRlciB0byBzd2l0Y2ggb3ZlciBhbGwKQ01BIGhlbHBlciBkcml2ZXJzIGluIGEgbGF0ZXIg cGF0Y2guIFRoaXMgaGFjayB3aWxsIGJlIHJlbW92ZWQgd2hlbgp0aW55ZHJtIG1vdmVzIHRvIHZt YWxsb2MgYnVmZmVycy4KClNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5lcyA8bm9yYWxmQHRy b25uZXMub3JnPgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZnds bC5jaD4KLS0tCgpDaGFuZ2VzIHNpbmNlIHZlcnNpb24gMToKLSBFbWJlZCBkcm1fY2xpZW50IGF0 IHRoZSBiZWdpbm5pbmcgb2YgZHJtX2ZiX2hlbHBlciB0byBhdm9pZCBhIGZyYWdpbGUKICB0cmFu c2l0aW9uYWwga2ZyZWUgaGFjayBpbiBkcm1fY2xpZW50X3JlbGVhc2UoKQotIFNldCBvd25lciBp biBkcm1fZmJkZXZfZmJfb3BzCi0gQWRkIGtlcm5lbGRvYyB0byBkcm1fZmJfaGVscGVyX2dlbmVy aWNfcHJvYmUoKQoKCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jIHwgMjA5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIGluY2x1ZGUvZHJtL2RybV9mYl9o ZWxwZXIuaCAgICAgfCAgMzEgKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDIzOSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9o ZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKaW5kZXggMmVlMWVhYTY2 MTg4Li5iZTZiYWI4ODlmMWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVs cGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwpAQCAtMzAsNiArMzAs NyBAQAogI2RlZmluZSBwcl9mbXQoZm10KSBLQlVJTERfTU9ETkFNRSAiOiAiIGZtdAogCiAjaW5j bHVkZSA8bGludXgvY29uc29sZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KICNpbmNs dWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9zeXNycS5oPgogI2luY2x1ZGUg PGxpbnV4L3NsYWIuaD4KQEAgLTc0NSw2ICs3NDYsMjQgQEAgc3RhdGljIHZvaWQgZHJtX2ZiX2hl bHBlcl9yZXN1bWVfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAljb25zb2xlX3Vu bG9jaygpOwogfQogCitzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2RpcnR5X2JsaXRfcmVhbChz dHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLAorCQkJCQkgIHN0cnVjdCBkcm1fY2xpcF9y ZWN0ICpjbGlwKQoreworCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gZmJfaGVscGVyLT5m YjsKKwl1bnNpZ25lZCBpbnQgY3BwID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPmZvcm1hdC0+ Zm9ybWF0LCAwKTsKKwlzaXplX3Qgb2Zmc2V0ID0gY2xpcC0+eTEgKiBmYi0+cGl0Y2hlc1swXSAr IGNsaXAtPngxICogY3BwOworCXZvaWQgKnNyYyA9IGZiX2hlbHBlci0+ZmJkZXYtPnNjcmVlbl9i dWZmZXIgKyBvZmZzZXQ7CisJdm9pZCAqZHN0ID0gZmJfaGVscGVyLT5idWZmZXItPnZhZGRyICsg b2Zmc2V0OworCXNpemVfdCBsZW4gPSAoY2xpcC0+eDIgLSBjbGlwLT54MSkgKiBjcHA7CisJdW5z aWduZWQgaW50IHk7CisKKwlmb3IgKHkgPSBjbGlwLT55MTsgeSA8IGNsaXAtPnkyOyB5KyspIHsK KwkJbWVtY3B5KGRzdCwgc3JjLCBsZW4pOworCQlzcmMgKz0gZmItPnBpdGNoZXNbMF07CisJCWRz dCArPSBmYi0+cGl0Y2hlc1swXTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJf ZGlydHlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CiAJc3RydWN0IGRybV9mYl9o ZWxwZXIgKmhlbHBlciA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciwK QEAgLTc2MCw4ICs3NzksMTEgQEAgc3RhdGljIHZvaWQgZHJtX2ZiX2hlbHBlcl9kaXJ0eV93b3Jr KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZoZWxw ZXItPmRpcnR5X2xvY2ssIGZsYWdzKTsKIAogCS8qIGNhbGwgZGlydHkgY2FsbGJhY2sgb25seSB3 aGVuIGl0IGhhcyBiZWVuIHJlYWxseSB0b3VjaGVkICovCi0JaWYgKGNsaXBfY29weS54MSA8IGNs aXBfY29weS54MiAmJiBjbGlwX2NvcHkueTEgPCBjbGlwX2NvcHkueTIpCisJaWYgKGNsaXBfY29w eS54MSA8IGNsaXBfY29weS54MiAmJiBjbGlwX2NvcHkueTEgPCBjbGlwX2NvcHkueTIpIHsKKwkJ aWYgKGhlbHBlci0+YnVmZmVyKSAvKiBHZW5lcmljIGZiZGV2IHVzZXMgYSBzaGFkb3cgYnVmZmVy ICovCisJCQlkcm1fZmJfaGVscGVyX2RpcnR5X2JsaXRfcmVhbChoZWxwZXIsICZjbGlwX2NvcHkp OwogCQloZWxwZXItPmZiLT5mdW5jcy0+ZGlydHkoaGVscGVyLT5mYiwgTlVMTCwgMCwgMCwgJmNs aXBfY29weSwgMSk7CisJfQogfQogCiAvKioKQEAgLTI5MjgsNiArMjk1MCwxOTEgQEAgdm9pZCBk cm1fZmJfaGVscGVyX291dHB1dF9wb2xsX2NoYW5nZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IH0KIEVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFuZ2VkKTsKIAor LyogQHVzZXI6IDE9dXNlcnNwYWNlLCAwPWZiY29uICovCitzdGF0aWMgaW50IGRybV9mYmRldl9m Yl9vcGVuKHN0cnVjdCBmYl9pbmZvICppbmZvLCBpbnQgdXNlcikKK3sKKwlzdHJ1Y3QgZHJtX2Zi X2hlbHBlciAqZmJfaGVscGVyID0gaW5mby0+cGFyOworCisJaWYgKCF0cnlfbW9kdWxlX2dldChm Yl9oZWxwZXItPmRldi0+ZHJpdmVyLT5mb3BzLT5vd25lcikpCisJCXJldHVybiAtRU5PREVWOwor CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZHJtX2ZiZGV2X2ZiX3JlbGVhc2Uoc3RydWN0 IGZiX2luZm8gKmluZm8sIGludCB1c2VyKQoreworCXN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9o ZWxwZXIgPSBpbmZvLT5wYXI7CisKKwltb2R1bGVfcHV0KGZiX2hlbHBlci0+ZGV2LT5kcml2ZXIt PmZvcHMtPm93bmVyKTsKKworCXJldHVybiAwOworfQorCisvKgorICogRklYTUU6CisgKiBNZXJn ZSB0aGlzIGludG8gZHJtX2ZiZGV2X2dlbmVyaWNfY2xpZW50X3JlbGVhc2UoKSB3aGVuIGFsbCBD TUEgZHJpdmVycyBoYXZlCisgKiBiZWVuIG1vdmVkIG92ZXIgdG8gdXNpbmcgZHJtX2ZiZGV2X2dl bmVyaWNfc2V0dXAoKS4KKyAqLworc3RhdGljIHZvaWQgZHJtX2ZiZGV2X2dlbmVyaWNfY2xpZW50 X3JlbGVhc2VfZG8oc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpCit7CisJc3RydWN0IGRy bV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGRybV9mYl9oZWxwZXJfZnJvbV9jbGllbnQoY2xpZW50 KTsKKwlzdHJ1Y3QgZmJfaW5mbyAqZmJpID0gZmJfaGVscGVyLT5mYmRldjsKKwlib29sIGRlZmlv ID0gZmJpLT5mYmRlZmlvOworCXN0cnVjdCBmYl9vcHMgKmZib3BzOworCXZvaWQgKnNoYWRvdzsK KworCWlmIChkZWZpbykgeworCQlmYl9kZWZlcnJlZF9pb19jbGVhbnVwKGZiaSk7CisJCWZib3Bz ID0gZmJpLT5mYm9wczsKKwkJc2hhZG93ID0gZmJpLT5zY3JlZW5fYnVmZmVyOworCX0KKworCWRy bV9mYl9oZWxwZXJfZmluaShmYl9oZWxwZXIpOworCisJaWYgKGRlZmlvKSB7CisJCWtmcmVlKGZi b3BzKTsKKwkJdmZyZWUoc2hhZG93KTsKKwl9CisKKwlkcm1fY2xpZW50X2ZyYW1lYnVmZmVyX2Rl bGV0ZShmYl9oZWxwZXItPmJ1ZmZlcik7Cit9CisKKy8qCisgKiBmYl9vcHMuZmJfZGVzdHJveSBp cyBjYWxsZWQgYnkgdGhlIGxhc3QgcHV0X2ZiX2luZm8oKSBjYWxsIGF0IHRoZSBlbmQgb2YKKyAq IHVucmVnaXN0ZXJfZnJhbWVidWZmZXIoKSBvciBmYl9yZWxlYXNlKCkuCisgKi8KK3N0YXRpYyB2 b2lkIGRybV9mYmRldl9mYl9kZXN0cm95KHN0cnVjdCBmYl9pbmZvICppbmZvKQoreworCXN0cnVj dCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLT5wYXI7CisKKwkvKgorCSAqIEZJWE1F OgorCSAqIFJlbW92ZSB0aGlzIHdoZW4gYWxsIENNQSBkcml2ZXJzIGhhdmUgYmVlbiBtb3ZlZCBv dmVyIHRvIHVzaW5nCisJICogZHJtX2ZiZGV2X2dlbmVyaWNfc2V0dXAoKS4KKwkgKi8KKwlkcm1f ZmJkZXZfZ2VuZXJpY19jbGllbnRfcmVsZWFzZV9kbygmZmJfaGVscGVyLT5jbGllbnQpOworCisJ ZHJtX2NsaWVudF9wdXQoJmZiX2hlbHBlci0+Y2xpZW50KTsKK30KKworc3RhdGljIGludCBkcm1f ZmJkZXZfZmJfbW1hcChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgc3RydWN0IHZtX2FyZWFfc3RydWN0 ICp2bWEpCit7CisJc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGluZm8tPnBhcjsK KworCWlmIChmYl9oZWxwZXItPmRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfbW1hcCkKKwkJcmV0dXJu IGZiX2hlbHBlci0+ZGV2LT5kcml2ZXItPmdlbV9wcmltZV9tbWFwKGZiX2hlbHBlci0+YnVmZmVy LT5nZW0sIHZtYSk7CisJZWxzZQorCQlyZXR1cm4gLUVOT0RFVjsKK30KKworc3RhdGljIHN0cnVj dCBmYl9vcHMgZHJtX2ZiZGV2X2ZiX29wcyA9IHsKKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisJ RFJNX0ZCX0hFTFBFUl9ERUZBVUxUX09QUywKKwkuZmJfb3Blbgk9IGRybV9mYmRldl9mYl9vcGVu LAorCS5mYl9yZWxlYXNlCT0gZHJtX2ZiZGV2X2ZiX3JlbGVhc2UsCisJLmZiX2Rlc3Ryb3kJPSBk cm1fZmJkZXZfZmJfZGVzdHJveSwKKwkuZmJfbW1hcAk9IGRybV9mYmRldl9mYl9tbWFwLAorCS5m Yl9yZWFkCT0gZHJtX2ZiX2hlbHBlcl9zeXNfcmVhZCwKKwkuZmJfd3JpdGUJPSBkcm1fZmJfaGVs cGVyX3N5c193cml0ZSwKKwkuZmJfZmlsbHJlY3QJPSBkcm1fZmJfaGVscGVyX3N5c19maWxscmVj dCwKKwkuZmJfY29weWFyZWEJPSBkcm1fZmJfaGVscGVyX3N5c19jb3B5YXJlYSwKKwkuZmJfaW1h Z2VibGl0CT0gZHJtX2ZiX2hlbHBlcl9zeXNfaW1hZ2VibGl0LAorfTsKKworc3RhdGljIHN0cnVj dCBmYl9kZWZlcnJlZF9pbyBkcm1fZmJkZXZfZGVmaW8gPSB7CisJLmRlbGF5CQk9IEhaIC8gMjAs CisJLmRlZmVycmVkX2lvCT0gZHJtX2ZiX2hlbHBlcl9kZWZlcnJlZF9pbywKK307CisKKy8qKgor ICogZHJtX2ZiX2hlbHBlcl9nZW5lcmljX3Byb2JlIC0gR2VuZXJpYyBmYmRldiBlbXVsYXRpb24g cHJvYmUgaGVscGVyCisgKiBAZmJfaGVscGVyOiBmYmRldiBoZWxwZXIgc3RydWN0dXJlCisgKiBA c2l6ZXM6IGRlc2NyaWJlcyBmYmRldiBzaXplIGFuZCBzY2Fub3V0IHN1cmZhY2Ugc2l6ZQorICoK KyAqIFRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgY2xpZW50IEFQSSB0byBjcmF0ZSBhIGZyYW1lYnVm ZmVyIGJhY2tlZCBieSBhIGR1bWIgYnVmZmVyLgorICoKKyAqIFRoZSBfc3lzXyB2ZXJzaW9ucyBh cmUgdXNlZCBmb3IgJmZiX29wcy5mYl9yZWFkLCBmYl93cml0ZSwgZmJfZmlsbHJlY3QsCisgKiBm Yl9jb3B5YXJlYSwgZmJfaW1hZ2VibGl0LgorICoKKyAqIFJldHVybnM6CisgKiBaZXJvIG9uIHN1 Y2Nlc3Mgb3IgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX2Zi X2hlbHBlcl9nZW5lcmljX3Byb2JlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCisJ CQkJc3RydWN0IGRybV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplICpzaXplcykKK3sKKwlzdHJ1Y3Qg ZHJtX2NsaWVudF9kZXYgKmNsaWVudCA9ICZmYl9oZWxwZXItPmNsaWVudDsKKwlzdHJ1Y3QgZHJt X2NsaWVudF9idWZmZXIgKmJ1ZmZlcjsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKKwlz dHJ1Y3QgZmJfaW5mbyAqZmJpOworCXUzMiBmb3JtYXQ7CisJaW50IHJldDsKKworCURSTV9ERUJV R19LTVMoInN1cmZhY2Ugd2lkdGgoJWQpLCBoZWlnaHQoJWQpIGFuZCBicHAoJWQpXG4iLAorCQkg ICAgICBzaXplcy0+c3VyZmFjZV93aWR0aCwgc2l6ZXMtPnN1cmZhY2VfaGVpZ2h0LAorCQkgICAg ICBzaXplcy0+c3VyZmFjZV9icHApOworCisJZm9ybWF0ID0gZHJtX21vZGVfbGVnYWN5X2ZiX2Zv cm1hdChzaXplcy0+c3VyZmFjZV9icHAsIHNpemVzLT5zdXJmYWNlX2RlcHRoKTsKKwlidWZmZXIg PSBkcm1fY2xpZW50X2ZyYW1lYnVmZmVyX2NyZWF0ZShjbGllbnQsIHNpemVzLT5zdXJmYWNlX3dp ZHRoLAorCQkJCQkgICAgICAgc2l6ZXMtPnN1cmZhY2VfaGVpZ2h0LCBmb3JtYXQpOworCWlmIChJ U19FUlIoYnVmZmVyKSkKKwkJcmV0dXJuIFBUUl9FUlIoYnVmZmVyKTsKKworCWZiX2hlbHBlci0+ YnVmZmVyID0gYnVmZmVyOworCWZiX2hlbHBlci0+ZmIgPSBidWZmZXItPmZiOworCWZiID0gYnVm ZmVyLT5mYjsKKworCWZiaSA9IGRybV9mYl9oZWxwZXJfYWxsb2NfZmJpKGZiX2hlbHBlcik7CisJ aWYgKElTX0VSUihmYmkpKSB7CisJCXJldCA9IFBUUl9FUlIoZmJpKTsKKwkJZ290byBlcnJfZnJl ZV9idWZmZXI7CisJfQorCisJZmJpLT5wYXIgPSBmYl9oZWxwZXI7CisJZmJpLT5mYm9wcyA9ICZk cm1fZmJkZXZfZmJfb3BzOworCWZiaS0+c2NyZWVuX3NpemUgPSBmYi0+aGVpZ2h0ICogZmItPnBp dGNoZXNbMF07CisJZmJpLT5maXguc21lbV9sZW4gPSBmYmktPnNjcmVlbl9zaXplOworCWZiaS0+ c2NyZWVuX2J1ZmZlciA9IGJ1ZmZlci0+dmFkZHI7CisJc3RyY3B5KGZiaS0+Zml4LmlkLCAiRFJN IGVtdWxhdGVkIik7CisKKwlkcm1fZmJfaGVscGVyX2ZpbGxfZml4KGZiaSwgZmItPnBpdGNoZXNb MF0sIGZiLT5mb3JtYXQtPmRlcHRoKTsKKwlkcm1fZmJfaGVscGVyX2ZpbGxfdmFyKGZiaSwgZmJf aGVscGVyLCBzaXplcy0+ZmJfd2lkdGgsIHNpemVzLT5mYl9oZWlnaHQpOworCisJaWYgKGZiLT5m dW5jcy0+ZGlydHkpIHsKKwkJc3RydWN0IGZiX29wcyAqZmJvcHM7CisJCXZvaWQgKnNoYWRvdzsK KworCQkvKgorCQkgKiBmYl9kZWZlcnJlZF9pb19jbGVhbnVwKCkgY2xlYXJzICZmYm9wcy0+ZmJf bW1hcCBzbyBhIHBlcgorCQkgKiBpbnN0YW5jZSB2ZXJzaW9uIGlzIG5lY2Vzc2FyeS4KKwkJICov CisJCWZib3BzID0ga3phbGxvYyhzaXplb2YoKmZib3BzKSwgR0ZQX0tFUk5FTCk7CisJCXNoYWRv dyA9IHZ6YWxsb2MoZmJpLT5zY3JlZW5fc2l6ZSk7CisJCWlmICghZmJvcHMgfHwgIXNoYWRvdykg eworCQkJa2ZyZWUoZmJvcHMpOworCQkJdmZyZWUoc2hhZG93KTsKKwkJCXJldCA9IC1FTk9NRU07 CisJCQlnb3RvIGVycl9mYl9pbmZvX2Rlc3Ryb3k7CisJCX0KKworCQkqZmJvcHMgPSAqZmJpLT5m Ym9wczsKKwkJZmJpLT5mYm9wcyA9IGZib3BzOworCQlmYmktPnNjcmVlbl9idWZmZXIgPSBzaGFk b3c7CisJCWZiaS0+ZmJkZWZpbyA9ICZkcm1fZmJkZXZfZGVmaW87CisKKwkJZmJfZGVmZXJyZWRf aW9faW5pdChmYmkpOworCX0KKworCXJldHVybiAwOworCitlcnJfZmJfaW5mb19kZXN0cm95Ogor CWRybV9mYl9oZWxwZXJfZmluaShmYl9oZWxwZXIpOworZXJyX2ZyZWVfYnVmZmVyOgorCWRybV9j bGllbnRfZnJhbWVidWZmZXJfZGVsZXRlKGJ1ZmZlcik7CisKKwlyZXR1cm4gcmV0OworfQorRVhQ T1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2dlbmVyaWNfcHJvYmUpOworCiAvKiBUaGUgS2NvbmZp ZyBEUk1fS01TX0hFTFBFUiBzZWxlY3RzIEZSQU1FQlVGRkVSX0NPTlNPTEUgKGlmICFFWFBFUlQp CiAgKiBidXQgdGhlIG1vZHVsZSBkb2Vzbid0IGRlcGVuZCBvbiBhbnkgZmIgY29uc29sZSBzeW1i b2xzLiAgQXQgbGVhc3QKICAqIGF0dGVtcHQgdG8gbG9hZCBmYmNvbiB0byBhdm9pZCBsZWF2aW5n IHRoZSBzeXN0ZW0gd2l0aG91dCBhIHVzYWJsZSBjb25zb2xlLgpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX2ZiX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCmluZGV4 IGIwNjk0MzNlN2ZjMS4uYzEzNGJiY2ZkMmU5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1f ZmJfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCkBAIC0zMiw2ICsz Miw3IEBACiAKIHN0cnVjdCBkcm1fZmJfaGVscGVyOwogCisjaW5jbHVkZSA8ZHJtL2RybV9jbGll bnQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2Rldmlj ZS5oPgogI2luY2x1ZGUgPGxpbnV4L2tnZGIuaD4KQEAgLTE1NCw2ICsxNTUsMjAgQEAgc3RydWN0 IGRybV9mYl9oZWxwZXJfY29ubmVjdG9yIHsKICAqIG9wZXJhdGlvbnMuCiAgKi8KIHN0cnVjdCBk cm1fZmJfaGVscGVyIHsKKwkvKioKKwkgKiBAY2xpZW50OgorCSAqCisJICogRFJNIGNsaWVudCB1 c2VkIGJ5IHRoZSBnZW5lcmljIGZiZGV2IGVtdWxhdGlvbi4KKwkgKi8KKwlzdHJ1Y3QgZHJtX2Ns aWVudF9kZXYgY2xpZW50OworCisJLyoqCisJICogQGJ1ZmZlcjoKKwkgKgorCSAqIEZyYW1lYnVm ZmVyIHVzZWQgYnkgdGhlIGdlbmVyaWMgZmJkZXYgZW11bGF0aW9uLgorCSAqLworCXN0cnVjdCBk cm1fY2xpZW50X2J1ZmZlciAqYnVmZmVyOworCiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7 CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKIAlpbnQgY3J0Y19jb3VudDsKQEAgLTIzNCw2ICsy NDksMTIgQEAgc3RydWN0IGRybV9mYl9oZWxwZXIgewogCWludCBwcmVmZXJyZWRfYnBwOwogfTsK IAorc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqCitkcm1fZmJfaGVscGVyX2Zy b21fY2xpZW50KHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KQoreworCXJldHVybiBjb250 YWluZXJfb2YoY2xpZW50LCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciwgY2xpZW50KTsKK30KKwogLyoq CiAgKiBkZWZpbmUgRFJNX0ZCX0hFTFBFUl9ERUZBVUxUX09QUyAtIGhlbHBlciBkZWZpbmUgZm9y IGRybSBkcml2ZXJzCiAgKgpAQCAtMzMwLDYgKzM1MSw5IEBAIHZvaWQgZHJtX2ZiX2hlbHBlcl9m YmRldl90ZWFyZG93bihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIAogdm9pZCBkcm1fZmJfaGVs cGVyX2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgZHJtX2ZiX2hlbHBl cl9vdXRwdXRfcG9sbF9jaGFuZ2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCitpbnQgZHJt X2ZiX2hlbHBlcl9nZW5lcmljX3Byb2JlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIs CisJCQkJc3RydWN0IGRybV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplICpzaXplcyk7CiAjZWxzZQog c3RhdGljIGlubGluZSB2b2lkIGRybV9mYl9oZWxwZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCQkJCQlzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLApAQCAtNTY0LDYgKzU4 OCwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFu Z2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50Citk cm1fZmJfaGVscGVyX2dlbmVyaWNfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBl ciwKKwkJCSAgICBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3NpemUgKnNpemVzKQorewor CXJldHVybiAwOworfQorCiAjZW5kaWYKIAogc3RhdGljIGlubGluZSBpbnQKLS0gCjIuMTUuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==