From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 9/9] drm/fb-helper: Finish the generic fbdev emulation Date: Thu, 24 May 2018 11:57:36 +0200 Message-ID: <20180524095736.GJ3438@phenom.ffwll.local> References: <20180523143411.64070-1-noralf@tronnes.org> <20180523143411.64070-10-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id E8CD66E01C for ; Thu, 24 May 2018 09:57:40 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id o78-v6so3496474wmg.0 for ; Thu, 24 May 2018 02:57:40 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180523143411.64070-10-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 T24gV2VkLCBNYXkgMjMsIDIwMTggYXQgMDQ6MzQ6MTFQTSArMDIwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IFRoaXMgYWRkcyBhIGRybV9mYmRldl9nZW5lcmljX3NldHVwKCkgZnVuY3Rpb24g dGhhdCBzZXRzIHVwIGdlbmVyaWMKPiBmYmRldiBlbXVsYXRpb24gd2l0aCBjbGllbnQgY2FsbGJh Y2tzIGZvciBsYXN0Y2xvc2UsIGhvdHBsdWcgYW5kCj4gcmVtb3ZlL3VucmVnaXN0ZXIuCj4gCj4g U2lnbmVkLW9mZi1ieTogTm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Cj4gLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgfCAxMjMgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmgg ICAgIHwgICA3ICsrKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDEzMCBpbnNlcnRpb25zKCspCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gaW5kZXggNDQ0YzJiNDA0MGVhLi5iYzgyNjQ1N2ViODQg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiBAQCAtNjgsNiArNjgsOSBAQCBzdGF0aWMg REVGSU5FX01VVEVYKGtlcm5lbF9mYl9oZWxwZXJfbG9jayk7Cj4gICAqIGhlbHBlciBmdW5jdGlv bnMgdXNlZCBieSBtYW55IGRyaXZlcnMgdG8gaW1wbGVtZW50IHRoZSBrZXJuZWwgbW9kZSBzZXR0 aW5nCj4gICAqIGludGVyZmFjZXMuCj4gICAqCj4gKyAqIERyaXZlcnMgdGhhdCBzdXBwb3J0IGEg ZHVtYiBidWZmZXIgd2l0aCBhIHZpcnR1YWwgYWRkcmVzcyBhbmQgbW1hcCBzdXBwb3J0LAo+ICsg KiBzaG91bGQgdHJ5IGFuZCB1c2UgdGhlIGdlbmVyaWMgZmJkZXYgZW11bGF0aW9uIHVzaW5nIGRy bV9mYmRldl9nZW5lcmljX3NldHVwKCkuCj4gKyAqCj4gICAqIFNldHVwIGZiZGV2IGVtdWxhdGlv biBieSBjYWxsaW5nIGRybV9mYl9oZWxwZXJfZmJkZXZfc2V0dXAoKSBhbmQgdGVhciBpdAo+ICAg KiBkb3duIGJ5IGNhbGxpbmcgZHJtX2ZiX2hlbHBlcl9mYmRldl90ZWFyZG93bigpLgo+ICAgKgo+ IEBAIC0zMDkyLDYgKzMwOTUsMTI2IEBAIGludCBkcm1fZmJfaGVscGVyX2dlbmVyaWNfcHJvYmUo c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRy bV9mYl9oZWxwZXJfZ2VuZXJpY19wcm9iZSk7Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRy bV9mYl9oZWxwZXJfZnVuY3MgZHJtX2ZiX2hlbHBlcl9nZW5lcmljX2Z1bmNzID0gewo+ICsJLmZi X3Byb2JlID0gZHJtX2ZiX2hlbHBlcl9nZW5lcmljX3Byb2JlLAo+ICt9Owo+ICsKPiArc3RhdGlj IGludCBkcm1fZmJkZXZfY2xpZW50X3JlbW92ZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVu dCkKPiArewo+ICsJc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGNsaWVudC0+cHJp dmF0ZTsKPiArCj4gKwkvKiBNYXliZSBzZXR1cCB3YXMgdHJpZWQgYnV0IGZhaWxlZCAqLwo+ICsJ aWYgKCFmYl9oZWxwZXIpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJLyogTWF5YmUgZHJtX2ZiX2hl bHBlcl9mYmRldl9zZXR1cCgpIGhhc24ndCBydW4geWV0ICovCj4gKwlpZiAoIWZiX2hlbHBlci0+ ZGV2KSB7Cj4gKwkJa2ZyZWUoZmJfaGVscGVyKTsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArCj4g KwkvKiBNYXliZSBkcm1fZmJfaGVscGVyX2dlbmVyaWNfcHJvYmUoKSBoYXNuJ3QgcnVuIHlldCAq Lwo+ICsJaWYgKCFmYl9oZWxwZXItPmZiZGV2KSB7Cj4gKwkJZHJtX2ZiX2hlbHBlcl9maW5pKGZi X2hlbHBlcik7Cj4gKwkJa2ZyZWUoZmJfaGVscGVyKTsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiAr Cj4gKwl1bnJlZ2lzdGVyX2ZyYW1lYnVmZmVyKGZiX2hlbHBlci0+ZmJkZXYpOwoKSG0sIEknZCBl eHBlY3QgbmljZSBwcm9ibGVtcyB3aXRoIHJlY3Vyc2lvbiBhbmQgbG9ja2luZyBoZXJlLCBzaW5j ZSB3ZQpjbGVhbiB1cCBhIGxvdCBvZiBkcm0gc3R1ZmYgZnJvbSBkZWVwbHkgd2l0aGluIGZiZGV2 IGNhbGxiYWNrcy4gSSB0aGluawptb3ZpbmcgdGhhdCBjbGVhbnVwIGNvZGUgZnJvbSB5b3VyIGZi X2Rlc3Ryb3kgY2FsbGJhY2sgdG8gaGVyZSB3b3VsZCBsb29rCmEgYml0IGNsZWFuZXIsIGFuZCBh dm9pZHMgdGhlIHJpc2sgb2YgZ29pbmcgYm9vbSB3aGlsZSBob2xkaW5nIHRoZQpjb25zb2xlX2xv Y2suIFdoaWNoIGlzIGFsd2F5cyByZWFsbHksIHJlYWxseSBuYXN0eS4KCj4gKwo+ICsJLyoKPiAr CSAqIElmIHVzZXJzcGFjZSBpcyBjbG9zZWQgdGhlIGNsaWVudCBpcyBub3cgZnJlZWQgYnkgZHJt X2ZiZGV2X2ZiX2Rlc3Ryb3koKSwKPiArCSAqIG90aGVyd2lzZSBpdCB3aWxsIGJlIGZyZWVkIG9u IHRoZSBsYXN0IGNsb3NlLgo+ICsJICogUmV0dXJuIDEgdG8gdGVsbCB0aGF0IGZyZWVpbmcgaXMg dGFrZW4gY2FyZSBvZi4KPiArCSAqLwo+ICsJcmV0dXJuIDE7CgpZZWFoIHRoYXQncyBkZWZpbml0 ZWx5IG1hZ2ljIG1pZGxheWVyLCB3ZSBkb24ndCB3YW50IHRoZSBjb3JlIHRvIGZyZWUKc3R1ZmYg Zm9yIHVzIGFuZCB0aGVuIHBhc3MgYXJvdW5kIHJldHVybiB2YWx1ZXMgdG8gdGVsbCBpdCBub3Qg dG8uCgo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGRybV9mYmRldl9jbGllbnRfbGFzdGNsb3NlKHN0 cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KQo+ICt7Cj4gKwlkcm1fZmJfaGVscGVyX3Jlc3Rv cmVfZmJkZXZfbW9kZV91bmxvY2tlZChjbGllbnQtPnByaXZhdGUpOwo+ICsKPiArCXJldHVybiAw Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGRybV9mYmRldl9jbGllbnRfaG90cGx1ZyhzdHJ1Y3Qg ZHJtX2NsaWVudF9kZXYgKmNsaWVudCkKPiArewo+ICsJc3RydWN0IGRybV9mYl9oZWxwZXIgKmZi X2hlbHBlciA9IGNsaWVudC0+cHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj bGllbnQtPmRldjsKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKGRldi0+ZmJfaGVscGVyKQo+ICsJ CXJldHVybiBkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoZGV2LT5mYl9oZWxwZXIpOwo+ICsK PiArCWlmICghZGV2LT5tb2RlX2NvbmZpZy5udW1fY29ubmVjdG9yIHx8ICFmYl9oZWxwZXIpCj4g KwkJcmV0dXJuIDA7Cj4gKwo+ICsJcmV0ID0gZHJtX2ZiX2hlbHBlcl9mYmRldl9zZXR1cChkZXYs IGZiX2hlbHBlciwgJmRybV9mYl9oZWxwZXJfZ2VuZXJpY19mdW5jcywKPiArCQkJCQlmYl9oZWxw ZXItPnByZWZlcnJlZF9icHAsIDApOwo+ICsJaWYgKHJldCkgewo+ICsJCS8qIFNldHVwIGlzIHRy aWVkIG9ubHkgb25jZSAqLwo+ICsJCWNsaWVudC0+cHJpdmF0ZSA9IE5VTEw7Cj4gKwkJa2ZyZWUo ZmJfaGVscGVyKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jbGllbnRfZnVuY3MgZHJtX2ZiZGV2X2Ns aWVudF9mdW5jcyA9IHsKPiArCS5uYW1lCQk9ICJmYmRldiIsCj4gKwkucmVtb3ZlCQk9IGRybV9m YmRldl9jbGllbnRfcmVtb3ZlLAo+ICsJLmxhc3RjbG9zZQk9IGRybV9mYmRldl9jbGllbnRfbGFz dGNsb3NlLAo+ICsJLmhvdHBsdWcJPSBkcm1fZmJkZXZfY2xpZW50X2hvdHBsdWcsCj4gK307Cj4g Kwo+ICsvKioKPiArICogZHJtX2ZiX2hlbHBlcl9nZW5lcmljX2ZiZGV2X3NldHVwKCkgLSBTZXR1 cCBnZW5lcmljIGZiZGV2IGVtdWxhdGlvbgo+ICsgKiBAZGV2OiBEUk0gZGV2aWNlCj4gKyAqIEBw cmVmZXJyZWRfYnBwOiBQcmVmZXJyZWQgYml0cyBwZXIgcGl4ZWwgZm9yIHRoZSBkZXZpY2UuCj4g KyAqICAgICAgICAgICAgICAgICBAZGV2LT5tb2RlX2NvbmZpZy5wcmVmZXJyZWRfZGVwdGggaXMg dXNlZCBpZiB0aGlzIGlzIHplcm8uCj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gc2V0cyB1cCBn ZW5lcmljIGZiZGV2IGVtdWxhdGlvbiBmb3IgZHJpdmVycyB0aGF0IHN1cHBvcnRzCj4gKyAqIGR1 bWIgYnVmZmVycyB3aXRoIGEgdmlydHVhbCBhZGRyZXNzIGFuZCB0aGF0IGNhbiBiZSBtbWFwJ2Vk Lgo+ICsgKgo+ICsgKiBSZXN0b3JlLCBob3RwbHVnIGV2ZW50cyBhbmQgdGVhcmRvd24gYXJlIGFs bCB0YWtlbiBjYXJlIG9mLiBEcml2ZXJzIHRoYXQgZG9lcwo+ICsgKiBzdXNwZW5kL3Jlc3VtZSBu ZWVkIHRvIGNhbGwgZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZCgpIHRoZW1zZWx2 ZXMuCj4gKyAqIFNpbXBsZSBkcml2ZXJzIG1pZ2h0IHVzZSBkcm1fbW9kZV9jb25maWdfaGVscGVy X3N1c3BlbmQoKS4KPiArICoKPiArICogVGhpcyBmdW5jdGlvbiBpcyBzYWZlIHRvIGNhbGwgZXZl biB3aGVuIHRoZXJlIGFyZSBubyBjb25uZWN0b3JzIHByZXNlbnQuCj4gKyAqIFNldHVwIHdpbGwg YmUgcmV0cmllZCBvbiB0aGUgbmV4dCBob3RwbHVnIGV2ZW50LgoKSSB0aGluayB3ZSBzaG91bGQg c3BlbmQgYSBmZXcgbW9yZSB3b3JkcyBvbiB0aGUgbGltaXRhdGlvbnMgb2YgdGhlIGdlbmVyaWMK ZmJkZXYgc3VwcG9ydC4gUHJvYmFibHkgYmVzdCB0byByZWZlcmVuY2UgdGhlIGdlbmVyaWNfcHJv YmUgY2FsbGJhY2sgZm9yCnRoYXQgKGFuZCBtYWtlIHN1cmUgYWxsIHRoZSBsaW1pdGF0aW9ucywg bGlrZSBkZWZpbyB2cy4gbm90IHZtYWxsb2NlZApidWZmZXJzKSBhcmUgZG9jdW1lbnRlZCB0aGVy ZS4KCmxndG0gb3RoZXJ3aXNlLiBXaXRoIHRoZSBkZXN0cm95IHN0b3J5IGNsZWFudXAgdXAgYW5k IHRoZSBrZXJuZWxkb2MKcG9saXNoZWQgYWxzbyBoYXMgbXkKClJldmlld2VkLWJ5OiBEYW5pZWwg VmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ICsgKgo+ICsgKiBSZXR1cm5zOgo+ICsg KiBaZXJvIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICsg Ki8KPiAraW50IGRybV9mYmRldl9nZW5lcmljX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHVuc2lnbmVkIGludCBwcmVmZXJyZWRfYnBwKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqZmJfaGVscGVyOwo+ICsJc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQ7Cj4gKwo+ICsJ aWYgKCFkcm1fZmJkZXZfZW11bGF0aW9uKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWZiX2hlbHBl ciA9IGt6YWxsb2Moc2l6ZW9mKCpmYl9oZWxwZXIpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghZmJf aGVscGVyKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCWNsaWVudCA9IGRybV9jbGllbnRf bmV3KGRldiwgJmRybV9mYmRldl9jbGllbnRfZnVuY3MpOwo+ICsJaWYgKElTX0VSUihjbGllbnQp KSB7Cj4gKwkJa2ZyZWUoZmJfaGVscGVyKTsKPiArCQlyZXR1cm4gUFRSX0VSUihjbGllbnQpOwo+ ICsJfQo+ICsKPiArCWNsaWVudC0+cHJpdmF0ZSA9IGZiX2hlbHBlcjsKPiArCWZiX2hlbHBlci0+ Y2xpZW50ID0gY2xpZW50Owo+ICsJZmJfaGVscGVyLT5wcmVmZXJyZWRfYnBwID0gcHJlZmVycmVk X2JwcDsKPiArCj4gKwlkcm1fZmJkZXZfY2xpZW50X2hvdHBsdWcoY2xpZW50KTsKPiArCj4gKwly ZXR1cm4gMDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9mYmRldl9nZW5lcmljX3NldHVwKTsK PiArCj4gIC8qIFRoZSBLY29uZmlnIERSTV9LTVNfSEVMUEVSIHNlbGVjdHMgRlJBTUVCVUZGRVJf Q09OU09MRSAoaWYgIUVYUEVSVCkKPiAgICogYnV0IHRoZSBtb2R1bGUgZG9lc24ndCBkZXBlbmQg b24gYW55IGZiIGNvbnNvbGUgc3ltYm9scy4gIEF0IGxlYXN0Cj4gICAqIGF0dGVtcHQgdG8gbG9h ZCBmYmNvbiB0byBhdm9pZCBsZWF2aW5nIHRoZSBzeXN0ZW0gd2l0aG91dCBhIHVzYWJsZSBjb25z b2xlLgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmggYi9pbmNsdWRl L2RybS9kcm1fZmJfaGVscGVyLmgKPiBpbmRleCBiYjM4NDY5YTk1MDIuLjg4NGVhYmJjNTRkNSAx MDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmgKPiArKysgYi9pbmNsdWRl L2RybS9kcm1fZmJfaGVscGVyLmgKPiBAQCAtMzQ5LDYgKzM0OSw3IEBAIHZvaWQgZHJtX2ZiX2hl bHBlcl9vdXRwdXRfcG9sbF9jaGFuZ2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICAKPiAg aW50IGRybV9mYl9oZWxwZXJfZ2VuZXJpY19wcm9iZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJf aGVscGVyLAo+ICAJCQkJc3RydWN0IGRybV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplICpzaXplcyk7 Cj4gK2ludCBkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 bnNpZ25lZCBpbnQgcHJlZmVycmVkX2JwcCk7Cj4gICNlbHNlCj4gIHN0YXRpYyBpbmxpbmUgdm9p ZCBkcm1fZmJfaGVscGVyX3ByZXBhcmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCQlz dHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+IEBAIC01OTAsNiArNTkxLDEyIEBAIGRybV9m Yl9oZWxwZXJfZ2VuZXJpY19wcm9iZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLAo+ ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbmxpbmUgaW50Cj4gK2RybV9mYmRldl9n ZW5lcmljX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwcmVmZXJy ZWRfYnBwKQo+ICt7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAgI2VuZGlmCj4gIAo+ICBzdGF0 aWMgaW5saW5lIGludAo+IC0tIAo+IDIuMTUuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUg RW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=