From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 04/10] drm/i915: Introduce intel_prepare_cursor_plane() (v2) Date: Mon, 1 Dec 2014 15:40:12 -0800 Message-ID: <1417477218-9519-4-git-send-email-matthew.d.roper@intel.com> References: <1417477218-9519-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 4654A6E50B for ; Mon, 1 Dec 2014 15:40:41 -0800 (PST) In-Reply-To: <1417477218-9519-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 c2V0LgoKdjI6CiAtIFVwZGF0ZSBHRU0gZmIgdHJhY2tpbmcgZm9yIHBoeXNpY2FsIGN1cnNvcnMg dG9vLiAoQW5kZXIpCiAtIFVzZSBpbnRlbF91bnBpbl9mYl9vYmooKSByYXRoZXIgdGhhbgogICBp OTE1X2dlbV9vYmplY3RfdW5waW5fZnJvbV9kaXNwbGF5X3BsYW5lKCkgYW5kIGRvIHNvIHdoaWxl IGhvbGRpbmcKICAgc3RydWN0X211dGV4LiAgKEFuZGVyKQogLSBVcGRhdGUgcGxhbmUtPmZiIGlu IGNvbW1pdF9jdXJzb3JfcGxhbmUuICBUaGlzIGlzbid0IHJlYWxseSBuZWNlc3NhcnkKICAgc2lu Y2UgdGhlIERSTSBjb3JlIGRvZXMgdGhpcyBmb3IgdXMgaW4gX19zZXRwbGFuZV9pbnRlcm5hbCgp LCBidXQKICAgZG9pbmcgaXQgaW4gb3VyIGRyaXZlciBvbmNlIHdlIGtub3cgd2UncmUgZ29pbmcg dG8gc3VjY2VlZCBoZWxwcwogICBhdm9pZCBjb25mdXNpb24uIChBbmRlcikKClNpZ25lZC1vZmYt Ynk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTI0ICsrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgNzIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGFmZmY3MTguLjI4 ZmU3YTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTExOTY3LDIwICsx MTk2Nyw1NSBAQCBpbnRlbF9jaGVja19jdXJzb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCiB9CiAKIHN0YXRpYyBpbnQKK2ludGVsX3ByZXBhcmVfY3Vyc29yX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAorCQkJICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkK K3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKKwlzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiA9IHN0YXRlLT5mYjsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoc3RhdGUtPmNydGMpOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvbGRfb2JqID0gaW50ZWxfZmJfb2JqKHBsYW5lLT5mYik7CisJZW51bSBwaXBlIHBpcGUgPSBp bnRlbF9jcnRjLT5waXBlOworCWludCByZXQgPSAwOworCisJaWYgKG9sZF9vYmogIT0gb2JqKSB7 CisJCS8qIHdlIG9ubHkgbmVlZCB0byBwaW4gaW5zaWRlIEdUVCBpZiBjdXJzb3IgaXMgbm9uLXBo eSAqLworCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJCWlmICghSU5URUxfSU5G TyhkZXYpLT5jdXJzb3JfbmVlZHNfcGh5c2ljYWwpIHsKKwkJCWlmIChvYmopCisJCQkJcmV0ID0g aW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmoocGxhbmUsIGZiLCBOVUxMKTsKKwkJfSBlbHNlIHsK KwkJCWludCBhbGlnbiA9IElTX0k4MzAoZGV2KSA/IDE2ICogMTAyNCA6IDI1NjsKKwkJCWlmIChv YmopCisJCQkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2F0dGFjaF9waHlzKG9iaiwgYWxpZ24pOwor CQkJaWYgKHJldCkKKwkJCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gYXR0YWNoIHBoeXMgb2Jq ZWN0XG4iKTsKKwkJfQorCisJCWlmIChyZXQgPT0gMCkKKwkJCWk5MTVfZ2VtX3RyYWNrX2ZiKGlu dGVsX2NydGMtPmN1cnNvcl9ibywgb2JqLAorCQkJCQkgIElOVEVMX0ZST05UQlVGRkVSX0NVUlNP UihwaXBlKSk7CisKKwkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJfQorCisJ cmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQKIGludGVsX2NvbW1pdF9jdXJzb3JfcGxhbmUo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAq c3RhdGUpCiB7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmNydGM7CiAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3Bs YW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmogPSBpbnRlbF9mYl9vYmooc3RhdGUtPmZiKTsKIAllbnVtIHBpcGUgcGlwZSA9IGludGVs X2NydGMtPnBpcGU7CiAJdW5zaWduZWQgb2xkX3dpZHRoOwogCXVpbnQzMl90IGFkZHI7Ci0JaW50 IHJldDsKIAorCXBsYW5lLT5mYiA9IHN0YXRlLT5iYXNlLmZiOwogCWNydGMtPmN1cnNvcl94ID0g c3RhdGUtPm9yaWdfZHN0LngxOwogCWNydGMtPmN1cnNvcl95ID0gc3RhdGUtPm9yaWdfZHN0Lnkx OwogCkBAIC0xMTk5Nyw3NSArMTIwMzIsMjEgQEAgaW50ZWxfY29tbWl0X2N1cnNvcl9wbGFuZShz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlpZiAoaW50ZWxfY3J0Yy0+Y3Vyc29yX2JvID09IG9i aikKIAkJZ290byB1cGRhdGU7CiAKLQkvKiBpZiB3ZSB3YW50IHRvIHR1cm4gb2ZmIHRoZSBjdXJz b3IgaWdub3JlIHdpZHRoIGFuZCBoZWlnaHQgKi8KLQlpZiAoIW9iaikgewotCQlEUk1fREVCVUdf S01TKCJjdXJzb3Igb2ZmXG4iKTsKKwlpZiAoIW9iaikKIAkJYWRkciA9IDA7Ci0JCW11dGV4X2xv Y2soJmRldi0+c3RydWN0X211dGV4KTsKLQkJZ290byBmaW5pc2g7Ci0JfQotCi0JLyogd2Ugb25s eSBuZWVkIHRvIHBpbiBpbnNpZGUgR1RUIGlmIGN1cnNvciBpcyBub24tcGh5ICovCi0JbXV0ZXhf bG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCWlmICghSU5URUxfSU5GTyhkZXYpLT5jdXJzb3Jf bmVlZHNfcGh5c2ljYWwpIHsKLQkJdW5zaWduZWQgYWxpZ25tZW50OwotCi0JCS8qCi0JCSAqIEds b2JhbCBndHQgcHRlIHJlZ2lzdGVycyBhcmUgc3BlY2lhbCByZWdpc3RlcnMgd2hpY2ggYWN0dWFs bHkKLQkJICogZm9yd2FyZCB3cml0ZXMgdG8gYSBjaHVuayBvZiBzeXN0ZW0gbWVtb3J5LiBXaGlj aCBtZWFucyB0aGF0Ci0JCSAqIHRoZXJlIGlzIG5vIHJpc2sgdGhhdCB0aGUgcmVnaXN0ZXIgdmFs dWVzIGRpc2FwcGVhciBhcyBzb29uCi0JCSAqIGFzIHdlIGNhbGwgaW50ZWxfcnVudGltZV9wbV9w dXQoKSwgc28gaXQgaXMgY29ycmVjdCB0byB3cmFwCi0JCSAqIG9ubHkgdGhlIHBpbi91bnBpbi9m ZW5jZSBhbmQgbm90IG1vcmUuCi0JCSAqLwotCQlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJp dik7Ci0KLQkJLyogTm90ZSB0aGF0IHRoZSB3L2EgYWxzbyByZXF1aXJlcyAyIFBURSBvZiBwYWRk aW5nIGZvbGxvd2luZwotCQkgKiB0aGUgYm8uIFdlIGN1cnJlbnRseSBmaWxsIGFsbCB1bnVzZWQg UFRFIHdpdGggdGhlIHNoYWRvdwotCQkgKiBwYWdlIGFuZCBzbyB3ZSBzaG91bGQgYWx3YXlzIGhh dmUgdmFsaWQgUFRFIGZvbGxvd2luZyB0aGUKLQkJICogY3Vyc29yIHByZXZlbnRpbmcgdGhlIFZU LWQgd2FybmluZy4KLQkJICovCi0JCWFsaWdubWVudCA9IDA7Ci0JCWlmIChuZWVkX3Z0ZF93YShk ZXYpKQotCQkJYWxpZ25tZW50ID0gNjQqMTAyNDsKLQotCQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rf cGluX3RvX2Rpc3BsYXlfcGxhbmUob2JqLCBhbGlnbm1lbnQsIE5VTEwpOwotCQlpZiAocmV0KSB7 Ci0JCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gbW92ZSBjdXJzb3IgYm8gaW50byB0aGUgR1RU XG4iKTsKLQkJCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKLQkJCWdvdG8gZmFpbF9s b2NrZWQ7Ci0JCX0KLQotCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcHV0X2ZlbmNlKG9iaik7Ci0J CWlmIChyZXQpIHsKLQkJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byByZWxlYXNlIGZlbmNlIGZv ciBjdXJzb3IiKTsKLQkJCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKLQkJCWdvdG8g ZmFpbF91bnBpbjsKLQkJfQotCisJZWxzZSBpZiAoIUlOVEVMX0lORk8oZGV2KS0+Y3Vyc29yX25l ZWRzX3BoeXNpY2FsKQogCQlhZGRyID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9iaik7Ci0K LQkJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwotCi0JfSBlbHNlIHsKLQkJaW50IGFs aWduID0gSVNfSTgzMChkZXYpID8gMTYgKiAxMDI0IDogMjU2OwotCQlyZXQgPSBpOTE1X2dlbV9v YmplY3RfYXR0YWNoX3BoeXMob2JqLCBhbGlnbik7Ci0JCWlmIChyZXQpIHsKLQkJCURSTV9ERUJV R19LTVMoImZhaWxlZCB0byBhdHRhY2ggcGh5cyBvYmplY3RcbiIpOwotCQkJZ290byBmYWlsX2xv Y2tlZDsKLQkJfQorCWVsc2UKIAkJYWRkciA9IG9iai0+cGh5c19oYW5kbGUtPmJ1c2FkZHI7Ci0J fQogCi1maW5pc2g6CiAJaWYgKGludGVsX2NydGMtPmN1cnNvcl9ibykgewotCQlpZiAoIUlOVEVM X0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKQotCQkJaTkxNV9nZW1fb2JqZWN0X3Vu cGluX2Zyb21fZGlzcGxheV9wbGFuZShpbnRlbF9jcnRjLT5jdXJzb3JfYm8pOworCQlpZiAoIUlO VEVMX0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKSB7CisJCQltdXRleF9sb2NrKCZk ZXYtPnN0cnVjdF9tdXRleCk7CisJCQlpbnRlbF91bnBpbl9mYl9vYmooaW50ZWxfY3J0Yy0+Y3Vy c29yX2JvKTsKKwkJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCQl9CiAJfQog Ci0JaTkxNV9nZW1fdHJhY2tfZmIoaW50ZWxfY3J0Yy0+Y3Vyc29yX2JvLCBvYmosCi0JCQkgIElO VEVMX0ZST05UQlVGRkVSX0NVUlNPUihwaXBlKSk7Ci0JbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7Ci0KIAlpbnRlbF9jcnRjLT5jdXJzb3JfYWRkciA9IGFkZHI7CiAJaW50ZWxfY3J0 Yy0+Y3Vyc29yX2JvID0gb2JqOwogdXBkYXRlOgpAQCAtMTIwODEsMTMgKzEyMDYyLDYgQEAgdXBk YXRlOgogCiAJCWludGVsX2Zyb250YnVmZmVyX2ZsaXAoZGV2LCBJTlRFTF9GUk9OVEJVRkZFUl9D VVJTT1IocGlwZSkpOwogCX0KLQotCXJldHVybiAwOwotZmFpbF91bnBpbjoKLQlpOTE1X2dlbV9v YmplY3RfdW5waW5fZnJvbV9kaXNwbGF5X3BsYW5lKG9iaik7Ci1mYWlsX2xvY2tlZDoKLQltdXRl eF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMg aW50CkBAIC0xMjEyOCw3ICsxMjEwMiwxMyBAQCBpbnRlbF9jdXJzb3JfcGxhbmVfdXBkYXRlKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJaWYgKHJldCkK IAkJcmV0dXJuIHJldDsKIAotCXJldHVybiBpbnRlbF9jb21taXRfY3Vyc29yX3BsYW5lKHBsYW5l LCAmc3RhdGUpOworCXJldCA9IGludGVsX3ByZXBhcmVfY3Vyc29yX3BsYW5lKHBsYW5lLCAmc3Rh dGUpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpbnRlbF9jb21taXRfY3Vyc29yX3Bs YW5lKHBsYW5lLCAmc3RhdGUpOworCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVsX2N1cnNvcl9wbGFuZV9mdW5jcyA9IHsKLS0gCjEuOC41 LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==