From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 4/9] drm/i915: Introduce intel_prepare_cursor_plane() Date: Mon, 24 Nov 2014 11:53:01 -0800 Message-ID: <1416858786-25376-5-git-send-email-matthew.d.roper@intel.com> References: <1416858786-25376-1-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 20AE16EEB0 for ; Mon, 24 Nov 2014 11:55:13 -0800 (PST) In-Reply-To: <1416858786-25376-1-git-send-email-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UHJpbWFyeSBhbmQgc3ByaXRlIHBsYW5lcyBoYXZlIGFscmVhZHkgYmVlbiByZWZhY3RvcmVkIHRv IGluY2x1ZGUgYQoncHJlcGFyZScgc3RlcCB3aGljaCBoYW5kbGVzIGFsbCB0aGUgY29tbWl0LXRp bWUgb3BlcmF0aW9ucyB0aGF0IGNvdWxkCmZhaWwgKGkuZS4sIHBpbm5pbmcgYnVmZmVycyBhbmQg c3VjaCkuICBSZWZhY3RvciB0aGUgY3Vyc29yIGNvbW1pdCBpbiBhCnNpbWlsYXIgbWFubmVyLgoK Rm9yIHNpbXBsaWNpdHkgYW5kIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgcGxhbmUgdHlwZXMsIHdl IGFsc28gc3dpdGNoIHRvCnVzaW5nIGludGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKCkgdG8gcGVy Zm9ybSBvdXIgcGlubmluZyBmb3IKbm9uLXBoeXNpY2FsIGN1cnNvcnMuICBUaGlzIHdpbGwgYWxs b3cgdXMgdG8gbW9yZSBlYXNpbHkgbWlncmF0ZSB0aGUKY29kZSBpbnRvIHRoZSBhdG9taWMgJ2Jl Z2luJyBoYW5kbGVyIGluIGEgcGxhbmUtYWdub3N0aWMgbWFubmVyIGluIGEKZnV0dXJlIHBhdGNo c2V0LgoKU2lnbmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxMTQgKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NCBpbnNlcnRp b25zKCspLCA3MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK aW5kZXggMTc3ODhmOC4uZmY5NGU0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YwpAQCAtMTE4OTksMTkgKzExODk5LDUxIEBAIGludGVsX2NoZWNrX2N1cnNvcl9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKIH0KIAogc3RhdGljIGludAoraW50ZWxfcHJlcGFyZV9jdXJz b3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkgICBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2 OworCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmZiOworCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhzdGF0ZS0+Y3J0Yyk7CisJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7CisJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9sZF9vYmogPSBpbnRlbF9mYl9vYmoocGxhbmUtPmZiKTsKKwll bnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CisJaW50IHJldCA9IDA7CisKKwlpZiAo b2xkX29iaiAhPSBvYmopIHsKKwkJLyogd2Ugb25seSBuZWVkIHRvIHBpbiBpbnNpZGUgR1RUIGlm IGN1cnNvciBpcyBub24tcGh5ICovCisJCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsK KwkJaWYgKCFJTlRFTF9JTkZPKGRldiktPmN1cnNvcl9uZWVkc19waHlzaWNhbCkgeworCQkJaWYg KG9iaikKKwkJCQlyZXQgPSBpbnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29iaihwbGFuZSwgZmIsIE5V TEwpOworCQkJaWYgKHJldCA9PSAwKQorCQkJCWk5MTVfZ2VtX3RyYWNrX2ZiKGludGVsX2NydGMt PmN1cnNvcl9ibywgb2JqLAorCQkJCQkJICBJTlRFTF9GUk9OVEJVRkZFUl9DVVJTT1IocGlwZSkp OworCQl9IGVsc2UgeworCQkJaW50IGFsaWduID0gSVNfSTgzMChkZXYpID8gMTYgKiAxMDI0IDog MjU2OworCQkJaWYgKG9iaikKKwkJCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfYXR0YWNoX3BoeXMo b2JqLCBhbGlnbik7CisJCQlpZiAocmV0KQorCQkJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBh dHRhY2ggcGh5cyBvYmplY3RcbiIpOworCQl9CisJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3Rf bXV0ZXgpOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkCiBpbnRlbF9jb21t aXRfY3Vyc29yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJICBzdHJ1Y3QgaW50 ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRl LT5jcnRjOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJc3RydWN0IGludGVs X3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKIAlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKHN0YXRlLT5mYik7CiAJZW51bSBw aXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwogCXVuc2lnbmVkIG9sZF93aWR0aDsKIAl1aW50 MzJfdCBhZGRyOwotCWludCByZXQ7CiAKIAljcnRjLT5jdXJzb3JfeCA9IHN0YXRlLT5vcmlnX2Rz dC54MTsKIAljcnRjLT5jdXJzb3JfeSA9IHN0YXRlLT5vcmlnX2RzdC55MTsKQEAgLTExOTI5LDc1 ICsxMTk2MSwxOCBAQCBpbnRlbF9jb21taXRfY3Vyc29yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAogCWlmIChpbnRlbF9jcnRjLT5jdXJzb3JfYm8gPT0gb2JqKQogCQlnb3RvIHVwZGF0 ZTsKIAotCS8qIGlmIHdlIHdhbnQgdG8gdHVybiBvZmYgdGhlIGN1cnNvciBpZ25vcmUgd2lkdGgg YW5kIGhlaWdodCAqLwotCWlmICghb2JqKSB7Ci0JCURSTV9ERUJVR19LTVMoImN1cnNvciBvZmZc biIpOworCWlmICghb2JqKQogCQlhZGRyID0gMDsKLQkJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3Rf bXV0ZXgpOwotCQlnb3RvIGZpbmlzaDsKLQl9Ci0KLQkvKiB3ZSBvbmx5IG5lZWQgdG8gcGluIGlu c2lkZSBHVFQgaWYgY3Vyc29yIGlzIG5vbi1waHkgKi8KLQltdXRleF9sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7Ci0JaWYgKCFJTlRFTF9JTkZPKGRldiktPmN1cnNvcl9uZWVkc19waHlzaWNhbCkg ewotCQl1bnNpZ25lZCBhbGlnbm1lbnQ7Ci0KLQkJLyoKLQkJICogR2xvYmFsIGd0dCBwdGUgcmVn aXN0ZXJzIGFyZSBzcGVjaWFsIHJlZ2lzdGVycyB3aGljaCBhY3R1YWxseQotCQkgKiBmb3J3YXJk IHdyaXRlcyB0byBhIGNodW5rIG9mIHN5c3RlbSBtZW1vcnkuIFdoaWNoIG1lYW5zIHRoYXQKLQkJ ICogdGhlcmUgaXMgbm8gcmlzayB0aGF0IHRoZSByZWdpc3RlciB2YWx1ZXMgZGlzYXBwZWFyIGFz IHNvb24KLQkJICogYXMgd2UgY2FsbCBpbnRlbF9ydW50aW1lX3BtX3B1dCgpLCBzbyBpdCBpcyBj b3JyZWN0IHRvIHdyYXAKLQkJICogb25seSB0aGUgcGluL3VucGluL2ZlbmNlIGFuZCBub3QgbW9y ZS4KLQkJICovCi0JCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKLQotCQkvKiBOb3Rl IHRoYXQgdGhlIHcvYSBhbHNvIHJlcXVpcmVzIDIgUFRFIG9mIHBhZGRpbmcgZm9sbG93aW5nCi0J CSAqIHRoZSBiby4gV2UgY3VycmVudGx5IGZpbGwgYWxsIHVudXNlZCBQVEUgd2l0aCB0aGUgc2hh ZG93Ci0JCSAqIHBhZ2UgYW5kIHNvIHdlIHNob3VsZCBhbHdheXMgaGF2ZSB2YWxpZCBQVEUgZm9s bG93aW5nIHRoZQotCQkgKiBjdXJzb3IgcHJldmVudGluZyB0aGUgVlQtZCB3YXJuaW5nLgotCQkg Ki8KLQkJYWxpZ25tZW50ID0gMDsKLQkJaWYgKG5lZWRfdnRkX3dhKGRldikpCi0JCQlhbGlnbm1l bnQgPSA2NCoxMDI0OwotCi0JCXJldCA9IGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9w bGFuZShvYmosIGFsaWdubWVudCwgTlVMTCk7Ci0JCWlmIChyZXQpIHsKLQkJCURSTV9ERUJVR19L TVMoImZhaWxlZCB0byBtb3ZlIGN1cnNvciBibyBpbnRvIHRoZSBHVFRcbiIpOwotCQkJaW50ZWxf cnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwotCQkJZ290byBmYWlsX2xvY2tlZDsKLQkJfQotCi0J CXJldCA9IGk5MTVfZ2VtX29iamVjdF9wdXRfZmVuY2Uob2JqKTsKLQkJaWYgKHJldCkgewotCQkJ RFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIHJlbGVhc2UgZmVuY2UgZm9yIGN1cnNvciIpOwotCQkJ aW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwotCQkJZ290byBmYWlsX3VucGluOwotCQl9 Ci0KKwllbHNlIGlmICghSU5URUxfSU5GTyhkZXYpLT5jdXJzb3JfbmVlZHNfcGh5c2ljYWwpCiAJ CWFkZHIgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2JqKTsKLQotCQlpbnRlbF9ydW50aW1l X3BtX3B1dChkZXZfcHJpdik7Ci0KLQl9IGVsc2UgewotCQlpbnQgYWxpZ24gPSBJU19JODMwKGRl dikgPyAxNiAqIDEwMjQgOiAyNTY7Ci0JCXJldCA9IGk5MTVfZ2VtX29iamVjdF9hdHRhY2hfcGh5 cyhvYmosIGFsaWduKTsKLQkJaWYgKHJldCkgewotCQkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRv IGF0dGFjaCBwaHlzIG9iamVjdFxuIik7Ci0JCQlnb3RvIGZhaWxfbG9ja2VkOwotCQl9CisJZWxz ZQogCQlhZGRyID0gb2JqLT5waHlzX2hhbmRsZS0+YnVzYWRkcjsKLQl9CiAKLWZpbmlzaDoKIAlp ZiAoaW50ZWxfY3J0Yy0+Y3Vyc29yX2JvKSB7CiAJCWlmICghSU5URUxfSU5GTyhkZXYpLT5jdXJz b3JfbmVlZHNfcGh5c2ljYWwpCiAJCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fZnJvbV9kaXNwbGF5 X3BsYW5lKGludGVsX2NydGMtPmN1cnNvcl9ibyk7CiAJfQogCi0JaTkxNV9nZW1fdHJhY2tfZmIo aW50ZWxfY3J0Yy0+Y3Vyc29yX2JvLCBvYmosCi0JCQkgIElOVEVMX0ZST05UQlVGRkVSX0NVUlNP UihwaXBlKSk7Ci0JbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0KIAlpbnRlbF9j cnRjLT5jdXJzb3JfYWRkciA9IGFkZHI7CiAJaW50ZWxfY3J0Yy0+Y3Vyc29yX2JvID0gb2JqOwog dXBkYXRlOgpAQCAtMTIwMTMsMTMgKzExOTg4LDYgQEAgdXBkYXRlOgogCiAJCWludGVsX2Zyb250 YnVmZmVyX2ZsaXAoZGV2LCBJTlRFTF9GUk9OVEJVRkZFUl9DVVJTT1IocGlwZSkpOwogCX0KLQot CXJldHVybiAwOwotZmFpbF91bnBpbjoKLQlpOTE1X2dlbV9vYmplY3RfdW5waW5fZnJvbV9kaXNw bGF5X3BsYW5lKG9iaik7Ci1mYWlsX2xvY2tlZDoKLQltdXRleF91bmxvY2soJmRldi0+c3RydWN0 X211dGV4KTsKLQlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50CkBAIC0xMjA2MCw3ICsxMjAy OCwxMyBAQCBpbnRlbF9jdXJzb3JfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJl dHVybiBpbnRlbF9jb21taXRfY3Vyc29yX3BsYW5lKHBsYW5lLCAmc3RhdGUpOworCXJldCA9IGlu dGVsX3ByZXBhcmVfY3Vyc29yX3BsYW5lKHBsYW5lLCAmc3RhdGUpOworCWlmIChyZXQpCisJCXJl dHVybiByZXQ7CisKKwlpbnRlbF9jb21taXRfY3Vyc29yX3BsYW5lKHBsYW5lLCAmc3RhdGUpOwor CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGlu dGVsX2N1cnNvcl9wbGFuZV9mdW5jcyA9IHsKLS0gCjEuOC41LjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==