From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Subject: Re: [RFC v2 6/8] drm: Handle fbdev emulation in core Date: Thu, 11 Jan 2018 15:09:14 +0100 Message-ID: <24da5248-7fc6-e62c-62f2-6290bfb9ec08@tronnes.org> References: <20180103222110.45855-1-noralf@tronnes.org> <20180103222110.45855-7-noralf@tronnes.org> <20180109103819.GS26573@phenom.ffwll.local> <20180111074554.GZ13066@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180111074554.GZ13066@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, dh.herrmann@gmail.com List-Id: dri-devel@lists.freedesktop.org CkRlbiAxMS4wMS4yMDE4IDA4LjQ1LCBza3JldiBEYW5pZWwgVmV0dGVyOgo+IE9uIFdlZCwgSmFu IDEwLCAyMDE4IGF0IDA2OjAyOjM4UE0gKzAxMDAsIE5vcmFsZiBUcsO4bm5lcyB3cm90ZToKPj4g RGVuIDA5LjAxLjIwMTggMTEuMzgsIHNrcmV2IERhbmllbCBWZXR0ZXI6Cj4+PiBPbiBXZWQsIEph biAwMywgMjAxOCBhdCAxMToyMTowOFBNICswMTAwLCBOb3JhbGYgVHLDuG5uZXMgd3JvdGU6Cj4+ Pj4gUHJlcGFyZSBmb3IgZ2VuZXJpYyBmYmRldiBlbXVsYXRpb24gYnkgbGV0dGluZyBEUk0gY29y ZSB3b3JrIGRpcmVjdGx5Cj4+Pj4gd2l0aCB0aGUgZmJkZXYgY29tcGF0aWJpbGl0eSBsYXllci4g VGhpcyBpcyBkb25lIGJ5IGFkZGluZyBuZXcgZmJkZXYKPj4+PiBoZWxwZXIgdnRhYmxlIGNhbGxi YWNrcyBmb3IgcmVzdG9yZSwgaG90cGx1Z19ldmVudCwgdW5yZWdpc3RlciBhbmQKPj4+PiByZWxl YXNlLgo+Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogTm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJv bm5lcy5vcmc+Cj4+PiBObyBjbHVlIHdoZXRoZXIgbXkgaWRlYSBpcyBhbnkgZ29vZCwgYnV0IGlu c3BpcmVkIGJ5IHRoZSBib290c3BsYXNoCj4+PiBkaXNjdXNzaW9uLCBhbmQgdGhlIHByb3NwZWN0 IHRoYXQgd2UgbWlnaHQgZ2V0IG90aGVyIGluLWtlcm5lbCBkcm0va21zCj4+PiBjbGllbnRzIEkn bSB3b25kZXJpbmcgd2hldGhlciB3ZSBzaG91bGQgbWFrZSB0aGlzIGEgYml0IG1vcmUgZ2VuZXJp YyBhbmQKPj4+IHRpZSBpdCB0byBkcm1fZmlsZT8KPj4+Cj4+PiBUaGUgaWRlYSB3b3VsZCBiZSB0 byBoYXZlIGEgbGlzdCBvZiBpbnRlcm5hbCBkcm0gY2xpZW50cyBieSBwdXR0aW5nIGFsbAo+Pj4g dGhlIGludGVybmFsIGRybV9maWxlcyBvbnRvIGEgbGlzdCAoc2FtZSB3YXkgd2UgZG8gd2l0aCB0 aGUgdXNlcnNwYWNlCj4+PiBvbmVzKS4gVGhlbiB3ZSdkIGp1c3Qgd2FsayB0aGF0IGxpc3QgYW5k IGNhbGwgLT5ob3RwbHVnLCAtPnVucmVnaXN0ZXIgYW5kCj4+PiAtPnJlbGVhc2UgYXQgdGhlIHJp Z2h0IHBsYWNlcy4KPj4+Cj4+PiAtPnJlc3RvcmUgd291bGQgYmUgYSBiaXQgZGlmZmVyZW50LCBJ IGd1ZXNzIGZvciB0aGF0IHdlJ2Qgb25seSBjYWxsIHRoZQo+Pj4gLT5yZXN0b3JlIGNhbGxiYWNr IG9mIHRoZSB2ZXJ5IGZpcnN0IGtlcm5lbC1pbnRlcm5hbCBjbGllbnQuCj4+Pgo+Pj4gV2l0aCB0 aGF0IHdlIGNvdWxkIHRoZW4gYWRkL3JlbW92ZSBrZXJuZWwtaW50ZXJuYWwgZHJtIGNsaWVudHMg bGlrZSBub3JtYWwKPj4+IHVzZXJzcGFjZSBjbGllbnRzLCB3aGljaCBzaG91bGQgbWFrZSBpbnRl Z3JhdGlvbiBvZiBlbWVyZ2VuY3kgY29uc29sZXMsCj4+PiBib290IHNwbGFzaGVzIGFuZCB3aGF0 ZXZlciBlbHNlIHJlYWwgZWFzeS4gQW5kIEkgdGhpbmsgaXQgd291bGQgYmUgYSBsb3QKPj4+IGNs ZWFuZXIgdGhhbiBsZWFraW5nIGZiX2hlbHBlciBrbm93bGVkZ2UgaW50byB0aGUgZHJtIGNvcmUs IHdoaWNoIGZlZWxzIGEKPj4+IHJhdGhlciBiYWNrd2FyZHMuCj4+Pgo+Pj4gT3RvaCB0aGF0IGZl ZWxzIGEgYml0IG92ZXJlbmdpbmVlcmVkIChidXQgYXQgbGVhc3QgaXQgc2hvdWxkbid0IGJlIGEg bG90Cj4+PiBtb3JlIGNvZGUgcmVhbGx5KS4gSWYgdGhlIGxpc3QgaXMgdG9vIG11Y2ggd29yayB3 ZSBjb3VsZCBzdGFydCB3aXRoIDEKPj4+IGRybV9maWxlICogcG9pbnRlciBmb3IgaW50ZXJuYWwg c3R1ZmYgKGJ1dCB3b3VsZCBzdGlsbCBuZWVkIGxvY2tpbmcsIHNvCj4+PiBsaXN0X2hlYWQgaXMg cHJvYmFibHkgZWFzaWVyKS4KPj4+Cj4+PiBUaG91Z2h0cz8KPj4gSSBwcmVmZXIgdG8gaGF2ZSBh IHByb3BlciBpbi1rZXJuZWwgY2xpZW50IEFQSSBmcm9tIHRoZSBnZXQgZ28sIGluc3RlYWQKPj4g b2YgZml4aW5nIGl0IHVwIGxhdGVyLiBUaGUgcmVhc29uIEkgc2tpcHBlZCBzcGVuZGluZyB0aW1l IG9uIGl0IGluIHRoaXMKPj4gUkZDLCB3YXMgdGhhdCBJIGRpZG4ndCBrbm93IGlmIEkgd2FzIG9u IHRoZSByaWdodCB0cmFjayBhdCB0aGUgcmlnaHQgdGltZQo+PiB0byBnZXQgdGhlIG5lY2Vzc2Fy eSBhdHRlbnRpb24gdG8gbWFrZSB0aGlzIGR1bWJfYnVmZmVyIGlkZWEgaGFwcGVuLgo+Pgo+PiBX aXRoIGEgZHJtX2ZpbGUgY2VudHJpYyBhcHByb2FjaCwgYXJlIHlvdSB0aGlua2luZyBzb21ldGhp bmcgbGlrZSB0aGlzOgo+Pgo+PiAgwqBzdHJ1Y3QgZHJtX2RldmljZSB7Cj4+ICvCoMKgwqAgc3Ry dWN0IGxpc3RfaGVhZCBmaWxlbGlzdF9pbnRlcm5hbDsKPj4gIMKgfTsKPj4KPj4gK3N0cnVjdCBk cm1fZmlsZV9mdW5jcyB7Cj4+ICvCoMKgwqAgaW50ICgqcmVzdG9yZSkoc3RydWN0IGRybV9maWxl ICpmaWxlKTsKPj4gK8KgwqDCoCB2b2lkICgqaG90cGx1Zykoc3RydWN0IGRybV9maWxlICpmaWxl KTsKPj4gK8KgwqDCoCB2b2lkICgqdW5yZWdpc3Rlcikoc3RydWN0IGRybV9maWxlICpmaWxlKTsK PiBJIGd1ZXNzIHdlIHN0aWxsIG5lZWQgYSBjbGVhbnVwIGNhbGxiYWNrIGhlcmU/IEZvciB0aGUg dXN1YWwgdHdvLXN0YWdlCj4gZHJpdmVyIHVubG9hZCBzZXF1ZW5jZSBvZiAxLiB1bnJlZ2lzdGVy IDIuIGNsZWFudXAuCgpUaGVyZSdzIG5vIG5lZWQgZm9yIGEgY2xlYW51cCBjYWxsYmFjayBpbiB0 aGlzIHNjZW5hcmlvLgpUaGUgY2xpZW50IGhvbGRzIGEgcmVmIG9uIGRybV9kZXZpY2UgdGhyb3Vn aCBkcm1faW50ZXJuYWxfb3BlbigpIGFuZCBpZgppdCBjYW4ndCByZWxlYXNlIHRoZSBkcm1fZmls ZSBvbiAudW5yZWdpc3RlciwgdGhlcmUgd29uJ3QgYmUgYW55IGNsZWFudXAuCldoZW4gdGhlIGNs aWVudCBpcyBpbiBhIHBvc2l0aW9uIHRvIHJlbGVhc2UgZHJtX2ZpbGUgKGZiX2Nsb3NlKSwgaXQg d2lsbApkbyBzbyBhbmQgdGhlIHJlZiBpcyBkcm9wcGVkLgoKSWYgZm9yIHNvbWUgcmVhc29uIHdl IGNhbid0IHRha2UgYSByZWYsIHRoZW4gd2UgbmVlZCB0byB1c2UKZHJtX2RldmljZS5vcGVuX2Nv dW50IHRvIGF2b2lkIGRybV9kZXZpY2UgZ29pbmcgYXdheSBpbiBkcm1fZGV2X3VucGx1ZygpLgoK Tm9yYWxmLgoKPgo+PiArfTsKPj4KPj4gIMKgc3RydWN0IGRybV9maWxlIHsKPj4gK8KgwqDCoCBz dHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+PiArwqDCoMKgIGNvbnN0IHN0cnVjdCBkcm1fZmlsZV9m dW5jcyAqZnVuY3M7Cj4+ICDCoH07Cj4+Cj4+ICDCoHN0cnVjdCBkcm1fZmlsZSAqZHJtX2ZpbGVf YWxsb2Moc3RydWN0IGRybV9taW5vciAqbWlub3IpCj4+ICDCoHsKPj4gK8KgwqDCoCBmaWxlLT5k ZXYgPSBkZXY7Cj4+ICDCoH0KPj4KPj4gc3RydWN0IGRybV9maWxlKiBkcm1faW50ZXJuYWxfb3Bl bihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgwqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDCoMKg IMKgwqAgY29uc3Qgc3RydWN0IGRybV9maWxlX2Z1bmNzICpmdW5jcykKPj4gIMKgwqDCoCBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGU7Cj4+ICDCoMKgwqAgaW50IHJldDsKPj4KPj4gIMKgwqDCoCBpZiAo IXRyeV9tb2R1bGVfZ2V0KGRldi0+ZHJpdmVyLT5mb3BzLT5vd25lcikpCj4+ICDCoMKgwqAgwqDC oMKgIHJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwo+Pgo+PiAgwqDCoMKgIGRybV9kZXZfcmVmKGRl dik7Cj4+Cj4+ICDCoMKgwqAgZmlsZSA9IGRybV9maWxlX2FsbG9jKGRldik7Cj4+ICDCoMKgwqAg aWYgKElTX0VSUihmaWxlKSkgewo+PiAgwqDCoMKgIMKgwqDCoCBkcm1fZGV2X3VucmVmKGRldik7 Cj4+ICDCoMKgwqAgwqDCoMKgIG1vZHVsZV9wdXQoZGV2LT5kcml2ZXItPmZvcHMtPm93bmVyKTsK Pj4gIMKgwqDCoCDCoMKgwqAgcmV0dXJuIGZpbGU7Cj4+ICDCoMKgwqAgfQo+Pgo+PiAgwqDCoMKg IGZpbGUtPmZ1bmNzID0gZnVuY3M7Cj4+Cj4+ICDCoMKgwqAgbXV0ZXhfbG9jaygmZGV2LT5maWxl bGlzdF9tdXRleCk7Cj4+ICDCoMKgwqAgbGlzdF9hZGQoJmZpbGUtPmxoZWFkLCAmZGV2LT5maWxl bGlzdF9pbnRlcm5hbCk7Cj4+ICDCoMKgwqAgbXV0ZXhfdW5sb2NrKCZkZXYtPmZpbGVsaXN0X211 dGV4KTsKPj4KPj4gIMKgwqDCoCByZXR1cm4gZmlsZTsKPj4gfQo+Pgo+PiB2b2lkIGRybV9pbnRl cm5hbF9yZWxlYXNlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPj4gewo+PiAgwqDCoMKgIHN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBmaWxlLT5kZXY7Cj4+Cj4+ICDCoMKgwqAgbXV0ZXhfbG9jaygm ZGV2LT5maWxlbGlzdF9tdXRleCk7Cj4+ICDCoMKgwqAgbGlzdF9kZWwoJmZpbGUtPmxoZWFkKTsK Pj4gIMKgwqDCoCBtdXRleF91bmxvY2soJmRldi0+ZmlsZWxpc3RfbXV0ZXgpOwo+Pgo+PiAgwqDC oMKgIGRybV9maWxlX2ZyZWUoZmlsZSk7Cj4+ICDCoMKgwqAgZHJtX2Rldl91bnJlZihkZXYpOwo+ PiAgwqDCoMKgIG1vZHVsZV9wdXQoZGV2LT5kcml2ZXItPmZvcHMtPm93bmVyKTsKPj4gfQo+Pgo+ PiAgwqB2b2lkIGRybV9sYXN0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gIMKgewo+ Pgo+PiArwqDCoMKgIG11dGV4X2xvY2soJmRldi0+ZmlsZWxpc3RfbXV0ZXgpOwo+PiArwqDCoMKg IGxpc3RfZm9yX2VhY2hfZW50cnkoZmlsZSwgJmRldi0+ZmlsZWxpc3RfaW50ZXJuYWwsIGxoZWFk KSB7Cj4+ICvCoMKgwqAgwqDCoMKgIGlmIChmaWxlLT5mdW5jcyAmJiBmaWxlLT5mdW5jcy0+cmVz dG9yZSAmJgo+PiArwqDCoMKgIMKgwqDCoCDCoMKgwqAgIWZpbGUtPmZ1bmNzLT5yZXN0b3JlKGZp bGUpKQo+PiArwqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDCoMKgIGJyZWFrOwo+PiArwqDCoMKgIG11 dGV4X3VubG9jaygmZGV2LT5maWxlbGlzdF9tdXRleCk7Cj4+ICDCoH0KPj4KPj4gIMKgdm9pZCBk cm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICDC oHsKPj4KPj4gK8KgwqDCoCBtdXRleF9sb2NrKCZkZXYtPmZpbGVsaXN0X211dGV4KTsKPj4gK8Kg wqDCoCBsaXN0X2Zvcl9lYWNoX2VudHJ5KGZpbGUsICZkZXYtPmZpbGVsaXN0X2ludGVybmFsLCBs aGVhZCkgewo+PiArwqDCoMKgIMKgwqDCoCBpZiAoZmlsZS0+ZnVuY3MgJiYgZmlsZS0+ZnVuY3Mt PmhvdHBsdWcpCj4+ICvCoMKgwqAgwqDCoMKgIMKgwqDCoCBmaWxlLT5mdW5jcy0+aG90cGx1Zyhm aWxlKTsKPj4gK8KgwqDCoCBtdXRleF91bmxvY2soJmRldi0+ZmlsZWxpc3RfbXV0ZXgpOwo+PiAg wqB9Cj4+Cj4+IEhvdyBpcyBsb2NraW5nIGRvbmUgd2hlbiAudW5yZWdpc3RlciB3aWxsIGNhbGwg aW50byBkcm1faW50ZXJuYWxfcmVsZWFzZSgpPwo+Pgo+PiAgwqB2b2lkIGRybV9kZXZfdW5yZWdp c3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgwqB7Cj4+Cj4+ICvCoMKgwqAgbGlzdF9m b3JfZWFjaF9lbnRyeShmaWxlLCAmZGV2LT5maWxlbGlzdF9pbnRlcm5hbCwgbGhlYWQpIHsKPj4g K8KgwqDCoCDCoMKgwqAgaWYgKGZpbGUtPmZ1bmNzICYmIGZpbGUtPmZ1bmNzLT51bnJlZ2lzdGVy KQo+PiArwqDCoMKgIMKgwqDCoCDCoMKgwqAgZmlsZS0+ZnVuY3MtPnVucmVnaXN0ZXIoZmlsZSk7 Cj4+ICDCoH0KPj4KPj4gVGhlcmUgaXMgYWxzbyB0aGUgY2FzZSB3aGVyZSAudW5yZWdpc3RlciBj YW4ndCByZWxlYXNlIHRoZSBkcm1fZmlsZQo+PiBiZWNhdXNlIHVzZXJzcGFjZSBoYXMgbW1hcCdl ZCB0aGUgYnVmZmVyIChmYmRldikuIFRoZSBjbGllbnQgaG9sZHMgYSByZWYKPj4gb24gZHJtX2Rl dmljZSBzbyBjbGVhbnVwIGlzIHN0YWxsZWQgYnV0IHRoYXQgcmVxdWlyZXMgYSBkcml2ZXIgdGhh dCBjYW4KPj4gaGFuZGxlIHRoYXQgKHJlZiB0aGUgdGlueWRybSB1bnBsdWcgc2VyaWVzIHdoaWNo IGlzIGF3YWl0aW5nIGEgdGltZXNsb3QpLgo+IFllYWggd2UgbmVlZCB0aGUgdXN1YWwgc3BsaXQg aW50byAyIHRoaW5ncywgd2l0aCB1bnJlZ2lzdGVyIG9ubHkgdGFraW5nCj4gYXdheSB0aGUgdWFw aSAoYnV0IGtlZXBpbmcgcmVmZXJlbmNlcyBzdGlsbCB0byB0aGUgZHJtX2RldmljZS9tb2R1bGUp Lgo+IE9uY2UgZmJfY2xvc2UgaGFzIGJlZW4gY2FsbGVkIGFuZCB0aGUgZHJtX2RldmljZSBjYW4g YmUgZnJlZWQsIHRoZW4gd2UKPiBuZWVkIGEgc2VwYXJhdGUgY2xlYW51cCBjYWxsYmFjay4KPgo+ IFRoaXMgYWxzbyBtZWFucyB0aGF0IGxvY2tpbmcgaXMgbm8gaXNzdWUgZm9yIC0+dW5yZWdpc3Rl ci4gSXQncyBvbmx5IGFuCj4gaXNzdWUgZm9yIC0+Y2xlYW51cDoKPiAtIGxpc3RfZm9yX2VhY2hf ZW50cnlfc2FmZSwgc2luY2UgdGhlIC0+Y2xlYW51cCBjYWxsYmFjayB3aWxsIHNlbGYtcmVtb3Zl Cj4gLSBhIGNvbW1lbnQgbGlrZSB3ZSBhbHJlYWR5IGhhdmUgZm9yIHRoZSBmYiBsaXN0IHRoYXQg c2luY2UgY2xlYW51cCBpcwo+ICAgIGNhbGxlZCBvbmx5IGZyb20gMSB0aHJlYWQsIGF0IGEgdGlt ZSB3aGVyZSB3ZSBrbm93IG5vdGhpbmcgZWxzZSBjYW4gZ2V0Cj4gICAgYXQgdGhlIGRybV9kZXZp Y2UgYW55bW9yZSAodGhlIGxhc3QgcmVmZXJlbmNlIHdhcyBkcm9wcGVkKSBpdCdzIHNhZmUgdG8K PiAgICBpdGVyYXRlIHdpdGhvdXQgbG9ja2luZy4KPgo+PiBhbWRncHUgaXRlcmF0ZXMgZGV2LT5m aWxlbGlzdCBpbiBhbWRncHVfZ2VtX2ZvcmNlX3JlbGVhc2UoKSBhbmQKPj4gYW1kZ3B1X3NjaGVk X3Byb2Nlc3NfcHJpb3JpdHlfb3ZlcnJpZGUoKS4gSSBkb24ndCBrbm93IGlmIGl0IG5lZWRzIHRv Cj4+IGhhbmRsZSB0aGUgaW50ZXJuYWwgb25lcyBhcyB3ZWxsLgo+IFRoYXQncyBmb3IgdGhlIHNj aGVkdWxlciwgbm90IGZvciBrbXMuIEFzIGxvbmcgYXMgdGhlIGludGVybmFsIGNsaWVudHMgYXJl Cj4ga21zLW9ubHkgKEkgZG9uJ3QgZXhwZWN0IHRoYXQgdG8gZXZlciBjaGFuZ2UsIGdwdSBjb21t YW5kIHN1Ym1pc3Npb24gbmVlZHMKPiBub24tZ2VuZXJpYyB1c2Vyc3BhY2UpIHRoaXMgc2hvdWxk bid0IGJlIGEgcHJvYmxlbS4KPgo+PiBXaGF0J3MgdGhlIHJhdGlvbmFsIGZvciBoYXZpbmcgc2Vw YXJhdGUgbGlzdHMgZm9yIGludGVybmFsIGFuZCB1c2Vyc3BhY2U/Cj4gSG0gSSBndWVzcyB3ZSBj b3VsZCB1bmlmeSB0aGVtLiBCdXQgcHJvYmFibHkgbW9yZSB3b3JrIHNpbmNlIHdlIG5lZWQgdG8K PiBtYWtlIHN1cmUgdGhhdCBhbGwgdGhlIGV4aXN0aW5nIGZpbGVsaXN0IHdhbGtlcnMgd29uJ3Qg YmUgY29uZnVzZWQgYnkgdGhlCj4gaW50ZXJuYWwgc3R1ZmYuIEkgZmlndXJlZCBpdCdzIGVhc2ll ciB0byBqdXN0IHNwbGl0IHRoZW0uIElmIHdlIGVuZCB1cAo+IGhhdmluZyBsb3RzIG9mIGR1cGxp Y2F0ZWQgbG9vcHMgd2UgY2FuIHJlY29uc2lkZXIgSSB0aGluay4KPgo+PiBUaGVyZSBpcyBvbmUg dGhpbmcgbWlzc2luZyBhbmQgdGhhdCBpcyBub3RpZmljYXRpb24gb2YgbmV3IGRybV9kZXZpY2Vz Lgo+PiBUaGUgY2xpZW50IGl0ZXJhdGVzIHRoZSBhdmFpbGFibGUgZHJtX2RldmljZXMgb24gbW9k dWxlIGluaXQsIGJ1dCBpdAo+PiBuZWVkcyBhIHdheSB0byBrbm93IGFib3V0IGFueSBsYXRlciBk cm1fZGV2aWNlIHJlZ2lzdHJhdGlvbnMuCj4gT2gsIEkgZGlkbid0IG5vdGljZSB0aGF0IHBhcnQu IFRoYXQncyB0aGUgZXhhY3Qgc2FtZSBuYXN0eSBpc3N1ZSBmYmNvbgo+IHdpdGggdHJ5aW5nIHRv IGtlZXAgdXAgdG8gZGF0ZSBmYmRldiBkcml2ZXJzLiBmYmNvbiB1c2VzIGEgbm90aWZpZXIsIGFu ZAo+IHRoZSByZXN1bHRpbmcgbG9ja2luZyBsb29wcyBhcmUgdGVycmlibGUuCj4KPiBCdXQgSSB0 aGluayBpZiB3ZSBkbyBhIG5vdGlmaWVyIF9vbmx5XyBmb3IgbmV3IGRybV9kZXZpY2UgcmVnaXN0 cmF0aW9ucwo+IChpLmUuIHdlIGNhbGwgdGhlIG5vdGlmaWVyIGZyb20gZHJtX2Rldl9yZWdpc3Rl ciksIGFuZCBsZXQgdGhlCj4gdW5yZWdpc3Rlci9jbGVhbnVwIGFsbCBnZXQgaGFuZGxlZCB0aHJv dWdoIHRoZSBuZXcgZHJtX2ZpbGUgY2FsbGJhY2tzLCBpdAo+IHNob3VsZCBiZSBhbGwgZmluZS4g VGhlIG9ubHkgdHJpY2t5IGJpdCB3aWxsIGJlIGNsb3NpbmcgdGhlIHJhY2Ugd2hlbgo+IGxvYWRp bmcgdGhlIGZiZGV2IGVtdWxhdGlvbiBjb2RlIChvciBhbnl0aGluZyBlbHNlIHJlYWxseSkuCj4K PiBUaGUgcmVhbCBkb3duc2lkZSBvZiB0aGlzIGlzIHRoYXQgaXQgZm9yY2VzIGRpc3Ryb3MgdG8g bWFudWFsbHkgbG9hZCB0aGUKPiBmYmRldiBlbXVsYXRpb24gbW9kdWxlIChyaWdodCBub3cgdGhl IGV4cGxpY2l0IGRyaXZlciBjYWxsIGlzIGZvcmNpbmcKPiB0aGF0KSwgd2hpY2ggaXMgYW5ub3lp bmcuCj4KPiBCdXQgb3ZlciB0aGUgcGFzdCB5ZWFycyB3ZSd2ZSBjbGVhbmVkIHVwIHRoZSBzZXBh cmF0aW9uIGJldHdlZW4gdGhlIGZiZGV2Cj4gZW11bGF0aW9uIGFuZCB0aGUgb3RoZXIgaGVscGVy cywgYW5kIHdlIGNvdWxkIHNpbXBseSBtb3ZlIHRoZSBmYmRldgo+IGVtdWxhdGlvbiBpbnRvIHRo ZSBjb3JlIGRybS5rbyBtb2R1bGUuIFRoZW4geW91J2Qgc2ltcGx5IHB1dCBhIGRpcmVjdCBjYWxs Cj4gdG8gcmVnaXN0ZXIgdGhlIGZiZGV2IGluc3RhbmNlIGludG8gZHJtX2Rldl9yZWdpc3Rlciwg ZG9uZS4gTm8gbG9ja2luZwo+IGhlYWRhY2hlLCBubyByYWNlcywgbm90IG1hbnVhbCBtb2R1bGUg bG9hZGluZyBuZWVkZWQuCj4KPiBSaWdodCBub3cgSSdtIGxlYW5pbmcgdG93YXJkcyBtYWtpbmcg dGhlIGZiZGV2IHN0dWZmIGJ1aWx0LWludG8gZHJtLmtvLAo+IGJ1dCBuZWVkIHRvIHBvbmRlciB0 aGlzIHNvbWUgbW9yZSBmaXJzdC4KPiAtRGFuaWVsCj4KPj4gTm9yYWxmLgo+Pgo+Pj4gLURhbmll bAo+Pj4KPj4+PiAtLS0KPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZpbGUuYyAgICAgICAg IHwgMTIgKysrKysrKysrKystCj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZp Zy5jICB8IDEwICsrKysrKysrKysKPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hl bHBlci5jIHwgIDQgKysrKwo+Pj4+ICAgIGluY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaCAgICAg ICAgfCAzMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4+PiAgICA0IGZpbGVz IGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPj4+Pgo+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZpbGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZmlsZS5jCj4+Pj4gaW5kZXggNDAwZDQ0NDM3ZTkzLi43ZWMwOWZiODMxMzUgMTAwNjQ0Cj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9maWxlLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2ZpbGUuYwo+Pj4+IEBAIC0zNSw2ICszNSw3IEBACj4+Pj4gICAgI2luY2x1ZGUgPGxp bnV4L3NsYWIuaD4KPj4+PiAgICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4+Pj4gKyNpbmNs dWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgo+Pj4+ICAgICNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUu aD4KPj4+PiAgICAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPj4+PiBAQCAtNDQxLDEwICs0NDIsMTkg QEAgc3RhdGljIHZvaWQgZHJtX2xlZ2FjeV9kZXZfcmVpbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4+Pj4gICAgdm9pZCBkcm1fbGFzdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQo+ Pj4+ICAgIHsKPj4+PiArCXN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkZXYtPmZi X2hlbHBlcjsKPj4+PiArCWludCByZXQ7Cj4+Pj4gKwo+Pj4+ICAgIAlEUk1fREVCVUcoIlxuIik7 Cj4+Pj4gLQlpZiAoZGV2LT5kcml2ZXItPmxhc3RjbG9zZSkKPj4+PiArCWlmIChkZXYtPmRyaXZl ci0+bGFzdGNsb3NlKSB7Cj4+Pj4gICAgCQlkZXYtPmRyaXZlci0+bGFzdGNsb3NlKGRldik7Cj4+ Pj4gKwl9IGVsc2UgaWYgKGZiX2hlbHBlciAmJiBmYl9oZWxwZXItPmZ1bmNzICYmIGZiX2hlbHBl ci0+ZnVuY3MtPnJlc3RvcmUpIHsKPj4+PiArCQlyZXQgPSBmYl9oZWxwZXItPmZ1bmNzLT5yZXN0 b3JlKGZiX2hlbHBlcik7Cj4+Pj4gKwkJaWYgKHJldCkKPj4+PiArCQkJRFJNX0VSUk9SKCJGYWls ZWQgdG8gcmVzdG9yZSBmYmRldjogJWRcbiIsIHJldCk7Cj4+Pj4gKwl9Cj4+Pj4gKwo+Pj4+ICAg IAlEUk1fREVCVUcoImRyaXZlciBsYXN0Y2xvc2UgY29tcGxldGVkXG4iKTsKPj4+PiAgICAJaWYg KGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTEVHQUNZKSkKPj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9tb2RlX2NvbmZpZy5jCj4+Pj4gaW5kZXggYmM1YzQ2MzA2YjNkLi4yNjBlYjE3MzAyNDQg MTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jCj4+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jCj4+Pj4gQEAgLTIxLDYgKzIx LDcgQEAKPj4+PiAgICAgKi8KPj4+PiAgICAjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+Cj4+ Pj4gKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgo+Pj4+ICAgICNpbmNsdWRlIDxkcm0v ZHJtX21vZGVfY29uZmlnLmg+Cj4+Pj4gICAgI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4+Pj4gQEAg LTYxLDYgKzYyLDExIEBAIGludCBkcm1fbW9kZXNldF9yZWdpc3Rlcl9hbGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPj4+PiAgICB2b2lkIGRybV9tb2Rlc2V0X3VucmVnaXN0ZXJfYWxsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4+Pj4gICAgewo+Pj4+ICsJc3RydWN0IGRybV9mYl9oZWxwZXIg KmZiX2hlbHBlciA9IGRldi0+ZmJfaGVscGVyOwo+Pj4+ICsKPj4+PiArCWlmIChmYl9oZWxwZXIg JiYgZmJfaGVscGVyLT5mdW5jcyAmJiBmYl9oZWxwZXItPmZ1bmNzLT51bnJlZ2lzdGVyKQo+Pj4+ ICsJCWZiX2hlbHBlci0+ZnVuY3MtPnVucmVnaXN0ZXIoZmJfaGVscGVyKTsKPj4+PiArCj4+Pj4g ICAgCWRybV9jb25uZWN0b3JfdW5yZWdpc3Rlcl9hbGwoZGV2KTsKPj4+PiAgICAJZHJtX2VuY29k ZXJfdW5yZWdpc3Rlcl9hbGwoZGV2KTsKPj4+PiAgICAJZHJtX2NydGNfdW5yZWdpc3Rlcl9hbGwo ZGV2KTsKPj4+PiBAQCAtNDA4LDYgKzQxNCw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX21vZGVfY29u ZmlnX2luaXQpOwo+Pj4+ICAgICAqLwo+Pj4+ICAgIHZvaWQgZHJtX21vZGVfY29uZmlnX2NsZWFu dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4+PiAgICB7Cj4+Pj4gKwlzdHJ1Y3QgZHJtX2Zi X2hlbHBlciAqZmJfaGVscGVyID0gZGV2LT5mYl9oZWxwZXI7Cj4+Pj4gICAgCXN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3I7Cj4+Pj4gICAgCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3Rf aXRlciBjb25uX2l0ZXI7Cj4+Pj4gICAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YywgKmN0Owo+Pj4+ IEBAIC00MTcsNiArNDI0LDkgQEAgdm9pZCBkcm1fbW9kZV9jb25maWdfY2xlYW51cChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+Pj4+ICAgIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2Is ICpidDsKPj4+PiAgICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsICpwbHQ7Cj4+Pj4gKwlpZiAo ZmJfaGVscGVyICYmIGZiX2hlbHBlci0+ZnVuY3MgJiYgZmJfaGVscGVyLT5mdW5jcy0+cmVsZWFz ZSkKPj4+PiArCQlmYl9oZWxwZXItPmZ1bmNzLT5yZWxlYXNlKGZiX2hlbHBlcik7Cj4+Pj4gKwo+ Pj4+ICAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZW5jb2RlciwgZW5jdCwgJmRldi0+bW9k ZV9jb25maWcuZW5jb2Rlcl9saXN0LAo+Pj4+ICAgIAkJCQkgaGVhZCkgewo+Pj4+ICAgIAkJZW5j b2Rlci0+ZnVuY3MtPmRlc3Ryb3koZW5jb2Rlcik7Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hl bHBlci5jCj4+Pj4gaW5kZXggNTU1ZmJlNTRkNmUyLi45ZDhiMGJhNTQxNzMgMTAwNjQ0Cj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYwo+Pj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKPj4+PiBAQCAtNTU5LDEwICs1NTksMTQgQEAg RVhQT1JUX1NZTUJPTChkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMpOwo+ Pj4+ICAgICAqLwo+Pj4+ICAgIHZvaWQgZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+Pj4+ICAgIHsKPj4+PiArCXN0cnVjdCBkcm1fZmJfaGVscGVy ICpmYl9oZWxwZXIgPSBkZXYtPmZiX2hlbHBlcjsKPj4+PiArCj4+Pj4gICAgCS8qIHNlbmQgYSB1 ZXZlbnQgKyBjYWxsIGZiZGV2ICovCj4+Pj4gICAgCWRybV9zeXNmc19ob3RwbHVnX2V2ZW50KGRl dik7Cj4+Pj4gICAgCWlmIChkZXYtPm1vZGVfY29uZmlnLmZ1bmNzLT5vdXRwdXRfcG9sbF9jaGFu Z2VkKQo+Pj4+ICAgIAkJZGV2LT5tb2RlX2NvbmZpZy5mdW5jcy0+b3V0cHV0X3BvbGxfY2hhbmdl ZChkZXYpOwo+Pj4+ICsJZWxzZSBpZiAoZmJfaGVscGVyICYmIGZiX2hlbHBlci0+ZnVuY3MgJiYg ZmJfaGVscGVyLT5mdW5jcy0+aG90cGx1Z19ldmVudCkKPj4+PiArCQlmYl9oZWxwZXItPmZ1bmNz LT5ob3RwbHVnX2V2ZW50KGZiX2hlbHBlcik7Cj4+Pj4gICAgfQo+Pj4+ICAgIEVYUE9SVF9TWU1C T0woZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudCk7Cj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9mYl9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaAo+Pj4+ IGluZGV4IDE2ZDg3NzNiNjBlMy4uMzg1Zjk2N2MzNTUyIDEwMDY0NAo+Pj4+IC0tLSBhL2luY2x1 ZGUvZHJtL2RybV9mYl9oZWxwZXIuaAo+Pj4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxw ZXIuaAo+Pj4+IEBAIC0xMjUsNiArMTI1LDM5IEBAIHN0cnVjdCBkcm1fZmJfaGVscGVyX2Z1bmNz IHsKPj4+PiAgICAJCQkgICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKiptb2RlcywKPj4+ PiAgICAJCQkgICAgICAgc3RydWN0IGRybV9mYl9vZmZzZXQgKm9mZnNldHMsCj4+Pj4gICAgCQkJ ICAgICAgIGJvb2wgKmVuYWJsZWQsIGludCB3aWR0aCwgaW50IGhlaWdodCk7Cj4+Pj4gKwo+Pj4+ ICsJLyoqCj4+Pj4gKwkgKiBAcmVzdG9yZToKPj4+PiArCSAqCj4+Pj4gKwkgKiBPcHRpb25hbCBj YWxsYmFjayBmb3IgcmVzdG9yaW5nIGZiZGV2IGVtdWxhdGlvbi4KPj4+PiArCSAqIENhbGxlZCBi eSBkcm1fbGFzdGNsb3NlKCkgaWYgJmRybV9kcml2ZXItPmxhc3RjbG9zZSBpcyBub3Qgc2V0Lgo+ Pj4+ICsJICovCj4+Pj4gKwlpbnQgKCpyZXN0b3JlKShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJf aGVscGVyKTsKPj4+PiArCj4+Pj4gKwkvKioKPj4+PiArCSAqIEBob3RwbHVnX2V2ZW50Ogo+Pj4+ ICsJICoKPj4+PiArCSAqIE9wdGlvbmFsIGNhbGxiYWNrIGZvciBob3RwbHVnIGV2ZW50cy4KPj4+ PiArCSAqIENhbGxlZCBieSBkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KCkgaWYKPj4+PiAr CSAqICZkcm1fbW9kZV9jb25maWdfZnVuY3MtPm91dHB1dF9wb2xsX2NoYW5nZWQgIGlzIG5vdCBz ZXQuCj4+Pj4gKwkgKi8KPj4+PiArCWludCAoKmhvdHBsdWdfZXZlbnQpKHN0cnVjdCBkcm1fZmJf aGVscGVyICpmYl9oZWxwZXIpOwo+Pj4+ICsKPj4+PiArCS8qKgo+Pj4+ICsJICogQHVucmVnaXN0 ZXI6Cj4+Pj4gKwkgKgo+Pj4+ICsJICogT3B0aW9uYWwgY2FsbGJhY2sgZm9yIHVucmVnaXN0cmVy aW5nIGZiZGV2IGVtdWxhdGlvbi4KPj4+PiArCSAqIENhbGxlZCBieSBkcm1fZGV2X3VucmVnaXN0 ZXIoKS4KPj4+PiArCSAqLwo+Pj4+ICsJdm9pZCAoKnVucmVnaXN0ZXIpKHN0cnVjdCBkcm1fZmJf aGVscGVyICpmYl9oZWxwZXIpOwo+Pj4+ICsKPj4+PiArCS8qKgo+Pj4+ICsJICogQHJlbGVhc2U6 Cj4+Pj4gKwkgKgo+Pj4+ICsJICogT3B0aW9uYWwgY2FsbGJhY2sgZm9yIHJlbGVhc2luZyBmYmRl diBlbXVsYXRpb24gcmVzb3VyY2VzLgo+Pj4+ICsJICogQ2FsbGVkIGJ5IGRybV9tb2RlX2NvbmZp Z19jbGVhbnVwKCkuCj4+Pj4gKwkgKi8KPj4+PiArCXZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgZHJt X2ZiX2hlbHBlciAqZmJfaGVscGVyKTsKPj4+PiAgICB9Owo+Pj4+ICAgIHN0cnVjdCBkcm1fZmJf aGVscGVyX2Nvbm5lY3RvciB7Cj4+Pj4gLS0gCj4+Pj4gMi4xNC4yCj4+Pj4KCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=