From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH] drm/omap: Rework the rotation-on-crtc hack Date: Tue, 1 Aug 2017 07:59:13 +0200 Message-ID: References: <20170725080122.20548-2-daniel.vetter@ffwll.ch> <20170731154235.6402-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4B3A06EA77 for ; Tue, 1 Aug 2017 05:59:45 +0000 (UTC) In-Reply-To: <20170731154235.6402-1-daniel.vetter@ffwll.ch> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , DRI Development Cc: Daniel Vetter , Tomi Valkeinen , Laurent Pinchart List-Id: dri-devel@lists.freedesktop.org T3AgMzEtMDctMTcgb20gMTc6NDIgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IEkgd2FudC9uZWVk IHRvIHJld29yayB0aGUgY29yZSBwcm9wZXJ0eSBoYW5kbGluZywgYW5kIHRoaXMgaGFjayBpcwo+ IGdldHRpbmcgaW4gdGhlIHdheS4gQnV0IHNpbmNlIGl0J3MgYSBub24tc3RhbmRhcmQgcHJvcGV0 eSBvbmx5IHVzZWQgYnkKPiBsZWdhY3kgdXNlcnNwYWNlIHdlIGtub3cgdGhhdCB0aGlzIHdpbGwg b25seSBldmVyeSBiZSBjYWxsZWQgZnJvbQo+IGlvY3RsIGNvZGUuIEFuZCBuZXZlciBvbiBzb21l IG90aGVyIGZyZWUtc3RhbmRpbmcgc3RhdGUgc3RydWN0LCB3aGVyZQo+IHRoaXMgb2xkIGhhY2sg d291bGRuJ3Qgd29yayBlaXRoZXIuCj4KPiB2MjogZG9uJ3QgZm9yZ2V0IHpvcmRlciBhbmQgZ2V0 X3Byb3BlcnR5IQo+Cj4gdjM6IFNoYWRvdyB0aGUgbGVnYWN5IHN0YXRlIHRvIGF2b2lkIGxvY2tp bmcgaXNzdWVzIGluIGdldF9wcm9wZXJ0eQo+IChNYWFydGVuKS4KPgo+IHY0OiBSZXZpZXcgZnJv bSBMYXVyZW50Cj4gLSBNb3ZlIHN0cnVjdCBvbWFwX2NydGNfc3RhdGUgaW50byBvbWFwX2NydGMu Ywo+IC0gQ2xlYW4gdXAgY29tbWVudHMuCj4gLSBEb24ndCBmb3JnZXQgdG8gY29weSB0aGUgc2hh ZG93ZWQgc3RhdGUgb3ZlciBvbiBkdXBsaWNhdGUuCj4KPiB2NTogRG9uJ3QgZm9yZ2V0IHRvIHVw ZGF0ZSB0aGUgcmVzZXQgaGFuZGxlciAoTWFhcnRlbikuCj4KPiBSZXZpZXdlZC1ieTogTGF1cmVu dCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPiAodjQpCj4gQ2M6 IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4g Q2M6IFRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkB0aS5jb20KPiBDYzogTGF1cmVudCBQ aW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgo+IFNpZ25lZC1vZmYt Ynk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYyB8IDEwOSArKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDM3 IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29t YXBfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9jcnRjLmMKPiBpbmRleCAx NGU4YTc3MzhiMDYuLjkwMTQwODVjMzNkZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v b21hcGRybS9vbWFwX2NydGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBf Y3J0Yy5jCj4gQEAgLTI2LDYgKzI2LDE2IEBACj4gIAo+ICAjaW5jbHVkZSAib21hcF9kcnYuaCIK PiAgCj4gKyNkZWZpbmUgdG9fb21hcF9jcnRjX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1 Y3Qgb21hcF9jcnRjX3N0YXRlLCBiYXNlKQo+ICsKPiArc3RydWN0IG9tYXBfY3J0Y19zdGF0ZSB7 Cj4gKwkvKiBNdXN0IGJlIGZpcnN0LiAqLwo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlIGJhc2U7 Cj4gKwkvKiBTaGFkb3cgdmFsdWVzIGZvciBsZWdhY3kgdXNlcnNwYWNlIHN1cHBvcnQuICovCj4g Kwl1bnNpZ25lZCBpbnQgcm90YXRpb247Cj4gKwl1bnNpZ25lZCBpbnQgenBvczsKPiArfTsKPiAr Cj4gICNkZWZpbmUgdG9fb21hcF9jcnRjKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qgb21hcF9j cnRjLCBiYXNlKQo+ICAKPiAgc3RydWN0IG9tYXBfY3J0YyB7Cj4gQEAgLTQ5OCwzOSArNTA4LDM1 IEBAIHN0YXRpYyB2b2lkIG9tYXBfY3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpj cnRjLAo+ICAJc3Bpbl91bmxvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2spOwo+ICB9Cj4g IAo+IC1zdGF0aWMgYm9vbCBvbWFwX2NydGNfaXNfcGxhbmVfcHJvcChzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCj4gLQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSkKPiAtewo+IC0Jc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAtCXN0cnVjdCBvbWFwX2RybV9wcml2YXRl ICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCj4gLQlyZXR1cm4gcHJvcGVydHkgPT0gcHJp di0+em9yZGVyX3Byb3AgfHwKPiAtCQlwcm9wZXJ0eSA9PSBjcnRjLT5wcmltYXJ5LT5yb3RhdGlv bl9wcm9wZXJ0eTsKPiAtfQo+IC0KPiAgc3RhdGljIGludCBvbWFwX2NydGNfYXRvbWljX3NldF9w cm9wZXJ0eShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJCQkJIHN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqc3RhdGUsCj4gIAkJCQkJIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAo+ICAJ CQkJCSB1aW50NjRfdCB2YWwpCj4gIHsKPiAtCWlmIChvbWFwX2NydGNfaXNfcGxhbmVfcHJvcChj cnRjLCBwcm9wZXJ0eSkpIHsKPiAtCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZTsKPiAtCQlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9IGNydGMtPnByaW1hcnk7Cj4gLQo+IC0J CS8qCj4gLQkJICogRGVsZWdhdGUgcHJvcGVydHkgc2V0IHRvIHRoZSBwcmltYXJ5IHBsYW5lLiBH ZXQgdGhlIHBsYW5lCj4gLQkJICogc3RhdGUgYW5kIHNldCB0aGUgcHJvcGVydHkgZGlyZWN0bHku Cj4gLQkJICovCj4gLQo+IC0JCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3Rh dGUoc3RhdGUtPnN0YXRlLCBwbGFuZSk7Cj4gLQkJaWYgKElTX0VSUihwbGFuZV9zdGF0ZSkpCj4g LQkJCXJldHVybiBQVFJfRVJSKHBsYW5lX3N0YXRlKTsKPiArCXN0cnVjdCBvbWFwX2RybV9wcml2 YXRlICpwcml2ID0gY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBvbWFwX2NydGNf c3RhdGUgKm9tYXBfc3RhdGUgPSB0b19vbWFwX2NydGNfc3RhdGUoc3RhdGUpOwo+ICsJc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4gIAo+IC0JCXJldHVybiBkcm1fYXRvbWlj X3BsYW5lX3NldF9wcm9wZXJ0eShwbGFuZSwgcGxhbmVfc3RhdGUsCj4gLQkJCQlwcm9wZXJ0eSwg dmFsKTsKPiArCS8qCj4gKwkgKiBEZWxlZ2F0ZSBwcm9wZXJ0eSBzZXQgdG8gdGhlIHByaW1hcnkg cGxhbmUuIEdldCB0aGUgcGxhbmUgc3RhdGUgYW5kCj4gKwkgKiBzZXQgdGhlIHByb3BlcnR5IGRp cmVjdGx5LCBidXQga2VlcCBhIHNoYWRvdyBjb3B5IGZvciB0aGUKPiArCSAqIGF0b21pY19nZXRf cHJvcGVydHkgY2FsbGJhY2suCj4gKwkgKi8KPiArCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19n ZXRfcGxhbmVfc3RhdGUoc3RhdGUtPnN0YXRlLCBjcnRjLT5wcmltYXJ5KTsKPiArCWlmIChJU19F UlIocGxhbmVfc3RhdGUpKQo+ICsJCXJldHVybiBQVFJfRVJSKHBsYW5lX3N0YXRlKTsKPiArCj4g KwlpZiAocHJvcGVydHkgPT0gY3J0Yy0+cHJpbWFyeS0+cm90YXRpb25fcHJvcGVydHkpIHsKPiAr CQlwbGFuZV9zdGF0ZS0+cm90YXRpb24gPSB2YWw7Cj4gKwkJb21hcF9zdGF0ZS0+cm90YXRpb24g PSB2YWw7Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHByaXYtPnpvcmRlcl9wcm9wKSB7Cj4g KwkJcGxhbmVfc3RhdGUtPnpwb3MgPSB2YWw7Cj4gKwkJb21hcF9zdGF0ZS0+enBvcyA9IHZhbDsK V2l0aCBhdG9taWMgd2Ugc2hvdWxkIHRyeSB0byBhbHdheXMgbWFrZSB0aGUgZ2V0cHJvcCB2YWx1 ZXMgYWNjdXJhdGUsIG9yIGNvbXBvc2l0b3JzIG1pZ2h0IGhhdmUKdHJvdWJsZXMgcmVzdG9yaW5n LgoKSSB3b3VsZCB1cGRhdGUgdGhlIHNoYWRvdyB2YWx1ZXMgaW4gb21hcF9jcnRjX2F0b21pY19j aGVjayB0aHJvdWdoIG9tYXBfY3J0Y19hdG9taWNfY2hlY2sgaW5zdGVhZCwKd2l0aCBzb21ldGhp bmcgbGlrZSB0aGlzOgoKKyAgICAgICBwcmlfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfcGxh bmVfc3RhdGUoY3J0Yy0+cHJpbWFyeSwgc3RhdGUtPnN0YXRlKTsKKyAgICAgICBpZiAocHJpX3N0 YXRlKSB7CisgICAgICAgICAgICAgICBzdHJ1Y3Qgb21hcF9jcnRjX3N0YXRlICpvbWFwX2NydGNf c3RhdGUgPQorICAgICAgICAgICAgICAgICAgICAgICB0b19vbWFwX2NydGNfc3RhdGUoc3RhdGUp OworCisgICAgICAgICAgICAgICBvbWFwX2NydGNfc3RhdGUtPnpwb3MgPSBwcmlfc3RhdGUtPnpw b3M7CisgICAgICAgICAgICAgICBvbWFwX2NydGNfc3RhdGUtPnJvdGF0aW9uID0gcHJpX3N0YXRl LT5yb3RhdGlvbjsKKyAgICAgICB9CgpUaGF0IHdheSBldmVuIHdoZW4gdXBkYXRpbmcgdGhlIHBy b3BlcnR5IHRocm91Z2ggdGhlIHByaW1hcnkgcGxhbmUsIGl0IGdldHMgcmVmbGVjdGVkIGNvcnJl Y3RseS4gRm9yIGV4YW1wbGUgd2hlbiB2dCBzd2l0Y2hpbmcKd2l0aCBmYmRldi4KCj4gKwl9IGVs c2Ugewo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+ICAKPiAtCXJldHVybiAtRUlOVkFMOwo+ ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgb21hcF9jcnRjX2F0b21pY19nZXRf cHJvcGVydHkoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+IEBAIC01MzgsMjggKzU0NCw1NyBAQCBz dGF0aWMgaW50IG9tYXBfY3J0Y19hdG9taWNfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKPiAgCQkJCQkgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gIAkJCQkJIHVp bnQ2NF90ICp2YWwpCj4gIHsKPiAtCWlmIChvbWFwX2NydGNfaXNfcGxhbmVfcHJvcChjcnRjLCBw cm9wZXJ0eSkpIHsKPiAtCQkvKgo+IC0JCSAqIERlbGVnYXRlIHByb3BlcnR5IGdldCB0byB0aGUg cHJpbWFyeSBwbGFuZS4gVGhlCj4gLQkJICogZHJtX2F0b21pY19wbGFuZV9nZXRfcHJvcGVydHko KSBmdW5jdGlvbiBpc24ndCBleHBvcnRlZCwgYnV0Cj4gLQkJICogY2FuIGJlIGNhbGxlZCB0aHJv dWdoIGRybV9vYmplY3RfcHJvcGVydHlfZ2V0X3ZhbHVlKCkgYXMgdGhhdAo+IC0JCSAqIHdpbGwg Y2FsbCBkcm1fYXRvbWljX2dldF9wcm9wZXJ0eSgpIGZvciBhdG9taWMgZHJpdmVycy4KPiAtCQkg Ki8KPiAtCQlyZXR1cm4gZHJtX29iamVjdF9wcm9wZXJ0eV9nZXRfdmFsdWUoJmNydGMtPnByaW1h cnktPmJhc2UsCj4gLQkJCQlwcm9wZXJ0eSwgdmFsKTsKPiAtCX0KPiArCXN0cnVjdCBvbWFwX2Ry bV9wcml2YXRlICpwcml2ID0gY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBvbWFw X2NydGNfc3RhdGUgKm9tYXBfc3RhdGUgPSB0b19vbWFwX2NydGNfc3RhdGUoc3RhdGUpOwo+ICsK PiArCWlmIChwcm9wZXJ0eSA9PSBjcnRjLT5wcmltYXJ5LT5yb3RhdGlvbl9wcm9wZXJ0eSkKPiAr CQlyZXR1cm4gb21hcF9zdGF0ZS0+cm90YXRpb247Cj4gKwllbHNlIGlmIChwcm9wZXJ0eSA9PSBw cml2LT56b3JkZXJfcHJvcCkKPiArCQlyZXR1cm4gb21hcF9zdGF0ZS0+enBvczsKPiAgCj4gIAly ZXR1cm4gLUVJTlZBTDsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgb21hcF9jcnRjX3Jlc2V0KHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKPiArewo+ICsJaWYgKGNydGMtPnN0YXRlKQo+ICsJCV9fZHJt X2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKGNydGMtPnN0YXRlKTsKPiArCj4gKwlr ZnJlZShjcnRjLT5zdGF0ZSk7Cj4gKwljcnRjLT5zdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVj dCBvbWFwX2NydGNfc3RhdGUpLCBHRlBfS0VSTkVMKTsKPiArCj4gKwlpZiAoY3J0Yy0+c3RhdGUp Cj4gKwkJY3J0Yy0+c3RhdGUtPmNydGMgPSBjcnRjOwpIbSwgcGVyaGFwcyBhZGQgYSBfX2RybV9h dG9taWNfaGVscGVyX2NydGNfcmVzZXQsIGFuZCAocGVyaGFwcykgZm9yIHBsYW5lcyB0b28/CgpT aW1pbGFyIHRvIF9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3Jlc2V0LCBpbiBjYXNlIHdl IHdhbnQgdG8gYWRkIHNvbWV0aGluZyBpbiB0aGUgZnV0dXJlIHRoYXQgbWlnaHQgbmVlZCB0byBi ZSBpbml0aWFsaXNlZC4gOikKPiArfQo+ICsKPiArc3RhdGljIHN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqCj4gK29tYXBfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ ICt7Cj4gKwlzdHJ1Y3Qgb21hcF9jcnRjX3N0YXRlICpzdGF0ZSwgKmN1cnJlbnRfc3RhdGU7Cj4g Kwo+ICsJaWYgKFdBUk5fT04oIWNydGMtPnN0YXRlKSkKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4g KwljdXJyZW50X3N0YXRlID0gdG9fb21hcF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPiArCj4g KwlzdGF0ZSA9IGttYWxsb2Moc2l6ZW9mKCpzdGF0ZSksIEdGUF9LRVJORUwpOwo+ICsJaWYgKHN0 YXRlKQo+ICsJCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoY3J0Yywg JnN0YXRlLT5iYXNlKTsKPiArCj4gKwlzdGF0ZS0+enBvcyA9IGN1cnJlbnRfc3RhdGUtPnpwb3M7 Cj4gKwlzdGF0ZS0+cm90YXRpb24gPSBjdXJyZW50X3N0YXRlLT5yb3RhdGlvbjsKPiArCj4gKwly ZXR1cm4gJnN0YXRlLT5iYXNlOwo+ICt9Cj4gKwo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9j cnRjX2Z1bmNzIG9tYXBfY3J0Y19mdW5jcyA9IHsKPiAtCS5yZXNldCA9IGRybV9hdG9taWNfaGVs cGVyX2NydGNfcmVzZXQsCj4gKwkucmVzZXQgPSBvbWFwX2NydGNfcmVzZXQsCj4gIAkuc2V0X2Nv bmZpZyA9IGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcsCj4gIAkuZGVzdHJveSA9IG9tYXBf Y3J0Y19kZXN0cm95LAo+ICAJLnBhZ2VfZmxpcCA9IGRybV9hdG9taWNfaGVscGVyX3BhZ2VfZmxp cCwKPiAgCS5nYW1tYV9zZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0LAo+ ICAJLnNldF9wcm9wZXJ0eSA9IGRybV9hdG9taWNfaGVscGVyX2NydGNfc2V0X3Byb3BlcnR5LAo+ IC0JLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxp Y2F0ZV9zdGF0ZSwKPiArCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gb21hcF9jcnRjX2R1cGxp Y2F0ZV9zdGF0ZSwKPiAgCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVy X2NydGNfZGVzdHJveV9zdGF0ZSwKPiAgCS5hdG9taWNfc2V0X3Byb3BlcnR5ID0gb21hcF9jcnRj X2F0b21pY19zZXRfcHJvcGVydHksCj4gIAkuYXRvbWljX2dldF9wcm9wZXJ0eSA9IG9tYXBfY3J0 Y19hdG9taWNfZ2V0X3Byb3BlcnR5LAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=