From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shobhit Kumar Subject: [RFC v2] drm/i915/chv: Clip cursor for CHV pipe C HW Cursor pos < 0 Date: Wed, 29 Jun 2016 18:24:42 +0530 Message-ID: <1467204882-23928-1-git-send-email-shobhit.kumar@linux.intel.com> References: <1467116873-31987-1-git-send-email-shobhit.kumar@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id D51BF6E6F8 for ; Wed, 29 Jun 2016 12:54:58 +0000 (UTC) In-Reply-To: <1467116873-31987-1-git-send-email-shobhit.kumar@linux.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, daniel@ffwll.ch Cc: deepak.s@intel.com, Shobhit Kumar , akshu.agrawal@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogU2hvYmhpdCBLdW1hciA8c2hvYmhpdC5rdW1hckBpbnRlbC5jb20+CgpDSFYgcGlwZSBD IGhpdHMgdW5kZXJydW4gd2hlbiB3ZSBnZXQgbmVnYXRpdmUgY3J0Y194IHZhbHVlcyBvZiBjdXJz b3IuClRvIGF2b2lkIHRoaXMgd2UgY2xpcCBhbmQgc2hpZnQgdGhlIGN1cnNvciBpbWFnZSBieSBu ZWdhdGl2ZSBjcnRjX3gKdmFsdWUuCgp2MjogTWFrZSBhIGNvcHkgb2YgY3Vyc29yIHBsYW5lIHN0 YXRlIGFuZCBhbGxvY2F0ZSBuZXcgZ2VtIG9iamVjdCBhbmQgZmIKICAgIGZvciBjbGlwcGVkIGN1 cnNvciBhbmQgdXNlIHRoYXQgaW4gY2FzZSBvZiBuZWdhdGl2ZSBjdXJzb3IgcG9zaXRpb24KCnYz OiBVcGRhdGVkIGVycm9yIGhhbmRsaW5nCiAgICBQaW4gdGhlIGdlbSBvYmplY3QgYmVmb3JlIHVz ZS4KClNpZ25lZC1vZmYtYnk6IEFrc2h1IEFncmF3YWwgPGFrc2h1LmFncmF3YWxAaW50ZWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBTaG9iaGl0IEt1bWFyIDxzaG9iaGl0Lmt1bWFyQGludGVsLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgIDcgKysKIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDEzMSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxMzcgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDcyNGQzNGIuLjFlNTljMDIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjA0MSw2ICsyMDQxLDEzIEBAIHN0cnVjdCBk cm1faTkxNV9wcml2YXRlIHsKIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZGlnX3BvcnRfbWFwW0k5 MTVfTUFYX1BPUlRTXTsKIAogCS8qCisJKiBUZW1wb3JhcnkgY29weSBvZiBjdXJzb3IgcGxhbmUg c3RhdGUgZm9yIENIViBQSVBFX0MKKwkqIFdpbGwgYmUgaW5pdGlhbGl6ZWQgb25seSB3aGVuIGNy dGNfeCA8IDAgYXMgdGhlcmUgaXMgYQorCSogSFcgYnVnIGNhdXNpbmcgcGlwZSB1bmRlcnJ1bgor CSovCisJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpjdXJzb3Jfc3RhdGU7CisKKwkvKgogCSAq IE5PVEU6IFRoaXMgaXMgdGhlIGRyaTEvdW1zIGR1bmdlb24sIGRvbid0IGFkZCBzdHVmZiBoZXJl LiBZb3VyIHBhdGNoCiAJICogd2lsbCBiZSByZWplY3RlZC4gSW5zdGVhZCBsb29rIGZvciBhIGJl dHRlciBwbGFjZS4KIAkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBj M2I1ZGM4Li5lNmMxMDNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0x NDQ1Niw2ICsxNDQ1NiwxMzIgQEAgaW50ZWxfdXBkYXRlX2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKIAlpbnRlbF9jcnRjX3VwZGF0ZV9jdXJzb3IoY3J0Yywgc3RhdGUpOwog fQogCitzdGF0aWMgdm9pZAoraW50ZWxfdXBkYXRlX2Nodl9waXBlX2NfY3Vyc29yX3BsYW5lKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKKwkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKK3sK KwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGM7CisJc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOworCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiA9IGludGVsX2ZiX29iaihzdGF0ZS0+YmFzZS5mYik7CisJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmN1cl9vYmogPSBOVUxMLCAqdXNlX29iaiA9IE5VTEw7CisJdWludDMyX3QgYWRk cjsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmN1cnNvcl9zdGF0ZSA9IGRldl9wcml2LT5j dXJzb3Jfc3RhdGU7CisJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICp1c2Vfc3RhdGU7 CisJY2hhciBfX2lvbWVtICpzcmMsICpkc3Q7CisJYm9vbCBwaW5uZWQgPSB0cnVlOworCisJaWYg KHN0YXRlLT52aXNpYmxlICYmIHN0YXRlLT5iYXNlLmNydGNfeCA8IDApIHsKKwkJaW50IGJ5dGVz X3Blcl9waXhlbCA9IHN0YXRlLT5iYXNlLmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7CisJCWludCB4 ID0gc3RhdGUtPmJhc2UuY3J0Y194OworCQlpbnQgd2lkdGggPSBzdGF0ZS0+YmFzZS5jcnRjX3c7 CisJCWludCBoZWlnaHQgPSBzdGF0ZS0+YmFzZS5jcnRjX2g7CisJCXN0cnVjdCBkcm1fbW9kZV9m Yl9jbWQyIG1vZGVfY21kID0geyAwIH07CisJCWludCBpOworCisJCWlmICghY3Vyc29yX3N0YXRl KSB7CisJCQljdXJzb3Jfc3RhdGUgPSBremFsbG9jKHNpemVvZigqY3Vyc29yX3N0YXRlKSwgR0ZQ X0tFUk5FTCk7CisJCQlpZiAoIWN1cnNvcl9zdGF0ZSkgeworCQkJCXVzZV9zdGF0ZSA9IHN0YXRl OworCQkJCXVzZV9vYmogPSBvYmo7CisJCQkJZ290byB1cGRhdGU7CisJCQl9CisKKwkJCW1lbWNw eShjdXJzb3Jfc3RhdGUsIHN0YXRlLCBzaXplb2YoKnN0YXRlKSk7CisKKwkJCS8qIEFsbG9jYXRl IG5ldyBnZW0gb2JqZWN0ICovCisJCQljdXJfb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZShk ZXYsIG9iai0+YmFzZS5zaXplKTsKKwkJCWlmIChJU19FUlIoY3VyX29iaikpCisJCQkJZ290byBn ZW1fZXJyOworCisJCQltb2RlX2NtZC53aWR0aCA9IGN1cnNvcl9zdGF0ZS0+YmFzZS5mYi0+d2lk dGg7CisJCQltb2RlX2NtZC5oZWlnaHQgPSBjdXJzb3Jfc3RhdGUtPmJhc2UuZmItPmhlaWdodDsK KwkJCW1vZGVfY21kLnBpdGNoZXNbMF0gPSBjdXJzb3Jfc3RhdGUtPmJhc2UuZmItPnBpdGNoZXNb MF07CisJCQltb2RlX2NtZC5waXhlbF9mb3JtYXQgPSBjdXJzb3Jfc3RhdGUtPmJhc2UuZmItPnBp eGVsX2Zvcm1hdDsKKworCQkJY3Vyc29yX3N0YXRlLT5iYXNlLmZiID0gaW50ZWxfZnJhbWVidWZm ZXJfY3JlYXRlKGRldiwgJm1vZGVfY21kLCBjdXJfb2JqKTsKKwkJCWlmIChJU19FUlIoY3Vyc29y X3N0YXRlLT5iYXNlLmZiKSkgeworCQkJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9j a2VkKCZjdXJfb2JqLT5iYXNlKTsKKwkJCQlnb3RvIGdlbV9lcnI7CisJCQl9CisKKwkJCWlmIChp OTE1X2dlbV9vYmpfZ2d0dF9waW4oY3VyX29iaiwgMCwgMCkgPCAwKSB7CisJCQkJZHJtX2dlbV9v YmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQoJmN1cl9vYmotPmJhc2UpOworCQkJCXBpbm5lZCA9 IGZhbHNlOworCQkJCWdvdG8gY2xlYW51cDsKKwkJCX0KKworCQkJZGV2X3ByaXYtPmN1cnNvcl9z dGF0ZSA9IGN1cnNvcl9zdGF0ZTsKKwkJfSBlbHNlCisJCQljdXJfb2JqID0gaW50ZWxfZmJfb2Jq KGN1cnNvcl9zdGF0ZS0+YmFzZS5mYik7CisKKwkJc3JjID0gaW9yZW1hcF93YyhkZXZfcHJpdi0+ Z2d0dC5tYXBwYWJsZV9iYXNlICsKKwkJCQlpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2JqKSwK KwkJCQlvYmotPmJhc2Uuc2l6ZSk7CisKKwkJZHN0ID0gaW9yZW1hcF93YyhkZXZfcHJpdi0+Z2d0 dC5tYXBwYWJsZV9iYXNlICsKKwkJCQlpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoY3VyX29iaiks CisJCQkJY3VyX29iai0+YmFzZS5zaXplKTsKKworCQkvKiBzaGlmdCB0aGUgb3JpZ2luYWwgY3Vz cnNvciBpbiB0byBjb3B5IGJ1ZmZlciBvZmZzZXR0aW5nIC1pdmUgcG9zICovCisJCXggPSAteDsK KwkJZm9yIChpID0gMDsgaSA8IGhlaWdodDsgaSsrKSB7CisJCQlzcmMgKz0geCAqIGJ5dGVzX3Bl cl9waXhlbDsKKwkJCW1lbWNweShkc3QsIHNyYywgKHdpZHRoIC0geCkgKiBieXRlc19wZXJfcGl4 ZWwpOworCQkJZHN0ICs9ICh3aWR0aCAtIHgpICogYnl0ZXNfcGVyX3BpeGVsOworCQkJbWVtc2V0 KGRzdCwgMCwgeCAqIGJ5dGVzX3Blcl9waXhlbCk7CisJCQlkc3QgKz0geCAqIGJ5dGVzX3Blcl9w aXhlbDsKKwkJCXNyYyArPSAod2lkdGggLXgpICogYnl0ZXNfcGVyX3BpeGVsOworCQl9CisKKwkJ aW91bm1hcChzcmMpOworCQlpb3VubWFwKGRzdCk7CisKKwkJY3Vyc29yX3N0YXRlLT5iYXNlLmNy dGNfeCA9IDA7CisJCXVzZV9vYmogPSBjdXJfb2JqOworCQl1c2Vfc3RhdGUgPSBjdXJzb3Jfc3Rh dGU7CisKKwkJZ290byB1cGRhdGU7CisJfQorCitjbGVhbnVwOgorCWlmIChjdXJzb3Jfc3RhdGUp IHsKKwkJc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYiA9IHRvX2ludGVsX2ZyYW1l YnVmZmVyKGN1cnNvcl9zdGF0ZS0+YmFzZS5mYik7CisKKwkJaWYgKHBpbm5lZCkKKwkJCWk5MTVf Z2VtX29iamVjdF9nZ3R0X3VucGluKGN1cl9vYmopOworCisJCWRybV9mcmFtZWJ1ZmZlcl9jbGVh bnVwKGN1cnNvcl9zdGF0ZS0+YmFzZS5mYik7CisJCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211 dGV4KTsKKwkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmludGVsX2ZiLT5vYmotPmJhc2Up OworCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwkJa2ZyZWUoaW50ZWxfZmIp OworCX0KKworZ2VtX2VycjoKKwlpZiAoZGV2X3ByaXYtPmN1cnNvcl9zdGF0ZSkgeworCQlrZnJl ZShkZXZfcHJpdi0+Y3Vyc29yX3N0YXRlKTsKKwkJZGV2X3ByaXYtPmN1cnNvcl9zdGF0ZSA9IE5V TEw7CisJfQorCisJdXNlX3N0YXRlID0gc3RhdGU7CisJdXNlX29iaiA9IG9iajsKKwordXBkYXRl OgorCWlmICghdXNlX29iaikKKwkJYWRkciA9IDA7CisJZWxzZSBpZiAoIUlOVEVMX0lORk8oZGV2 KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKQorCQlhZGRyID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zm c2V0KHVzZV9vYmopOworCWVsc2UKKwkJYWRkciA9IHVzZV9vYmotPnBoeXNfaGFuZGxlLT5idXNh ZGRyOworCisJaW50ZWxfY3J0Yy0+Y3Vyc29yX2FkZHIgPSBhZGRyOworCisJaW50ZWxfY3J0Y191 cGRhdGVfY3Vyc29yKGNydGMsIHVzZV9zdGF0ZSk7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgZHJtX3Bs YW5lICppbnRlbF9jdXJzb3JfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CQkJCQkgICBpbnQgcGlwZSkKIHsKQEAgLTE0NDc4LDcgKzE0NjA0LDEwIEBAIHN0YXRpYyBzdHJ1 Y3QgZHJtX3BsYW5lICppbnRlbF9jdXJzb3JfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJY3Vyc29yLT5wbGFuZSA9IHBpcGU7CiAJY3Vyc29yLT5mcm9udGJ1ZmZlcl9iaXQg PSBJTlRFTF9GUk9OVEJVRkZFUl9DVVJTT1IocGlwZSk7CiAJY3Vyc29yLT5jaGVja19wbGFuZSA9 IGludGVsX2NoZWNrX2N1cnNvcl9wbGFuZTsKLQljdXJzb3ItPnVwZGF0ZV9wbGFuZSA9IGludGVs X3VwZGF0ZV9jdXJzb3JfcGxhbmU7CisJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSAmJiBwaXBlID09 IFBJUEVfQykKKwkJY3Vyc29yLT51cGRhdGVfcGxhbmUgPSBpbnRlbF91cGRhdGVfY2h2X3BpcGVf Y19jdXJzb3JfcGxhbmU7CisJZWxzZQorCQljdXJzb3ItPnVwZGF0ZV9wbGFuZSA9IGludGVsX3Vw ZGF0ZV9jdXJzb3JfcGxhbmU7CiAJY3Vyc29yLT5kaXNhYmxlX3BsYW5lID0gaW50ZWxfZGlzYWJs ZV9jdXJzb3JfcGxhbmU7CiAKIAlyZXQgPSBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoZGV2LCAm Y3Vyc29yLT5iYXNlLCAwLAotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=