From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: [PATCH v3 2/3] drm/vc4: Take underscan setup into account when updating planes Date: Thu, 22 Nov 2018 12:23:30 +0100 Message-ID: <20181122112331.17735-3-boris.brezillon@bootlin.com> References: <20181122112331.17735-1-boris.brezillon@bootlin.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181122112331.17735-1-boris.brezillon-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Eric Anholt Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Boris Brezillon , Ben Skeggs , Daniel Vetter , Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= List-Id: nouveau.vger.kernel.org QXBwbHlpbmcgYW4gdW5kZXJzY2FuIHNldHVwIGlzIGp1c3QgYSBtYXR0ZXIgb2Ygc2NhbGluZyBh bGwgcGxhbmVzCmFwcHJvcHJpYXRlbHkgYW5kIGFkanVzdGluZyB0aGUgQ1JUQyBYL1kgb2Zmc2V0 IHRvIGFjY291bnQgZm9yIHRoZQpob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBib3JkZXIuCgpDcmVh dGUgYW4gdmM0X3BsYW5lX3VuZGVyc2Nhbl9hZGooKSBmdW5jdGlvbiBkb2luZyB0aGF0IGFuZCBj YWxsIGl0IGZyb20KdmM0X3BsYW5lX3NldHVwX2NsaXBwaW5nX2FuZF9zY2FsaW5nKCkgc28gdGhh dCB3ZSBhcmUgcmVhZHkgdG8gYXR0YWNoCnVuZGVyc2NhbiBwcm9wZXJ0aWVzIHRvIHRoZSBIRE1J IGNvbm5lY3Rvci4KClNpZ25lZC1vZmYtYnk6IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemls bG9uQGJvb3RsaW4uY29tPgotLS0KQ2hhbmdlcyBpbiB2MzoKLSBSZWJhc2Ugb24gdG9wIG9mIHRo ZSAiY3Vyc29yIHJlc2NhbGluZyIgY2hhbmdlcwoKQ2hhbmdlcyBpbiB2MjoKLSBUYWtlIGNoYW5n ZXMgb24gaGJvcmRlci92Ym9yZGVyIG1lYW5pbmcgaW50byBhY2NvdW50Ci0tLQogZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfY3J0Yy5jICB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5oICAgfCAgMyArKwogZHJpdmVycy9ncHUv ZHJtL3ZjNC92YzRfcGxhbmUuYyB8IDUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogMyBmaWxlcyBjaGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92YzQvdmM0X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2NydGMu YwppbmRleCAzY2UxMzZiYTg3OTEuLjNhY2U2ODE4NmYwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2NydGMu YwpAQCAtNDksNiArNDksMTEgQEAgc3RydWN0IHZjNF9jcnRjX3N0YXRlIHsKIAlzdHJ1Y3QgZHJt X21tX25vZGUgbW07CiAJYm9vbCBmZWVkX3R4cDsKIAlib29sIHR4cF9hcm1lZDsKKworCXN0cnVj dCB7CisJCXVuc2lnbmVkIGludCB2Ym9yZGVyOworCQl1bnNpZ25lZCBpbnQgaGJvcmRlcjsKKwl9 IHVuZGVyc2NhbjsKIH07CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZjNF9jcnRjX3N0YXRlICoK QEAgLTYyNCw2ICs2MjksMzkgQEAgc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzIHZjNF9jcnRj X21vZGVfdmFsaWQoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXJldHVybiBNT0RFX09LOwogfQog Cit2b2lkIHZjNF9jcnRjX2dldF91bmRlcnNjYW5fYm9yZGVycyhzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKnN0YXRlLAorCQkJCSAgICB1bnNpZ25lZCBpbnQgKnZib3JkZXIsCisJCQkJICAgIHVuc2ln bmVkIGludCAqaGJvcmRlcikKK3sKKwlzdHJ1Y3QgdmM0X2NydGNfc3RhdGUgKnZjNF9zdGF0ZSA9 IHRvX3ZjNF9jcnRjX3N0YXRlKHN0YXRlKTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq Y29ubl9zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKKwlpbnQgaTsKKworCSp2 Ym9yZGVyID0gdmM0X3N0YXRlLT51bmRlcnNjYW4udmJvcmRlcjsKKwkqaGJvcmRlciA9IHZjNF9z dGF0ZS0+dW5kZXJzY2FuLmhib3JkZXI7CisKKwkvKiBXZSBoYXZlIHRvIGludGVyYXRlIG92ZXIg YWxsIG5ldyBjb25uZWN0b3Igc3RhdGVzIGJlY2F1c2UKKwkgKiB2YzRfY3J0Y19nZXRfdW5kZXJz Y2FuX2JvcmRlcnMoKSBtaWdodCBiZSBjYWxsZWQgYmVmb3JlCisJICogdmM0X2NydGNfYXRvbWlj X2NoZWNrKCkgd2hpY2ggbWVhbnMgdW5kZXJzY2FuIGluZm8gaW4gdmM0X2NydGNfc3RhdGUKKwkg KiBtaWdodCBiZSBvdXRkYXRlZC4KKwkgKi8KKwlmb3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0 YXRlKHN0YXRlLT5zdGF0ZSwgY29ubiwgY29ubl9zdGF0ZSwgaSkgeworCQlpZiAoY29ubl9zdGF0 ZS0+Y3J0YyAhPSBzdGF0ZS0+Y3J0YykKKwkJCWNvbnRpbnVlOworCisJCWlmIChjb25uX3N0YXRl LT51bmRlcnNjYW4ubW9kZSA9PSBEUk1fVU5ERVJTQ0FOX09OKSB7CisJCQkqdmJvcmRlciA9IGNv bm5fc3RhdGUtPnVuZGVyc2Nhbi52Ym9yZGVyOworCQkJKmhib3JkZXIgPSBjb25uX3N0YXRlLT51 bmRlcnNjYW4uaGJvcmRlcjsKKwkJfSBlbHNlIHsKKwkJCSp2Ym9yZGVyID0gMDsKKwkJCSpoYm9y ZGVyID0gMDsKKwkJfQorCisJCWJyZWFrOworCX0KK30KKwogc3RhdGljIGludCB2YzRfY3J0Y19h dG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJCSBzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKnN0YXRlKQogewpAQCAtNjU3LDYgKzY5NSw3IEBAIHN0YXRpYyBpbnQgdmM0X2NydGNf YXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJcmV0dXJuIHJldDsKIAogCWZv cl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUtPnN0YXRlLCBjb25uLCBjb25uX3N0 YXRlLCBpKSB7CisJCXVuc2lnbmVkIGludCB2Ym9yZGVyID0gMCwgaGJvcmRlciA9IDA7CiAJCWlm IChjb25uX3N0YXRlLT5jcnRjICE9IGNydGMpCiAJCQljb250aW51ZTsKIApAQCAtNjcxLDYgKzcx MCwxMyBAQCBzdGF0aWMgaW50IHZjNF9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAJCQl2YzRfc3RhdGUtPmZlZWRfdHhwID0gZmFsc2U7CiAJCX0KIAorCQlpZiAoY29u bl9zdGF0ZS0+dW5kZXJzY2FuLm1vZGUgPT0gRFJNX1VOREVSU0NBTl9PTikgeworCQkJdmJvcmRl ciA9IGNvbm5fc3RhdGUtPnVuZGVyc2Nhbi52Ym9yZGVyOworCQkJaGJvcmRlciA9IGNvbm5fc3Rh dGUtPnVuZGVyc2Nhbi5oYm9yZGVyOworCQl9CisKKwkJdmM0X3N0YXRlLT51bmRlcnNjYW4udmJv cmRlciA9IHZib3JkZXI7CisJCXZjNF9zdGF0ZS0+dW5kZXJzY2FuLmhib3JkZXIgPSBoYm9yZGVy OwogCQlicmVhazsKIAl9CiAKQEAgLTk3Miw2ICsxMDE4LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqdmM0X2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykKIAogCW9sZF92YzRfc3RhdGUgPSB0b192YzRfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAJ dmM0X3N0YXRlLT5mZWVkX3R4cCA9IG9sZF92YzRfc3RhdGUtPmZlZWRfdHhwOworCXZjNF9zdGF0 ZS0+dW5kZXJzY2FuID0gb2xkX3ZjNF9zdGF0ZS0+dW5kZXJzY2FuOwogCiAJX19kcm1fYXRvbWlj X2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShjcnRjLCAmdmM0X3N0YXRlLT5iYXNlKTsKIAly ZXR1cm4gJnZjNF9zdGF0ZS0+YmFzZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQv dmM0X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmgKaW5kZXggZDEwMDBjNDgw NWMyLi5jZTA4YzVkYzE5OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Ry di5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5oCkBAIC03MDcsNiArNzA3LDkg QEAgYm9vbCB2YzRfY3J0Y19nZXRfc2Nhbm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 bnNpZ25lZCBpbnQgY3J0Y19pZCwKIAkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUpOwogdm9pZCB2YzRfY3J0Y19oYW5kbGVfdmJsYW5rKHN0cnVjdCB2YzRfY3J0YyAq Y3J0Yyk7CiB2b2lkIHZjNF9jcnRjX3R4cF9hcm1lZChzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0 YXRlKTsKK3ZvaWQgdmM0X2NydGNfZ2V0X3VuZGVyc2Nhbl9ib3JkZXJzKHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqc3RhdGUsCisJCQkJICAgIHVuc2lnbmVkIGludCAqdmJvcmRlciwKKwkJCQkgICAg dW5zaWduZWQgaW50ICpoYm9yZGVyKTsKIAogLyogdmM0X2RlYnVnZnMuYyAqLwogaW50IHZjNF9k ZWJ1Z2ZzX2luaXQoc3RydWN0IGRybV9taW5vciAqbWlub3IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3ZjNC92YzRfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5l LmMKaW5kZXggOGNkYTBkNDYwYTZkLi43ODcwNWQ5YWUyNWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS92YzQvdmM0X3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcGxh bmUuYwpAQCAtMjU4LDYgKzI1OCw1MiBAQCBzdGF0aWMgdTMyIHZjNF9nZXRfc2NsX2ZpZWxkKHN0 cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlLCBpbnQgcGxhbmUpCiAJfQogfQogCitzdGF0aWMg aW50IHZjNF9wbGFuZV91bmRlcnNjYW5fYWRqKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0 ZSkKK3sKKwlzdHJ1Y3QgdmM0X3BsYW5lX3N0YXRlICp2YzRfcHN0YXRlID0gdG9fdmM0X3BsYW5l X3N0YXRlKHBzdGF0ZSk7CisJdW5zaWduZWQgaW50IHZib3JkZXIsIGhib3JkZXIsIGFkamhkaXNw bGF5LCBhZGp2ZGlzcGxheTsKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CisK KwljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUocHN0YXRlLT5zdGF0 ZSwKKwkJCQkJCSAgIHBzdGF0ZS0+Y3J0Yyk7CisKKwl2YzRfY3J0Y19nZXRfdW5kZXJzY2FuX2Jv cmRlcnMoY3J0Y19zdGF0ZSwgJnZib3JkZXIsICZoYm9yZGVyKTsKKwlpZiAoIXZib3JkZXIgJiYg IWhib3JkZXIpCisJCXJldHVybiAwOworCisJaWYgKGhib3JkZXIgKiAyID49IGNydGNfc3RhdGUt Pm1vZGUuaGRpc3BsYXkgfHwKKwkgICAgdmJvcmRlciAqIDIgPj0gY3J0Y19zdGF0ZS0+bW9kZS52 ZGlzcGxheSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlhZGpoZGlzcGxheSA9IGNydGNfc3RhdGUt Pm1vZGUuaGRpc3BsYXkgLSAoMiAqIGhib3JkZXIpOworCXZjNF9wc3RhdGUtPmNydGNfeCA9IERJ Vl9ST1VORF9DTE9TRVNUKHZjNF9wc3RhdGUtPmNydGNfeCAqCisJCQkJCSAgICAgICBhZGpoZGlz cGxheSwKKwkJCQkJICAgICAgIGNydGNfc3RhdGUtPm1vZGUuaGRpc3BsYXkpOworCXZjNF9wc3Rh dGUtPmNydGNfeCArPSBoYm9yZGVyOworCWlmICh2YzRfcHN0YXRlLT5jcnRjX3ggPiBjcnRjX3N0 YXRlLT5tb2RlLmhkaXNwbGF5IC0gaGJvcmRlcikKKwkJdmM0X3BzdGF0ZS0+Y3J0Y194ID0gY3J0 Y19zdGF0ZS0+bW9kZS5oZGlzcGxheSAtIGhib3JkZXI7CisKKwlhZGp2ZGlzcGxheSA9IGNydGNf c3RhdGUtPm1vZGUudmRpc3BsYXkgLSAoMiAqIHZib3JkZXIpOworCXZjNF9wc3RhdGUtPmNydGNf eSA9IERJVl9ST1VORF9DTE9TRVNUKHZjNF9wc3RhdGUtPmNydGNfeSAqCisJCQkJCSAgICAgICBh ZGp2ZGlzcGxheSwKKwkJCQkJICAgICAgIGNydGNfc3RhdGUtPm1vZGUudmRpc3BsYXkpOworCXZj NF9wc3RhdGUtPmNydGNfeSArPSB2Ym9yZGVyOworCWlmICh2YzRfcHN0YXRlLT5jcnRjX3kgPiBj cnRjX3N0YXRlLT5tb2RlLnZkaXNwbGF5IC0gdmJvcmRlcikKKwkJdmM0X3BzdGF0ZS0+Y3J0Y195 ID0gY3J0Y19zdGF0ZS0+bW9kZS52ZGlzcGxheSAtIHZib3JkZXI7CisKKwl2YzRfcHN0YXRlLT5j cnRjX3cgPSBESVZfUk9VTkRfQ0xPU0VTVCh2YzRfcHN0YXRlLT5jcnRjX3cgKgorCQkJCQkgICAg ICAgYWRqaGRpc3BsYXksCisJCQkJCSAgICAgICBjcnRjX3N0YXRlLT5tb2RlLmhkaXNwbGF5KTsK Kwl2YzRfcHN0YXRlLT5jcnRjX2ggPSBESVZfUk9VTkRfQ0xPU0VTVCh2YzRfcHN0YXRlLT5jcnRj X2ggKgorCQkJCQkgICAgICAgYWRqdmRpc3BsYXksCisJCQkJCSAgICAgICBjcnRjX3N0YXRlLT5t b2RlLnZkaXNwbGF5KTsKKworCWlmICghdmM0X3BzdGF0ZS0+Y3J0Y193IHx8ICF2YzRfcHN0YXRl LT5jcnRjX2gpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBp bnQgdmM0X3BsYW5lX3NldHVwX2NsaXBwaW5nX2FuZF9zY2FsaW5nKHN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCB2YzRfcGxhbmVfc3RhdGUgKnZjNF9zdGF0ZSA9IHRv X3ZjNF9wbGFuZV9zdGF0ZShzdGF0ZSk7CkBAIC0zMDYsNiArMzUyLDEwIEBAIHN0YXRpYyBpbnQg dmM0X3BsYW5lX3NldHVwX2NsaXBwaW5nX2FuZF9zY2FsaW5nKHN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKnN0YXRlKQogCXZjNF9zdGF0ZS0+Y3J0Y193ID0gc3RhdGUtPmRzdC54MiAtIHN0YXRlLT5k c3QueDE7CiAJdmM0X3N0YXRlLT5jcnRjX2ggPSBzdGF0ZS0+ZHN0LnkyIC0gc3RhdGUtPmRzdC55 MTsKIAorCXJldCA9IHZjNF9wbGFuZV91bmRlcnNjYW5fYWRqKHN0YXRlKTsKKwlpZiAocmV0KQor CQlyZXR1cm4gcmV0OworCiAJdmM0X3N0YXRlLT54X3NjYWxpbmdbMF0gPSB2YzRfZ2V0X3NjYWxp bmdfbW9kZSh2YzRfc3RhdGUtPnNyY193WzBdLAogCQkJCQkJICAgICAgIHZjNF9zdGF0ZS0+Y3J0 Y193KTsKIAl2YzRfc3RhdGUtPnlfc2NhbGluZ1swXSA9IHZjNF9nZXRfc2NhbGluZ19tb2RlKHZj NF9zdGF0ZS0+c3JjX2hbMF0sCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCk5vdXZlYXUgbWFpbGluZyBsaXN0Ck5vdXZlYXVAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vbm91dmVhdQo=