From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 5/9] drm/fb-helper: Add generic fbdev emulation .fb_probe function Date: Thu, 24 May 2018 11:16:05 +0200 Message-ID: <20180524091605.GH3438@phenom.ffwll.local> References: <20180523143411.64070-1-noralf@tronnes.org> <20180523143411.64070-6-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3EB606E368 for ; Thu, 24 May 2018 09:16:09 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id o78-v6so3139034wmg.0 for ; Thu, 24 May 2018 02:16:09 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180523143411.64070-6-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: Noralf =?iso-8859-1?Q?Tr=F8nnes?= Cc: intel-gfx@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBNYXkgMjMsIDIwMTggYXQgMDQ6MzQ6MDdQTSArMDIwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAgaW4gZ2V0dGluZyBnZW5lcmljIGZiZGV2 IGVtdWxhdGlvbi4KPiBBIGRybV9mYl9oZWxwZXJfZnVuY3MuZmJfcHJvYmUgZnVuY3Rpb24gaXMg YWRkZWQgd2hpY2ggdXNlcyB0aGUKPiBEUk0gY2xpZW50IEFQSSB0byBnZXQgYSBmcmFtZWJ1ZmZl ciBiYWNrZWQgYnkgYSBkdW1iIGJ1ZmZlci4KPiAKPiBBIHRyYW5zaXRpb25hbCBoYWNrIGZvciB0 aW55ZHJtIGlzIG5lZWRlZCBpbiBvcmRlciB0byBzd2l0Y2ggb3ZlciBhbGwKPiBDTUEgaGVscGVy IGRyaXZlcnMgaW4gYSBsYXRlciBwYXRjaC4gVGhpcyBoYWNrIHdpbGwgYmUgcmVtb3ZlZCB3aGVu Cj4gdGlueWRybSBtb3ZlcyB0byB2bWFsbG9jIGJ1ZmZlcnMuCj4gCj4gU2lnbmVkLW9mZi1ieTog Tm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9kcm1fZmJfaGVscGVyLmMgfCAxNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmggICAgIHwgIDI2ICsrKysr KysKPiAgMiBmaWxlcyBjaGFuZ2VkLCAxOTAgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9m Yl9oZWxwZXIuYwo+IGluZGV4IDJlZTFlYWE2NjE4OC4uNDQ0YzJiNDA0MGVhIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2ZiX2hlbHBlci5jCj4gQEAgLTMwLDExICszMCwxMyBAQAo+ICAjZGVmaW5lIHByX2Zt dChmbXQpIEtCVUlMRF9NT0ROQU1FICI6ICIgZm10Cj4gIAo+ICAjaW5jbHVkZSA8bGludXgvY29u c29sZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgo+ICAjaW5jbHVkZSA8bGludXgv a2VybmVsLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9zeXNycS5oPgo+ICAjaW5jbHVkZSA8bGludXgv c2xhYi5oPgo+ICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJt UC5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9jbGllbnQuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1f Y3J0Yy5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KPiAgI2luY2x1ZGUgPGRy bS9kcm1fY3J0Y19oZWxwZXIuaD4KPiBAQCAtMjkyOCw2ICsyOTMwLDE2OCBAQCB2b2lkIGRybV9m Yl9oZWxwZXJfb3V0cHV0X3BvbGxfY2hhbmdlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB9 Cj4gIEVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFuZ2VkKTsKPiAg Cj4gKy8qIEB1c2VyOiAxPXVzZXJzcGFjZSwgMD1mYmNvbiAqLwo+ICtzdGF0aWMgaW50IGRybV9m YmRldl9mYl9vcGVuKHN0cnVjdCBmYl9pbmZvICppbmZvLCBpbnQgdXNlcikKPiArewo+ICsJc3Ry dWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGluZm8tPnBhcjsKPiArCj4gKwlpZiAoIXRy eV9tb2R1bGVfZ2V0KGZiX2hlbHBlci0+ZGV2LT5kcml2ZXItPmZvcHMtPm93bmVyKSkKPiArCQly ZXR1cm4gLUVOT0RFVjsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBk cm1fZmJkZXZfZmJfcmVsZWFzZShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgaW50IHVzZXIpCj4gK3sK PiArCXN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLT5wYXI7Cj4gKwo+ICsJ bW9kdWxlX3B1dChmYl9oZWxwZXItPmRldi0+ZHJpdmVyLT5mb3BzLT5vd25lcik7Cj4gKwo+ICsJ cmV0dXJuIDA7Cj4gK30KCkhtLCBJIHRob3VnaHQgZWFybGllciB2ZXJzaW9ucyBvZiB5b3VyIHBh dGNoIHNlcmllcyBoYWQgdGhpcyBzZXBhcmF0ZWx5LApmb3IgZXZlcnlvbmUuIFdoYXQncyB0aGUg cmVhc29ucyBmb3IgbWVyZ2luZyB0aGlzIGludG8gdGhlIGZiX3Byb2JlCmltcGxlbWVudGF0aW9u LgoKPiArCj4gKy8qCj4gKyAqIGZiX29wcy5mYl9kZXN0cm95IGlzIGNhbGxlZCBieSB0aGUgbGFz dCBwdXRfZmJfaW5mbygpIGNhbGwgYXQgdGhlIGVuZCBvZgo+ICsgKiB1bnJlZ2lzdGVyX2ZyYW1l YnVmZmVyKCkgb3IgZmJfcmVsZWFzZSgpLgo+ICsgKi8KPiArc3RhdGljIHZvaWQgZHJtX2ZiZGV2 X2ZiX2Rlc3Ryb3koc3RydWN0IGZiX2luZm8gKmluZm8pCj4gK3sKPiArCXN0cnVjdCBkcm1fZmJf aGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLT5wYXI7Cj4gKwlzdHJ1Y3QgZmJfb3BzICpmYm9wcyA9 IE5VTEw7Cj4gKwo+ICsJRFJNX0RFQlVHKCJcbiIpOwo+ICsKPiArCWlmIChmYl9oZWxwZXItPmZi ZGV2LT5mYmRlZmlvKSB7Cj4gKwkJZmJfZGVmZXJyZWRfaW9fY2xlYW51cChmYl9oZWxwZXItPmZi ZGV2KTsKPiArCQlmYm9wcyA9IGZiX2hlbHBlci0+ZmJkZXYtPmZib3BzOwo+ICsJfQo+ICsKPiAr CWRybV9mYl9oZWxwZXJfZmluaShmYl9oZWxwZXIpOwo+ICsJZHJtX2NsaWVudF9mcmFtZWJ1ZmZl cl9kZWxldGUoZmJfaGVscGVyLT5idWZmZXIpOwo+ICsJZHJtX2NsaWVudF9mcmVlKGZiX2hlbHBl ci0+Y2xpZW50KTsKPiArCWtmcmVlKGZiX2hlbHBlcik7Cj4gKwlrZnJlZShmYm9wcyk7Cj4gK30K CkhtLCBpZiB3ZSBnbyB3aXRoIHRoZSBpZGVhIHRoYXQgZHJtX2NsaWVudHMgY291bGQgYXV0by11 bnJlZ2lzdGVyIHRocm91Z2gKYSBjYWxsYmFjaywgdGhlbiBJIGV4cGVjdCB0aGlzIHdpbGwgbGVh ZCB0byBzb21lIGNvbnRyb2wgaW52ZXJzaW9uLiBCdXQgd2UKY2FuIGZpeCB0aGF0IGxhdGVyIG9u LgoKPiArCj4gK3N0YXRpYyBpbnQgZHJtX2ZiZGV2X2ZiX21tYXAoc3RydWN0IGZiX2luZm8gKmlu Zm8sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2ZiX2hl bHBlciAqZmJfaGVscGVyID0gaW5mby0+cGFyOwo+ICsKPiArCWlmIChmYl9oZWxwZXItPmRldi0+ ZHJpdmVyLT5nZW1fcHJpbWVfbW1hcCkKPiArCQlyZXR1cm4gZmJfaGVscGVyLT5kZXYtPmRyaXZl ci0+Z2VtX3ByaW1lX21tYXAoZmJfaGVscGVyLT5idWZmZXItPmdlbSwgdm1hKTsKPiArCWVsc2UK PiArCQlyZXR1cm4gLUVOT0RFVjsKPiArfQo+ICsKPiArc3RhdGljIHN0cnVjdCBmYl9vcHMgZHJt X2ZiZGV2X2ZiX29wcyA9IHsKPiArCS8qIE5vIG5lZWQgdG8gc2V0IG93bmVyLCB0aGlzIG1vZHVs ZSBpcyBhbHJlYWR5IHBpbm5lZCBieSB0aGUgZHJpdmVyLiAqLwoKSSdkIHN0aWxsIHNldCBpdCwg bWVhbnMgbGVzcyB0aGlua2luZyBzaW5jZSBtb3JlIG9idmlvdXNseSBjb3JyZWN0LgoKPiArCURS TV9GQl9IRUxQRVJfREVGQVVMVF9PUFMsCj4gKwkuZmJfb3Blbgk9IGRybV9mYmRldl9mYl9vcGVu LAo+ICsJLmZiX3JlbGVhc2UJPSBkcm1fZmJkZXZfZmJfcmVsZWFzZSwKPiArCS5mYl9kZXN0cm95 CT0gZHJtX2ZiZGV2X2ZiX2Rlc3Ryb3ksCj4gKwkuZmJfbW1hcAk9IGRybV9mYmRldl9mYl9tbWFw LAo+ICsJLmZiX3JlYWQJPSBkcm1fZmJfaGVscGVyX3N5c19yZWFkLAo+ICsJLmZiX3dyaXRlCT0g ZHJtX2ZiX2hlbHBlcl9zeXNfd3JpdGUsCj4gKwkuZmJfZmlsbHJlY3QJPSBkcm1fZmJfaGVscGVy X3N5c19maWxscmVjdCwKPiArCS5mYl9jb3B5YXJlYQk9IGRybV9mYl9oZWxwZXJfc3lzX2NvcHlh cmVhLAo+ICsJLmZiX2ltYWdlYmxpdAk9IGRybV9mYl9oZWxwZXJfc3lzX2ltYWdlYmxpdCwKCkht LCBzb21lIGRyaXZlcnMgcmVxdWlyZSB0aGUgY2ZiIHZlcnNpb25zIG9mIHRoZXNlLiBJbiBwcmFj dGljZSBJIGd1ZXNzCnRoZXJlJ3Mgbm90IG11Y2ggb2YgYSBkaWZmZXJlbmNlIHJlYWxseSwgYXQg bGVhc3Qgb24geDg2IGFuZCBhcm0uCgpXZSBtaWdodCB3YW50IHRvIGRvY3VtZW50IHRoYXQgdGhv dWdoLgoKPiArfTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3QgZmJfZGVmZXJyZWRfaW8gZHJtX2ZiZGV2 X2RlZmlvID0gewo+ICsJLmRlbGF5CQk9IEhaIC8gMjAsCj4gKwkuZGVmZXJyZWRfaW8JPSBkcm1f ZmJfaGVscGVyX2RlZmVycmVkX2lvLAo+ICt9Owo+ICsKPiArLyoKPiArICogVE9ETzogUmVtb3Zl IHRoaXMgd2hlbiB0aW55ZHJtIGlzIGNvbnZlcnRlZCB0byB2bWFsbG9jIGJ1ZmZlcnMuCj4gKyAq Lwo+ICtzdGF0aWMgaW50IGRybV9mYmRldl9jbWFfZGVmZXJyZWRfaW9fbW1hcChzdHJ1Y3QgZmJf aW5mbyAqaW5mbywKPiArCQkJCQkgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQo+ICt7Cj4g KwlmYl9kZWZlcnJlZF9pb19tbWFwKGluZm8sIHZtYSk7Cj4gKwl2bWEtPnZtX3BhZ2VfcHJvdCA9 IHBncHJvdF93cml0ZWNvbWJpbmUodm1hLT52bV9wYWdlX3Byb3QpOwo+ICsKPiArCXJldHVybiAw Owo+ICt9Cj4gKwoKTmVlZHMga2VybmVsZG9jIGhlcmUuCgo+ICtpbnQgZHJtX2ZiX2hlbHBlcl9n ZW5lcmljX3Byb2JlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCj4gKwkJCQlzdHJ1 Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3NpemUgKnNpemVzKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJt X2NsaWVudF9kZXYgKmNsaWVudCA9IGZiX2hlbHBlci0+Y2xpZW50Owo+ICsJc3RydWN0IGRybV9j bGllbnRfYnVmZmVyICpidWZmZXI7Cj4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKPiAr CXN0cnVjdCBmYl9pbmZvICpmYmk7Cj4gKwl1MzIgZm9ybWF0Owo+ICsJaW50IHJldDsKPiArCj4g KwlEUk1fREVCVUdfS01TKCJzdXJmYWNlIHdpZHRoKCVkKSwgaGVpZ2h0KCVkKSBhbmQgYnBwKCVk KVxuIiwKPiArCQkgICAgICBzaXplcy0+c3VyZmFjZV93aWR0aCwgc2l6ZXMtPnN1cmZhY2VfaGVp Z2h0LAo+ICsJCSAgICAgIHNpemVzLT5zdXJmYWNlX2JwcCk7Cj4gKwo+ICsJZm9ybWF0ID0gZHJt X21vZGVfbGVnYWN5X2ZiX2Zvcm1hdChzaXplcy0+c3VyZmFjZV9icHAsIHNpemVzLT5zdXJmYWNl X2RlcHRoKTsKPiArCWJ1ZmZlciA9IGRybV9jbGllbnRfZnJhbWVidWZmZXJfY3JlYXRlKGNsaWVu dCwgc2l6ZXMtPnN1cmZhY2Vfd2lkdGgsCj4gKwkJCQkJICAgICAgIHNpemVzLT5zdXJmYWNlX2hl aWdodCwgZm9ybWF0KTsKPiArCWlmIChJU19FUlIoYnVmZmVyKSkKPiArCQlyZXR1cm4gUFRSX0VS UihidWZmZXIpOwo+ICsKPiArCWZiX2hlbHBlci0+YnVmZmVyID0gYnVmZmVyOwo+ICsJZmJfaGVs cGVyLT5mYiA9IGJ1ZmZlci0+ZmI7Cj4gKwlmYiA9IGJ1ZmZlci0+ZmI7Cj4gKwo+ICsJZmJpID0g ZHJtX2ZiX2hlbHBlcl9hbGxvY19mYmkoZmJfaGVscGVyKTsKPiArCWlmIChJU19FUlIoZmJpKSkg ewo+ICsJCXJldCA9IFBUUl9FUlIoZmJpKTsKPiArCQlnb3RvIGVycl9mcmVlX2J1ZmZlcjsKPiAr CX0KPiArCj4gKwlmYmktPnBhciA9IGZiX2hlbHBlcjsKPiArCWZiaS0+ZmJvcHMgPSAmZHJtX2Zi ZGV2X2ZiX29wczsKPiArCWZiaS0+c2NyZWVuX3NpemUgPSBmYi0+aGVpZ2h0ICogZmItPnBpdGNo ZXNbMF07Cj4gKwlmYmktPmZpeC5zbWVtX2xlbiA9IGZiaS0+c2NyZWVuX3NpemU7Cj4gKwlmYmkt PnNjcmVlbl9idWZmZXIgPSBidWZmZXItPnZhZGRyOwo+ICsJc3RyY3B5KGZiaS0+Zml4LmlkLCAi RFJNIGVtdWxhdGVkIik7Cj4gKwo+ICsJZHJtX2ZiX2hlbHBlcl9maWxsX2ZpeChmYmksIGZiLT5w aXRjaGVzWzBdLCBmYi0+Zm9ybWF0LT5kZXB0aCk7Cj4gKwlkcm1fZmJfaGVscGVyX2ZpbGxfdmFy KGZiaSwgZmJfaGVscGVyLCBzaXplcy0+ZmJfd2lkdGgsIHNpemVzLT5mYl9oZWlnaHQpOwo+ICsK PiArCWlmIChmYi0+ZnVuY3MtPmRpcnR5KSB7Cj4gKwkJc3RydWN0IGZiX29wcyAqZmJvcHM7Cj4g Kwo+ICsJCS8qCj4gKwkJICogZmJfZGVmZXJyZWRfaW9fY2xlYW51cCgpIGNsZWFycyAmZmJvcHMt PmZiX21tYXAgc28gYSBwZXIKPiArCQkgKiBpbnN0YW5jZSB2ZXJzaW9uIGlzIG5lY2Vzc2FyeS4K PiArCQkgKi8KPiArCQlmYm9wcyA9IGt6YWxsb2Moc2l6ZW9mKCpmYm9wcyksIEdGUF9LRVJORUwp Owo+ICsJCWlmICghZmJvcHMpIHsKPiArCQkJcmV0ID0gLUVOT01FTTsKPiArCQkJZ290byBlcnJf ZmJfaW5mb19kZXN0cm95Owo+ICsJCX0KPiArCj4gKwkJKmZib3BzID0gKmZiaS0+ZmJvcHM7Cj4g KwkJZmJpLT5mYm9wcyA9IGZib3BzOwo+ICsKPiArCQlmYmktPmZiZGVmaW8gPSAmZHJtX2ZiZGV2 X2RlZmlvOwo+ICsKPiArCQkvKiBUT0RPOiBSZW1vdmUgdGhpcyB3aGVuIHRpbnlkcm0gaXMgY29u dmVydGVkIHRvIHZtYWxsb2MgYnVmZmVycy4gKi8KPiArCQlmYmktPmZpeC5zbWVtX3N0YXJ0ID0g cGFnZV90b19waHlzKHZpcnRfdG9fcGFnZShidWZmZXItPnZhZGRyKSk7Cj4gKwo+ICsJCWZiX2Rl ZmVycmVkX2lvX2luaXQoZmJpKTsKPiArCj4gKwkJLyogVE9ETzogUmVtb3ZlIHRoaXMgd2hlbiB0 aW55ZHJtIGlzIGNvbnZlcnRlZCB0byB2bWFsbG9jIGJ1ZmZlcnMuICovCj4gKwkJZmJpLT5mYm9w cy0+ZmJfbW1hcCA9IGRybV9mYmRldl9jbWFfZGVmZXJyZWRfaW9fbW1hcDsKPiArCX0KClVnaC4g WWVhaCBkZWZpbyBhbmQgZ2VuZXJpYyBhbGxvY2F0b3IgdGhyb3VnaCBkdW1iIGJ1ZmZlcnMgZG9u J3QgbWl4IHdlbGwuClRoZSBvbmx5IHRydWUgZ2VuZXJpYyBzb2x1dGlvbiBmb3IgdGhpcyB3b3Vs ZCBiZSB0byBnaXZlIHVzZXJzcGFjZSAoYW5kCm9ubHkgdXNlcnNwYWNlLCBmb3IgZmJjb24gd2Ug Y2FuIGludGVyY2VwdCBldmVyeXRoaW5nKSBhIHN0YWdpbmcgYnVmZmVyLAphbmQgdGhlbiB1cGxv YWQgdGhpbmdzIHVzaW5nIHRoZSBkaXJ0eSBjYWxsYmFjay4KCkJ1dCB0aGF0IGludHJvZHVjZXMg YW5vdGhlciBjb3B5IHN0ZXAsIHNvIGlzbid0IGNvb2wuCgpJIHRoaW5rIGEgY2hlY2sgZm9yIGlz X3ZtYWxsb2NfYWRkciBhbmQgaWYgdGhhdCdzIGZhbHNlLCBub3QgZG9pbmcgYW55IG9mCnRoZSBk ZWZpbyBtbWFwIHNldHVwIHdvdWxkIGJlIGdvb2QuIFVudGlsIHdlIGhhdmUgYSBiZXR0ZXIgaWRl YS4gQW5kIHllcwp0aGF0IHdvdWxkIG5lZWQgdG8gYmUgZG9uZSBhZnRlciB0aW55ZHJtIGlzIG1v dmVkIG92ZXIuCgo+ICsKPiArCXJldHVybiAwOwo+ICsKPiArZXJyX2ZiX2luZm9fZGVzdHJveToK PiArCWRybV9mYl9oZWxwZXJfZmluaShmYl9oZWxwZXIpOwo+ICtlcnJfZnJlZV9idWZmZXI6Cj4g Kwlkcm1fY2xpZW50X2ZyYW1lYnVmZmVyX2RlbGV0ZShidWZmZXIpOwo+ICsKPiArCXJldHVybiBy ZXQ7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2dlbmVyaWNfcHJvYmUpOwo+ ICsKPiAgLyogVGhlIEtjb25maWcgRFJNX0tNU19IRUxQRVIgc2VsZWN0cyBGUkFNRUJVRkZFUl9D T05TT0xFIChpZiAhRVhQRVJUKQo+ICAgKiBidXQgdGhlIG1vZHVsZSBkb2Vzbid0IGRlcGVuZCBv biBhbnkgZmIgY29uc29sZSBzeW1ib2xzLiAgQXQgbGVhc3QKPiAgICogYXR0ZW1wdCB0byBsb2Fk IGZiY29uIHRvIGF2b2lkIGxlYXZpbmcgdGhlIHN5c3RlbSB3aXRob3V0IGEgdXNhYmxlIGNvbnNv bGUuCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaCBiL2luY2x1ZGUv ZHJtL2RybV9mYl9oZWxwZXIuaAo+IGluZGV4IGIwNjk0MzNlN2ZjMS4uYmIzODQ2OWE5NTAyIDEw MDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaAo+ICsrKyBiL2luY2x1ZGUv ZHJtL2RybV9mYl9oZWxwZXIuaAo+IEBAIC0zMCw2ICszMCw4IEBACj4gICNpZm5kZWYgRFJNX0ZC X0hFTFBFUl9ICj4gICNkZWZpbmUgRFJNX0ZCX0hFTFBFUl9ICj4gIAo+ICtzdHJ1Y3QgZHJtX2Ns aWVudF9idWZmZXI7Cj4gK3N0cnVjdCBkcm1fY2xpZW50X2RldjsKPiAgc3RydWN0IGRybV9mYl9o ZWxwZXI7Cj4gIAo+ICAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+Cj4gQEAgLTIzMiw2ICsyMzQs MjAgQEAgc3RydWN0IGRybV9mYl9oZWxwZXIgewo+ICAJICogU2VlIGFsc286IEBkZWZlcnJlZF9z ZXR1cAo+ICAJICovCj4gIAlpbnQgcHJlZmVycmVkX2JwcDsKPiArCj4gKwkvKioKPiArCSAqIEBj bGllbnQ6Cj4gKwkgKgo+ICsJICogRFJNIGNsaWVudCB1c2VkIGJ5IHRoZSBnZW5lcmljIGZiZGV2 IGVtdWxhdGlvbi4KPiArCSAqLwo+ICsJc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQ7Cj4g Kwo+ICsJLyoqCj4gKwkgKiBAYnVmZmVyOgo+ICsJICoKPiArCSAqIEZyYW1lYnVmZmVyIHVzZWQg YnkgdGhlIGdlbmVyaWMgZmJkZXYgZW11bGF0aW9uLgo+ICsJICovCj4gKwlzdHJ1Y3QgZHJtX2Ns aWVudF9idWZmZXIgKmJ1ZmZlcjsKPiAgfTsKPiAgCj4gIC8qKgo+IEBAIC0zMzAsNiArMzQ2LDkg QEAgdm9pZCBkcm1fZmJfaGVscGVyX2ZiZGV2X3RlYXJkb3duKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpOwo+ICAKPiAgdm9pZCBkcm1fZmJfaGVscGVyX2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKPiAgdm9pZCBkcm1fZmJfaGVscGVyX291dHB1dF9wb2xsX2NoYW5nZWQoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7Cj4gKwo+ICtpbnQgZHJtX2ZiX2hlbHBlcl9nZW5lcmljX3Byb2Jl KHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCj4gKwkJCQlzdHJ1Y3QgZHJtX2ZiX2hl bHBlcl9zdXJmYWNlX3NpemUgKnNpemVzKTsKPiAgI2Vsc2UKPiAgc3RhdGljIGlubGluZSB2b2lk IGRybV9mYl9oZWxwZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJCXN0 cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gQEAgLTU2NCw2ICs1ODMsMTMgQEAgc3RhdGlj IGlubGluZSB2b2lkIGRybV9mYl9oZWxwZXJfb3V0cHV0X3BvbGxfY2hhbmdlZChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+ICB7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbmxpbmUgaW50Cj4gK2RybV9m Yl9oZWxwZXJfZ2VuZXJpY19wcm9iZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLAo+ ICsJCQkgICAgc3RydWN0IGRybV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplICpzaXplcykKPiArewo+ ICsJcmV0dXJuIDA7Cj4gK30KCk9rLCBJIHRoaW5rIHRoaXMgcGF0Y2ggbG9va3Mgb2suIFdpdGgg dGhlIG1pc3Npbmcga2VybmVsZG9jIGFkZGVkICh3aGljaAphbHNvIGV4cGxhaW5zIHRoZSBjdXJy ZW50IGxpbWl0YXRpb25zKSB0aGlzIGlzCgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBmZndsbC5jaD4KCj4gKwo+ICAjZW5kaWYKPiAgCj4gIHN0YXRpYyBpbmxpbmUg aW50Cj4gLS0gCj4gMi4xNS4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwg SW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==