From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v4 3/3] drm: Add helper for simple display pipeline Date: Tue, 17 May 2016 16:14:01 +0300 Message-ID: <20160517131401.GP4329@intel.com> References: <1463077523-23959-1-git-send-email-noralf@tronnes.org> <1463077523-23959-4-git-send-email-noralf@tronnes.org> <20160512183614.GU4329@intel.com> <20160517070501.GJ27098@phenom.ffwll.local> <20160517074651.GM4329@intel.com> <20160517075945.GQ27098@phenom.ffwll.local> <20160517121208.GO4329@intel.com> <20160517130452.GL27098@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 4100F6E6E5 for ; Tue, 17 May 2016 13:14:05 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20160517130452.GL27098@phenom.ffwll.local> 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?= , jsarha@ti.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBNYXkgMTcsIDIwMTYgYXQgMDM6MDQ6NTJQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIE1heSAxNywgMjAxNiBhdCAwMjoyMjoyNlBNICswMjAwLCBOb3JhbGYg VHLDuG5uZXMgd3JvdGU6Cj4gPiAKPiA+IAo+ID4gRGVuIDE3LjA1LjIwMTYgMTQ6MTIsIHNrcmV2 IFZpbGxlIFN5cmrDpGzDpDoKPiA+ID5PbiBUdWUsIE1heSAxNywgMjAxNiBhdCAwMjowMDo0NVBN ICswMjAwLCBOb3JhbGYgVHLDuG5uZXMgd3JvdGU6Cj4gPiA+PkRlbiAxNy4wNS4yMDE2IDA5OjU5 LCBza3JldiBEYW5pZWwgVmV0dGVyOgo+ID4gPj4+T24gVHVlLCBNYXkgMTcsIDIwMTYgYXQgMTA6 NDY6NTFBTSArMDMwMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gPj4+Pk9uIFR1ZSwgTWF5 IDE3LCAyMDE2IGF0IDA5OjA1OjAxQU0gKzAyMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+ Pj4+Pk9uIFRodSwgTWF5IDEyLCAyMDE2IGF0IDA5OjM2OjE0UE0gKzAzMDAsIFZpbGxlIFN5cmrD pGzDpCB3cm90ZToKPiA+ID4+Pj4+Pk9uIFRodSwgTWF5IDEyLCAyMDE2IGF0IDA4OjI1OjIzUE0g KzAyMDAsIE5vcmFsZiBUcsO4bm5lcyB3cm90ZToKPiA+ID4+Pj4+Pj5Qcm92aWRlcyBoZWxwZXIg ZnVuY3Rpb25zIGZvciBkcml2ZXJzIHRoYXQgaGF2ZSBhIHNpbXBsZSBkaXNwbGF5Cj4gPiA+Pj4+ Pj4+cGlwZWxpbmUuIFBsYW5lLCBjcnRjIGFuZCBlbmNvZGVyIGFyZSBjb2xsYXBzZWQgaW50byBv bmUgZW50aXR5Lgo+ID4gPj4+Pj4+Pgo+ID4gPj4+Pj4+PkNjOiBqc2FyaGFAdGkuY29tCj4gPiA+ Pj4+Pj4+U2lnbmVkLW9mZi1ieTogTm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+ Cj4gPiA+Pj4+Pj4+LS0tCj4gPiA+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Q2hhbmdlcyBzaW5jZSB2MzoK PiA+ID4+Pj4+Pj4tIChzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKiktPmZ1bmNzIHNo b3VsZCBiZSBjb25zdAo+ID4gPj4+Pj4+Pgo+ID4gPj4+Pj4+PkNoYW5nZXMgc2luY2UgdjI6Cj4g PiA+Pj4+Pj4+LSBEcm9wIEtjb25maWcga25vYiBEUk1fS01TX0hFTFBFUgo+ID4gPj4+Pj4+Pi0g RXhwYW5kIGRvY3VtZW50YXRpb24KPiA+ID4+Pj4+Pj4KPiA+ID4+Pj4+Pj5DaGFuZ2VzIHNpbmNl IHYxOgo+ID4gPj4+Pj4+Pi0gQWRkIERPQyBoZWFkZXIgYW5kIGFkZCB0byBncHUudG1wbAo+ID4g Pj4+Pj4+Pi0gRml4IGRvY3M6IEBmdW5jcyBpcyBvcHRpb25hbCwgIm5lZ2F0aXZlIGVycm9yIGNv ZGUiLAo+ID4gPj4+Pj4+PiAgICAiVGhpcyBob29rIGlzIG9wdGlvbmFsLiIKPiA+ID4+Pj4+Pj4t IEFkZCBjaGVja3MgdG8gZHJtX3NpbXBsZV9rbXNfcGxhbmVfYXRvbWljX2NoZWNrKCkKPiA+ID4+ Pj4+Pj4KPiA+ID4+Pj4+Pj4gICBEb2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1LnRtcGwgICAgICAg ICAgfCAgIDYgKwo+ID4gPj4+Pj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICAgICAg ICAgICAgICB8ICAgMiArLQo+ID4gPj4+Pj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxl X2ttc19oZWxwZXIuYyB8IDIwOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4g Pj4+Pj4+PiAgIGluY2x1ZGUvZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oICAgICB8ICA5NCAr KysrKysrKysrKysrKysKPiA+ID4+Pj4+Pj4gICA0IGZpbGVzIGNoYW5nZWQsIDMwOSBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPiA+Pj4+Pj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuYwo+ID4gPj4+Pj4+PiAgIGNyZWF0 ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaAo+ID4gPj4+ Pj4+Pgo+ID4gPj4+Pj4+PmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1LnRt cGwgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1LnRtcGwKPiA+ID4+Pj4+Pj5pbmRleCA0YTBj NTk5Li5jZjNmNWE4IDEwMDY0NAo+ID4gPj4+Pj4+Pi0tLSBhL0RvY3VtZW50YXRpb24vRG9jQm9v ay9ncHUudG1wbAo+ID4gPj4+Pj4+PisrKyBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9ncHUudG1w bAo+ID4gPj4+Pj4+PkBAIC0xNjkzLDYgKzE2OTMsMTIgQEAgdm9pZCBpbnRlbF9jcnRfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gPj4+Pj4+PiAgICFFZHJpdmVycy9ncHUvZHJtL2Ry bV9wYW5lbC5jCj4gPiA+Pj4+Pj4+ICAgIVBkcml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsLmMgZHJt IHBhbmVsCj4gPiA+Pj4+Pj4+ICAgICAgIDwvc2VjdDI+Cj4gPiA+Pj4+Pj4+KyAgICA8c2VjdDI+ Cj4gPiA+Pj4+Pj4+KyAgICAgIDx0aXRsZT5TaW1wbGUgS01TIEhlbHBlciBSZWZlcmVuY2U8L3Rp dGxlPgo+ID4gPj4+Pj4+PishSWluY2x1ZGUvZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oCj4g PiA+Pj4+Pj4+KyFFZHJpdmVycy9ncHUvZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5jCj4gPiA+ Pj4+Pj4+KyFQZHJpdmVycy9ncHUvZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5jIG92ZXJ2aWV3 Cj4gPiA+Pj4+Pj4+KyAgICA8L3NlY3QyPgo+ID4gPj4+Pj4+PiAgICAgPC9zZWN0MT4KPiA+ID4+ Pj4+Pj4KPiA+ID4+Pj4+Pj4gICAgIDwhLS0gSW50ZXJuYWxzOiBrbXMgcHJvcGVydGllcyAtLT4K PiA+ID4+Pj4+Pj5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlIGIvZHJpdmVy cy9ncHUvZHJtL01ha2VmaWxlCj4gPiA+Pj4+Pj4+aW5kZXggMmJkM2U1YS4uMzFiODVkZjUgMTAw NjQ0Cj4gPiA+Pj4+Pj4+LS0tIGEvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCj4gPiA+Pj4+Pj4+ KysrIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCj4gPiA+Pj4+Pj4+QEAgLTIzLDcgKzIzLDcg QEAgZHJtLSQoQ09ORklHX0FHUCkgKz0gZHJtX2FncHN1cHBvcnQubwo+ID4gPj4+Pj4+Pgo+ID4g Pj4+Pj4+PiAgIGRybV9rbXNfaGVscGVyLXkgOj0gZHJtX2NydGNfaGVscGVyLm8gZHJtX2RwX2hl bHBlci5vIGRybV9wcm9iZV9oZWxwZXIubyBcCj4gPiA+Pj4+Pj4+ICAgCQlkcm1fcGxhbmVfaGVs cGVyLm8gZHJtX2RwX21zdF90b3BvbG9neS5vIGRybV9hdG9taWNfaGVscGVyLm8gXAo+ID4gPj4+ Pj4+Pi0JCWRybV9rbXNfaGVscGVyX2NvbW1vbi5vCj4gPiA+Pj4+Pj4+KwkJZHJtX2ttc19oZWxw ZXJfY29tbW9uLm8gZHJtX3NpbXBsZV9rbXNfaGVscGVyLm8KPiA+ID4+Pj4+Pj4KPiA+ID4+Pj4+ Pj4gICBkcm1fa21zX2hlbHBlci0kKENPTkZJR19EUk1fTE9BRF9FRElEX0ZJUk1XQVJFKSArPSBk cm1fZWRpZF9sb2FkLm8KPiA+ID4+Pj4+Pj4gICBkcm1fa21zX2hlbHBlci0kKENPTkZJR19EUk1f RkJERVZfRU1VTEFUSU9OKSArPSBkcm1fZmJfaGVscGVyLm8KPiA+ID4+Pj4+Pj5kaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5jCj4gPiA+Pj4+Pj4+bmV3IGZpbGUgbW9kZSAxMDA2 NDQKPiA+ID4+Pj4+Pj5pbmRleCAwMDAwMDAwLi5kNDU0MTdhCj4gPiA+Pj4+Pj4+LS0tIC9kZXYv bnVsbAo+ID4gPj4+Pj4+PisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxw ZXIuYwo+ID4gPj4+Pj4+PkBAIC0wLDAgKzEsMjA4IEBACj4gPiA+Pj4+Pj4+Ky8qCj4gPiA+Pj4+ Pj4+KyAqIENvcHlyaWdodCAoQykgMjAxNiBOb3JhbGYgVHLDuG5uZXMKPiA+ID4+Pj4+Pj4rICoK PiA+ID4+Pj4+Pj4rICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPiA+ID4+Pj4+Pj4rICogaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiA+ ID4+Pj4+Pj4rICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MiBvZiB0aGUgTGljZW5zZSwgb3IKPiA+ID4+Pj4+Pj4rICogKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KPiA+ID4+Pj4+Pj4rICovCj4gPiA+Pj4+Pj4+Kwo+ID4gPj4+Pj4+Pisj aW5jbHVkZSA8ZHJtL2RybVAuaD4KPiA+ID4+Pj4+Pj4rI2luY2x1ZGUgPGRybS9kcm1fYXRvbWlj Lmg+Cj4gPiA+Pj4+Pj4+KyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPiA+ID4+ Pj4+Pj4rI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KPiA+ID4+Pj4+Pj4rI2luY2x1 ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+Cj4gPiA+Pj4+Pj4+KyNpbmNsdWRlIDxkcm0vZHJt X3NpbXBsZV9rbXNfaGVscGVyLmg+Cj4gPiA+Pj4+Pj4+KyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+ Cj4gPiA+Pj4+Pj4+Kwo+ID4gPj4+Pj4+PisvKioKPiA+ID4+Pj4+Pj4rICogRE9DOiBvdmVydmll dwo+ID4gPj4+Pj4+PisgKgo+ID4gPj4+Pj4+PisgKiBUaGlzIGhlbHBlciBsaWJyYXJ5IHByb3Zp ZGVzIGhlbHBlcnMgZm9yIGRyaXZlcnMgZm9yIHNpbXBsZSBkaXNwbGF5Cj4gPiA+Pj4+Pj4+KyAq IGhhcmR3YXJlLgo+ID4gPj4+Pj4+PisgKgo+ID4gPj4+Pj4+PisgKiBkcm1fc2ltcGxlX2Rpc3Bs YXlfcGlwZV9pbml0KCkgaW5pdGlhbGl6ZXMgYSBzaW1wbGUgZGlzcGxheSBwaXBlbGluZQo+ID4g Pj4+Pj4+PisgKiB3aGljaCBoYXMgb25seSBvbmUgZnVsbC1zY3JlZW4gc2Nhbm91dCBidWZmZXIg ZmVlZGluZyBvbmUgb3V0cHV0LiBUaGUKPiA+ID4+Pj4+Pj4rICogcGlwZWxpbmUgaXMgcmVwcmVz ZW50ZWQgYnkgc3RydWN0ICZkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSBhbmQgYmluZHMKPiA+ID4+ Pj4+Pj4rICogdG9nZXRoZXIgJmRybV9wbGFuZSwgJmRybV9jcnRjIGFuZCAmZHJtX2VuY29kZXIg c3RydWN0dXJlcyBpbnRvIG9uZSBmaXhlZAo+ID4gPj4+Pj4+PisgKiBlbnRpdHkuIFNvbWUgZmxl eGliaWxpdHkgZm9yIGNvZGUgcmV1c2UgaXMgcHJvdmlkZWQgdGhyb3VnaCBhIHNlcGFyYXRlbHkK PiA+ID4+Pj4+Pj4rICogYWxsb2NhdGVkICZkcm1fY29ubmVjdG9yIG9iamVjdCBhbmQgc3VwcG9y dGluZyBvcHRpb25hbCAmZHJtX2JyaWRnZQo+ID4gPj4+Pj4+PisgKiBlbmNvZGVyIGRyaXZlcnMu Cj4gPiA+Pj4+Pj4+KyAqLwo+ID4gPj4+Pj4+PisKPiA+ID4+Pj4+Pj4rc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fZW5jb2Rlcl9mdW5jcyBkcm1fc2ltcGxlX2ttc19lbmNvZGVyX2Z1bmNzID0gewo+ ID4gPj4+Pj4+PisJLmRlc3Ryb3kgPSBkcm1fZW5jb2Rlcl9jbGVhbnVwLAo+ID4gPj4+Pj4+Pit9 Owo+ID4gPj4+Pj4+PisKPiA+ID4+Pj4+Pj4rc3RhdGljIHZvaWQgZHJtX3NpbXBsZV9rbXNfY3J0 Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ID4gPj4+Pj4+Pit7Cj4gPiA+Pj4+Pj4+ KwlzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGU7Cj4gPiA+Pj4+Pj4+Kwo+ID4g Pj4+Pj4+PisJcGlwZSA9IGNvbnRhaW5lcl9vZihjcnRjLCBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNw bGF5X3BpcGUsIGNydGMpOwo+ID4gPj4+Pj4+PisJaWYgKCFwaXBlLT5mdW5jcyB8fCAhcGlwZS0+ ZnVuY3MtPmVuYWJsZSkKPiA+ID4+Pj4+Pj4rCQlyZXR1cm47Cj4gPiA+Pj4+Pj4+Kwo+ID4gPj4+ Pj4+PisJcGlwZS0+ZnVuY3MtPmVuYWJsZShwaXBlLCBjcnRjLT5zdGF0ZSk7Cj4gPiA+Pj4+Pj4+ K30KPiA+ID4+Pj4+Pj4rCj4gPiA+Pj4+Pj4+K3N0YXRpYyB2b2lkIGRybV9zaW1wbGVfa21zX2Ny dGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiA+Pj4+Pj4+K3sKPiA+ID4+Pj4+ Pj4rCXN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZTsKPiA+ID4+Pj4+Pj4rCj4g PiA+Pj4+Pj4+KwlwaXBlID0gY29udGFpbmVyX29mKGNydGMsIHN0cnVjdCBkcm1fc2ltcGxlX2Rp c3BsYXlfcGlwZSwgY3J0Yyk7Cj4gPiA+Pj4+Pj4+KwlpZiAoIXBpcGUtPmZ1bmNzIHx8ICFwaXBl LT5mdW5jcy0+ZGlzYWJsZSkKPiA+ID4+Pj4+Pj4rCQlyZXR1cm47Cj4gPiA+Pj4+Pj4+Kwo+ID4g Pj4+Pj4+PisJcGlwZS0+ZnVuY3MtPmRpc2FibGUocGlwZSk7Cj4gPiA+Pj4+Pj4+K30KPiA+ID4+ Pj4+Pj4rCj4gPiA+Pj4+Pj4+K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1 bmNzIGRybV9zaW1wbGVfa21zX2NydGNfaGVscGVyX2Z1bmNzID0gewo+ID4gPj4+Pj4+PisJLmRp c2FibGUgPSBkcm1fc2ltcGxlX2ttc19jcnRjX2Rpc2FibGUsCj4gPiA+Pj4+Pj4+KwkuZW5hYmxl ID0gZHJtX3NpbXBsZV9rbXNfY3J0Y19lbmFibGUsCj4gPiA+Pj4+Pj4+K307Cj4gPiA+Pj4+Pj4+ Kwo+ID4gPj4+Pj4+PitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIGRybV9zaW1w bGVfa21zX2NydGNfZnVuY3MgPSB7Cj4gPiA+Pj4+Pj4+KwkucmVzZXQgPSBkcm1fYXRvbWljX2hl bHBlcl9jcnRjX3Jlc2V0LAo+ID4gPj4+Pj4+PisJLmRlc3Ryb3kgPSBkcm1fY3J0Y19jbGVhbnVw LAo+ID4gPj4+Pj4+PisJLnNldF9jb25maWcgPSBkcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmln LAo+ID4gPj4+Pj4+PisJLnBhZ2VfZmxpcCA9IGRybV9hdG9taWNfaGVscGVyX3BhZ2VfZmxpcCwK PiA+ID4+Pj4+Pj4rCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJf Y3J0Y19kdXBsaWNhdGVfc3RhdGUsCj4gPiA+Pj4+Pj4+KwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUg PSBkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUsCj4gPiA+Pj4+Pj4+K307Cj4g PiA+Pj4+Pj4+Kwo+ID4gPj4+Pj4+PitzdGF0aWMgaW50IGRybV9zaW1wbGVfa21zX3BsYW5lX2F0 b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ID4+Pj4+Pj4rCQkJCQlzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiA+ID4+Pj4+Pj4rewo+ID4gPj4+Pj4+ PisJc3RydWN0IGRybV9yZWN0IHNyYyA9IHsKPiA+ID4+Pj4+Pj4rCQkueDEgPSBwbGFuZV9zdGF0 ZS0+c3JjX3gsCj4gPiA+Pj4+Pj4+KwkJLnkxID0gcGxhbmVfc3RhdGUtPnNyY195LAo+ID4gPj4+ Pj4+PisJCS54MiA9IHBsYW5lX3N0YXRlLT5zcmNfeCArIHBsYW5lX3N0YXRlLT5zcmNfdywKPiA+ ID4+Pj4+Pj4rCQkueTIgPSBwbGFuZV9zdGF0ZS0+c3JjX3kgKyBwbGFuZV9zdGF0ZS0+c3JjX2gs Cj4gPiA+Pj4+Pj4+Kwl9Owo+ID4gPj4+Pj4+PisJc3RydWN0IGRybV9yZWN0IGRlc3QgPSB7Cj4g PiA+Pj4+Pj4+KwkJLngxID0gcGxhbmVfc3RhdGUtPmNydGNfeCwKPiA+ID4+Pj4+Pj4rCQkueTEg PSBwbGFuZV9zdGF0ZS0+Y3J0Y195LAo+ID4gPj4+Pj4+PisJCS54MiA9IHBsYW5lX3N0YXRlLT5j cnRjX3ggKyBwbGFuZV9zdGF0ZS0+Y3J0Y193LAo+ID4gPj4+Pj4+PisJCS55MiA9IHBsYW5lX3N0 YXRlLT5jcnRjX3kgKyBwbGFuZV9zdGF0ZS0+Y3J0Y19oLAo+ID4gPj4+Pj4+PisJfTsKPiA+ID4+ Pj4+Pj4rCXN0cnVjdCBkcm1fcmVjdCBjbGlwID0geyAwIH07Cj4gPiA+Pj4+Pj4+KwlzdHJ1Y3Qg ZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGU7Cj4gPiA+Pj4+Pj4+KwlzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gPiA+Pj4+Pj4+Kwlib29sIHZpc2libGU7Cj4gPiA+Pj4+ Pj4+KwlpbnQgcmV0Owo+ID4gPj4+Pj4+PisKPiA+ID4+Pj4+Pj4rCXBpcGUgPSBjb250YWluZXJf b2YocGxhbmUsIHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSwgcGxhbmUpOwo+ID4gPj4+ Pj4+PisJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2V4aXN0aW5nX2NydGNfc3RhdGUocGxh bmVfc3RhdGUtPnN0YXRlLAo+ID4gPj4+Pj4+PisJCQkJCQkJJnBpcGUtPmNydGMpOwo+ID4gPj4+ Pj4+PisJaWYgKGNydGNfc3RhdGUtPmVuYWJsZSAhPSAhIXBsYW5lX3N0YXRlLT5jcnRjKQo+ID4g Pj4+Pj4+PisJCXJldHVybiAtRUlOVkFMOyAvKiBwbGFuZSBtdXN0IG1hdGNoIGNydGMgZW5hYmxl IHN0YXRlICovCj4gPiA+Pj4+Pj4+Kwo+ID4gPj4+Pj4+PisJaWYgKCFjcnRjX3N0YXRlLT5lbmFi bGUpCj4gPiA+Pj4+Pj4+KwkJcmV0dXJuIDA7IC8qIG5vdGhpbmcgdG8gY2hlY2sgd2hlbiBkaXNh Ymxpbmcgb3IgZGlzYWJsZWQgKi8KPiA+ID4+Pj4+Pj4rCj4gPiA+Pj4+Pj4+KwljbGlwLngyID0g Y3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZS5oZGlzcGxheTsKPiA+ID4+Pj4+Pj4rCWNsaXAueTIg PSBjcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlLnZkaXNwbGF5Owo+ID4gPj4+Pj4+PisJcmV0ID0g ZHJtX3BsYW5lX2hlbHBlcl9jaGVja191cGRhdGUocGxhbmUsICZwaXBlLT5jcnRjLAo+ID4gPj4+ Pj4+PisJCQkJCSAgICBwbGFuZV9zdGF0ZS0+ZmIsCj4gPiA+Pj4+Pj4+KwkJCQkJICAgICZzcmMs ICZkZXN0LCAmY2xpcCwKPiA+ID4+Pj4+Pj4rCQkJCQkgICAgRFJNX1BMQU5FX0hFTFBFUl9OT19T Q0FMSU5HLAo+ID4gPj4+Pj4+PisJCQkJCSAgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcs Cj4gPiA+Pj4+Pj4+KwkJCQkJICAgIGZhbHNlLCB0cnVlLCAmdmlzaWJsZSk7Cj4gPiA+Pj4+Pj4+ KwlpZiAocmV0KQo+ID4gPj4+Pj4+PisJCXJldHVybiByZXQ7Cj4gPiA+Pj4+Pj4+Kwo+ID4gPj4+ Pj4+PisJaWYgKCF2aXNpYmxlKQo+ID4gPj4+Pj4+PisJCXJldHVybiAtRUlOVkFMOwo+ID4gPj4+ Pj4+PisKPiA+ID4+Pj4+Pj4rCWlmICghcGlwZS0+ZnVuY3MgfHwgIXBpcGUtPmZ1bmNzLT5jaGVj aykKPiA+ID4+Pj4+Pj4rCQlyZXR1cm4gMDsKPiA+ID4+Pj4+Pj4rCj4gPiA+Pj4+Pj4+KwlyZXR1 cm4gcGlwZS0+ZnVuY3MtPmNoZWNrKHBpcGUsIHBsYW5lX3N0YXRlLCBjcnRjX3N0YXRlKTsKPiA+ ID4+Pj4+Pj4rfQo+ID4gPj4+Pj4+V2hhdCdzIGFueW9uZSBzdXBwb3NlZCB0byBkbyB3aXRoIHRo aXMgd2hlbiB0aGUgY2xpcHBlZCBjb29yZGluYXRlcwo+ID4gPj4+Pj4+YXJlbid0IGV2ZW4gcGFz c2VkL3N0b3JlZCBhbnl3aGVyZT8KPiA+ID4+Pj4+SXQgZGlzYWxsb3dzIHBvc2l0aW9uaW5nIGFu ZCBzY2FsaW5nLCBzbyBzaG91bGRuJ3QgZXZlciBuZWVkIHRvIGhhdmUgdGhlCj4gPiA+Pj4+PmNs aXBwZWQgYXJlYT8KPiA+ID4+Pj5Zb3UgY2FuIHN0aWxsIGNvbmZpZ3VyZSBhIGxhcmdlciBhcmVh IHRoYXQgZ2V0cyBjbGlwcGVkIHRvIHRoZQo+ID4gPj4+PmZ1bGxzY3JlZW4gZGltZW5zaW9ucy4K PiA+ID4+Pk9oIHJpZ2h0LiBOb3JhbGYsIHNvdW5kcyBsaWtlIHdlIG5lZWQgdG8gZmVlZCBiYWNr IHRoZSBjbGlwcGVkIHJlY3RhbmdsZS4KPiA+ID4+PlByb2JhYmx5IGJlc3QgaWYgd2UgYWRkIGNs aXBwZWQgcGxhbmUgY29vcmRpbmF0ZXMgdG8gZHJtX3BsYW5lX3N0YXRlLgo+ID4gPj5Cb3RoIHNy YyBhbmQgY3J0YyBvciBvbmx5IHNyYz8KPiA+ID4+Cj4gPiA+PiAgICAgICBpZiAoIXZpc2libGUp Cj4gPiA+PiAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gPiA+PisKPiA+ID4+KyAgICBwbGFu ZV9zdGF0ZS0+c3JjX3ggPSBzcmMueDE7Cj4gPiA+PisgICAgcGxhbmVfc3RhdGUtPnNyY195ID0g c3JjLnkxOwo+ID4gPj4rICAgIHBsYW5lX3N0YXRlLT5zcmNfdyA9IGRybV9yZWN0X3dpZHRoKCZz cmMpOwo+ID4gPj4rICAgIHBsYW5lX3N0YXRlLT5zcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmc3Jj KTsKPiA+ID4+Kwo+ID4gPj4rICAgIHBsYW5lX3N0YXRlLT5jcnRjX3ggPSBkZXN0LngxOwo+ID4g Pj4rICAgIHBsYW5lX3N0YXRlLT5jcnRjX3kgPSBkZXN0LnkxOwo+ID4gPj4rICAgIHBsYW5lX3N0 YXRlLT5jcnRjX3cgPSBkcm1fcmVjdF93aWR0aCgmZGVzdCk7Cj4gPiA+PisgICAgcGxhbmVfc3Rh dGUtPmNydGNfaCA9IGRybV9yZWN0X2hlaWdodCgmZGVzdCk7Cj4gPiA+WW91IGFyZW4ndCBhbGxv d2VkIGNsb2JiZXIgdGhlIHVzZXIgcHJvdmlkZWQgY29vcmRpbmF0ZXMgbGlrZSB0aGlzLgo+ID4g PldoYXQgeW91IG5lZWQgdG8gZG8gaXMgc3RvcmUgdGhlIGNsaXBwZWQgY29vcmRpbmF0ZXMgaW4g dGhlIHBsYW5lCj4gPiA+c3RhdGUgaW4gYWRkaXRpb24gdG8gdGhlIHVzZXIgY29vcmRpbmF0ZXMu Cj4gPiAKPiA+IEhvdyBkbyBJIGRvIHRoYXQ/Cj4gCj4gQWRkIG5ldyBzZXQgb2YgcGxhbmVfc3Rh dGUtPmNsaXBwZWRfc3JjL2RzdF94L3kvaC93IEkgdGhpbmssIGFuZCBzdWdnZXN0Cj4gdG8gZHJp dmVycyB0byB1c2UgdGhhdCBpZiB0aGV5IG5lZWQgY2xpcHBlZCBjb29yZGluYXRlcy4gSSB0aGlu ayBhdCBsZWFzdCwKPiBhbGwgdGhlc2UgY2xpcCByZWN0cyBhcmUgYSBiaXQgdG9vIGNvbmZ1c2lu ZyB0byBtZS4gVmlsbGU/CgpCYXNpY2FsbHkgZXZlcnlvbmUgc2hvdWxkIHVzZSB0aGUgY2xpcHBl ZCBjb29yZHMuIFRoZXJlIG11c3QgYmUKc29tZXRoaW5nIHZlcnkgc3BlY2lhbCBnb2luZyBvbiBp ZiBhbnlvbmUgd2FudHMgdG8gdXNlIHRoZSByYXcgdXNlcgpjb29yZHMuCgotLSAKVmlsbGUgU3ly asOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754857AbcEQNOJ (ORCPT ); Tue, 17 May 2016 09:14:09 -0400 Received: from mga14.intel.com ([192.55.52.115]:30914 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751443AbcEQNOH (ORCPT ); Tue, 17 May 2016 09:14:07 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,324,1459839600"; d="scan'208";a="968718176" Date: Tue, 17 May 2016 16:14:01 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Noralf =?iso-8859-1?Q?Tr=F8nnes?= , jsarha@ti.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v4 3/3] drm: Add helper for simple display pipeline Message-ID: <20160517131401.GP4329@intel.com> References: <1463077523-23959-1-git-send-email-noralf@tronnes.org> <1463077523-23959-4-git-send-email-noralf@tronnes.org> <20160512183614.GU4329@intel.com> <20160517070501.GJ27098@phenom.ffwll.local> <20160517074651.GM4329@intel.com> <20160517075945.GQ27098@phenom.ffwll.local> <20160517121208.GO4329@intel.com> <20160517130452.GL27098@phenom.ffwll.local> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20160517130452.GL27098@phenom.ffwll.local> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 17, 2016 at 03:04:52PM +0200, Daniel Vetter wrote: > On Tue, May 17, 2016 at 02:22:26PM +0200, Noralf Trønnes wrote: > > > > > > Den 17.05.2016 14:12, skrev Ville Syrjälä: > > >On Tue, May 17, 2016 at 02:00:45PM +0200, Noralf Trønnes wrote: > > >>Den 17.05.2016 09:59, skrev Daniel Vetter: > > >>>On Tue, May 17, 2016 at 10:46:51AM +0300, Ville Syrjälä wrote: > > >>>>On Tue, May 17, 2016 at 09:05:01AM +0200, Daniel Vetter wrote: > > >>>>>On Thu, May 12, 2016 at 09:36:14PM +0300, Ville Syrjälä wrote: > > >>>>>>On Thu, May 12, 2016 at 08:25:23PM +0200, Noralf Trønnes wrote: > > >>>>>>>Provides helper functions for drivers that have a simple display > > >>>>>>>pipeline. Plane, crtc and encoder are collapsed into one entity. > > >>>>>>> > > >>>>>>>Cc: jsarha@ti.com > > >>>>>>>Signed-off-by: Noralf Trønnes > > >>>>>>>--- > > >>>>>>> > > >>>>>>>Changes since v3: > > >>>>>>>- (struct drm_simple_display_pipe *)->funcs should be const > > >>>>>>> > > >>>>>>>Changes since v2: > > >>>>>>>- Drop Kconfig knob DRM_KMS_HELPER > > >>>>>>>- Expand documentation > > >>>>>>> > > >>>>>>>Changes since v1: > > >>>>>>>- Add DOC header and add to gpu.tmpl > > >>>>>>>- Fix docs: @funcs is optional, "negative error code", > > >>>>>>> "This hook is optional." > > >>>>>>>- Add checks to drm_simple_kms_plane_atomic_check() > > >>>>>>> > > >>>>>>> Documentation/DocBook/gpu.tmpl | 6 + > > >>>>>>> drivers/gpu/drm/Makefile | 2 +- > > >>>>>>> drivers/gpu/drm/drm_simple_kms_helper.c | 208 ++++++++++++++++++++++++++++++++ > > >>>>>>> include/drm/drm_simple_kms_helper.h | 94 +++++++++++++++ > > >>>>>>> 4 files changed, 309 insertions(+), 1 deletion(-) > > >>>>>>> create mode 100644 drivers/gpu/drm/drm_simple_kms_helper.c > > >>>>>>> create mode 100644 include/drm/drm_simple_kms_helper.h > > >>>>>>> > > >>>>>>>diff --git a/Documentation/DocBook/gpu.tmpl b/Documentation/DocBook/gpu.tmpl > > >>>>>>>index 4a0c599..cf3f5a8 100644 > > >>>>>>>--- a/Documentation/DocBook/gpu.tmpl > > >>>>>>>+++ b/Documentation/DocBook/gpu.tmpl > > >>>>>>>@@ -1693,6 +1693,12 @@ void intel_crt_init(struct drm_device *dev) > > >>>>>>> !Edrivers/gpu/drm/drm_panel.c > > >>>>>>> !Pdrivers/gpu/drm/drm_panel.c drm panel > > >>>>>>> > > >>>>>>>+ > > >>>>>>>+ Simple KMS Helper Reference > > >>>>>>>+!Iinclude/drm/drm_simple_kms_helper.h > > >>>>>>>+!Edrivers/gpu/drm/drm_simple_kms_helper.c > > >>>>>>>+!Pdrivers/gpu/drm/drm_simple_kms_helper.c overview > > >>>>>>>+ > > >>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>>>>diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile > > >>>>>>>index 2bd3e5a..31b85df5 100644 > > >>>>>>>--- a/drivers/gpu/drm/Makefile > > >>>>>>>+++ b/drivers/gpu/drm/Makefile > > >>>>>>>@@ -23,7 +23,7 @@ drm-$(CONFIG_AGP) += drm_agpsupport.o > > >>>>>>> > > >>>>>>> drm_kms_helper-y := drm_crtc_helper.o drm_dp_helper.o drm_probe_helper.o \ > > >>>>>>> drm_plane_helper.o drm_dp_mst_topology.o drm_atomic_helper.o \ > > >>>>>>>- drm_kms_helper_common.o > > >>>>>>>+ drm_kms_helper_common.o drm_simple_kms_helper.o > > >>>>>>> > > >>>>>>> drm_kms_helper-$(CONFIG_DRM_LOAD_EDID_FIRMWARE) += drm_edid_load.o > > >>>>>>> drm_kms_helper-$(CONFIG_DRM_FBDEV_EMULATION) += drm_fb_helper.o > > >>>>>>>diff --git a/drivers/gpu/drm/drm_simple_kms_helper.c b/drivers/gpu/drm/drm_simple_kms_helper.c > > >>>>>>>new file mode 100644 > > >>>>>>>index 0000000..d45417a > > >>>>>>>--- /dev/null > > >>>>>>>+++ b/drivers/gpu/drm/drm_simple_kms_helper.c > > >>>>>>>@@ -0,0 +1,208 @@ > > >>>>>>>+/* > > >>>>>>>+ * Copyright (C) 2016 Noralf Trønnes > > >>>>>>>+ * > > >>>>>>>+ * This program is free software; you can redistribute it and/or modify > > >>>>>>>+ * it under the terms of the GNU General Public License as published by > > >>>>>>>+ * the Free Software Foundation; either version 2 of the License, or > > >>>>>>>+ * (at your option) any later version. > > >>>>>>>+ */ > > >>>>>>>+ > > >>>>>>>+#include > > >>>>>>>+#include > > >>>>>>>+#include > > >>>>>>>+#include > > >>>>>>>+#include > > >>>>>>>+#include > > >>>>>>>+#include > > >>>>>>>+ > > >>>>>>>+/** > > >>>>>>>+ * DOC: overview > > >>>>>>>+ * > > >>>>>>>+ * This helper library provides helpers for drivers for simple display > > >>>>>>>+ * hardware. > > >>>>>>>+ * > > >>>>>>>+ * drm_simple_display_pipe_init() initializes a simple display pipeline > > >>>>>>>+ * which has only one full-screen scanout buffer feeding one output. The > > >>>>>>>+ * pipeline is represented by struct &drm_simple_display_pipe and binds > > >>>>>>>+ * together &drm_plane, &drm_crtc and &drm_encoder structures into one fixed > > >>>>>>>+ * entity. Some flexibility for code reuse is provided through a separately > > >>>>>>>+ * allocated &drm_connector object and supporting optional &drm_bridge > > >>>>>>>+ * encoder drivers. > > >>>>>>>+ */ > > >>>>>>>+ > > >>>>>>>+static const struct drm_encoder_funcs drm_simple_kms_encoder_funcs = { > > >>>>>>>+ .destroy = drm_encoder_cleanup, > > >>>>>>>+}; > > >>>>>>>+ > > >>>>>>>+static void drm_simple_kms_crtc_enable(struct drm_crtc *crtc) > > >>>>>>>+{ > > >>>>>>>+ struct drm_simple_display_pipe *pipe; > > >>>>>>>+ > > >>>>>>>+ pipe = container_of(crtc, struct drm_simple_display_pipe, crtc); > > >>>>>>>+ if (!pipe->funcs || !pipe->funcs->enable) > > >>>>>>>+ return; > > >>>>>>>+ > > >>>>>>>+ pipe->funcs->enable(pipe, crtc->state); > > >>>>>>>+} > > >>>>>>>+ > > >>>>>>>+static void drm_simple_kms_crtc_disable(struct drm_crtc *crtc) > > >>>>>>>+{ > > >>>>>>>+ struct drm_simple_display_pipe *pipe; > > >>>>>>>+ > > >>>>>>>+ pipe = container_of(crtc, struct drm_simple_display_pipe, crtc); > > >>>>>>>+ if (!pipe->funcs || !pipe->funcs->disable) > > >>>>>>>+ return; > > >>>>>>>+ > > >>>>>>>+ pipe->funcs->disable(pipe); > > >>>>>>>+} > > >>>>>>>+ > > >>>>>>>+static const struct drm_crtc_helper_funcs drm_simple_kms_crtc_helper_funcs = { > > >>>>>>>+ .disable = drm_simple_kms_crtc_disable, > > >>>>>>>+ .enable = drm_simple_kms_crtc_enable, > > >>>>>>>+}; > > >>>>>>>+ > > >>>>>>>+static const struct drm_crtc_funcs drm_simple_kms_crtc_funcs = { > > >>>>>>>+ .reset = drm_atomic_helper_crtc_reset, > > >>>>>>>+ .destroy = drm_crtc_cleanup, > > >>>>>>>+ .set_config = drm_atomic_helper_set_config, > > >>>>>>>+ .page_flip = drm_atomic_helper_page_flip, > > >>>>>>>+ .atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state, > > >>>>>>>+ .atomic_destroy_state = drm_atomic_helper_crtc_destroy_state, > > >>>>>>>+}; > > >>>>>>>+ > > >>>>>>>+static int drm_simple_kms_plane_atomic_check(struct drm_plane *plane, > > >>>>>>>+ struct drm_plane_state *plane_state) > > >>>>>>>+{ > > >>>>>>>+ struct drm_rect src = { > > >>>>>>>+ .x1 = plane_state->src_x, > > >>>>>>>+ .y1 = plane_state->src_y, > > >>>>>>>+ .x2 = plane_state->src_x + plane_state->src_w, > > >>>>>>>+ .y2 = plane_state->src_y + plane_state->src_h, > > >>>>>>>+ }; > > >>>>>>>+ struct drm_rect dest = { > > >>>>>>>+ .x1 = plane_state->crtc_x, > > >>>>>>>+ .y1 = plane_state->crtc_y, > > >>>>>>>+ .x2 = plane_state->crtc_x + plane_state->crtc_w, > > >>>>>>>+ .y2 = plane_state->crtc_y + plane_state->crtc_h, > > >>>>>>>+ }; > > >>>>>>>+ struct drm_rect clip = { 0 }; > > >>>>>>>+ struct drm_simple_display_pipe *pipe; > > >>>>>>>+ struct drm_crtc_state *crtc_state; > > >>>>>>>+ bool visible; > > >>>>>>>+ int ret; > > >>>>>>>+ > > >>>>>>>+ pipe = container_of(plane, struct drm_simple_display_pipe, plane); > > >>>>>>>+ crtc_state = drm_atomic_get_existing_crtc_state(plane_state->state, > > >>>>>>>+ &pipe->crtc); > > >>>>>>>+ if (crtc_state->enable != !!plane_state->crtc) > > >>>>>>>+ return -EINVAL; /* plane must match crtc enable state */ > > >>>>>>>+ > > >>>>>>>+ if (!crtc_state->enable) > > >>>>>>>+ return 0; /* nothing to check when disabling or disabled */ > > >>>>>>>+ > > >>>>>>>+ clip.x2 = crtc_state->adjusted_mode.hdisplay; > > >>>>>>>+ clip.y2 = crtc_state->adjusted_mode.vdisplay; > > >>>>>>>+ ret = drm_plane_helper_check_update(plane, &pipe->crtc, > > >>>>>>>+ plane_state->fb, > > >>>>>>>+ &src, &dest, &clip, > > >>>>>>>+ DRM_PLANE_HELPER_NO_SCALING, > > >>>>>>>+ DRM_PLANE_HELPER_NO_SCALING, > > >>>>>>>+ false, true, &visible); > > >>>>>>>+ if (ret) > > >>>>>>>+ return ret; > > >>>>>>>+ > > >>>>>>>+ if (!visible) > > >>>>>>>+ return -EINVAL; > > >>>>>>>+ > > >>>>>>>+ if (!pipe->funcs || !pipe->funcs->check) > > >>>>>>>+ return 0; > > >>>>>>>+ > > >>>>>>>+ return pipe->funcs->check(pipe, plane_state, crtc_state); > > >>>>>>>+} > > >>>>>>What's anyone supposed to do with this when the clipped coordinates > > >>>>>>aren't even passed/stored anywhere? > > >>>>>It disallows positioning and scaling, so shouldn't ever need to have the > > >>>>>clipped area? > > >>>>You can still configure a larger area that gets clipped to the > > >>>>fullscreen dimensions. > > >>>Oh right. Noralf, sounds like we need to feed back the clipped rectangle. > > >>>Probably best if we add clipped plane coordinates to drm_plane_state. > > >>Both src and crtc or only src? > > >> > > >> if (!visible) > > >> return -EINVAL; > > >>+ > > >>+ plane_state->src_x = src.x1; > > >>+ plane_state->src_y = src.y1; > > >>+ plane_state->src_w = drm_rect_width(&src); > > >>+ plane_state->src_h = drm_rect_height(&src); > > >>+ > > >>+ plane_state->crtc_x = dest.x1; > > >>+ plane_state->crtc_y = dest.y1; > > >>+ plane_state->crtc_w = drm_rect_width(&dest); > > >>+ plane_state->crtc_h = drm_rect_height(&dest); > > >You aren't allowed clobber the user provided coordinates like this. > > >What you need to do is store the clipped coordinates in the plane > > >state in addition to the user coordinates. > > > > How do I do that? > > Add new set of plane_state->clipped_src/dst_x/y/h/w I think, and suggest > to drivers to use that if they need clipped coordinates. I think at least, > all these clip rects are a bit too confusing to me. Ville? Basically everyone should use the clipped coords. There must be something very special going on if anyone wants to use the raw user coords. -- Ville Syrjälä Intel OTC