From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [PATCH v4 2/9] drm/fb-helper: Add generic fbdev emulation .fb_probe function Date: Mon, 2 Jul 2018 15:54:26 +0200 Message-ID: <20180702135433.7960-3-noralf@tronnes.org> References: <20180702135433.7960-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180702135433.7960-1-noralf@tronnes.org> 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: intel-gfx@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, david@lechnology.com List-Id: dri-devel@lists.freedesktop.org VGhpcyBpcyB0aGUgZmlyc3Qgc3RlcCBpbiBnZXR0aW5nIGdlbmVyaWMgZmJkZXYgZW11bGF0aW9u LgpBIGRybV9mYl9oZWxwZXJfZnVuY3MuZmJfcHJvYmUgZnVuY3Rpb24gaXMgYWRkZWQgd2hpY2gg dXNlcyB0aGUKRFJNIGNsaWVudCBBUEkgdG8gZ2V0IGEgZnJhbWVidWZmZXIgYmFja2VkIGJ5IGEg ZHVtYiBidWZmZXIuCgpTaWduZWQtb2ZmLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9u bmVzLm9yZz4KUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwu Y2g+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyB8IDE5MiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBpbmNsdWRlL2RybS9kcm1fZmJfaGVscGVy LmggICAgIHwgIDMxICsrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjIyIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwppbmRleCBjYWIxNGYyNTMzODQu LjBhMGE1NzdlYmMzYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCkBAIC0zMCw2ICszMCw3IEBA CiAjZGVmaW5lIHByX2ZtdChmbXQpIEtCVUlMRF9NT0ROQU1FICI6ICIgZm10CiAKICNpbmNsdWRl IDxsaW51eC9jb25zb2xlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogI2luY2x1ZGUg PGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c3JxLmg+CiAjaW5jbHVkZSA8bGlu dXgvc2xhYi5oPgpAQCAtNzM4LDYgKzczOSwyNCBAQCBzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVy X3Jlc3VtZV93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCWNvbnNvbGVfdW5sb2Nr KCk7CiB9CiAKK3N0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZGlydHlfYmxpdF9yZWFsKHN0cnVj dCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCisJCQkJCSAgc3RydWN0IGRybV9jbGlwX3JlY3Qg KmNsaXApCit7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBmYl9oZWxwZXItPmZiOwor CXVuc2lnbmVkIGludCBjcHAgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+Zm9ybWF0LT5mb3Jt YXQsIDApOworCXNpemVfdCBvZmZzZXQgPSBjbGlwLT55MSAqIGZiLT5waXRjaGVzWzBdICsgY2xp cC0+eDEgKiBjcHA7CisJdm9pZCAqc3JjID0gZmJfaGVscGVyLT5mYmRldi0+c2NyZWVuX2J1ZmZl ciArIG9mZnNldDsKKwl2b2lkICpkc3QgPSBmYl9oZWxwZXItPmJ1ZmZlci0+dmFkZHIgKyBvZmZz ZXQ7CisJc2l6ZV90IGxlbiA9IChjbGlwLT54MiAtIGNsaXAtPngxKSAqIGNwcDsKKwl1bnNpZ25l ZCBpbnQgeTsKKworCWZvciAoeSA9IGNsaXAtPnkxOyB5IDwgY2xpcC0+eTI7IHkrKykgeworCQlt ZW1jcHkoZHN0LCBzcmMsIGxlbik7CisJCXNyYyArPSBmYi0+cGl0Y2hlc1swXTsKKwkJZHN0ICs9 IGZiLT5waXRjaGVzWzBdOworCX0KK30KKwogc3RhdGljIHZvaWQgZHJtX2ZiX2hlbHBlcl9kaXJ0 eV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqaGVscGVyID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1fZmJfaGVscGVyLApAQCAt NzUzLDggKzc3MiwxMiBAQCBzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2RpcnR5X3dvcmsoc3Ry dWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmhlbHBlci0+ ZGlydHlfbG9jaywgZmxhZ3MpOwogCiAJLyogY2FsbCBkaXJ0eSBjYWxsYmFjayBvbmx5IHdoZW4g aXQgaGFzIGJlZW4gcmVhbGx5IHRvdWNoZWQgKi8KLQlpZiAoY2xpcF9jb3B5LngxIDwgY2xpcF9j b3B5LngyICYmIGNsaXBfY29weS55MSA8IGNsaXBfY29weS55MikKKwlpZiAoY2xpcF9jb3B5Lngx IDwgY2xpcF9jb3B5LngyICYmIGNsaXBfY29weS55MSA8IGNsaXBfY29weS55MikgeworCQkvKiBH ZW5lcmljIGZiZGV2IHVzZXMgYSBzaGFkb3cgYnVmZmVyICovCisJCWlmIChoZWxwZXItPmJ1ZmZl cikKKwkJCWRybV9mYl9oZWxwZXJfZGlydHlfYmxpdF9yZWFsKGhlbHBlciwgJmNsaXBfY29weSk7 CiAJCWhlbHBlci0+ZmItPmZ1bmNzLT5kaXJ0eShoZWxwZXItPmZiLCBOVUxMLCAwLCAwLCAmY2xp cF9jb3B5LCAxKTsKKwl9CiB9CiAKIC8qKgpAQCAtMjkyMSw2ICsyOTQ0LDE3MyBAQCB2b2lkIGRy bV9mYl9oZWxwZXJfb3V0cHV0X3BvbGxfY2hhbmdlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog fQogRVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX291dHB1dF9wb2xsX2NoYW5nZWQpOwogCisv KiBAdXNlcjogMT11c2Vyc3BhY2UsIDA9ZmJjb24gKi8KK3N0YXRpYyBpbnQgZHJtX2ZiZGV2X2Zi X29wZW4oc3RydWN0IGZiX2luZm8gKmluZm8sIGludCB1c2VyKQoreworCXN0cnVjdCBkcm1fZmJf aGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLT5wYXI7CisKKwlpZiAoIXRyeV9tb2R1bGVfZ2V0KGZi X2hlbHBlci0+ZGV2LT5kcml2ZXItPmZvcHMtPm93bmVyKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisK KwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBkcm1fZmJkZXZfZmJfcmVsZWFzZShzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbywgaW50IHVzZXIpCit7CisJc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hl bHBlciA9IGluZm8tPnBhcjsKKworCW1vZHVsZV9wdXQoZmJfaGVscGVyLT5kZXYtPmRyaXZlci0+ Zm9wcy0+b3duZXIpOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBmYl9vcHMuZmJfZGVzdHJv eSBpcyBjYWxsZWQgYnkgdGhlIGxhc3QgcHV0X2ZiX2luZm8oKSBjYWxsIGF0IHRoZSBlbmQgb2YK KyAqIHVucmVnaXN0ZXJfZnJhbWVidWZmZXIoKSBvciBmYl9yZWxlYXNlKCkuCisgKi8KK3N0YXRp YyB2b2lkIGRybV9mYmRldl9mYl9kZXN0cm95KHN0cnVjdCBmYl9pbmZvICppbmZvKQoreworCXN0 cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLT5wYXI7CisJc3RydWN0IGZiX2lu Zm8gKmZiaSA9IGZiX2hlbHBlci0+ZmJkZXY7CisJc3RydWN0IGZiX29wcyAqZmJvcHMgPSBOVUxM OworCXZvaWQgKnNoYWRvdyA9IE5VTEw7CisKKwlpZiAoZmJpLT5mYmRlZmlvKSB7CisJCWZiX2Rl ZmVycmVkX2lvX2NsZWFudXAoZmJpKTsKKwkJc2hhZG93ID0gZmJpLT5zY3JlZW5fYnVmZmVyOwor CQlmYm9wcyA9IGZiaS0+ZmJvcHM7CisJfQorCisJZHJtX2ZiX2hlbHBlcl9maW5pKGZiX2hlbHBl cik7CisKKwlpZiAoc2hhZG93KSB7CisJCXZmcmVlKHNoYWRvdyk7CisJCWtmcmVlKGZib3BzKTsK Kwl9CisKKwlkcm1fY2xpZW50X2ZyYW1lYnVmZmVyX2RlbGV0ZShmYl9oZWxwZXItPmJ1ZmZlcik7 CisJZHJtX2NsaWVudF9yZWxlYXNlKCZmYl9oZWxwZXItPmNsaWVudCk7CisJa2ZyZWUoZmJfaGVs cGVyKTsKK30KKworc3RhdGljIGludCBkcm1fZmJkZXZfZmJfbW1hcChzdHJ1Y3QgZmJfaW5mbyAq aW5mbywgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCit7CisJc3RydWN0IGRybV9mYl9oZWxw ZXIgKmZiX2hlbHBlciA9IGluZm8tPnBhcjsKKworCWlmIChmYl9oZWxwZXItPmRldi0+ZHJpdmVy LT5nZW1fcHJpbWVfbW1hcCkKKwkJcmV0dXJuIGZiX2hlbHBlci0+ZGV2LT5kcml2ZXItPmdlbV9w cmltZV9tbWFwKGZiX2hlbHBlci0+YnVmZmVyLT5nZW0sIHZtYSk7CisJZWxzZQorCQlyZXR1cm4g LUVOT0RFVjsKK30KKworc3RhdGljIHN0cnVjdCBmYl9vcHMgZHJtX2ZiZGV2X2ZiX29wcyA9IHsK Kwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisJRFJNX0ZCX0hFTFBFUl9ERUZBVUxUX09QUywKKwku ZmJfb3Blbgk9IGRybV9mYmRldl9mYl9vcGVuLAorCS5mYl9yZWxlYXNlCT0gZHJtX2ZiZGV2X2Zi X3JlbGVhc2UsCisJLmZiX2Rlc3Ryb3kJPSBkcm1fZmJkZXZfZmJfZGVzdHJveSwKKwkuZmJfbW1h cAk9IGRybV9mYmRldl9mYl9tbWFwLAorCS5mYl9yZWFkCT0gZHJtX2ZiX2hlbHBlcl9zeXNfcmVh ZCwKKwkuZmJfd3JpdGUJPSBkcm1fZmJfaGVscGVyX3N5c193cml0ZSwKKwkuZmJfZmlsbHJlY3QJ PSBkcm1fZmJfaGVscGVyX3N5c19maWxscmVjdCwKKwkuZmJfY29weWFyZWEJPSBkcm1fZmJfaGVs cGVyX3N5c19jb3B5YXJlYSwKKwkuZmJfaW1hZ2VibGl0CT0gZHJtX2ZiX2hlbHBlcl9zeXNfaW1h Z2VibGl0LAorfTsKKworc3RhdGljIHN0cnVjdCBmYl9kZWZlcnJlZF9pbyBkcm1fZmJkZXZfZGVm aW8gPSB7CisJLmRlbGF5CQk9IEhaIC8gMjAsCisJLmRlZmVycmVkX2lvCT0gZHJtX2ZiX2hlbHBl cl9kZWZlcnJlZF9pbywKK307CisKKy8qKgorICogZHJtX2ZiX2hlbHBlcl9nZW5lcmljX3Byb2Jl IC0gR2VuZXJpYyBmYmRldiBlbXVsYXRpb24gcHJvYmUgaGVscGVyCisgKiBAZmJfaGVscGVyOiBm YmRldiBoZWxwZXIgc3RydWN0dXJlCisgKiBAc2l6ZXM6IGRlc2NyaWJlcyBmYmRldiBzaXplIGFu ZCBzY2Fub3V0IHN1cmZhY2Ugc2l6ZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgY2xp ZW50IEFQSSB0byBjcmF0ZSBhIGZyYW1lYnVmZmVyIGJhY2tlZCBieSBhIGR1bWIgYnVmZmVyLgor ICoKKyAqIFRoZSBfc3lzXyB2ZXJzaW9ucyBhcmUgdXNlZCBmb3IgJmZiX29wcy5mYl9yZWFkLCBm Yl93cml0ZSwgZmJfZmlsbHJlY3QsCisgKiBmYl9jb3B5YXJlYSwgZmJfaW1hZ2VibGl0LgorICoK KyAqIFJldHVybnM6CisgKiBaZXJvIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgZXJyb3IgY29kZSBv biBmYWlsdXJlLgorICovCitpbnQgZHJtX2ZiX2hlbHBlcl9nZW5lcmljX3Byb2JlKHN0cnVjdCBk cm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCisJCQkJc3RydWN0IGRybV9mYl9oZWxwZXJfc3VyZmFj ZV9zaXplICpzaXplcykKK3sKKwlzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCA9ICZmYl9o ZWxwZXItPmNsaWVudDsKKwlzdHJ1Y3QgZHJtX2NsaWVudF9idWZmZXIgKmJ1ZmZlcjsKKwlzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKKwlzdHJ1Y3QgZmJfaW5mbyAqZmJpOworCXUzMiBmb3Jt YXQ7CisJaW50IHJldDsKKworCURSTV9ERUJVR19LTVMoInN1cmZhY2Ugd2lkdGgoJWQpLCBoZWln aHQoJWQpIGFuZCBicHAoJWQpXG4iLAorCQkgICAgICBzaXplcy0+c3VyZmFjZV93aWR0aCwgc2l6 ZXMtPnN1cmZhY2VfaGVpZ2h0LAorCQkgICAgICBzaXplcy0+c3VyZmFjZV9icHApOworCisJZm9y bWF0ID0gZHJtX21vZGVfbGVnYWN5X2ZiX2Zvcm1hdChzaXplcy0+c3VyZmFjZV9icHAsIHNpemVz LT5zdXJmYWNlX2RlcHRoKTsKKwlidWZmZXIgPSBkcm1fY2xpZW50X2ZyYW1lYnVmZmVyX2NyZWF0 ZShjbGllbnQsIHNpemVzLT5zdXJmYWNlX3dpZHRoLAorCQkJCQkgICAgICAgc2l6ZXMtPnN1cmZh Y2VfaGVpZ2h0LCBmb3JtYXQpOworCWlmIChJU19FUlIoYnVmZmVyKSkKKwkJcmV0dXJuIFBUUl9F UlIoYnVmZmVyKTsKKworCWZiX2hlbHBlci0+YnVmZmVyID0gYnVmZmVyOworCWZiX2hlbHBlci0+ ZmIgPSBidWZmZXItPmZiOworCWZiID0gYnVmZmVyLT5mYjsKKworCWZiaSA9IGRybV9mYl9oZWxw ZXJfYWxsb2NfZmJpKGZiX2hlbHBlcik7CisJaWYgKElTX0VSUihmYmkpKSB7CisJCXJldCA9IFBU Ul9FUlIoZmJpKTsKKwkJZ290byBlcnJfZnJlZV9idWZmZXI7CisJfQorCisJZmJpLT5wYXIgPSBm Yl9oZWxwZXI7CisJZmJpLT5mYm9wcyA9ICZkcm1fZmJkZXZfZmJfb3BzOworCWZiaS0+c2NyZWVu X3NpemUgPSBmYi0+aGVpZ2h0ICogZmItPnBpdGNoZXNbMF07CisJZmJpLT5maXguc21lbV9sZW4g PSBmYmktPnNjcmVlbl9zaXplOworCWZiaS0+c2NyZWVuX2J1ZmZlciA9IGJ1ZmZlci0+dmFkZHI7 CisJc3RyY3B5KGZiaS0+Zml4LmlkLCAiRFJNIGVtdWxhdGVkIik7CisKKwlkcm1fZmJfaGVscGVy X2ZpbGxfZml4KGZiaSwgZmItPnBpdGNoZXNbMF0sIGZiLT5mb3JtYXQtPmRlcHRoKTsKKwlkcm1f ZmJfaGVscGVyX2ZpbGxfdmFyKGZiaSwgZmJfaGVscGVyLCBzaXplcy0+ZmJfd2lkdGgsIHNpemVz LT5mYl9oZWlnaHQpOworCisJaWYgKGZiLT5mdW5jcy0+ZGlydHkpIHsKKwkJc3RydWN0IGZiX29w cyAqZmJvcHM7CisJCXZvaWQgKnNoYWRvdzsKKworCQkvKgorCQkgKiBmYl9kZWZlcnJlZF9pb19j bGVhbnVwKCkgY2xlYXJzICZmYm9wcy0+ZmJfbW1hcCBzbyBhIHBlcgorCQkgKiBpbnN0YW5jZSB2 ZXJzaW9uIGlzIG5lY2Vzc2FyeS4KKwkJICovCisJCWZib3BzID0ga3phbGxvYyhzaXplb2YoKmZi b3BzKSwgR0ZQX0tFUk5FTCk7CisJCXNoYWRvdyA9IHZ6YWxsb2MoZmJpLT5zY3JlZW5fc2l6ZSk7 CisJCWlmICghZmJvcHMgfHwgIXNoYWRvdykgeworCQkJa2ZyZWUoZmJvcHMpOworCQkJdmZyZWUo c2hhZG93KTsKKwkJCXJldCA9IC1FTk9NRU07CisJCQlnb3RvIGVycl9mYl9pbmZvX2Rlc3Ryb3k7 CisJCX0KKworCQkqZmJvcHMgPSAqZmJpLT5mYm9wczsKKwkJZmJpLT5mYm9wcyA9IGZib3BzOwor CQlmYmktPnNjcmVlbl9idWZmZXIgPSBzaGFkb3c7CisJCWZiaS0+ZmJkZWZpbyA9ICZkcm1fZmJk ZXZfZGVmaW87CisKKwkJZmJfZGVmZXJyZWRfaW9faW5pdChmYmkpOworCX0KKworCXJldHVybiAw OworCitlcnJfZmJfaW5mb19kZXN0cm95OgorCWRybV9mYl9oZWxwZXJfZmluaShmYl9oZWxwZXIp OworZXJyX2ZyZWVfYnVmZmVyOgorCWRybV9jbGllbnRfZnJhbWVidWZmZXJfZGVsZXRlKGJ1ZmZl cik7CisKKwlyZXR1cm4gcmV0OworfQorRVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2dlbmVy aWNfcHJvYmUpOworCiAvKiBUaGUgS2NvbmZpZyBEUk1fS01TX0hFTFBFUiBzZWxlY3RzIEZSQU1F QlVGRkVSX0NPTlNPTEUgKGlmICFFWFBFUlQpCiAgKiBidXQgdGhlIG1vZHVsZSBkb2Vzbid0IGRl cGVuZCBvbiBhbnkgZmIgY29uc29sZSBzeW1ib2xzLiAgQXQgbGVhc3QKICAqIGF0dGVtcHQgdG8g bG9hZCBmYmNvbiB0byBhdm9pZCBsZWF2aW5nIHRoZSBzeXN0ZW0gd2l0aG91dCBhIHVzYWJsZSBj b25zb2xlLgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oIGIvaW5jbHVk ZS9kcm0vZHJtX2ZiX2hlbHBlci5oCmluZGV4IGIwNjk0MzNlN2ZjMS4uYzEzNGJiY2ZkMmU5IDEw MDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0v ZHJtX2ZiX2hlbHBlci5oCkBAIC0zMiw2ICszMiw3IEBACiAKIHN0cnVjdCBkcm1fZmJfaGVscGVy OwogCisjaW5jbHVkZSA8ZHJtL2RybV9jbGllbnQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMu aD4KICNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2tnZGIuaD4K QEAgLTE1NCw2ICsxNTUsMjAgQEAgc3RydWN0IGRybV9mYl9oZWxwZXJfY29ubmVjdG9yIHsKICAq IG9wZXJhdGlvbnMuCiAgKi8KIHN0cnVjdCBkcm1fZmJfaGVscGVyIHsKKwkvKioKKwkgKiBAY2xp ZW50OgorCSAqCisJICogRFJNIGNsaWVudCB1c2VkIGJ5IHRoZSBnZW5lcmljIGZiZGV2IGVtdWxh dGlvbi4KKwkgKi8KKwlzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgY2xpZW50OworCisJLyoqCisJICog QGJ1ZmZlcjoKKwkgKgorCSAqIEZyYW1lYnVmZmVyIHVzZWQgYnkgdGhlIGdlbmVyaWMgZmJkZXYg ZW11bGF0aW9uLgorCSAqLworCXN0cnVjdCBkcm1fY2xpZW50X2J1ZmZlciAqYnVmZmVyOworCiAJ c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKIAlp bnQgY3J0Y19jb3VudDsKQEAgLTIzNCw2ICsyNDksMTIgQEAgc3RydWN0IGRybV9mYl9oZWxwZXIg ewogCWludCBwcmVmZXJyZWRfYnBwOwogfTsKIAorc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2Zi X2hlbHBlciAqCitkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KHN0cnVjdCBkcm1fY2xpZW50X2Rl diAqY2xpZW50KQoreworCXJldHVybiBjb250YWluZXJfb2YoY2xpZW50LCBzdHJ1Y3QgZHJtX2Zi X2hlbHBlciwgY2xpZW50KTsKK30KKwogLyoqCiAgKiBkZWZpbmUgRFJNX0ZCX0hFTFBFUl9ERUZB VUxUX09QUyAtIGhlbHBlciBkZWZpbmUgZm9yIGRybSBkcml2ZXJzCiAgKgpAQCAtMzMwLDYgKzM1 MSw5IEBAIHZvaWQgZHJtX2ZiX2hlbHBlcl9mYmRldl90ZWFyZG93bihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKIAogdm9pZCBkcm1fZmJfaGVscGVyX2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKIHZvaWQgZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFuZ2VkKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOworCitpbnQgZHJtX2ZiX2hlbHBlcl9nZW5lcmljX3Byb2JlKHN0cnVj dCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCisJCQkJc3RydWN0IGRybV9mYl9oZWxwZXJfc3Vy ZmFjZV9zaXplICpzaXplcyk7CiAjZWxzZQogc3RhdGljIGlubGluZSB2b2lkIGRybV9mYl9oZWxw ZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQlzdHJ1Y3QgZHJtX2ZiX2hl bHBlciAqaGVscGVyLApAQCAtNTY0LDYgKzU4OCwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZHJt X2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFuZ2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7 CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50Citkcm1fZmJfaGVscGVyX2dlbmVyaWNfcHJvYmUoc3Ry dWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKKwkJCSAgICBzdHJ1Y3QgZHJtX2ZiX2hlbHBl cl9zdXJmYWNlX3NpemUgKnNpemVzKQoreworCXJldHVybiAwOworfQorCiAjZW5kaWYKIAogc3Rh dGljIGlubGluZSBpbnQKLS0gCjIuMTUuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCg==