From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3.6 20/22] drm/i915: Calculate haswell plane workaround, v4. Date: Tue, 26 May 2015 10:36:14 +0200 Message-ID: <5564307E.60205@linux.intel.com> References: <1432129094-11765-1-git-send-email-maarten.lankhorst@linux.intel.com> <1432137874-20543-1-git-send-email-maarten.lankhorst@linux.intel.com> <1432137874-20543-11-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id ACE186E613 for ; Tue, 26 May 2015 01:36:21 -0700 (PDT) In-Reply-To: <1432137874-20543-11-git-send-email-maarten.lankhorst@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 Graphics Development List-Id: intel-gfx@lists.freedesktop.org VGhpcyBuZWVkcyB0byBiZSBhIGdsb2JhbCBjaGVjayBiZWNhdXNlIGF0IHRoZSB0aW1lIG9mIGNy dGMgY2hlY2tpbmcKbm90IGFsbCBtb2Rlc2V0cyBoYXZlIHRvIGJlIGNhbGN1bGF0ZWQgeWV0LiBV c2UgaW50ZWxfY3J0Yy0+YXRvbWljCmJlY2F1c2UgdGhlcmUncyBubyByZWFzb24gdG8ga2VlcCBp dCBpbiBzdGF0ZS4KCkNoYW5nZXMgc2luY2UgdjE6CiAtIFVzZSBpbnRlbF9jcnRjLT5hdG9taWMg YXMgYSBwbGFjZSB0byBwdXQgaHN3X3dvcmthcm91bmRfcGlwZS4KIC0gTWFrZSBzdXJlIHF1aXJr IG9ubHkgYXBwbGllcyB0byBoYXN3ZWxsLgogLSBVc2UgZmlyc3QgbG9vcCB0byBpdGVyYXRlIG92 ZXIgbmV3bHkgZW5hYmxlZCBjcnRjJ3Mgb25seS4KICAgVGhpcyBpbmNyZWFzZXMgcmVhZGFiaWxp dHkuCkNoYW5nZXMgc2luY2UgdjI6CiAtIE1vdmUgaHN3X3dvcmthcm91bmRfcGlwZSBiYWNrIHRv IGNydGNfc3RhdGUuCkNoYW5nZXMgc2luY2UgdjM6CiAtIFJldHVybiBlcnJvcnMgZnJvbSBoYXN3 ZWxsX21vZGVfc2V0X3BsYW5lc193b3JrYXJvdW5kLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBM YW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxMDkgKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAg MyArCiAyIGZpbGVzIGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBkZTEzYzFjMTRjOTMuLmY2NzMz YTc3NzU5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNDg2Nyw0MiAr NDg2NywxNSBAQCBzdGF0aWMgYm9vbCBoc3dfY3J0Y19zdXBwb3J0c19pcHMoc3RydWN0IGludGVs X2NydGMgKmNydGMpCiAJcmV0dXJuIEhBU19JUFMoY3J0Yy0+YmFzZS5kZXYpICYmIGNydGMtPnBp cGUgPT0gUElQRV9BOwogfQogCi0vKgotICogVGhpcyBpbXBsZW1lbnRzIHRoZSB3b3JrYXJvdW5k IGRlc2NyaWJlZCBpbiB0aGUgIm5vdGVzIiBzZWN0aW9uIG9mIHRoZSBtb2RlCi0gKiBzZXQgc2Vx dWVuY2UgZG9jdW1lbnRhdGlvbi4gV2hlbiBnb2luZyBmcm9tIG5vIHBpcGVzIG9yIHNpbmdsZSBw aXBlIHRvCi0gKiBtdWx0aXBsZSBwaXBlcywgYW5kIHBsYW5lcyBhcmUgZW5hYmxlZCBhZnRlciB0 aGUgcGlwZSwgd2UgbmVlZCB0byB3YWl0IGF0Ci0gKiBsZWFzdCAyIHZibGFua3Mgb24gdGhlIGZp cnN0IHBpcGUgYmVmb3JlIGVuYWJsaW5nIHBsYW5lcyBvbiB0aGUgc2Vjb25kIHBpcGUuCi0gKi8K LXN0YXRpYyB2b2lkIGhhc3dlbGxfbW9kZV9zZXRfcGxhbmVzX3dvcmthcm91bmQoc3RydWN0IGlu dGVsX2NydGMgKmNydGMpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2Uu ZGV2OwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjX2l0LCAqb3RoZXJfYWN0aXZlX2NydGMgPSBO VUxMOwotCi0JLyogV2Ugd2FudCB0byBnZXQgdGhlIG90aGVyX2FjdGl2ZV9jcnRjIG9ubHkgaWYg dGhlcmUncyBvbmx5IDEgb3RoZXIKLQkgKiBhY3RpdmUgY3J0Yy4gKi8KLQlmb3JfZWFjaF9pbnRl bF9jcnRjKGRldiwgY3J0Y19pdCkgewotCQlpZiAoIWNydGNfaXQtPmFjdGl2ZSB8fCBjcnRjX2l0 ID09IGNydGMpCi0JCQljb250aW51ZTsKLQotCQlpZiAob3RoZXJfYWN0aXZlX2NydGMpCi0JCQly ZXR1cm47Ci0KLQkJb3RoZXJfYWN0aXZlX2NydGMgPSBjcnRjX2l0OwotCX0KLQlpZiAoIW90aGVy X2FjdGl2ZV9jcnRjKQotCQlyZXR1cm47Ci0KLQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2LCBv dGhlcl9hY3RpdmVfY3J0Yy0+cGlwZSk7Ci0JaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldiwgb3Ro ZXJfYWN0aXZlX2NydGMtPnBpcGUpOwotfQotCiBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5h YmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g Y3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGNydGMpOwogCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwotCWludCBwaXBlID0gaW50 ZWxfY3J0Yy0+cGlwZTsKKwlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGUsIGhzd193b3JrYXJv dW5kX3BpcGU7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0KKwkJdG9f aW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAKIAlpZiAoV0FSTl9PTihpbnRlbF9jcnRj LT5hY3RpdmUpKQogCQlyZXR1cm47CkBAIC00OTc5LDcgKzQ5NTIsMTEgQEAgc3RhdGljIHZvaWQg aGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAKIAkvKiBJZiB3ZSBj aGFuZ2UgdGhlIHJlbGF0aXZlIG9yZGVyIGJldHdlZW4gcGlwZS9wbGFuZXMgZW5hYmxpbmcsIHdl IG5lZWQKIAkgKiB0byBjaGFuZ2UgdGhlIHdvcmthcm91bmQuICovCi0JaGFzd2VsbF9tb2RlX3Nl dF9wbGFuZXNfd29ya2Fyb3VuZChpbnRlbF9jcnRjKTsKKwloc3dfd29ya2Fyb3VuZF9waXBlID0g cGlwZV9jb25maWctPmhzd193b3JrYXJvdW5kX3BpcGU7CisJaWYgKElTX0hBU1dFTEwoZGV2KSAm JiBoc3dfd29ya2Fyb3VuZF9waXBlICE9IElOVkFMSURfUElQRSkgeworCQlpbnRlbF93YWl0X2Zv cl92YmxhbmsoZGV2LCBoc3dfd29ya2Fyb3VuZF9waXBlKTsKKwkJaW50ZWxfd2FpdF9mb3JfdmJs YW5rKGRldiwgaHN3X3dvcmthcm91bmRfcGlwZSk7CisJfQogfQogCiBzdGF0aWMgdm9pZCBpcm9u bGFrZV9wZml0X2Rpc2FibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCkBAIC0xMjE2OSw2ICsx MjE0Niw3MSBAQCBzdGF0aWMgaW50IF9faW50ZWxfc2V0X21vZGVfc2V0dXBfcGxscyhzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJcmV0dXJuIHJldDsKIH0KIAorLyoKKyAqIFRoaXMg aW1wbGVtZW50cyB0aGUgd29ya2Fyb3VuZCBkZXNjcmliZWQgaW4gdGhlICJub3RlcyIgc2VjdGlv biBvZiB0aGUgbW9kZQorICogc2V0IHNlcXVlbmNlIGRvY3VtZW50YXRpb24uIFdoZW4gZ29pbmcg ZnJvbSBubyBwaXBlcyBvciBzaW5nbGUgcGlwZSB0bworICogbXVsdGlwbGUgcGlwZXMsIGFuZCBw bGFuZXMgYXJlIGVuYWJsZWQgYWZ0ZXIgdGhlIHBpcGUsIHdlIG5lZWQgdG8gd2FpdCBhdAorICog bGVhc3QgMiB2YmxhbmtzIG9uIHRoZSBmaXJzdCBwaXBlIGJlZm9yZSBlbmFibGluZyBwbGFuZXMg b24gdGhlIHNlY29uZCBwaXBlLgorICovCitzdGF0aWMgaW50IGhhc3dlbGxfbW9kZV9zZXRfcGxh bmVzX3dvcmthcm91bmQoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQoreworCXN0cnVj dCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmZpcnN0X2NydGNfc3RhdGUgPSBOVUxMOworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvdGhl cl9jcnRjX3N0YXRlID0gTlVMTDsKKwllbnVtIHBpcGUgZmlyc3RfcGlwZSA9IElOVkFMSURfUElQ RSwgZW5hYmxlZF9waXBlID0gSU5WQUxJRF9QSVBFOworCWludCBpOworCisJLyogbG9vayBhdCBh bGwgY3J0YydzIHRoYXQgYXJlIGdvaW5nIHRvIGJlIGVuYWJsZWQgaW4gZHVyaW5nIG1vZGVzZXQg Ki8KKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7 CisJCWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOworCisJCWlmICghY3J0Y19zdGF0 ZS0+YWN0aXZlIHx8ICFuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQorCQkJY29udGludWU7CisK KwkJaWYgKGZpcnN0X2NydGNfc3RhdGUpIHsKKwkJCW90aGVyX2NydGNfc3RhdGUgPSB0b19pbnRl bF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOworCQkJYnJlYWs7CisJCX0gZWxzZSB7CisJCQlmaXJz dF9jcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKKwkJCWZpcnN0 X3BpcGUgPSBpbnRlbF9jcnRjLT5waXBlOworCQl9CisJfQorCisJLyogTm8gd29ya2Fyb3VuZCBu ZWVkZWQ/ICovCisJaWYgKCFmaXJzdF9jcnRjX3N0YXRlKQorCQlyZXR1cm4gMDsKKworCS8qIHcv YSBwb3NzaWJseSBuZWVkZWQsIGNoZWNrIGhvdyBtYW55IGNydGMncyBhcmUgYWxyZWFkeSBlbmFi bGVkLiAqLworCWZvcl9lYWNoX2ludGVsX2NydGMoc3RhdGUtPmRldiwgaW50ZWxfY3J0Yykgewor CQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWc7CisKKwkJcGlwZV9jb25maWcg PSBpbnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGludGVsX2NydGMpOworCQlpZiAo SVNfRVJSKHBpcGVfY29uZmlnKSkKKwkJCXJldHVybiBQVFJfRVJSKHBpcGVfY29uZmlnKTsKKwor CQlwaXBlX2NvbmZpZy0+aHN3X3dvcmthcm91bmRfcGlwZSA9IElOVkFMSURfUElQRTsKKworCQlp ZiAoIXBpcGVfY29uZmlnLT5iYXNlLmFjdGl2ZSB8fAorCQkgICAgbmVlZHNfbW9kZXNldCgmcGlw ZV9jb25maWctPmJhc2UpKQorCQkJY29udGludWU7CisKKwkJLyogMiBvciBtb3JlIGVuYWJsZWQg Y3J0Y3MgbWVhbnMgbm8gbmVlZCBmb3Igdy9hICovCisJCWlmIChlbmFibGVkX3BpcGUgIT0gSU5W QUxJRF9QSVBFKQorCQkJcmV0dXJuIDA7CisKKwkJZW5hYmxlZF9waXBlID0gaW50ZWxfY3J0Yy0+ cGlwZTsKKwl9CisKKwlpZiAoZW5hYmxlZF9waXBlICE9IElOVkFMSURfUElQRSkKKwkJZmlyc3Rf Y3J0Y19zdGF0ZS0+aHN3X3dvcmthcm91bmRfcGlwZSA9IGVuYWJsZWRfcGlwZTsKKwllbHNlIGlm IChvdGhlcl9jcnRjX3N0YXRlKQorCQlvdGhlcl9jcnRjX3N0YXRlLT5oc3dfd29ya2Fyb3VuZF9w aXBlID0gZmlyc3RfcGlwZTsKKworCXJldHVybiAwOworfQorCiAvKiBDb2RlIHRoYXQgc2hvdWxk IGV2ZW50dWFsbHkgYmUgcGFydCBvZiBhdG9taWNfY2hlY2soKSAqLwogc3RhdGljIGludCBfX2lu dGVsX3NldF9tb2RlX2NoZWNrcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CkBA IC0xMjE5Miw3ICsxMjIzNCwxMCBAQCBzdGF0aWMgaW50IF9faW50ZWxfc2V0X21vZGVfY2hlY2tz KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0 OwogCi0JcmV0dXJuIDA7CisJaWYgKElTX0hBU1dFTEwoZGV2KSkKKwkJcmV0ID0gaGFzd2VsbF9t b2RlX3NldF9wbGFuZXNfd29ya2Fyb3VuZChzdGF0ZSk7CisKKwlyZXR1cm4gcmV0OwogfQogCiBz dGF0aWMgaW50CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDY2NWUyNDlhZThiZi4uZDVm MzhlM2Q3MzJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtNDQzLDYgKzQ0Myw5IEBA IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKIAlpbnQgcGJuOwogCiAJc3RydWN0IGludGVsX2Ny dGNfc2NhbGVyX3N0YXRlIHNjYWxlcl9zdGF0ZTsKKworCS8qIHcvYSBmb3Igd2FpdGluZyAyIHZi bGFua3MgZHVyaW5nIGNydGMgZW5hYmxlICovCisJZW51bSBwaXBlIGhzd193b3JrYXJvdW5kX3Bp cGU7CiB9OwogCiBzdHJ1Y3QgaW50ZWxfcGlwZV93bSB7Ci0tIAoyLjEuMAoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==