From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH 3/3] drm/i915/gtt: Setup phys pages for 3lvl pdps Date: Tue, 18 Jun 2019 19:17:31 +0300 Message-ID: <20190618161731.15607-3-mika.kuoppala@linux.intel.com> References: <20190618161731.15607-1-mika.kuoppala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1E8F86E201 for ; Tue, 18 Jun 2019 16:17:39 +0000 (UTC) In-Reply-To: <20190618161731.15607-1-mika.kuoppala@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 List-Id: intel-gfx@lists.freedesktop.org SWYgd2Ugc2V0dXAgYmFja2luZyBwaHlzIHBhZ2UgZm9yIDNsdmwgcGRwcywgZXZlbiB0aGV5CmFy ZSBub3QgdXNlZCwgd2UgbG9zZSA1IHBhZ2VzIHBlciBwcGd0dC4KClRyYWRpbmcgdGhpcyBtZW1v cnkgb24gYnN3LCB3ZSBnYWluIG1vcmUgY29tbW9uIGNvZGUgcGF0aHMgZm9yIGFsbApnZW44KyBk aXJlY3RvcnkgbWFuaXB1bGF0aW9uLiBBbmQgdGhvc2UgcGF0aHMgYXJlIG5vdyB2b2lkIG9mIGNo ZWNrcwpmb3IgcGFnZSBkaXJlY3RvcnkgdHlwZSwgbWFraW5nIHRoZSBob3QgcGF0aHMgZmFzdGVy LgoKU2lnbmVkLW9mZi1ieTogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRl bC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgfCAxMDYgKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY2IGluc2VydGlvbnMo KyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXgg YjUyMWIxZGRkMTliLi5lYTc4MzAyYzYzNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5jCkBAIC03MTUsMjIgKzcxNSwxNCBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3Rv cnkgKmFsbG9jX3BkKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogCXJldHVybiBwZDsK IH0KIAotc3RhdGljIGlubGluZSBib29sIHBkX2hhc19waHlzX3BhZ2UoY29uc3Qgc3RydWN0IGk5 MTVfcGFnZV9kaXJlY3RvcnkgKiBjb25zdCBwZCkKLXsKLQlyZXR1cm4gcGQtPmJhc2UucGFnZTsK LX0KLQogc3RhdGljIHZvaWQgZnJlZV9wZChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwK IAkJICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZCkKIHsKLQlpZiAobGlrZWx5KHBk X2hhc19waHlzX3BhZ2UocGQpKSkKLQkJY2xlYW51cF9wYWdlX2RtYSh2bSwgJnBkLT5iYXNlKTsK LQorCWNsZWFudXBfcGFnZV9kbWEodm0sICZwZC0+YmFzZSk7CiAJa2ZyZWUocGQpOwogfQogCiAj ZGVmaW5lIGluaXRfcGQodm0sIHBkLCB0bykgewkJCQkJXAotCUdFTV9ERUJVR19CVUdfT04oIXBk X2hhc19waHlzX3BhZ2UocGQpKTsJCVwKIAlmaWxsX3B4KCh2bSksIChwZCksIGdlbjhfcGRlX2Vu Y29kZShweF9kbWEodG8pLCBJOTE1X0NBQ0hFX0xMQykpOyBcCiAJbWVtc2V0X3AoKHBkKS0+ZW50 cnksICh0byksIDUxMik7CQkJCVwKIH0KQEAgLTE1MzksNiArMTUzMSw1MCBAQCBzdGF0aWMgdm9p ZCBwcGd0dF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCXBwZ3R0LT52bS52 bWFfb3BzLmNsZWFyX3BhZ2VzID0gY2xlYXJfcGFnZXM7CiB9CiAKK3N0YXRpYyB2b2lkIGluaXRf cGRfbihzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKKwkJICAgICAgc3RydWN0IGk5MTVf cGFnZV9kaXJlY3RvcnkgKnBkLAorCQkgICAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAq dG8sCisJCSAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBlbnRyaWVzKQoreworCWNvbnN0IHU2NCBk YWRkciA9IGdlbjhfcGRlX2VuY29kZShweF9kbWEodG8pLCBJOTE1X0NBQ0hFX0xMQyk7CisJdTY0 ICogY29uc3QgdmFkZHIgPSBrbWFwX2F0b21pYyhwZC0+YmFzZS5wYWdlKTsKKworCW1lbXNldDY0 KHZhZGRyLCBkYWRkciwgZW50cmllcyk7CisJa3VubWFwX2F0b21pYyh2YWRkcik7CisKKwltZW1z ZXRfcChwZC0+ZW50cnksIHRvLCBlbnRyaWVzKTsKK30KKworc3RhdGljIHN0cnVjdCBpOTE1X3Bh Z2VfZGlyZWN0b3J5ICoKK2dlbjhfYWxsb2NfdG9wX3BkKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3Bh Y2UgKnZtKQoreworCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZDsKKworCWlmIChpOTE1 X3ZtX2lzXzRsdmwodm0pKSB7CisJCXBkID0gYWxsb2NfcGQodm0pOworCQlpZiAoIUlTX0VSUihw ZCkpCisJCQlpbml0X3BkKHZtLCBwZCwgdm0tPnNjcmF0Y2hfcGRwKTsKKworCQlyZXR1cm4gcGQ7 CisJfQorCisJLyogM2x2bCAqLworCXBkID0gX19hbGxvY19wZCgpOworCWlmICghcGQpCisJCXJl dHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJcGQtPmVudHJ5W0dFTjhfM0xWTF9QRFBFU10gPSBO VUxMOworCisJaWYgKHVubGlrZWx5KHNldHVwX3BhZ2VfZG1hKHZtLCAmcGQtPmJhc2UpKSkgewor CQlrZnJlZShwZCk7CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCX0KKworCWluaXRfcGRf bih2bSwgcGQsIHZtLT5zY3JhdGNoX3BkLCBHRU44XzNMVkxfUERQRVMpOworCisJcmV0dXJuIHBk OworfQorCiAvKgogICogR0VOOCBsZWdhY3kgcHBndHQgcHJvZ3JhbW1pbmcgaXMgYWNjb21wbGlz aGVkIHRocm91Z2ggYSBtYXggNCBQRFAgcmVnaXN0ZXJzCiAgKiB3aXRoIGEgbmV0IGVmZmVjdCBy ZXNlbWJsaW5nIGEgMi1sZXZlbCBwYWdlIHRhYmxlIGluIG5vcm1hbCB4ODYgdGVybXMuIEVhY2gK QEAgLTE1NDgsNiArMTU4NCw3IEBAIHN0YXRpYyB2b2lkIHBwZ3R0X2luaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wcGd0dCAqZ2VuOF9w cGd0dF9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CisJc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqdm07CiAJc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0OwogCWludCBl cnI7CiAKQEAgLTE1NTcsNzAgKzE1OTQsNTkgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3BwZ3R0ICpn ZW44X3BwZ3R0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogCXBwZ3R0 X2luaXQoaTkxNSwgcHBndHQpOwogCisJdm0gPSAmcHBndHQtPnZtOworCiAJLyoKIAkgKiBGcm9t IGJkdywgdGhlcmUgaXMgaHcgc3VwcG9ydCBmb3IgcmVhZC1vbmx5IHBhZ2VzIGluIHRoZSBQUEdU VC4KIAkgKgogCSAqIEdlbjExIGhhcyBIU0RFUyM6MTgwNzEzNjE4NyB1bnJlc29sdmVkLiBEaXNh YmxlIHJvIHN1cHBvcnQKIAkgKiBmb3Igbm93LgogCSAqLwotCXBwZ3R0LT52bS5oYXNfcmVhZF9v bmx5ID0gSU5URUxfR0VOKGk5MTUpICE9IDExOworCXZtLT5oYXNfcmVhZF9vbmx5ID0gSU5URUxf R0VOKGk5MTUpICE9IDExOwogCiAJLyogVGhlcmUgYXJlIG9ubHkgZmV3IGV4Y2VwdGlvbnMgZm9y IGdlbiA+PTYuIGNodiBhbmQgYnh0LgogCSAqIEFuZCB3ZSBhcmUgbm90IHN1cmUgYWJvdXQgdGhl IGxhdHRlciBzbyBwbGF5IHNhZmUgZm9yIG5vdy4KIAkgKi8KIAlpZiAoSVNfQ0hFUlJZVklFVyhp OTE1KSB8fCBJU19CUk9YVE9OKGk5MTUpKQotCQlwcGd0dC0+dm0ucHRfa21hcF93YyA9IHRydWU7 CisJCXZtLT5wdF9rbWFwX3djID0gdHJ1ZTsKIAotCWVyciA9IGdlbjhfaW5pdF9zY3JhdGNoKCZw cGd0dC0+dm0pOworCWVyciA9IGdlbjhfaW5pdF9zY3JhdGNoKHZtKTsKIAlpZiAoZXJyKQogCQln b3RvIGVycl9mcmVlOwogCi0JcHBndHQtPnBkID0gX19hbGxvY19wZCgpOwotCWlmICghcHBndHQt PnBkKSB7Ci0JCWVyciA9IC1FTk9NRU07CisJcHBndHQtPnBkID0gZ2VuOF9hbGxvY190b3BfcGQo dm0pOworCWlmIChJU19FUlIocHBndHQtPnBkKSkgeworCQllcnIgPSBQVFJfRVJSKHBwZ3R0LT5w ZCk7CiAJCWdvdG8gZXJyX2ZyZWVfc2NyYXRjaDsKIAl9CiAKLQlpZiAoaTkxNV92bV9pc180bHZs KCZwcGd0dC0+dm0pKSB7Ci0JCWVyciA9IHNldHVwX3BhZ2VfZG1hKCZwcGd0dC0+dm0sICZwcGd0 dC0+cGQtPmJhc2UpOwotCQlpZiAoZXJyKQotCQkJZ290byBlcnJfZnJlZV9wZHA7Ci0KLQkJaW5p dF9wZCgmcHBndHQtPnZtLCBwcGd0dC0+cGQsIHBwZ3R0LT52bS5zY3JhdGNoX3BkcCk7Ci0KLQkJ cHBndHQtPnZtLmFsbG9jYXRlX3ZhX3JhbmdlID0gZ2VuOF9wcGd0dF9hbGxvY180bHZsOwotCQlw cGd0dC0+dm0uaW5zZXJ0X2VudHJpZXMgPSBnZW44X3BwZ3R0X2luc2VydF80bHZsOwotCQlwcGd0 dC0+dm0uY2xlYXJfcmFuZ2UgPSBnZW44X3BwZ3R0X2NsZWFyXzRsdmw7CisJaWYgKGk5MTVfdm1f aXNfNGx2bCh2bSkpIHsKKwkJdm0tPmFsbG9jYXRlX3ZhX3JhbmdlID0gZ2VuOF9wcGd0dF9hbGxv Y180bHZsOworCQl2bS0+aW5zZXJ0X2VudHJpZXMgPSBnZW44X3BwZ3R0X2luc2VydF80bHZsOwor CQl2bS0+Y2xlYXJfcmFuZ2UgPSBnZW44X3BwZ3R0X2NsZWFyXzRsdmw7CiAJfSBlbHNlIHsKLQkJ LyoKLQkJICogV2UgZG9uJ3QgbmVlZCB0byBzZXR1cCBkbWEgZm9yIHRvcCBsZXZlbCBwZHAsIG9u bHkKLQkJICogZm9yIGVudHJpZXMuIFNvIHBvaW50IGVudHJpZXMgdG8gc2NyYXRjaC4KLQkJICov Ci0JCW1lbXNldF9wKHBwZ3R0LT5wZC0+ZW50cnksIHBwZ3R0LT52bS5zY3JhdGNoX3BkLAotCQkJ IEdFTjhfM0xWTF9QRFBFUyk7Ci0KIAkJaWYgKGludGVsX3ZncHVfYWN0aXZlKGk5MTUpKSB7CiAJ CQllcnIgPSBnZW44X3ByZWFsbG9jYXRlX3RvcF9sZXZlbF9wZHAocHBndHQpOwogCQkJaWYgKGVy cikKLQkJCQlnb3RvIGVycl9mcmVlX3BkcDsKKwkJCQlnb3RvIGVycl9mcmVlX3BkOwogCQl9CiAK LQkJcHBndHQtPnZtLmFsbG9jYXRlX3ZhX3JhbmdlID0gZ2VuOF9wcGd0dF9hbGxvY18zbHZsOwot CQlwcGd0dC0+dm0uaW5zZXJ0X2VudHJpZXMgPSBnZW44X3BwZ3R0X2luc2VydF8zbHZsOwotCQlw cGd0dC0+dm0uY2xlYXJfcmFuZ2UgPSBnZW44X3BwZ3R0X2NsZWFyXzNsdmw7CisJCXZtLT5hbGxv Y2F0ZV92YV9yYW5nZSA9IGdlbjhfcHBndHRfYWxsb2NfM2x2bDsKKwkJdm0tPmluc2VydF9lbnRy aWVzID0gZ2VuOF9wcGd0dF9pbnNlcnRfM2x2bDsKKwkJdm0tPmNsZWFyX3JhbmdlID0gZ2VuOF9w cGd0dF9jbGVhcl8zbHZsOwogCX0KIAogCWlmIChpbnRlbF92Z3B1X2FjdGl2ZShpOTE1KSkKIAkJ Z2VuOF9wcGd0dF9ub3RpZnlfdmd0KHBwZ3R0LCB0cnVlKTsKIAotCXBwZ3R0LT52bS5jbGVhbnVw ID0gZ2VuOF9wcGd0dF9jbGVhbnVwOworCXZtLT5jbGVhbnVwID0gZ2VuOF9wcGd0dF9jbGVhbnVw OwogCiAJcmV0dXJuIHBwZ3R0OwogCi1lcnJfZnJlZV9wZHA6Ci0JZnJlZV9wZCgmcHBndHQtPnZt LCBwcGd0dC0+cGQpOworZXJyX2ZyZWVfcGQ6CisJZnJlZV9wZCh2bSwgcHBndHQtPnBkKTsKIGVy cl9mcmVlX3NjcmF0Y2g6Ci0JZ2VuOF9mcmVlX3NjcmF0Y2goJnBwZ3R0LT52bSk7CisJZ2VuOF9m cmVlX3NjcmF0Y2godm0pOwogZXJyX2ZyZWU6CiAJa2ZyZWUocHBndHQpOwogCXJldHVybiBFUlJf UFRSKGVycik7Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeA==