From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: [PATCH v9 10/19] drm/i915/gen8: Add 4 level support in insert_entries and clear_range Date: Mon, 3 Aug 2015 09:53:27 +0100 Message-ID: <1438592007-3354-1-git-send-email-michel.thierry@intel.com> References: <1438187043-34267-11-git-send-email-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 4D8616E218 for ; Mon, 3 Aug 2015 01:53:29 -0700 (PDT) In-Reply-To: <1438187043-34267-11-git-send-email-michel.thierry@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 Cc: Akash Goel List-Id: intel-gfx@lists.freedesktop.org V2hlbiA0OGIgaXMgZW5hYmxlZCwgZ2VuOF9wcGd0dF9pbnNlcnRfZW50cmllcyBuZWVkcyB0byBy ZWFkIHRoZSBQYWdlIE1hcApMZXZlbCA0IChQTUw0KSwgYmVmb3JlIGl0IHNlbGVjdHMgd2hpY2gg UGFnZSBEaXJlY3RvcnkgUG9pbnRlciAoUERQKQppdCB3aWxsIHdyaXRlIHRvLgoKU2ltaWxhcmx5 LCBnZW44X3BwZ3R0X2NsZWFyX3JhbmdlIG5lZWRzIHRvIGdldCB0aGUgY29ycmVjdCBQRFAvUEQg cmFuZ2UuCgpUaGlzIHBhdGNoIHdhcyBpbnNwaXJlZCBieSBCZW4ncyAiRGVwZW5kIGV4Y2x1c2l2 ZWx5IG9uIG1hcCBhbmQKdW5tYXBfdm1hIi4KCnYyOiBSZWJhc2UgYWZ0ZXIgcy9wYWdlX3RhYmxl cy9wYWdlX3RhYmxlLy4KdjM6IFJlbW92ZSB1bm5lY2Vzc2FyeSBwZHBlIGxvb3AgaW4gZ2VuOF9w cGd0dF9jbGVhcl9yYW5nZV80bHZsIGFuZCB1c2UKY2xhbXBfcGRwIGluIGdlbjhfcHBndHRfaW5z ZXJ0X2VudHJpZXMgKEFrYXNoKS4KdjQ6IE1lcmdlIGdlbjhfcHBndHRfY2xlYXJfcmFuZ2VfNGx2 bCBpbnRvIGdlbjhfcHBndHRfY2xlYXJfcmFuZ2UgdG8KbWFpbnRhaW4gc3ltbWV0cnkgd2l0aCBn ZW44X3BwZ3R0X2luc2VydF9lbnRyaWVzIChBa2FzaCkuCnY1OiBEbyBub3QgbWl4IHBhZ2VzIGFu ZCBieXRlcyBpbiBpbnNlcnRfZW50cmllcyAoQWthc2gpLgp2NjogUHJldmVudCBvdmVyZmxvdyBp biBzZ19uZW50cyA8PCBQQUdFX1NISUZULCB3aGVuIGluc2VydGluZyA0R0IgYXQKb25jZS4Kdjc6 IFJlYmFzZSBhZnRlciBNaWthJ3MgcHBndHQgY2xlYW51cCAvIHNjcmF0Y2ggbWVyZ2UgcGF0Y2gg c2VyaWVzLgpVc2UgZ2VuOF9weF9pbmRleCBmdW5jdGlvbnMsIGFuZCByZW1vdmUgdW5uZWNlc3Nh cnkgbnVtYmVyIG9mIHBhZ2VzCnBhcmFtZXRlciBpbiBpbnNlcnRfcHRlX2VudHJpZXMuCnY4OiBD aGFuZ2UgZ2VuOF9wcGd0dF9jbGVhcl9wdGVfcmFuZ2UgdG8gc3RvcCBhdCBQRFAgYm91bmRhcnks IGluc3RlYWQgb2YKYWRkaW5nIGFuZCBleHRyYSBjbGFtcCBmdW5jdGlvbjsgcmVtb3ZlIHVubmVj ZXNzYXJ5IHBkcF9zdGFydC9wZHBfbGVuCnZhcmlhYmxlcyAoQWthc2gpLgp2OTogcGFnZXMtPm9y aWdfbmVudHMgaW5zdGVhZCBvZiBzZ19uZW50cyhwYWdlcy0+c2dsKSB0byBnZXQgdGhlCmxlbmd0 aCAoQWthc2gpLgp2MTA6IFJlbW92ZSBwZHAgd2FybmluZyBjaGVjayBpbmdlbjhfcHBndHRfaW5z ZXJ0X3B0ZV9lbnRyaWVzIHVudGlsIHRoaXMKY29tbWl0IChBa2FzaCkuCgpSZXZpZXdlZC1ieTog QWthc2ggR29lbCA8YWthc2guZ29lbEBpbnRlbC5jb20+ICh2OSkKQ2M6IEFrYXNoIEdvZWwgPGFr YXNoLmdvZWxAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoZWwgVGhpZXJyeSA8bWljaGVs LnRoaWVycnlAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5jIHwgNTIgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKaW5kZXggMzFmYzY3Mi4uZDVhZTVkZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKQEAgLTY4MSw5ICs2ODEsOSBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0 X2NsZWFyX3B0ZV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAlzdHJ1Y3Qg aTkxNV9od19wcGd0dCAqcHBndHQgPQogCQljb250YWluZXJfb2Yodm0sIHN0cnVjdCBpOTE1X2h3 X3BwZ3R0LCBiYXNlKTsKIAlnZW44X3B0ZV90ICpwdF92YWRkcjsKLQl1bnNpZ25lZCBwZHBlID0g c3RhcnQgPj4gR0VOOF9QRFBFX1NISUZUICYgR0VOOF9QRFBFX01BU0s7Ci0JdW5zaWduZWQgcGRl ID0gc3RhcnQgPj4gR0VOOF9QREVfU0hJRlQgJiBHRU44X1BERV9NQVNLOwotCXVuc2lnbmVkIHB0 ZSA9IHN0YXJ0ID4+IEdFTjhfUFRFX1NISUZUICYgR0VOOF9QVEVfTUFTSzsKKwl1bnNpZ25lZCBw ZHBlID0gZ2VuOF9wZHBlX2luZGV4KHN0YXJ0KTsKKwl1bnNpZ25lZCBwZGUgPSBnZW44X3BkZV9p bmRleChzdGFydCk7CisJdW5zaWduZWQgcHRlID0gZ2VuOF9wdGVfaW5kZXgoc3RhcnQpOwogCXVu c2lnbmVkIG51bV9lbnRyaWVzID0gbGVuZ3RoID4+IFBBR0VfU0hJRlQ7CiAJdW5zaWduZWQgbGFz dF9wdGUsIGk7CiAKQEAgLTcyMiw3ICs3MjIsOCBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2Ns ZWFyX3B0ZV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAogCQlwdGUgPSAw OwogCQlpZiAoKytwZGUgPT0gSTkxNV9QREVTKSB7Ci0JCQlwZHBlKys7CisJCQlpZiAoKytwZHBl ID09IEk5MTVfUERQRVNfUEVSX1BEUCh2bS0+ZGV2KSkKKwkJCQlicmVhazsKIAkJCXBkZSA9IDA7 CiAJCX0KIAl9CkBAIC03MzUsMTIgKzczNiwyMSBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2Ns ZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogewogCXN0cnVjdCBpOTE1 X2h3X3BwZ3R0ICpwcGd0dCA9CiAJCWNvbnRhaW5lcl9vZih2bSwgc3RydWN0IGk5MTVfaHdfcHBn dHQsIGJhc2UpOwotCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgKnBkcCA9ICZw cGd0dC0+cGRwOyAvKiBGSVhNRTogNDhiICovCi0KIAlnZW44X3B0ZV90IHNjcmF0Y2hfcHRlID0g Z2VuOF9wdGVfZW5jb2RlKHB4X2RtYSh2bS0+c2NyYXRjaF9wYWdlKSwKIAkJCQkJCSBJOTE1X0NB Q0hFX0xMQywgdXNlX3NjcmF0Y2gpOwogCi0JZ2VuOF9wcGd0dF9jbGVhcl9wdGVfcmFuZ2Uodm0s IHBkcCwgc3RhcnQsIGxlbmd0aCwgc2NyYXRjaF9wdGUpOworCWlmICghVVNFU19GVUxMXzQ4QklU X1BQR1RUKHZtLT5kZXYpKSB7CisJCWdlbjhfcHBndHRfY2xlYXJfcHRlX3JhbmdlKHZtLCAmcHBn dHQtPnBkcCwgc3RhcnQsIGxlbmd0aCwKKwkJCQkJICAgc2NyYXRjaF9wdGUpOworCX0gZWxzZSB7 CisJCXVpbnQ2NF90IHRlbXBsNCwgcG1sNGU7CisJCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5 X3BvaW50ZXIgKnBkcDsKKworCQlnZW44X2Zvcl9lYWNoX3BtbDRlKHBkcCwgJnBwZ3R0LT5wbWw0 LCBzdGFydCwgbGVuZ3RoLCB0ZW1wbDQsIHBtbDRlKSB7CisJCQlnZW44X3BwZ3R0X2NsZWFyX3B0 ZV9yYW5nZSh2bSwgcGRwLCBzdGFydCwgbGVuZ3RoLAorCQkJCQkJICAgc2NyYXRjaF9wdGUpOwor CQl9CisJfQogfQogCiBzdGF0aWMgdm9pZApAQCAtNzUzLDE2ICs3NjMsMTMgQEAgZ2VuOF9wcGd0 dF9pbnNlcnRfcHRlX2VudHJpZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJc3Ry dWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0KIAkJY29udGFpbmVyX29mKHZtLCBzdHJ1Y3QgaTkx NV9od19wcGd0dCwgYmFzZSk7CiAJZ2VuOF9wdGVfdCAqcHRfdmFkZHI7Ci0JdW5zaWduZWQgcGRw ZSA9IHN0YXJ0ID4+IEdFTjhfUERQRV9TSElGVCAmIEdFTjhfUERQRV9NQVNLOwotCXVuc2lnbmVk IHBkZSA9IHN0YXJ0ID4+IEdFTjhfUERFX1NISUZUICYgR0VOOF9QREVfTUFTSzsKLQl1bnNpZ25l ZCBwdGUgPSBzdGFydCA+PiBHRU44X1BURV9TSElGVCAmIEdFTjhfUFRFX01BU0s7CisJdW5zaWdu ZWQgcGRwZSA9IGdlbjhfcGRwZV9pbmRleChzdGFydCk7CisJdW5zaWduZWQgcGRlID0gZ2VuOF9w ZGVfaW5kZXgoc3RhcnQpOworCXVuc2lnbmVkIHB0ZSA9IGdlbjhfcHRlX2luZGV4KHN0YXJ0KTsK IAogCXB0X3ZhZGRyID0gTlVMTDsKIAogCXdoaWxlIChfX3NnX3BhZ2VfaXRlcl9uZXh0KHNnX2l0 ZXIpKSB7Ci0JCWlmIChXQVJOX09OKHBkcGUgPj0gR0VOOF9MRUdBQ1lfUERQRVMpKQotCQkJYnJl YWs7Ci0KIAkJaWYgKHB0X3ZhZGRyID09IE5VTEwpIHsKIAkJCXN0cnVjdCBpOTE1X3BhZ2VfZGly ZWN0b3J5ICpwZCA9IHBkcC0+cGFnZV9kaXJlY3RvcnlbcGRwZV07CiAJCQlzdHJ1Y3QgaTkxNV9w YWdlX3RhYmxlICpwdCA9IHBkLT5wYWdlX3RhYmxlW3BkZV07CkBAIC03NzYsNyArNzgzLDggQEAg Z2VuOF9wcGd0dF9pbnNlcnRfcHRlX2VudHJpZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0sCiAJCQlrdW5tYXBfcHgocHBndHQsIHB0X3ZhZGRyKTsKIAkJCXB0X3ZhZGRyID0gTlVMTDsK IAkJCWlmICgrK3BkZSA9PSBJOTE1X1BERVMpIHsKLQkJCQlwZHBlKys7CisJCQkJaWYgKCsrcGRw ZSA9PSBJOTE1X1BEUEVTX1BFUl9QRFAodm0tPmRldikpCisJCQkJCWJyZWFrOwogCQkJCXBkZSA9 IDA7CiAJCQl9CiAJCQlwdGUgPSAwOwpAQCAtNzk1LDExICs4MDMsMjMgQEAgc3RhdGljIHZvaWQg Z2VuOF9wcGd0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwK IHsKIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQgPQogCQljb250YWluZXJfb2Yodm0sIHN0 cnVjdCBpOTE1X2h3X3BwZ3R0LCBiYXNlKTsKLQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeV9w b2ludGVyICpwZHAgPSAmcHBndHQtPnBkcDsgLyogRklYTUU6IDQ4YiAqLwogCXN0cnVjdCBzZ19w YWdlX2l0ZXIgc2dfaXRlcjsKIAogCV9fc2dfcGFnZV9pdGVyX3N0YXJ0KCZzZ19pdGVyLCBwYWdl cy0+c2dsLCBzZ19uZW50cyhwYWdlcy0+c2dsKSwgMCk7Ci0JZ2VuOF9wcGd0dF9pbnNlcnRfcHRl X2VudHJpZXModm0sIHBkcCwgJnNnX2l0ZXIsIHN0YXJ0LCBjYWNoZV9sZXZlbCk7CisKKwlpZiAo IVVTRVNfRlVMTF80OEJJVF9QUEdUVCh2bS0+ZGV2KSkgeworCQlnZW44X3BwZ3R0X2luc2VydF9w dGVfZW50cmllcyh2bSwgJnBwZ3R0LT5wZHAsICZzZ19pdGVyLCBzdGFydCwKKwkJCQkJICAgICAg Y2FjaGVfbGV2ZWwpOworCX0gZWxzZSB7CisJCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3Bv aW50ZXIgKnBkcDsKKwkJdWludDY0X3QgdGVtcGw0LCBwbWw0ZTsKKwkJdWludDY0X3QgbGVuZ3Ro ID0gKHVpbnQ2NF90KXBhZ2VzLT5vcmlnX25lbnRzIDw8IFBBR0VfU0hJRlQ7CisKKwkJZ2VuOF9m b3JfZWFjaF9wbWw0ZShwZHAsICZwcGd0dC0+cG1sNCwgc3RhcnQsIGxlbmd0aCwgdGVtcGw0LCBw bWw0ZSkgeworCQkJZ2VuOF9wcGd0dF9pbnNlcnRfcHRlX2VudHJpZXModm0sIHBkcCwgJnNnX2l0 ZXIsCisJCQkJCQkgICAgICBzdGFydCwgY2FjaGVfbGV2ZWwpOworCQl9CisJfQogfQogCiBzdGF0 aWMgdm9pZCBnZW44X2ZyZWVfcGFnZV90YWJsZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLS0g CjIuNS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=