From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [PATCH v4 4/5] drm: simpledrm: add fbdev fallback support Date: Mon, 22 Aug 2016 22:25:24 +0200 Message-ID: <1471897525-31118-5-git-send-email-noralf@tronnes.org> References: <1471897525-31118-1-git-send-email-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1471897525-31118-1-git-send-email-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: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org List-Id: devicetree@vger.kernel.org Q3JlYXRlIGEgc2ltcGxlIGZiZGV2IGRldmljZSBkdXJpbmcgU2ltcGxlRFJNIHNldHVwIHNvIGxl Z2FjeSB1c2VyLXNwYWNlCmFuZCBmYmNvbiBjYW4gdXNlIGl0LgoKT3JpZ2luYWwgd29yayBieSBE YXZpZCBIZXJybWFubi4KCkNjOiBkaC5oZXJybWFubkBnbWFpbC5jb20KU2lnbmVkLW9mZi1ieTog Tm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Ci0tLQoKQ2hhbmdlcyBmcm9tIHZl cnNpb24gMzoKLSBSZW1vdmUgI2lmZGVmIENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OCi0gVXNl IGRybV9mYl9oZWxwZXJfc2V0X3N1c3BlbmRfbG9jaygpCi0gRG9uJ3QgYWNjZXNzIHRoZSBuYXRp dmUgZnJhbWVidWZmZXIgZGlyZWN0bHksIGJ1dCBkbyBibGl0dGluZyBoZXJlIGFzIHdlbGwuCi0g VXNlIHRoZSBkcm1fZmJfaGVscGVyX3N5c18qKCkgZnVuY3Rpb25zIGluc3RlYWQgb2YgdGhlIGNm YiB2ZXJzaW9ucy4KLSBSZW1vdmUgRkJJTkZPX0NBTl9GT1JDRV9PVVRQVVQgZmxhZyB3aGljaCBk b2Vzbid0IHdvcmsgbm93LgotIFBhc3Mgc3RydWN0IGRybV9mYl9oZWxwZXIgYXJvdW5kIGluc3Rl YWQgb2Ygc3RydWN0IHNkcm1fZmJkZXYuCgpDaGFuZ2VzIGZyb20gdmVyc2lvbiAyOgotIFN3aXRj aCB0byB1c2luZyBkcm1fZmJfaGVscGVyIGluIHByZXBhcmF0aW9uIGZvciBmdXR1cmUgcGFuaWMg aGFuZGxpbmcKICB3aGljaCBuZWVkcyBhbiBlbmFibGVkIHBpcGVsaW5lLgoKQ2hhbmdlcyBmcm9t IHZlcnNpb24gMToKICBObyBjaGFuZ2VzCgpDaGFuZ2VzIGZyb20gcHJldmlvdXMgdmVyc2lvbjoK LSBSZW1vdmUgdGhlIERSTV9TSU1QTEVEUk1fRkJERVYga2NvbmZpZyBvcHRpb24gYW5kIHVzZSBE Uk1fRkJERVZfRU1VTEFUSU9OCi0gU3VzcGVuZCBmYmNvbi9mYmRldiB3aGVuIHRoZSBwaXBlbGlu ZSBpcyBlbmFibGVkLCByZXN1bWUgaW4gbGFzdGNsb3NlCi0gQWRkIEZCSU5GT19DQU5fRk9SQ0Vf T1VUUFVUIGZsYWcgc28gd2UgZ2V0IG9vcHMnZXMgb24gdGhlIGNvbnNvbGUKCiBkcml2ZXJzL2dw dS9kcm0vc2ltcGxlZHJtL0tjb25maWcgICAgICAgICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2Ry bS9zaW1wbGVkcm0vTWFrZWZpbGUgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9z aW1wbGVkcm0vc2ltcGxlZHJtLmggICAgICAgfCAgIDUgKwogZHJpdmVycy9ncHUvZHJtL3NpbXBs ZWRybS9zaW1wbGVkcm1fZHJ2LmMgICB8ICAgNCArCiBkcml2ZXJzL2dwdS9kcm0vc2ltcGxlZHJt L3NpbXBsZWRybV9mYmRldi5jIHwgMjAxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRy aXZlcnMvZ3B1L2RybS9zaW1wbGVkcm0vc2ltcGxlZHJtX2ttcy5jICAgfCAgMTQgKysKIDYgZmls ZXMgY2hhbmdlZCwgMjI4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vc2ltcGxlZHJtL3NpbXBsZWRybV9mYmRldi5jCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NpbXBsZWRybS9LY29uZmlnIGIvZHJpdmVycy9ncHUv ZHJtL3NpbXBsZWRybS9LY29uZmlnCmluZGV4IGY0NWIyNWQuLjMyNTc1OTAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9zaW1wbGVkcm0vS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0v c2ltcGxlZHJtL0tjb25maWcKQEAgLTEzLDYgKzEzLDkgQEAgY29uZmlnIERSTV9TSU1QTEVEUk0K IAkgIFNpbXBsZURSTSBzdXBwb3J0cyAic2ltcGxlLWZyYW1lYnVmZmVyIiBEZXZpY2VUcmVlIG9i amVjdHMgYW5kCiAJICBjb21wYXRpYmxlIHBsYXRmb3JtIGZyYW1lYnVmZmVycy4KCisJICBJZiBm YmRldiBzdXBwb3J0IGlzIGVuYWJsZWQsIHRoaXMgZHJpdmVyIHdpbGwgYWxzbyBwcm92aWRlIGFu IGZiZGV2CisJICBjb21wYXRpYmlsaXR5IGxheWVyIHRoYXQgc3VwcG9ydHMgZmJjb24sIG1tYXAg aXMgbm90IHN1cHBvcnRlZC4KKwogCSAgSWYgdW5zdXJlLCBzYXkgWS4KCiAJICBUbyBjb21waWxl IHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9zaW1wbGVkcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vc2lt cGxlZHJtL01ha2VmaWxlCmluZGV4IGY2YTYyZGMuLjU0NzRmN2YgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9zaW1wbGVkcm0vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL3NpbXBs ZWRybS9NYWtlZmlsZQpAQCAtMSw0ICsxLDQgQEAKIHNpbXBsZWRybS15IDo9CXNpbXBsZWRybV9k cnYubyBzaW1wbGVkcm1fa21zLm8gc2ltcGxlZHJtX2dlbS5vIFwKLQkJc2ltcGxlZHJtX2RhbWFn ZS5vCisJCXNpbXBsZWRybV9kYW1hZ2UubyBzaW1wbGVkcm1fZmJkZXYubwoKIG9iai0kKENPTkZJ R19EUk1fU0lNUExFRFJNKSA6PSBzaW1wbGVkcm0ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3NpbXBsZWRybS9zaW1wbGVkcm0uaCBiL2RyaXZlcnMvZ3B1L2RybS9zaW1wbGVkcm0vc2lt cGxlZHJtLmgKaW5kZXggMDczOTU4MS4uZDRlYjUyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3NpbXBsZWRybS9zaW1wbGVkcm0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vc2ltcGxlZHJt L3NpbXBsZWRybS5oCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9zaW1wbGVf a21zX2hlbHBlci5oPgoKIHN0cnVjdCBzaW1wbGVmYl9mb3JtYXQ7CitzdHJ1Y3QgZHJtX2ZiX2hl bHBlcjsKIHN0cnVjdCByZWd1bGF0b3I7CiBzdHJ1Y3QgY2xrOwoKQEAgLTIzLDYgKzI0LDcgQEAg c3RydWN0IHNkcm1fZGV2aWNlIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGRldjsKIAlzdHJ1Y3Qg ZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgcGlwZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBjb25u OworCXN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXI7CgogCS8qIGZyYW1lYnVmZmVyIGlu Zm9ybWF0aW9uICovCiAJY29uc3Qgc3RydWN0IHNpbXBsZWZiX2Zvcm1hdCAqZmJfc2Zvcm1hdDsK QEAgLTQyLDYgKzQ0LDcgQEAgc3RydWN0IHNkcm1fZGV2aWNlIHsKIAlzdHJ1Y3QgcmVndWxhdG9y ICoqcmVndWxhdG9yczsKIH07Cgordm9pZCBzZHJtX2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGRldik7CiBpbnQgc2RybV9kcm1fbW9kZXNldF9pbml0KHN0cnVjdCBzZHJtX2RldmljZSAq c2RybSk7CgogaW50IHNkcm1fZGlydHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCkBAIC04 Miw1ICs4NSw3IEBAIHN0cnVjdCBzZHJtX2ZyYW1lYnVmZmVyIHsKIGludCBzZHJtX2ZiX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRkZXYsIHN0cnVjdCBzZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJ IGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCwKIAkJIHN0cnVjdCBzZHJt X2dlbV9vYmplY3QgKm9iaik7Cit2b2lkIHNkcm1fZmJkZXZfaW5pdChzdHJ1Y3Qgc2RybV9kZXZp Y2UgKnNkcm0pOwordm9pZCBzZHJtX2ZiZGV2X2NsZWFudXAoc3RydWN0IHNkcm1fZGV2aWNlICpz ZHJtKTsKCiAjZW5kaWYgLyogU0RSTV9EUlZfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3NpbXBsZWRybS9zaW1wbGVkcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vc2ltcGxlZHJt L3NpbXBsZWRybV9kcnYuYwppbmRleCAxN2MxYjU1Li5mZTc1MmM2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vc2ltcGxlZHJtL3NpbXBsZWRybV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vc2ltcGxlZHJtL3NpbXBsZWRybV9kcnYuYwpAQCAtNDcsNiArNDcsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHNkcm1fZ2VtX3ZtX29wcyA9IHsKIHN0YXRp YyBzdHJ1Y3QgZHJtX2RyaXZlciBzZHJtX2RybV9kcml2ZXIgPSB7CiAJLmRyaXZlcl9mZWF0dXJl cyA9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMsCiAJLmZvcHMg PSAmc2RybV9kcm1fZm9wcywKKwkubGFzdGNsb3NlID0gc2RybV9sYXN0Y2xvc2UsCgogCS5nZW1f ZnJlZV9vYmplY3QgPSBzZHJtX2dlbV9mcmVlX29iamVjdCwKIAkuZ2VtX3ZtX29wcyA9ICZzZHJt X2dlbV92bV9vcHMsCkBAIC00NTEsNiArNDUyLDggQEAgc3RhdGljIGludCBzZHJtX3NpbXBsZWZi X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaWYgKHJldCkKIAkJZ290byBl cnJfcmVndWxhdG9yczsKCisJc2RybV9mYmRldl9pbml0KHNkcm0pOworCiAJRFJNX0lORk8oIklu aXRpYWxpemVkICVzIG9uIG1pbm9yICVkXG4iLCBkZGV2LT5kcml2ZXItPm5hbWUsCiAJCSBkZGV2 LT5wcmltYXJ5LT5pbmRleCk7CgpAQCAtNDc2LDYgKzQ3OSw3IEBAIHN0YXRpYyBpbnQgc2RybV9z aW1wbGVmYl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCXN0cnVjdCBzZHJt X2RldmljZSAqc2RybSA9IGRkZXYtPmRldl9wcml2YXRlOwoKKwlzZHJtX2ZiZGV2X2NsZWFudXAo c2RybSk7CiAJZHJtX2Rldl91bnJlZ2lzdGVyKGRkZXYpOwogCWRybV9tb2RlX2NvbmZpZ19jbGVh bnVwKGRkZXYpOwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zaW1wbGVkcm0vc2ltcGxl ZHJtX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vc2ltcGxlZHJtL3NpbXBsZWRybV9mYmRldi5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2NTk2YWQKLS0tIC9kZXYvbnVs bAorKysgYi9kcml2ZXJzL2dwdS9kcm0vc2ltcGxlZHJtL3NpbXBsZWRybV9mYmRldi5jCkBAIC0w LDAgKzEsMjAxIEBACisvKgorICogU2ltcGxlRFJNIGZpcm13YXJlIGZyYW1lYnVmZmVyIGRyaXZl cgorICogQ29weXJpZ2h0IChjKSAyMDEyLTIwMTQgRGF2aWQgSGVycm1hbm4gPGRoLmhlcnJtYW5u QGdtYWlsLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUK KyAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us IG9yIChhdCB5b3VyIG9wdGlvbikKKyAqIGFueSBsYXRlciB2ZXJzaW9uLgorICovCisKKyNpbmNs dWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KKyNpbmNs dWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGxpbnV4L2ZiLmg+CisjaW5jbHVk ZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKKyNpbmNsdWRlICJzaW1wbGVkcm0uaCIKKwor c3RydWN0IHNkcm1fZmJkZXYgeworCXN0cnVjdCBkcm1fZmJfaGVscGVyIGZiX2hlbHBlcjsKKwlz dHJ1Y3Qgc2RybV9mcmFtZWJ1ZmZlciBmYjsKK307CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHNk cm1fZmJkZXYgKnRvX3Nkcm1fZmJkZXYoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcikKK3sK KwlyZXR1cm4gY29udGFpbmVyX29mKGhlbHBlciwgc3RydWN0IHNkcm1fZmJkZXYsIGZiX2hlbHBl cik7Cit9CisKKy8qCisgKiBzaW1wbGVkcm0gdXNlcyB0aGUgc2FtZSBnZW0gY29kZSBhcyB1ZGwg YW5kIHdvcmsgb24gdGhhdCBkcml2ZXIgaGFzIHNob3duCisgKiB0aGF0IGl0IGRvZW5zJ3Qgd29y ayB3ZWxsIHdpdGggZmJfZGVmZXJyZWRfaW8uIFNvIG1tYXAgaXMgbm90IHN1cHBvcnRlZC4KKyAq CisgKiBUaGlzIGlzIGRvY3VtZW50ZWQgaW4gY29tbWl0IDY3N2QyM2I3MGJmOToKKyAqCisgKiBk cm0vdWRsOiBkaXNhYmxlIGZiX2RlZmlvIGJ5IGRlZmF1bHQKKyAqIFRoZXJlIHNlZW1zIHRvIGJl IGEgYmFkIGludGVyYWN0aW9uIGJldHdlZW4gZ2VtL3NobWVtIGFuZCBkZWZpbyBvbiB0b3AsCisg KiBJIGdldCBsaXN0IGNvcnJ1cHRpb24gb24gdGhlIHBhZ2UgbHJ1IGluIHRoZSBzaG1lbSBjb2Rl LgorICoKKyAqIFR1cm4gaXQgb2ZmIGZvciBub3cgdW50aWwgd2UgZ2V0IHNvbWUgbW9yZSBkaWdn aW5nIGRvbmUuCisgKgorICovCitzdGF0aWMgaW50IHNkcm1fZmJfbW1hcChzdHJ1Y3QgZmJfaW5m byAqaW5mbywgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCit7CisJcmV0dXJuIC1FTk9ERVY7 Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmJfb3BzIHNkcm1fZmJkZXZfb3BzID0geworCS5vd25lcgkJ PSBUSElTX01PRFVMRSwKKwkuZmJfZmlsbHJlY3QJPSBkcm1fZmJfaGVscGVyX3N5c19maWxscmVj dCwKKwkuZmJfY29weWFyZWEJPSBkcm1fZmJfaGVscGVyX3N5c19jb3B5YXJlYSwKKwkuZmJfaW1h Z2VibGl0CT0gZHJtX2ZiX2hlbHBlcl9zeXNfaW1hZ2VibGl0LAorCS5mYl9jaGVja192YXIJPSBk cm1fZmJfaGVscGVyX2NoZWNrX3ZhciwKKwkuZmJfc2V0X3Bhcgk9IGRybV9mYl9oZWxwZXJfc2V0 X3BhciwKKwkuZmJfc2V0Y21hcAk9IGRybV9mYl9oZWxwZXJfc2V0Y21hcCwKKwkuZmJfbW1hcAk9 IHNkcm1fZmJfbW1hcCwKK307CisKK3N0YXRpYyBpbnQgc2RybV9mYmRldl9jcmVhdGUoc3RydWN0 IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKKwkJCSAgICAgc3RydWN0IGRybV9mYl9oZWxwZXJfc3Vy ZmFjZV9zaXplICpzaXplcykKK3sKKwlzdHJ1Y3Qgc2RybV9mYmRldiAqZmJkZXYgPSB0b19zZHJt X2ZiZGV2KGhlbHBlcik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBoZWxwZXItPmRldjsK KwlzdHJ1Y3Qgc2RybV9kZXZpY2UgKnNkcm0gPSBkZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3Qg ZHJtX21vZGVfZmJfY21kMiBtb2RlX2NtZCA9IHsKKwkJLndpZHRoID0gc2RybS0+ZmJfd2lkdGgs CisJCS5oZWlnaHQgPSBzZHJtLT5mYl9oZWlnaHQsCisJCS5waXRjaGVzWzBdID0gc2RybS0+ZmJf c3RyaWRlLAorCQkucGl4ZWxfZm9ybWF0ID0gc2RybS0+ZmJfZm9ybWF0LAorCX07CisJc3RydWN0 IHNkcm1fZ2VtX29iamVjdCAqb2JqOworCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOworCXN0 cnVjdCBmYl9pbmZvICpmYmk7CisJc2l6ZV90IHNpemU7CisJaW50IHJldDsKKworCXNpemUgPSBQ QUdFX0FMSUdOKHNkcm0tPmZiX3NpemUpOworCW9iaiA9IHNkcm1fZ2VtX2FsbG9jX29iamVjdChk ZGV2LCBzaXplKTsKKwlpZiAoIW9iaikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyZXQgPSBzZHJt X2dlbV92bWFwKG9iaik7CisJaWYgKHJldCkgeworCQlEUk1fRVJST1IoImZhaWxlZCB0byB2bWFw IGZiXG4iKTsKKwkJZ290byBlcnJfZ2VtX2ZyZWU7CisJfQorCisJZmJpID0gZHJtX2ZiX2hlbHBl cl9hbGxvY19mYmkoaGVscGVyKTsKKwlpZiAoSVNfRVJSKGZiaSkpIHsKKwkJcmV0ID0gUFRSX0VS UihmYmkpOworCQlnb3RvIGVycl9nZW1fZnJlZTsKKwl9CisKKwlyZXQgPSBzZHJtX2ZiX2luaXQo ZGRldiwgJmZiZGV2LT5mYiwgJm1vZGVfY21kLCBvYmopOworCWlmIChyZXQpIHsKKwkJZGV2X2Vy cihkZGV2LT5kZXYsICJGYWlsZWQgdG8gaW5pdCBmcmFtZWJ1ZmZlcjogJWRcbiIsIHJldCk7CisJ CWdvdG8gZXJyX2ZiaV9yZWxlYXNlOworCX0KKworCWZiID0gJmZiZGV2LT5mYi5iYXNlOworCWhl bHBlci0+ZmIgPSBmYjsKKwlmYmktPnBhciA9IGhlbHBlcjsKKworCWZiaS0+ZmxhZ3MgPSBGQklO Rk9fREVGQVVMVCB8IEZCSU5GT19NSVNDX0ZJUk1XQVJFOworCWZiaS0+ZmJvcHMgPSAmc2RybV9m YmRldl9vcHM7CisKKwlkcm1fZmJfaGVscGVyX2ZpbGxfZml4KGZiaSwgZmItPnBpdGNoZXNbMF0s IGZiLT5kZXB0aCk7CisJZHJtX2ZiX2hlbHBlcl9maWxsX3ZhcihmYmksIGhlbHBlciwgZmItPndp ZHRoLCBmYi0+aGVpZ2h0KTsKKworCXN0cm5jcHkoZmJpLT5maXguaWQsICJzaW1wbGVkcm1mYiIs IDE1KTsKKwlmYmktPnNjcmVlbl9iYXNlID0gb2JqLT52bWFwcGluZzsKKwlmYmktPmZpeC5zbWVt X2xlbiA9IHNkcm0tPmZiX3NpemU7CisKKwlyZXR1cm4gMDsKKworZXJyX2ZiaV9yZWxlYXNlOgor CWRybV9mYl9oZWxwZXJfcmVsZWFzZV9mYmkoaGVscGVyKTsKKworZXJyX2dlbV9mcmVlOgorCWRy bV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKCZvYmotPmJhc2UpOworCisJcmV0dXJu IHJldDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZmJfaGVscGVyX2Z1bmNzIHNkcm1f ZmJfaGVscGVyX2Z1bmNzID0geworCS5mYl9wcm9iZSA9IHNkcm1fZmJkZXZfY3JlYXRlLAorfTsK Kwordm9pZCBzZHJtX2ZiZGV2X2luaXQoc3RydWN0IHNkcm1fZGV2aWNlICpzZHJtKQoreworCXN0 cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gc2RybS0+ZGRldjsKKwlzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqZmJfaGVscGVyOworCXN0cnVjdCBzZHJtX2ZiZGV2ICpmYmRldjsKKwlpbnQgcmV0OworCisJ ZmJkZXYgPSBremFsbG9jKHNpemVvZigqZmJkZXYpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWZiZGV2 KSB7CisJCWRldl9lcnIoZGRldi0+ZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIGRybSBmYmRldi5c biIpOworCQlyZXR1cm47CisJfQorCisJZmJfaGVscGVyID0gJmZiZGV2LT5mYl9oZWxwZXI7CisK Kwlkcm1fZmJfaGVscGVyX3ByZXBhcmUoZGRldiwgZmJfaGVscGVyLCAmc2RybV9mYl9oZWxwZXJf ZnVuY3MpOworCisJcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0KGRkZXYsIGZiX2hlbHBlciwgMSwg MSk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihkZGV2LT5kZXYsICJGYWlsZWQgdG8gaW5p dGlhbGl6ZSBkcm0gZmIgaGVscGVyLlxuIik7CisJCWdvdG8gZXJyX2ZyZWU7CisJfQorCisJcmV0 ID0gZHJtX2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKGZiX2hlbHBlcik7CisJ aWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihkZGV2LT5kZXYsICJGYWlsZWQgdG8gYWRkIGNvbm5l Y3RvcnMuXG4iKTsKKwkJZ290byBlcnJfZHJtX2ZiX2hlbHBlcl9maW5pOworCX0KKworCXJldCA9 IGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoZmJfaGVscGVyLAorCQkJCQkgICBkZGV2LT5t b2RlX2NvbmZpZy5wcmVmZXJyZWRfZGVwdGgpOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIo ZGRldi0+ZGV2LCAiRmFpbGVkIHRvIHNldCBpbml0aWFsIGh3IGNvbmZpZ3VyYXRpb24uXG4iKTsK KwkJZ290byBlcnJfZHJtX2ZiX2hlbHBlcl9maW5pOworCX0KKworCWlmICghZmJfaGVscGVyLT5m YmRldikgeworCQkvKiBmYmRldiBlbXVsYXRpb24gaXMgZGlzYWJsZWQgKi8KKwkJa2ZyZWUoZmJk ZXYpOworCQlyZXR1cm47CisJfQorCisJc2RybS0+ZmJfaGVscGVyID0gZmJfaGVscGVyOworCisJ cmV0dXJuOworCitlcnJfZHJtX2ZiX2hlbHBlcl9maW5pOgorCWRybV9mYl9oZWxwZXJfZmluaShm Yl9oZWxwZXIpOworZXJyX2ZyZWU6CisJa2ZyZWUoZmJkZXYpOworfQorCit2b2lkIHNkcm1fZmJk ZXZfY2xlYW51cChzdHJ1Y3Qgc2RybV9kZXZpY2UgKnNkcm0pCit7CisJc3RydWN0IGRybV9mYl9o ZWxwZXIgKmZiX2hlbHBlciA9IHNkcm0tPmZiX2hlbHBlcjsKKwlzdHJ1Y3Qgc2RybV9mYmRldiAq ZmJkZXY7CisKKwlpZiAoIWZiX2hlbHBlcikKKwkJcmV0dXJuOworCisJc2RybS0+ZmJfaGVscGVy ID0gTlVMTDsKKwlmYmRldiA9IHRvX3Nkcm1fZmJkZXYoZmJfaGVscGVyKTsKKworCWRybV9mYl9o ZWxwZXJfdW5yZWdpc3Rlcl9mYmkoZmJfaGVscGVyKTsKKwljYW5jZWxfd29ya19zeW5jKCZmYl9o ZWxwZXItPmRpcnR5X3dvcmspOworCWRybV9mYl9oZWxwZXJfcmVsZWFzZV9mYmkoZmJfaGVscGVy KTsKKworCWRybV9mcmFtZWJ1ZmZlcl91bnJlZ2lzdGVyX3ByaXZhdGUoZmJfaGVscGVyLT5mYik7 CisJZHJtX2ZyYW1lYnVmZmVyX2NsZWFudXAoZmJfaGVscGVyLT5mYik7CisJZHJtX2dlbV9vYmpl Y3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQoJmZiZGV2LT5mYi5vYmotPmJhc2UpOworCisJZHJtX2Zi X2hlbHBlcl9maW5pKGZiX2hlbHBlcik7CisJa2ZyZWUoZmJkZXYpOworfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3NpbXBsZWRybS9zaW1wbGVkcm1fa21zLmMgYi9kcml2ZXJzL2dwdS9k cm0vc2ltcGxlZHJtL3NpbXBsZWRybV9rbXMuYwppbmRleCBlNmRjM2RmLi44Yjk4YTA4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2ltcGxlZHJtL3NpbXBsZWRybV9rbXMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vc2ltcGxlZHJtL3NpbXBsZWRybV9rbXMuYwpAQCAtMTIsNiArMTIsNyBA QAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1f Y3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0v ZHJtX2ZiX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CiAjaW5jbHVkZSA8ZHJt L2RybV9zaW1wbGVfa21zX2hlbHBlci5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KQEAgLTI0 LDYgKzI1LDE2IEBAIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzZHJtX2Zvcm1hdHNbXSA9IHsKIAlE Uk1fRk9STUFUX1hSR0I4ODg4LAogfTsKCit2b2lkIHNkcm1fbGFzdGNsb3NlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZGV2KQoreworCXN0cnVjdCBzZHJtX2RldmljZSAqc2RybSA9IGRkZXYtPmRldl9w cml2YXRlOworCisJaWYgKHNkcm0tPmZiX2hlbHBlcikgeworCQlkcm1fZmJfaGVscGVyX3Jlc3Rv cmVfZmJkZXZfbW9kZV91bmxvY2tlZChzZHJtLT5mYl9oZWxwZXIpOworCQlkcm1fZmJfaGVscGVy X3NldF9zdXNwZW5kX2xvY2soc2RybS0+ZmJfaGVscGVyLCAwKTsKKwl9Cit9CisKIHN0YXRpYyBp bnQgc2RybV9jb25uX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubikKIHsKIAlz dHJ1Y3Qgc2RybV9kZXZpY2UgKnNkcm0gPSBjb25uLT5kZXYtPmRldl9wcml2YXRlOwpAQCAtOTIs NiArMTAzLDkgQEAgdm9pZCBzZHJtX2Rpc3BsYXlfcGlwZV91cGRhdGUoc3RydWN0IGRybV9zaW1w bGVfZGlzcGxheV9waXBlICpwaXBlLAoKIAlzZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQoJnBp cGUtPmNydGMpOwoKKwlpZiAoc2RybS0+ZmJfaGVscGVyICYmIGZiICYmIGZiICE9IHNkcm0tPmZi X2hlbHBlci0+ZmIpCisJCWRybV9mYl9oZWxwZXJfc2V0X3N1c3BlbmRfbG9jayhzZHJtLT5mYl9o ZWxwZXIsIDEpOworCiAJaWYgKGZiKSB7CiAJCXBpcGUtPnBsYW5lLmZiID0gZmI7CiAJCXNkcm1f ZGlydHlfYWxsX2xvY2tlZChzZHJtKTsKLS0KMi44LjIKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=