From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH 8/9] drm/ast: Add cursor plane Date: Mon, 28 Oct 2019 16:49:27 +0100 Message-ID: <20191028154928.4058-9-tzimmermann@suse.de> References: <20191028154928.4058-1-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 738506E959 for ; Mon, 28 Oct 2019 15:49:34 +0000 (UTC) In-Reply-To: <20191028154928.4058-1-tzimmermann@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: airlied@redhat.com, daniel@ffwll.ch, kraxel@redhat.com, sam@ravnborg.org, chen@aspeedtech.com Cc: Thomas Zimmermann , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlIGN1cnNvciBwbGFuZSB1c2VzIGFuIGludGVybmFsIGZvcm1hdCBvZiBBUkdCNDQ0NC4gVG8g dXNlcnNwYWNlLCB3ZQphbm5vdW5jZSBBUkdCODg4OCBhbmQgZG8gdGhlIHRyYW5zZm9ybWF0aW9u IGludGVybmFsbHkuCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1h bm5Ac3VzZS5kZT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuaCAgfCAgIDEgKwog ZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jIHwgMTYxICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxNjEgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmgKaW5kZXggMTM1NjA2MjJmMjJhLi40OTU1N2E3MzM5 MGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2Rydi5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hc3QvYXN0X2Rydi5oCkBAIC0xMjIsNiArMTIyLDcgQEAgc3RydWN0IGFzdF9w cml2YXRlIHsKIAl9IGN1cnNvcjsKIAogCXN0cnVjdCBkcm1fcGxhbmUgcHJpbWFyeV9wbGFuZTsK KwlzdHJ1Y3QgZHJtX3BsYW5lIGN1cnNvcl9wbGFuZTsKIAogCWJvb2wgc3VwcG9ydF93aWRlX3Nj cmVlbjsKIAllbnVtIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUu YyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYwppbmRleCA3NjY3ZjQ1MDJlYjkuLmY1 ZjczMjAwZThlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYwpAQCAtNTQsNiArNTQsMTYgQEAgc3Rh dGljIGludCBhc3RfY3Vyc29yX21vdmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJICAgaW50 IHgsIGludCB5KTsKIAogCitzdGF0aWMgdTMyIGNvcHlfY3Vyc29yX2ltYWdlKHU4ICpzcmMsIHU4 ICpkc3QsIGludCB3aWR0aCwgaW50IGhlaWdodCk7CitzdGF0aWMgaW50IGFzdF9jdXJzb3JfdXBk YXRlKHZvaWQgKmRzdCwgdm9pZCAqc3JjLCB1bnNpZ25lZCBpbnQgd2lkdGgsCisJCQkgICAgIHVu c2lnbmVkIGludCBoZWlnaHQpOworc3RhdGljIHZvaWQgYXN0X2N1cnNvcl9zZXRfYmFzZShzdHJ1 Y3QgYXN0X3ByaXZhdGUgKmFzdCwgdTY0IGFkZHJlc3MpOworc3RhdGljIGludCBhc3Rfc2hvd19j dXJzb3Ioc3RydWN0IGRybV9jcnRjICpjcnRjLCB2b2lkICpzcmMsCisJCQkgICB1bnNpZ25lZCBp bnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQpOworc3RhdGljIHZvaWQgYXN0X2hpZGVfY3Vy c29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CitzdGF0aWMgaW50IGFzdF9jdXJzb3JfbW92ZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkgICBpbnQgeCwgaW50IHkpOworCiBzdGF0aWMgaW5s aW5lIHZvaWQgYXN0X2xvYWRfcGFsZXR0ZV9pbmRleChzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCwK IAkJCQkgICAgIHU4IGluZGV4LCB1OCByZWQsIHU4IGdyZWVuLAogCQkJCSAgICAgdTggYmx1ZSkK QEAgLTU5NCw2ICs2MDQsMTM5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNz IGFzdF9wcmltYXJ5X3BsYW5lX2Z1bmNzID0gewogCS5mb3JtYXRfbW9kX3N1cHBvcnRlZCA9IE5V TEwsCiB9OwogCisvKgorICogQ3Vyc29yIHBsYW5lCisgKi8KKworc3RhdGljIGludAorYXN0X2N1 cnNvcl9wbGFuZV9oZWxwZXJfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJ CQkgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfc3RhdGUpCit7CisJc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIgPSBuZXdfc3RhdGUtPmZiOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9 IG5ld19zdGF0ZS0+Y3J0YzsKKwlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvOworCXN0 cnVjdCBhc3RfcHJpdmF0ZSAqYXN0OworCWludCByZXQ7CisJdm9pZCAqc3JjLCAqZHN0OworCisJ aWYgKCFjcnRjIHx8ICFmYikKKwkJcmV0dXJuIDA7CisKKwlpZiAoZmItPndpZHRoID4gQVNUX01B WF9IV0NfV0lEVEggfHwgZmItPmhlaWdodCA+IEFTVF9NQVhfSFdDX0hFSUdIVCkKKwkJcmV0dXJu IC1FSU5WQUw7CisKKwlhc3QgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOworCisJZ2JvID0gZHJt X2dlbV92cmFtX29mX2dlbShmYi0+b2JqWzBdKTsKKwlzcmMgPSBkcm1fZ2VtX3ZyYW1fdm1hcChn Ym8pOworCWlmIChJU19FUlIoc3JjKSkgeworCQlyZXQgPSBQVFJfRVJSKHNyYyk7CisJCWdvdG8g ZXJyX2RybV9nZW1fdnJhbV91bnBpbjsKKwl9CisKKwlkc3QgPSBkcm1fZ2VtX3ZyYW1fdm1hcChh c3QtPmN1cnNvci5nYm9bYXN0LT5jdXJzb3IubmV4dF9pbmRleF0pOworCWlmIChJU19FUlIoZHN0 KSkgeworCQlyZXQgPSBQVFJfRVJSKGRzdCk7CisJCWdvdG8gZXJyX2RybV9nZW1fdnJhbV92dW5t YXBfc3JjOworCX0KKworCXJldCA9IGFzdF9jdXJzb3JfdXBkYXRlKGRzdCwgc3JjLCBmYi0+d2lk dGgsIGZiLT5oZWlnaHQpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX2RybV9nZW1fdnJhbV92dW5t YXBfZHN0OworCisJLyogQWx3YXlzIHVubWFwIGJ1ZmZlcnMgaGVyZS4gRGVzdGluYXRpb24gYnVm ZmVycyBhcmUKKwkgKiBwZXJtYS1waW5uZWQgd2hpbGUgdGhlIGRyaXZlciBpcyBhY3RpdmUuIFdl J3JlIG9ubHkKKwkgKiBjaGFuZ2luZyByZWYtY291bnRlcnMgaGVyZS4KKwkgKi8KKwlkcm1fZ2Vt X3ZyYW1fdnVubWFwKGFzdC0+Y3Vyc29yLmdib1thc3QtPmN1cnNvci5uZXh0X2luZGV4XSwgZHN0 KTsKKwlkcm1fZ2VtX3ZyYW1fdnVubWFwKGdibywgc3JjKTsKKworCXJldHVybiAwOworCitlcnJf ZHJtX2dlbV92cmFtX3Z1bm1hcF9kc3Q6CisJZHJtX2dlbV92cmFtX3Z1bm1hcChhc3QtPmN1cnNv ci5nYm9bYXN0LT5jdXJzb3IubmV4dF9pbmRleF0sIGRzdCk7CitlcnJfZHJtX2dlbV92cmFtX3Z1 bm1hcF9zcmM6CisJZHJtX2dlbV92cmFtX3Z1bm1hcChnYm8sIHNyYyk7CitlcnJfZHJtX2dlbV92 cmFtX3VucGluOgorCWRybV9nZW1fdnJhbV91bnBpbihnYm8pOworCXJldHVybiByZXQ7Cit9CisK K3N0YXRpYyBpbnQgYXN0X2N1cnNvcl9wbGFuZV9oZWxwZXJfYXRvbWljX2NoZWNrKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAorCQkJCQkJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCit7 CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCithc3RfY3Vyc29yX3BsYW5lX2hlbHBlcl9h dG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCSAgICAgIHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpz dGF0ZSA9IHBsYW5lLT5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBzdGF0ZS0+Y3J0 YzsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5mYjsKKwlzdHJ1Y3QgYXN0 X3ByaXZhdGUgKmFzdCA9IHBsYW5lLT5kZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBhc3RfY3J0 YyAqYXN0X2NydGMgPSB0b19hc3RfY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgZHJtX2dlbV92cmFtX29i amVjdCAqZ2JvOworCXM2NCBvZmY7CisJdTgganJlZzsKKworCWFzdF9jcnRjLT5vZmZzZXRfeCA9 IEFTVF9NQVhfSFdDX1dJRFRIIC0gZmItPndpZHRoOworCWFzdF9jcnRjLT5vZmZzZXRfeSA9IEFT VF9NQVhfSFdDX1dJRFRIIC0gZmItPmhlaWdodDsKKworCWlmIChzdGF0ZS0+ZmIgIT0gb2xkX3N0 YXRlLT5mYikgeworCQkvKiBBIG5ldyBjdXJzb3IgaW1hZ2Ugd2FzIGluc3RhbGxlZC4gKi8KKwkJ Z2JvID0gYXN0LT5jdXJzb3IuZ2JvW2FzdC0+Y3Vyc29yLm5leHRfaW5kZXhdOworCQlvZmYgPSBk cm1fZ2VtX3ZyYW1fb2Zmc2V0KGdibyk7CisJCWlmIChXQVJOX09OX09OQ0Uob2ZmIDwgMCkpCisJ CQlyZXR1cm47IC8qIEJ1Zzogd2UgZGlkbid0IHBpbiBjdXJzb3IgSFcgQk8gdG8gVlJBTS4gKi8K KwkJYXN0X2N1cnNvcl9zZXRfYmFzZShhc3QsIG9mZik7CisKKwkJKythc3QtPmN1cnNvci5uZXh0 X2luZGV4OworCQlhc3QtPmN1cnNvci5uZXh0X2luZGV4ICU9IEFSUkFZX1NJWkUoYXN0LT5jdXJz b3IuZ2JvKTsKKwl9CisKKwlhc3RfY3Vyc29yX21vdmUoY3J0Yywgc3RhdGUtPmNydGNfeCwgc3Rh dGUtPmNydGNfeSk7CisKKwlqcmVnID0gMHgyOworCS8qIGVuYWJsZSBBUkdCIGN1cnNvciAqLwor CWpyZWcgfD0gMTsKKwlhc3Rfc2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9S VCwgMHhjYiwgMHhmYywganJlZyk7Cit9CisKK3N0YXRpYyB2b2lkCithc3RfY3Vyc29yX3BsYW5l X2hlbHBlcl9hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkgICAg ICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBhc3RfcHJp dmF0ZSAqYXN0ID0gcGxhbmUtPmRldi0+ZGV2X3ByaXZhdGU7CisKKwlhc3Rfc2V0X2luZGV4X3Jl Z19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhjYiwgMHhmYywgMHgwMCk7Cit9CisKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyBhc3RfY3Vyc29yX3BsYW5l X2hlbHBlcl9mdW5jcyA9IHsKKwkucHJlcGFyZV9mYiA9IGFzdF9jdXJzb3JfcGxhbmVfaGVscGVy X3ByZXBhcmVfZmIsCisJLmNsZWFudXBfZmIgPSBOVUxMLCAvKiBub3QgcmVxdWlyZWQgZm9yIGN1 cnNvciBwbGFuZSAqLworCS5hdG9taWNfY2hlY2sgPSBhc3RfY3Vyc29yX3BsYW5lX2hlbHBlcl9h dG9taWNfY2hlY2ssCisJLmF0b21pY191cGRhdGUgPSBhc3RfY3Vyc29yX3BsYW5lX2hlbHBlcl9h dG9taWNfdXBkYXRlLAorCS5hdG9taWNfZGlzYWJsZSA9IGFzdF9jdXJzb3JfcGxhbmVfaGVscGVy X2F0b21pY19kaXNhYmxlLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVu Y3MgYXN0X2N1cnNvcl9wbGFuZV9mdW5jcyA9IHsKKwkudXBkYXRlX3BsYW5lID0gZHJtX2F0b21p Y19oZWxwZXJfdXBkYXRlX3BsYW5lLAorCS5kaXNhYmxlX3BsYW5lID0gZHJtX2F0b21pY19oZWxw ZXJfZGlzYWJsZV9wbGFuZSwKKwkuZGVzdHJveSA9IGRybV9wbGFuZV9jbGVhbnVwLAorCS5yZXNl dCA9IGRybV9hdG9taWNfaGVscGVyX3BsYW5lX3Jlc2V0LAorCS5zZXRfcHJvcGVydHkgPSBOVUxM LAorCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVw bGljYXRlX3N0YXRlLAorCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVy X3BsYW5lX2Rlc3Ryb3lfc3RhdGUsCisJLmF0b21pY19zZXRfcHJvcGVydHkgPSBOVUxMLAorCS5h dG9taWNfZ2V0X3Byb3BlcnR5ID0gTlVMTCwKKwkubGF0ZV9yZWdpc3RlciA9IE5VTEwsCisJLmVh cmx5X3VucmVnaXN0ZXIgPSBOVUxMLAorCS5hdG9taWNfcHJpbnRfc3RhdGUgPSBOVUxMLAorCS5m b3JtYXRfbW9kX3N1cHBvcnRlZCA9IE5VTEwsCit9OworCiAvKgogICogQ1JUQwogICovCkBAIC04 ODMsNyArMTAyNiw4IEBAIHN0YXRpYyBpbnQgYXN0X2NydGNfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKIAogCXJldCA9IGRybV9jcnRjX2luaXRfd2l0aF9w bGFuZXMoZGV2LCAmY3J0Yy0+YmFzZSwgJmFzdC0+cHJpbWFyeV9wbGFuZSwKLQkJCQkJTlVMTCwg JmFzdF9jcnRjX2Z1bmNzLCBOVUxMKTsKKwkJCQkJJmFzdC0+Y3Vyc29yX3BsYW5lLCAmYXN0X2Ny dGNfZnVuY3MsCisJCQkJCU5VTEwpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyX2tmcmVlOwogCkBA IC0xMTUzLDYgKzEyOTcsOSBAQCBpbnQgYXN0X21vZGVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCQlEUk1fRk9STUFUX1JHQjU2NSwKIAkJRFJNX0ZPUk1BVF9DOCwKIAl9OworCXN0YXRp YyBjb25zdCB1aW50MzJfdCBjdXJzb3JfcGxhbmVfZm9ybWF0c1tdID0geworCQlEUk1fRk9STUFU X0FSR0I4ODg4LAorCX07CiAKIAlzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCA9IGRldi0+ZGV2X3By aXZhdGU7CiAJaW50IHJldDsKQEAgLTExNzAsNiArMTMxNywxOCBAQCBpbnQgYXN0X21vZGVfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWRybV9wbGFuZV9oZWxwZXJfYWRkKCZhc3QtPnBy aW1hcnlfcGxhbmUsCiAJCQkgICAgICZhc3RfcHJpbWFyeV9wbGFuZV9oZWxwZXJfZnVuY3MpOwog CisJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwgJmFzdC0+Y3Vyc29yX3BsYW5l LCAweDAxLAorCQkJCSAgICAgICAmYXN0X2N1cnNvcl9wbGFuZV9mdW5jcywKKwkJCQkgICAgICAg Y3Vyc29yX3BsYW5lX2Zvcm1hdHMsCisJCQkJICAgICAgIEFSUkFZX1NJWkUoY3Vyc29yX3BsYW5l X2Zvcm1hdHMpLAorCQkJCSAgICAgICBOVUxMLCBEUk1fUExBTkVfVFlQRV9DVVJTT1IsIE5VTEwp OworCWlmIChyZXQpIHsKKwkJRFJNX0VSUk9SKCJkcm1fdW5pdmVyc2FsX3BsYW5lX2ZhaWxlZCgp OiAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisJZHJtX3BsYW5lX2hlbHBlcl9hZGQo JmFzdC0+Y3Vyc29yX3BsYW5lLAorCQkJICAgICAmYXN0X2N1cnNvcl9wbGFuZV9oZWxwZXJfZnVu Y3MpOworCiAJYXN0X2N1cnNvcl9pbml0KGRldik7CiAJYXN0X2NydGNfaW5pdChkZXYpOwogCWFz dF9lbmNvZGVyX2luaXQoZGV2KTsKLS0gCjIuMjMuMAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVs