From mboxrd@z Thu Jan 1 00:00:00 1970 From: Russell King Subject: [PATCH 23/25] drm/armada: implement primary plane update Date: Fri, 08 Dec 2017 12:30:58 +0000 Message-ID: References: <20171208122754.GA20895@n2100.armlinux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [IPv6:2001:4d48:ad52:3201:214:fdff:fe10:1be6]) by gabe.freedesktop.org (Postfix) with ESMTPS id 02C6B6E8F3 for ; Fri, 8 Dec 2017 12:31:01 +0000 (UTC) In-Reply-To: <20171208122754.GA20895@n2100.armlinux.org.uk> Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Airlie Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SW1wbGVtZW50IHByaW1hcnkgcGxhbmUgdXBkYXRlIHdpdGhvdXQgaGF2aW5nIHRvIGdvIHRocm91 Z2ggYSBtb2Rlc2V0CnRvIGFjaGlldmUgdGhhdDsgdGhlIGhhcmR3YXJlIGRvZXMgbm90IHJlcXVp cmUgc3VjaCBjb21wbGV4aXR5LiAgVGhpcwptZWFucyB3ZSB0cmVhdCB0aGUgcHJpbWFyeSBwbGFu ZSBhcyBhbnkgb3RoZXIsIGFsbG93aW5nIHRoZSBmb3JtYXQsCnNpemUsIHBvc2l0aW9uIGFuZCBz Y2FsaW5nIHRvIGJlIHVwZGF0ZWQgdmlhIHRoZSBub3JtYWwgcGxhbmUgaW9jdGxzLgoKVGhpcyBh bHNvIGFsbG93cyB1cyB0byBzZWVtbGVzc2x5IGRpc2FibGUgYW5kIHJlLWVuYWJsZSB0aGUgcHJp bWFyeQpwbGFuZSB3aGVuIChlZykgZGlzcGxheWluZyBmdWxsLWZyYW1lIHZpZGVvIHdpdGhvdXQg YW55IGdyYXBoaWMKY2xpcHBpbmcgdGhlIG92ZXJsYWlkIHZpZGVvIC0gd2hpY2ggc2F2ZXMgd2Fz dGluZyBtZW1vcnkgYmFuZHdpZHRoCm5lZWRsZXNzbHkgdmVyaWZ5aW5nIHRoYXQgdGhlIGNvbG9y a2V5IGlzIGluZGVlZCBmaWxsaW5nIHRoZSBlbnRpcmUKcHJpbWFyeSBwbGFuZS4KClNpZ25lZC1v ZmYtYnk6IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfY3J0Yy5jIHwgMTE4ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMTE3IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9j cnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9jcnRjLmMKaW5kZXggOTk1OGYy ZDNkMGU4Li44YjY2Mzc3YTQ4OTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEv YXJtYWRhX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9jcnRjLmMK QEAgLTExMzgsNiArMTEzOCwxMjIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5j cyBhcm1hZGFfY3J0Y19mdW5jcyA9IHsKIAkuZGlzYWJsZV92YmxhbmsJPSBhcm1hZGFfZHJtX2Ny dGNfZGlzYWJsZV92YmxhbmssCiB9OwogCitzdGF0aWMgdm9pZCBhcm1hZGFfZHJtX3ByaW1hcnlf dXBkYXRlX3N0YXRlKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlLAorCXN0cnVjdCBhcm1h ZGFfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgYXJtYWRhX3BsYW5lICpkcGxhbmUgPSBkcm1fdG9f YXJtYWRhX3BsYW5lKHN0YXRlLT5wbGFuZSk7CisJc3RydWN0IGFybWFkYV9jcnRjICpkY3J0YyA9 IGRybV90b19hcm1hZGFfY3J0YyhzdGF0ZS0+Y3J0Yyk7CisJc3RydWN0IGFybWFkYV9mcmFtZWJ1 ZmZlciAqZGZiID0gZHJtX2ZiX3RvX2FybWFkYV9mYihzdGF0ZS0+ZmIpOworCWJvb2wgd2FzX2Rp c2FibGVkOworCXVuc2lnbmVkIGludCBpZHggPSAwOworCXUzMiB2YWw7CisKKwl2YWwgPSBDRkdf R1JBX0ZNVChkZmItPmZtdCkgfCBDRkdfR1JBX01PRChkZmItPm1vZCk7CisJaWYgKGRmYi0+Zm10 ID4gQ0ZHXzQyMCkKKwkJdmFsIHw9IENGR19QQUxFVFRFX0VOQTsKKwlpZiAoc3RhdGUtPnZpc2li bGUpCisJCXZhbCB8PSBDRkdfR1JBX0VOQTsKKwlpZiAoZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5z cmMpID4+IDE2ICE9IGRybV9yZWN0X3dpZHRoKCZzdGF0ZS0+ZHN0KSkKKwkJdmFsIHw9IENGR19H UkFfSFNNT09USDsKKworCXdhc19kaXNhYmxlZCA9ICEoZHBsYW5lLT5zdGF0ZS5jdHJsMCAmIENG R19HUkFfRU5BKTsKKwlpZiAod2FzX2Rpc2FibGVkKQorCQlhcm1hZGFfcmVnX3F1ZXVlX21vZChy ZWdzLCBpZHgsCisJCQkJICAgICAwLCBDRkdfUERXTjY0eDY2LCBMQ0RfU1BVX1NSQU1fUEFSQTEp OworCisJZHBsYW5lLT5zdGF0ZS5jdHJsMCA9IHZhbDsKKwlkcGxhbmUtPnN0YXRlLnNyY19odyA9 IChkcm1fcmVjdF9oZWlnaHQoJnN0YXRlLT5zcmMpICYgMHhmZmZmMDAwMCkgfAorCQkJCWRybV9y ZWN0X3dpZHRoKCZzdGF0ZS0+c3JjKSA+PiAxNjsKKwlkcGxhbmUtPnN0YXRlLmRzdF9odyA9IGRy bV9yZWN0X2hlaWdodCgmc3RhdGUtPmRzdCkgPDwgMTYgfAorCQkJICAgICAgIGRybV9yZWN0X3dp ZHRoKCZzdGF0ZS0+ZHN0KTsKKwlkcGxhbmUtPnN0YXRlLmRzdF95eCA9IHN0YXRlLT5kc3QueTEg PDwgMTYgfCBzdGF0ZS0+ZHN0LngxOworCisJYXJtYWRhX2RybV9ncmFfcGxhbmVfcmVncyhyZWdz ICsgaWR4LCAmZGZiLT5mYiwgJmRwbGFuZS0+c3RhdGUsCisJCQkJICBzdGF0ZS0+c3JjLngxID4+ IDE2LCBzdGF0ZS0+c3JjLnkxID4+IDE2LAorCQkJCSAgZGNydGMtPmludGVybGFjZWQpOworCisJ ZHBsYW5lLT5zdGF0ZS52c3luY191cGRhdGUgPSAhd2FzX2Rpc2FibGVkOworCWRwbGFuZS0+c3Rh dGUuY2hhbmdlZCA9IHRydWU7Cit9CisKK3N0YXRpYyBpbnQgYXJtYWRhX2RybV9wcmltYXJ5X3Vw ZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCWludCBjcnRjX3gsIGludCBjcnRjX3ksIHVuc2ln bmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRjX2gsCisJdWludDMyX3Qgc3JjX3gsIHVp bnQzMl90IHNyY195LCB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gsCisJc3RydWN0IGRy bV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCit7CisJc3RydWN0IGFybWFkYV9wbGFuZSAqZHBs YW5lID0gZHJtX3RvX2FybWFkYV9wbGFuZShwbGFuZSk7CisJc3RydWN0IGFybWFkYV9jcnRjICpk Y3J0YyA9IGRybV90b19hcm1hZGFfY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgYXJtYWRhX3BsYW5lX3dv cmsgKndvcms7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSBzdGF0ZSA9IHsKKwkJLnBsYW5lID0g cGxhbmUsCisJCS5jcnRjID0gY3J0YywKKwkJLmZiID0gZmIsCisJCS5zcmNfeCA9IHNyY194LAor CQkuc3JjX3kgPSBzcmNfeSwKKwkJLnNyY193ID0gc3JjX3csCisJCS5zcmNfaCA9IHNyY19oLAor CQkuY3J0Y194ID0gY3J0Y194LAorCQkuY3J0Y195ID0gY3J0Y195LAorCQkuY3J0Y193ID0gY3J0 Y193LAorCQkuY3J0Y19oID0gY3J0Y19oLAorCQkucm90YXRpb24gPSBEUk1fTU9ERV9ST1RBVEVf MCwKKwl9OworCWNvbnN0IHN0cnVjdCBkcm1fcmVjdCBjbGlwID0geworCQkueDIgPSBjcnRjLT5t b2RlLmhkaXNwbGF5LAorCQkueTIgPSBjcnRjLT5tb2RlLnZkaXNwbGF5LAorCX07CisJaW50IHJl dDsKKworCXJldCA9IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUoJnN0YXRlLCAmY2xpcCwg MCwgSU5UX01BWCwgdHJ1ZSwKKwkJCQkJICAgIGZhbHNlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4g cmV0OworCisJd29yayA9ICZkcGxhbmUtPndvcmtzW2RwbGFuZS0+bmV4dF93b3JrXTsKKwl3b3Jr LT5mbiA9IGFybWFkYV9kcm1fY3J0Y19jb21wbGV0ZV9mcmFtZV93b3JrOworCisJaWYgKHBsYW5l LT5mYiAhPSBmYikgeworCQkvKgorCQkgKiBUYWtlIGEgcmVmZXJlbmNlIG9uIHRoZSBuZXcgZnJh bWVidWZmZXIgLSB3ZSB3YW50IHRvCisJCSAqIGhvbGQgb24gdG8gaXQgd2hpbGUgdGhlIGhhcmR3 YXJlIGlzIGRpc3BsYXlpbmcgaXQuCisJCSAqLworCQlkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNl KGZiKTsKKworCQl3b3JrLT5vbGRfZmIgPSBwbGFuZS0+ZmI7CisJfSBlbHNlIHsKKwkJd29yay0+ b2xkX2ZiID0gTlVMTDsKKwl9CisKKwlhcm1hZGFfZHJtX3ByaW1hcnlfdXBkYXRlX3N0YXRlKCZz dGF0ZSwgd29yay0+cmVncyk7CisKKwlpZiAoIWRwbGFuZS0+c3RhdGUuY2hhbmdlZCkKKwkJcmV0 dXJuIDA7CisKKwkvKiBXYWl0IGZvciBwZW5kaW5nIHdvcmsgdG8gY29tcGxldGUgKi8KKwlpZiAo YXJtYWRhX2RybV9wbGFuZV93b3JrX3dhaXQoZHBsYW5lLCBIWiAvIDEwKSA9PSAwKQorCQlhcm1h ZGFfZHJtX3BsYW5lX3dvcmtfY2FuY2VsKGRjcnRjLCBkcGxhbmUpOworCisJaWYgKCFkcGxhbmUt PnN0YXRlLnZzeW5jX3VwZGF0ZSkgeworCQl3b3JrLT5mbihkY3J0Yywgd29yayk7CisJCWlmICh3 b3JrLT5vbGRfZmIpCisJCQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2Uod29yay0+b2xkX2Zi KTsKKwkJcmV0dXJuIDA7CisJfQorCisJLyogUXVldWUgaXQgZm9yIHVwZGF0ZSBvbiB0aGUgbmV4 dCBpbnRlcnJ1cHQgaWYgd2UgYXJlIGVuYWJsZWQgKi8KKwlyZXQgPSBhcm1hZGFfZHJtX3BsYW5l X3dvcmtfcXVldWUoZGNydGMsIHdvcmspOworCWlmIChyZXQpIHsKKwkJd29yay0+Zm4oZGNydGMs IHdvcmspOworCQlpZiAod29yay0+b2xkX2ZiKQorCQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJl bmNlKHdvcmstPm9sZF9mYik7CisJfQorCisJZHBsYW5lLT5uZXh0X3dvcmsgPSAhZHBsYW5lLT5u ZXh0X3dvcms7CisKKwlyZXR1cm4gMDsKK30KKwogaW50IGFybWFkYV9kcm1fcGxhbmVfZGlzYWJs ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCSAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2Fj cXVpcmVfY3R4ICpjdHgpCiB7CkBAIC0xMTk5LDcgKzEzMTUsNyBAQCBpbnQgYXJtYWRhX2RybV9w bGFuZV9kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogfQogCiBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9wbGFuZV9mdW5jcyBhcm1hZGFfcHJpbWFyeV9wbGFuZV9mdW5jcyA9IHsKLQku dXBkYXRlX3BsYW5lCT0gZHJtX3ByaW1hcnlfaGVscGVyX3VwZGF0ZSwKKwkudXBkYXRlX3BsYW5l CT0gYXJtYWRhX2RybV9wcmltYXJ5X3VwZGF0ZSwKIAkuZGlzYWJsZV9wbGFuZQk9IGFybWFkYV9k cm1fcGxhbmVfZGlzYWJsZSwKIAkuZGVzdHJveQk9IGRybV9wcmltYXJ5X2hlbHBlcl9kZXN0cm95 LAogfTsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK