From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: [PATCH 10/12] drm/i915/bdw: Add 4 level support in insert_entries and clear_range Date: Fri, 20 Feb 2015 17:46:04 +0000 Message-ID: <1424454366-19006-11-git-send-email-michel.thierry@intel.com> References: <1424454366-19006-1-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 13F976E70D for ; Fri, 20 Feb 2015 09:46:16 -0800 (PST) In-Reply-To: <1424454366-19006-1-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 List-Id: intel-gfx@lists.freedesktop.org V2hlbiA0OGIgaXMgZW5hYmxlZCwgZ2VuOF9wcGd0dF9pbnNlcnRfZW50cmllcyBuZWVkcyB0byBy ZWFkIHRoZSBQYWdlIE1hcApMZXZlbCA0IChQTUw0KSwgYmVmb3JlIGl0IHNlbGVjdHMgd2hpY2gg UGFnZSBEaXJlY3RvcnkgUG9pbnRlciAoUERQKQppdCB3aWxsIHdyaXRlIHRvLgoKU2ltaWxhcmx5 LCBnZW44X3BwZ3R0X2NsZWFyX3JhbmdlIG5lZWRzIHRvIGdldCB0aGUgY29ycmVjdCBQRFAvUEQg cmFuZ2UuCgpBbHNvIGFkZCBhIHNjcmF0Y2ggcGFnZSBmb3IgUE1MNC4KClRoaXMgcGF0Y2ggd2Fz IGluc3BpcmVkIGJ5IEJlbidzICJEZXBlbmQgZXhjbHVzaXZlbHkgb24gbWFwIGFuZAp1bm1hcF92 bWEiLgoKU2lnbmVkLW9mZi1ieTogTWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyB8IDY2ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5oIHwgMTIgKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA2NyBpbnNlcnRpb25z KCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4 IGExMzk2Y2IuLjA5NTQ4MjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC02 NzYsMjQgKzY3Niw1MiBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFyX3B0ZV9yYW5nZShz dHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeV9wb2ludGVyX2VudHJ5CiAJfQogfQogCitzdGF0aWMg dm9pZCBnZW44X3BwZ3R0X2NsZWFyX3JhbmdlXzRsdmwoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBw Z3R0LAorCQkJCQlnZW44X2d0dF9wdGVfdCBzY3JhdGNoX3B0ZSwKKwkJCQkJdWludDY0X3Qgc3Rh cnQsCisJCQkJCXVpbnQ2NF90IGxlbmd0aCkKK3sKKwlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9y eV9wb2ludGVyX2VudHJ5ICpwZHA7CisJdWludDY0X3QgdGVtcGw0LCB0ZW1wbDMsIHBtbDRlLCBw ZHBlOworCisJZ2VuOF9mb3JfZWFjaF9wbWw0ZShwZHAsICZwcGd0dC0+cG1sNCwgc3RhcnQsIGxl bmd0aCwgdGVtcGw0LCBwbWw0ZSkgeworCQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeV9lbnRy eSAqcGQ7CisJCXVpbnQ2NF90IHBkcF9sZW4gPSBnZW44X2NsYW1wX3BkcChzdGFydCwgbGVuZ3Ro KTsKKwkJdWludDY0X3QgcGRwX3N0YXJ0ID0gc3RhcnQ7CisKKwkJZ2VuOF9mb3JfZWFjaF9wZHBl KHBkLCBwZHAsIHBkcF9zdGFydCwgcGRwX2xlbiwgdGVtcGwzLCBwZHBlKSB7CisJCQl1aW50NjRf dCBwZF9sZW4gPSBnZW44X2NsYW1wX3BkKHBkcF9zdGFydCwgcGRwX2xlbik7CisJCQl1aW50NjRf dCBwZF9zdGFydCA9IHBkcF9zdGFydDsKKworCQkJZ2VuOF9wcGd0dF9jbGVhcl9wdGVfcmFuZ2Uo cGRwLCBwZF9zdGFydCwgcGRfbGVuLAorCQkJCQkJICAgc2NyYXRjaF9wdGUsICFIQVNfTExDKHBw Z3R0LT5iYXNlLmRldikpOworCQl9CisJfQorfQorCiBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2Ns ZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJCSAgIHVpbnQ2NF90 IHN0YXJ0LAotCQkJCSAgIHVpbnQ2NF90IGxlbmd0aCwKKwkJCQkgICB1aW50NjRfdCBzdGFydCwg dWludDY0X3QgbGVuZ3RoLAogCQkJCSAgIGJvb2wgdXNlX3NjcmF0Y2gpCiB7CiAJc3RydWN0IGk5 MTVfaHdfcHBndHQgKnBwZ3R0ID0KLQkJY29udGFpbmVyX29mKHZtLCBzdHJ1Y3QgaTkxNV9od19w cGd0dCwgYmFzZSk7Ci0Jc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlcl9lbnRyeSAq cGRwID0gJnBwZ3R0LT5wZHA7IC8qIEZJWE1FOiA0OGIgKi8KLQorCQkJY29udGFpbmVyX29mKHZt LCBzdHJ1Y3QgaTkxNV9od19wcGd0dCwgYmFzZSk7CiAJZ2VuOF9ndHRfcHRlX3Qgc2NyYXRjaF9w dGUgPSBnZW44X3B0ZV9lbmNvZGUocHBndHQtPmJhc2Uuc2NyYXRjaC5hZGRyLAogCQkJCQkJICAg ICBJOTE1X0NBQ0hFX0xMQywgdXNlX3NjcmF0Y2gpOwogCi0JZ2VuOF9wcGd0dF9jbGVhcl9wdGVf cmFuZ2UocGRwLCBzdGFydCwgbGVuZ3RoLCBzY3JhdGNoX3B0ZSwgIUhBU19MTEModm0tPmRldikp OworCWlmICghVVNFU19GVUxMXzQ4QklUX1BQR1RUKHZtLT5kZXYpKSB7CisJCXN0cnVjdCBpOTE1 X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXJfZW50cnkgKnBkcCA9ICZwcGd0dC0+cGRwOworCisJCWdl bjhfcHBndHRfY2xlYXJfcHRlX3JhbmdlKHBkcCwgc3RhcnQsIGxlbmd0aCwgc2NyYXRjaF9wdGUs CisJCQkJCSAgICFIQVNfTExDKHBwZ3R0LT5iYXNlLmRldikpOworCX0gZWxzZSB7CisJCWdlbjhf cHBndHRfY2xlYXJfcmFuZ2VfNGx2bChwcGd0dCwgc2NyYXRjaF9wdGUsIHN0YXJ0LCBsZW5ndGgp OworCX0KIH0KIAogc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9pbnNlcnRfcHRlX2VudHJpZXMoc3Ry dWN0IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlcl9lbnRyeSAqcGRwLAogCQkJCQkgIHN0cnVj dCBzZ19wYWdlX2l0ZXIgKnNnX2l0ZXIsCiAJCQkJCSAgdWludDY0X3Qgc3RhcnQsCisJCQkJCSAg c2l6ZV90IHBhZ2VzLAogCQkJCQkgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwK IAkJCQkJICBjb25zdCBib29sIGZsdXNoKQogewpAQCAtNzA0LDcgKzczMiw3IEBAIHN0YXRpYyB2 b2lkIGdlbjhfcHBndHRfaW5zZXJ0X3B0ZV9lbnRyaWVzKHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0 b3J5X3BvaW50ZXJfZW50CiAKIAlwdF92YWRkciA9IE5VTEw7CiAKLQl3aGlsZSAoX19zZ19wYWdl X2l0ZXJfbmV4dChzZ19pdGVyKSkgeworCXdoaWxlIChwYWdlcy0tICYmIF9fc2dfcGFnZV9pdGVy X25leHQoc2dfaXRlcikpIHsKIAkJaWYgKHB0X3ZhZGRyID09IE5VTEwpIHsKIAkJCXN0cnVjdCBp OTE1X3BhZ2VfZGlyZWN0b3J5X2VudHJ5ICpwZCA9IHBkcC0+cGFnZV9kaXJlY3RvcnlbcGRwZV07 CiAJCQlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlX2VudHJ5ICpwdCA9IHBkLT5wYWdlX3RhYmxlc1tw ZGVdOwpAQCAtNzQyLDExICs3NzAsMjYgQEAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9pbnNlcnRf ZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJCQkgICAgICB1MzIgdW51 c2VkKQogewogCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCA9IGNvbnRhaW5lcl9vZih2bSwg c3RydWN0IGk5MTVfaHdfcHBndHQsIGJhc2UpOwotCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5 X3BvaW50ZXJfZW50cnkgKnBkcCA9ICZwcGd0dC0+cGRwOyAvKiBGSVhNRTogNDhiICovCisJc3Ry dWN0IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlcl9lbnRyeSAqcGRwOwogCXN0cnVjdCBzZ19w YWdlX2l0ZXIgc2dfaXRlcjsKIAogCV9fc2dfcGFnZV9pdGVyX3N0YXJ0KCZzZ19pdGVyLCBwYWdl cy0+c2dsLCBzZ19uZW50cyhwYWdlcy0+c2dsKSwgMCk7Ci0JZ2VuOF9wcGd0dF9pbnNlcnRfcHRl X2VudHJpZXMocGRwLCAmc2dfaXRlciwgc3RhcnQsIGNhY2hlX2xldmVsLCAhSEFTX0xMQyh2bS0+ ZGV2KSk7CisKKwlpZiAoIVVTRVNfRlVMTF80OEJJVF9QUEdUVCh2bS0+ZGV2KSkgeworCQlwZHAg PSAmcHBndHQtPnBkcDsKKwkJZ2VuOF9wcGd0dF9pbnNlcnRfcHRlX2VudHJpZXMocGRwLCAmc2df aXRlciwgc3RhcnQsCisJCQkJc2dfbmVudHMocGFnZXMtPnNnbCksCisJCQkJY2FjaGVfbGV2ZWws ICFIQVNfTExDKHZtLT5kZXYpKTsKKwl9IGVsc2UgeworCQlzdHJ1Y3QgaTkxNV9wbWw0ICpwbWw0 OworCQl1bnNpZ25lZCBwbWw0ZSA9IGdlbjhfcG1sNGVfaW5kZXgoc3RhcnQpOworCisJCXBtbDQg PSAmcHBndHQtPnBtbDQ7CisJCXBkcCA9IHBtbDQtPnBkcHNbcG1sNGVdOworCQlnZW44X3BwZ3R0 X2luc2VydF9wdGVfZW50cmllcyhwZHAsICZzZ19pdGVyLCBzdGFydCwKKwkJCQlzZ19uZW50cyhw YWdlcy0+c2dsKSwKKwkJCQljYWNoZV9sZXZlbCwgIUhBU19MTEModm0tPmRldikpOworCX0KIH0K IAogc3RhdGljIHZvaWQgX19nZW44X2RvX21hcF9wdChnZW44X3BwZ3R0X3BkZV90ICogY29uc3Qg cGRlLApAQCAtMTE4NSw3ICsxMjI4LDggQEAgc3RhdGljIGludCBfX2dlbjhfYWxsb2Nfdm1hX3Jh bmdlXzNsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJCQlpZiAoc2dfaXRlcikg ewogCQkJCUJVR19PTighc2dfaXRlci0+X19uZW50cyk7CiAJCQkJZ2VuOF9wcGd0dF9pbnNlcnRf cHRlX2VudHJpZXMocGRwLCBzZ19pdGVyLCBwZF9zdGFydCwKLQkJCQkJCQkgICAgICBmbGFncywg IUhBU19MTEModm0tPmRldikpOworCQkJCQkJZ2VuOF9wdGVfY291bnQocGRfc3RhcnQsIHBkX2xl biksCisJCQkJCQlmbGFncywgIUhBU19MTEModm0tPmRldikpOwogCQkJfQogCQkJc2V0X2JpdChw ZGUsIHBkLT51c2VkX3BkZXMpOwogCQl9CkBAIC0xMzMwLDcgKzEzNzQsNyBAQCBzdGF0aWMgaW50 IGdlbjhfcHBndHRfaW5pdF9jb21tb24oc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LCB1aW50 NjRfdCBzaXplKQogCWlmIChVU0VTX0ZVTExfNDhCSVRfUFBHVFQocHBndHQtPmJhc2UuZGV2KSkg ewogCQlpbnQgcmV0ID0gcG1sNF9pbml0KHBwZ3R0KTsKIAkJaWYgKHJldCkgewotCQkJdW5tYXBf YW5kX2ZyZWVfcHQocHBndHQtPnNjcmF0Y2hfcGQsIHBwZ3R0LT5iYXNlLmRldik7CisJCQl1bm1h cF9hbmRfZnJlZV9wdChwcGd0dC0+c2NyYXRjaF9wbWw0LCBwcGd0dC0+YmFzZS5kZXYpOwogCQkJ cmV0dXJuIHJldDsKIAkJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCmluZGV4IDFm NGNkYjEuLjYwMmQ0NDZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaApAQCAtMzMy LDYgKzMzMiw3IEBAIHN0cnVjdCBpOTE1X2h3X3BwZ3R0IHsKIAl1bmlvbiB7CiAJCXN0cnVjdCBp OTE1X3BhZ2VfdGFibGVfZW50cnkgKnNjcmF0Y2hfcHQ7CiAJCXN0cnVjdCBpOTE1X3BhZ2VfdGFi bGVfZW50cnkgKnNjcmF0Y2hfcGQ7IC8qIEp1c3QgbmVlZCB0aGUgZGFkZHIgKi8KKwkJc3RydWN0 IGk5MTVfcGFnZV90YWJsZV9lbnRyeSAqc2NyYXRjaF9wbWw0OwogCX07CiAKIAlzdHJ1Y3QgZHJt X2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXY7CkBAIC00NTIsNiArNDUzLDE3IEBAIHN0YXRp YyBpbmxpbmUgdWludDY0X3QgZ2VuOF9jbGFtcF9wZCh1aW50NjRfdCBzdGFydCwgdWludDY0X3Qg bGVuZ3RoKQogCXJldHVybiBuZXh0X3BkIC0gc3RhcnQ7CiB9CiAKKy8qIENsYW1wIGxlbmd0aCB0 byB0aGUgbmV4dCBwYWdlX2RpcmVjdG9yeSBwb2ludGVyIGJvdW5kYXJ5ICovCitzdGF0aWMgaW5s aW5lIHVpbnQ2NF90IGdlbjhfY2xhbXBfcGRwKHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBsZW5n dGgpCit7CisJdWludDY0X3QgbmV4dF9wZHAgPSBBTElHTihzdGFydCArIDEsIDFVTEwgPDwgR0VO OF9QTUw0RV9TSElGVCk7CisKKwlpZiAobmV4dF9wZHAgPiAoc3RhcnQgKyBsZW5ndGgpKQorCQly ZXR1cm4gbGVuZ3RoOworCisJcmV0dXJuIG5leHRfcGRwIC0gc3RhcnQ7Cit9CisKIHN0YXRpYyBp bmxpbmUgdWludDMyX3QgZ2VuOF9wdGVfaW5kZXgodWludDY0X3QgYWRkcmVzcykKIHsKIAlyZXR1 cm4gaTkxNV9wdGVfaW5kZXgoYWRkcmVzcywgR0VOOF9QREVfU0hJRlQpOwotLSAKMi4xLjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==