From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH] drm/omap: Rework the rotation-on-crtc hack Date: Mon, 31 Jul 2017 12:54:19 +0200 Message-ID: <20170731105419.6505-1-daniel.vetter@ffwll.ch> References: <20170725080122.20548-2-daniel.vetter@ffwll.ch> 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 B7D576E5DD for ; Mon, 31 Jul 2017 10:54:30 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id y206so12063558wmd.5 for ; Mon, 31 Jul 2017 03:54:30 -0700 (PDT) In-Reply-To: <20170725080122.20548-2-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: Daniel Vetter , Tomi Valkeinen , Laurent Pinchart , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org SSB3YW50L25lZWQgdG8gcmV3b3JrIHRoZSBjb3JlIHByb3BlcnR5IGhhbmRsaW5nLCBhbmQgdGhp cyBoYWNrIGlzCmdldHRpbmcgaW4gdGhlIHdheS4gQnV0IHNpbmNlIGl0J3MgYSBub24tc3RhbmRh cmQgcHJvcGV0eSBvbmx5IHVzZWQgYnkKbGVnYWN5IHVzZXJzcGFjZSB3ZSBrbm93IHRoYXQgdGhp cyB3aWxsIG9ubHkgZXZlcnkgYmUgY2FsbGVkIGZyb20KaW9jdGwgY29kZS4gQW5kIG5ldmVyIG9u IHNvbWUgb3RoZXIgZnJlZS1zdGFuZGluZyBzdGF0ZSBzdHJ1Y3QsIHdoZXJlCnRoaXMgb2xkIGhh Y2sgd291bGRuJ3Qgd29yayBlaXRoZXIuCgp2MjogZG9uJ3QgZm9yZ2V0IHpvcmRlciBhbmQgZ2V0 X3Byb3BlcnR5IQoKdjM6IFNoYWRvdyB0aGUgbGVnYWN5IHN0YXRlIHRvIGF2b2lkIGxvY2tpbmcg aXNzdWVzIGluIGdldF9wcm9wZXJ0eQooTWFhcnRlbikuCgpDYzogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KQ2M6IFRvbWkgVmFsa2VpbmVuIDx0 b21pLnZhbGtlaW5lbkB0aS5jb20KQ2M6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hh cnRAaWRlYXNvbmJvYXJkLmNvbT4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVs LnZldHRlckBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9jcnRj LmMgfCA4NCArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vb21hcGRybS9vbWFwX2Rydi5oICB8ICA5ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgNTcg aW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL29tYXBkcm0vb21hcF9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2Ny dGMuYwppbmRleCAxNGU4YTc3MzhiMDYuLmZjOGIyNTc0OGYxMCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL29tYXBkcm0vb21hcF9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vb21hcF9jcnRjLmMKQEAgLTQ5OCwzOSArNDk4LDM0IEBAIHN0YXRpYyB2b2lkIG9tYXBfY3J0 Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXNwaW5fdW5sb2NrX2lycSgm Y3J0Yy0+ZGV2LT5ldmVudF9sb2NrKTsKIH0KIAotc3RhdGljIGJvb2wgb21hcF9jcnRjX2lzX3Bs YW5lX3Byb3Aoc3RydWN0IGRybV9jcnRjICpjcnRjLAotCXN0cnVjdCBkcm1fcHJvcGVydHkgKnBy b3BlcnR5KQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Ci0Jc3RydWN0 IG9tYXBfZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JcmV0dXJuIHBy b3BlcnR5ID09IHByaXYtPnpvcmRlcl9wcm9wIHx8Ci0JCXByb3BlcnR5ID09IGNydGMtPnByaW1h cnktPnJvdGF0aW9uX3Byb3BlcnR5OwotfQotCiBzdGF0aWMgaW50IG9tYXBfY3J0Y19hdG9taWNf c2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkJIHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqc3RhdGUsCiAJCQkJCSBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKIAkJ CQkJIHVpbnQ2NF90IHZhbCkKIHsKLQlpZiAob21hcF9jcnRjX2lzX3BsYW5lX3Byb3AoY3J0Yywg cHJvcGVydHkpKSB7Ci0JCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwotCQlz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9IGNydGMtPnByaW1hcnk7Ci0KLQkJLyoKLQkJICogRGVs ZWdhdGUgcHJvcGVydHkgc2V0IHRvIHRoZSBwcmltYXJ5IHBsYW5lLiBHZXQgdGhlIHBsYW5lCi0J CSAqIHN0YXRlIGFuZCBzZXQgdGhlIHByb3BlcnR5IGRpcmVjdGx5LgotCQkgKi8KLQotCQlwbGFu ZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRlLT5zdGF0ZSwgcGxhbmUp OwotCQlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkKLQkJCXJldHVybiBQVFJfRVJSKHBsYW5lX3N0 YXRlKTsKKwlzdHJ1Y3Qgb21hcF9kcm1fcHJpdmF0ZSAqcHJpdiA9IGNydGMtPmRldi0+ZGV2X3By aXZhdGU7CisJc3RydWN0IG9tYXBfY3J0Y19zdGF0ZSAqb21hcF9zdGF0ZSA9IHRvX29tYXBfY3J0 Y19zdGF0ZShzdGF0ZSk7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CiAK LQkJcmV0dXJuIGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHBsYW5lLCBwbGFuZV9zdGF0 ZSwKLQkJCQlwcm9wZXJ0eSwgdmFsKTsKKwkvKgorCSAqIERlbGVnYXRlIHByb3BlcnR5IHNldCB0 byB0aGUgcHJpbWFyeSBwbGFuZS4gR2V0IHRoZSBwbGFuZQorCSAqIHN0YXRlIGFuZCBzZXQgdGhl IHByb3BlcnR5IGRpcmVjdGx5LgorCSAqLworCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRf cGxhbmVfc3RhdGUoc3RhdGUtPnN0YXRlLCBjcnRjLT5wcmltYXJ5KTsKKwlpZiAoSVNfRVJSKHBs YW5lX3N0YXRlKSkKKwkJcmV0dXJuIFBUUl9FUlIocGxhbmVfc3RhdGUpOworCisJaWYgKHByb3Bl cnR5ID09IGNydGMtPnByaW1hcnktPnJvdGF0aW9uX3Byb3BlcnR5KSB7CisJCXBsYW5lX3N0YXRl LT5yb3RhdGlvbiA9IHZhbDsKKwkJb21hcF9zdGF0ZS0+cm90YXRpb24gPSB2YWw7CisJfSBlbHNl IGlmIChwcm9wZXJ0eSA9PSBwcml2LT56b3JkZXJfcHJvcCkgeworCQlwbGFuZV9zdGF0ZS0+enBv cyA9IHZhbDsKKwkJb21hcF9zdGF0ZS0+enBvcyA9IHZhbDsKKwl9IGVsc2UgeworCQlyZXR1cm4g LUVJTlZBTDsKIAl9CiAKLQlyZXR1cm4gLUVJTlZBTDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGlj IGludCBvbWFwX2NydGNfYXRvbWljX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2NydGMgKmNydGMs CkBAIC01MzgsMjAgKzUzMywzNyBAQCBzdGF0aWMgaW50IG9tYXBfY3J0Y19hdG9taWNfZ2V0X3By b3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkJIHN0cnVjdCBkcm1fcHJvcGVydHkg KnByb3BlcnR5LAogCQkJCQkgdWludDY0X3QgKnZhbCkKIHsKLQlpZiAob21hcF9jcnRjX2lzX3Bs YW5lX3Byb3AoY3J0YywgcHJvcGVydHkpKSB7Ci0JCS8qCi0JCSAqIERlbGVnYXRlIHByb3BlcnR5 IGdldCB0byB0aGUgcHJpbWFyeSBwbGFuZS4gVGhlCi0JCSAqIGRybV9hdG9taWNfcGxhbmVfZ2V0 X3Byb3BlcnR5KCkgZnVuY3Rpb24gaXNuJ3QgZXhwb3J0ZWQsIGJ1dAotCQkgKiBjYW4gYmUgY2Fs bGVkIHRocm91Z2ggZHJtX29iamVjdF9wcm9wZXJ0eV9nZXRfdmFsdWUoKSBhcyB0aGF0Ci0JCSAq IHdpbGwgY2FsbCBkcm1fYXRvbWljX2dldF9wcm9wZXJ0eSgpIGZvciBhdG9taWMgZHJpdmVycy4K LQkJICovCi0JCXJldHVybiBkcm1fb2JqZWN0X3Byb3BlcnR5X2dldF92YWx1ZSgmY3J0Yy0+cHJp bWFyeS0+YmFzZSwKLQkJCQlwcm9wZXJ0eSwgdmFsKTsKLQl9CisJc3RydWN0IG9tYXBfZHJtX3By aXZhdGUgKnByaXYgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBvbWFwX2NydGNf c3RhdGUgKm9tYXBfc3RhdGUgPSB0b19vbWFwX2NydGNfc3RhdGUoc3RhdGUpOworCisJLyoKKwkg KiBSZW1hcCB0byB0aGUgcGxhbmUgcm90YXRpb24vem9yZGVyIHByb3BlcnR5LiBXZSBjYW4gcGVl ayBhdCB0aGUgcGxhbmUKKwkgKiBzdGF0ZSBkaXJlY3RseSBzaW5jZSBob2xkaW5nIHRoZSBjcnRj IGxvY2tzIGdpdmVzIHlvdSBhIHJlYWQtbG9jayBvbgorCSAqIHRoZSBwbGFuZSBzdGF0ZS4KKwkg Ki8KKwlpZiAocHJvcGVydHkgPT0gY3J0Yy0+cHJpbWFyeS0+cm90YXRpb25fcHJvcGVydHkpCisJ CXJldHVybiBvbWFwX3N0YXRlLT5yb3RhdGlvbjsKKwllbHNlIGlmIChwcm9wZXJ0eSA9PSBwcml2 LT56b3JkZXJfcHJvcCkKKwkJcmV0dXJuIG9tYXBfc3RhdGUtPnpwb3M7CiAKIAlyZXR1cm4gLUVJ TlZBTDsKIH0KIAorc3RhdGljIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqCitvbWFwX2NydGNfZHVw bGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3Qgb21hcF9jcnRj X3N0YXRlICpzdGF0ZTsKKworCWlmIChXQVJOX09OKCFjcnRjLT5zdGF0ZSkpCisJCXJldHVybiBO VUxMOworCisJc3RhdGUgPSBrbWFsbG9jKHNpemVvZigqc3RhdGUpLCBHRlBfS0VSTkVMKTsKKwlp ZiAoc3RhdGUpCisJCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoY3J0 YywgJnN0YXRlLT5iYXNlKTsKKworCXJldHVybiAmc3RhdGUtPmJhc2U7Cit9CisKIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3Mgb21hcF9jcnRjX2Z1bmNzID0gewogCS5yZXNldCA9 IGRybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQsCiAJLnNldF9jb25maWcgPSBkcm1fYXRvbWlj X2hlbHBlcl9zZXRfY29uZmlnLApAQCAtNTU5LDcgKzU3MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX2NydGNfZnVuY3Mgb21hcF9jcnRjX2Z1bmNzID0gewogCS5wYWdlX2ZsaXAgPSBkcm1f YXRvbWljX2hlbHBlcl9wYWdlX2ZsaXAsCiAJLmdhbW1hX3NldCA9IGRybV9hdG9taWNfaGVscGVy X2xlZ2FjeV9nYW1tYV9zZXQsCiAJLnNldF9wcm9wZXJ0eSA9IGRybV9hdG9taWNfaGVscGVyX2Ny dGNfc2V0X3Byb3BlcnR5LAotCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0b21pY19o ZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUsCisJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBv bWFwX2NydGNfZHVwbGljYXRlX3N0YXRlLAogCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9h dG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSwKIAkuYXRvbWljX3NldF9wcm9wZXJ0eSA9 IG9tYXBfY3J0Y19hdG9taWNfc2V0X3Byb3BlcnR5LAogCS5hdG9taWNfZ2V0X3Byb3BlcnR5ID0g b21hcF9jcnRjX2F0b21pY19nZXRfcHJvcGVydHksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vb21hcGRybS9vbWFwX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9kcnYu aAppbmRleCA0YmQxZTkwNzBiMzEuLjExNzAzYzE3NGNkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL29tYXBkcm0vb21hcF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9v bWFwX2Rydi5oCkBAIC0xMTUsNiArMTE1LDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBvbWFwX2Zi ZGV2X2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIH0KICNlbmRpZgogCitzdHJ1Y3Qgb21h cF9jcnRjX3N0YXRlIHsKKwkvKiBtdXN0IGJlIGZpcnN0ICovCisJc3RydWN0IGRybV9jcnRjX3N0 YXRlIGJhc2U7CisJLyogc2hhZG93IHZhbHVlcyBmb3IgbGVnYWN5IHVzZXJzcGFjZSBzdXBwb3J0 ICovCisJdW5zaWduZWQgaW50IHJvdGF0aW9uOworCXVuc2lnbmVkIGludCB6cG9zOworfTsKKyNk ZWZpbmUgdG9fb21hcF9jcnRjX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qgb21hcF9j cnRjX3N0YXRlLCBiYXNlKQorCiBzdHJ1Y3QgdmlkZW9tb2RlICpvbWFwX2NydGNfdGltaW5ncyhz dHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogZW51bSBvbWFwX2NoYW5uZWwgb21hcF9jcnRjX2NoYW5u ZWwoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIHZvaWQgb21hcF9jcnRjX3ByZV9pbml0KHZvaWQp OwotLSAKMi45LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo=