From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH 05/10] drm/i915/gtt: Generalize alloc_pd Date: Fri, 14 Jun 2019 19:43:45 +0300 Message-ID: <20190614164350.30415-5-mika.kuoppala@linux.intel.com> References: <20190614164350.30415-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 mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id E22E189AF3 for ; Fri, 14 Jun 2019 16:43:54 +0000 (UTC) In-Reply-To: <20190614164350.30415-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 QWxsb2NhdGUgYWxsIHBhZ2UgZGlyZWN0b3J5IHZhcmlhbnRzIHdpdGggYWxsb2NfcGQuIEFzCnRo ZSBsdmwzIGFuZCBsdmw0IHZhcmlhbnRzIGRpZmZlciBpbiBtYW5pcHVsYXRpb24sIHdlCm5lZWQg dG8gY2hlY2sgZm9yIGV4aXN0ZW5jZSBvZiBiYWNraW5nIHBoeXMgcGFnZSBiZWZvcmUgYWNjZXNz aW5nCml0LgoKdjI6IHVzZSBlcnIgaW4gcmV0dXJucwoKU2lnbmVkLW9mZi1ieTogTWlrYSBLdW9w cGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmMgfCA4OCArKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggMjU4MDU5NzFmNzcxLi5kZTI2NGIzYTAxMDUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC03MTksMTAgKzcxOSwxNyBAQCBz dGF0aWMgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKmFsbG9jX3BkKHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtKQogCXJldHVybiBwZDsKIH0KIAorc3RhdGljIGlubGluZSBib29sIHBk X2hhc19waHlzX3BhZ2UoY29uc3Qgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKiBjb25zdCBw ZCkKK3sKKwlyZXR1cm4gcGQtPmJhc2UucGFnZTsKK30KKwogc3RhdGljIHZvaWQgZnJlZV9wZChz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGly ZWN0b3J5ICpwZCkKIHsKLQljbGVhbnVwX3B4KHZtLCBwZCk7CisJaWYgKGxpa2VseShwZF9oYXNf cGh5c19wYWdlKHBkKSkpCisJCWNsZWFudXBfcHgodm0sIHBkKTsKKwogCWtmcmVlKHBkKTsKIH0K IApAQCAtNzM0LDM3ICs3NDEsMTIgQEAgc3RhdGljIHZvaWQgaW5pdF9wZF93aXRoX3BhZ2Uoc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJbWVtc2V0X3AocGQtPmVudHJ5LCBwdCwgNTEy KTsKIH0KIAotc3RhdGljIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICphbGxvY19wZHAoc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCi17Ci0Jc3RydWN0IGk5MTVfcGFnZV9kaXJlY3Rv cnkgKnBkcDsKLQotCXBkcCA9IF9fYWxsb2NfcGQoKTsKLQlpZiAoIXBkcCkKLQkJcmV0dXJuIEVS Ul9QVFIoLUVOT01FTSk7Ci0KLQlpZiAoaTkxNV92bV9pc180bHZsKHZtKSkgewotCQlpZiAodW5s aWtlbHkoc2V0dXBfcHgodm0sIHBkcCkpKSB7Ci0JCQlrZnJlZShwZHApOwotCQkJcmV0dXJuIEVS Ul9QVFIoLUVOT01FTSk7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gcGRwOwotfQotCi1zdGF0aWMgdm9p ZCBmcmVlX3BkcChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKLQkJICAgICBzdHJ1Y3Qg aTkxNV9wYWdlX2RpcmVjdG9yeSAqcGRwKQotewotCWlmIChpOTE1X3ZtX2lzXzRsdmwodm0pKQot CQljbGVhbnVwX3B4KHZtLCBwZHApOwotCi0Ja2ZyZWUocGRwKTsKLX0KLQogc3RhdGljIHZvaWQg aW5pdF9wZChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJICAgIHN0cnVjdCBpOTE1 X3BhZ2VfZGlyZWN0b3J5ICogY29uc3QgcGQsCiAJCSAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVj dG9yeSAqIGNvbnN0IHRvKQogeworCUdFTV9ERUJVR19CVUdfT04oIXBkX2hhc19waHlzX3BhZ2Uo cGQpKTsKKwogCWZpbGxfcHgodm0sIHBkLCBnZW44X3BkcGVfZW5jb2RlKHB4X2RtYSh0byksIEk5 MTVfQ0FDSEVfTExDKSk7CiAJbWVtc2V0X3AocGQtPmVudHJ5LCB0bywgNTEyKTsKIH0KQEAgLTg0 MiwxNCArODI0LDEzIEBAIHN0YXRpYyBib29sIGdlbjhfcHBndHRfY2xlYXJfcGQoc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJcmV0dXJuICFhdG9taWNfcmVhZCgmcGQtPnVzZWQpOwog fQogCi1zdGF0aWMgdm9pZCBnZW44X3BwZ3R0X3NldF9wZHBlKHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtLAotCQkJCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZHAsCitzdGF0aWMg dm9pZCBnZW44X3BwZ3R0X3NldF9wZHBlKHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZHAs CiAJCQkJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkLAogCQkJCXVuc2lnbmVkIGludCBw ZHBlKQogewogCWdlbjhfcHBndHRfcGRwZV90ICp2YWRkcjsKIAotCWlmICghaTkxNV92bV9pc180 bHZsKHZtKSkKKwlpZiAoIXBkX2hhc19waHlzX3BhZ2UocGRwKSkKIAkJcmV0dXJuOwogCiAJdmFk ZHIgPSBrbWFwX2F0b21pY19weChwZHApOwpAQCAtODc3LDcgKzg1OCw3IEBAIHN0YXRpYyBib29s IGdlbjhfcHBndHRfY2xlYXJfcGRwKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCiAJ CXNwaW5fbG9jaygmcGRwLT5sb2NrKTsKIAkJaWYgKCFhdG9taWNfcmVhZCgmcGQtPnVzZWQpKSB7 Ci0JCQlnZW44X3BwZ3R0X3NldF9wZHBlKHZtLCBwZHAsIHZtLT5zY3JhdGNoX3BkLCBwZHBlKTsK KwkJCWdlbjhfcHBndHRfc2V0X3BkcGUocGRwLCB2bS0+c2NyYXRjaF9wZCwgcGRwZSk7CiAJCQlw ZHAtPmVudHJ5W3BkcGVdID0gdm0tPnNjcmF0Y2hfcGQ7CiAKIAkJCUdFTV9CVUdfT04oIWF0b21p Y19yZWFkKCZwZHAtPnVzZWQpKTsKQEAgLTkzOCw3ICs5MTksNyBAQCBzdGF0aWMgdm9pZCBnZW44 X3BwZ3R0X2NsZWFyXzRsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJCX0KIAkJ c3Bpbl91bmxvY2soJnBtbDQtPmxvY2spOwogCQlpZiAoZnJlZSkKLQkJCWZyZWVfcGRwKHZtLCBw ZHApOworCQkJZnJlZV9wZCh2bSwgcGRwKTsKIAl9CiB9CiAKQEAgLTEyNDIsNyArMTIyMyw3IEBA IHN0YXRpYyBpbnQgZ2VuOF9pbml0X3NjcmF0Y2goc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0pCiAJfQogCiAJaWYgKGk5MTVfdm1faXNfNGx2bCh2bSkpIHsKLQkJdm0tPnNjcmF0Y2hfcGRw ID0gYWxsb2NfcGRwKHZtKTsKKwkJdm0tPnNjcmF0Y2hfcGRwID0gYWxsb2NfcGQodm0pOwogCQlp ZiAoSVNfRVJSKHZtLT5zY3JhdGNoX3BkcCkpIHsKIAkJCXJldCA9IFBUUl9FUlIodm0tPnNjcmF0 Y2hfcGRwKTsKIAkJCWdvdG8gZnJlZV9wZDsKQEAgLTEzMDQsNyArMTI4NSw3IEBAIHN0YXRpYyB2 b2lkIGdlbjhfZnJlZV9zY3JhdGNoKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogCQly ZXR1cm47CiAKIAlpZiAoaTkxNV92bV9pc180bHZsKHZtKSkKLQkJZnJlZV9wZHAodm0sIHZtLT5z Y3JhdGNoX3BkcCk7CisJCWZyZWVfcGQodm0sIHZtLT5zY3JhdGNoX3BkcCk7CiAJZnJlZV9wZCh2 bSwgdm0tPnNjcmF0Y2hfcGQpOwogCWZyZWVfcHQodm0sIHZtLT5zY3JhdGNoX3B0KTsKIAljbGVh bnVwX3NjcmF0Y2hfcGFnZSh2bSk7CkBAIC0xMzI0LDcgKzEzMDUsNyBAQCBzdGF0aWMgdm9pZCBn ZW44X3BwZ3R0X2NsZWFudXBfM2x2bChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJ ZnJlZV9wZCh2bSwgcGRwLT5lbnRyeVtpXSk7CiAJfQogCi0JZnJlZV9wZHAodm0sIHBkcCk7CisJ ZnJlZV9wZCh2bSwgcGRwKTsKIH0KIAogc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhbnVwXzRs dmwoc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0KQpAQCAtMTQzMSw3ICsxNDEyLDcgQEAgc3RhdGlj IGludCBnZW44X3BwZ3R0X2FsbG9jX3BkcChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwK IAogCQkJb2xkID0gY21weGNoZygmcGRwLT5lbnRyeVtwZHBlXSwgdm0tPnNjcmF0Y2hfcGQsIHBk KTsKIAkJCWlmIChvbGQgPT0gdm0tPnNjcmF0Y2hfcGQpIHsKLQkJCQlnZW44X3BwZ3R0X3NldF9w ZHBlKHZtLCBwZHAsIHBkLCBwZHBlKTsKKwkJCQlnZW44X3BwZ3R0X3NldF9wZHBlKHBkcCwgcGQs IHBkcGUpOwogCQkJCWF0b21pY19pbmMoJnBkcC0+dXNlZCk7CiAJCQl9IGVsc2UgewogCQkJCWZy ZWVfcGQodm0sIHBkKTsKQEAgLTE0NTcsNyArMTQzOCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0 dF9hbGxvY19wZHAoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiB1bndpbmRfcGQ6CiAJ c3Bpbl9sb2NrKCZwZHAtPmxvY2spOwogCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZwZC0+dXNl ZCkpIHsKLQkJZ2VuOF9wcGd0dF9zZXRfcGRwZSh2bSwgcGRwLCB2bS0+c2NyYXRjaF9wZCwgcGRw ZSk7CisJCWdlbjhfcHBndHRfc2V0X3BkcGUocGRwLCB2bS0+c2NyYXRjaF9wZCwgcGRwZSk7CiAJ CUdFTV9CVUdfT04oIWF0b21pY19yZWFkKCZwZHAtPnVzZWQpKTsKIAkJYXRvbWljX2RlYygmcGRw LT51c2VkKTsKIAkJZnJlZV9wZCh2bSwgcGQpOwpAQCAtMTQ4NywxMyArMTQ2OCwxMiBAQCBzdGF0 aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfNGx2bChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2 bSwKIAogCXNwaW5fbG9jaygmcG1sNC0+bG9jayk7CiAJZ2VuOF9mb3JfZWFjaF9wbWw0ZShwZHAs IHBtbDQsIHN0YXJ0LCBsZW5ndGgsIHBtbDRlKSB7Ci0KIAkJaWYgKHBkcCA9PSB2bS0+c2NyYXRj aF9wZHApIHsKIAkJCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpvbGQ7CiAKIAkJCXNwaW5f dW5sb2NrKCZwbWw0LT5sb2NrKTsKIAotCQkJcGRwID0gYWxsb2NfcGRwKHZtKTsKKwkJCXBkcCA9 IGFsbG9jX3BkKHZtKTsKIAkJCWlmIChJU19FUlIocGRwKSkKIAkJCQlnb3RvIHVud2luZDsKIApA QCAtMTUwMyw3ICsxNDgzLDcgQEAgc3RhdGljIGludCBnZW44X3BwZ3R0X2FsbG9jXzRsdmwoc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJCQlpZiAob2xkID09IHZtLT5zY3JhdGNoX3Bk cCkgewogCQkJCWdlbjhfcHBndHRfc2V0X3BtbDRlKHBtbDQsIHBkcCwgcG1sNGUpOwogCQkJfSBl bHNlIHsKLQkJCQlmcmVlX3BkcCh2bSwgcGRwKTsKKwkJCQlmcmVlX3BkKHZtLCBwZHApOwogCQkJ CXBkcCA9IG9sZDsKIAkJCX0KIApAQCAtMTUyNyw3ICsxNTA3LDcgQEAgc3RhdGljIGludCBnZW44 X3BwZ3R0X2FsbG9jXzRsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJc3Bpbl9s b2NrKCZwbWw0LT5sb2NrKTsKIAlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmcGRwLT51c2VkKSkg ewogCQlnZW44X3BwZ3R0X3NldF9wbWw0ZShwbWw0LCB2bS0+c2NyYXRjaF9wZHAsIHBtbDRlKTsK LQkJZnJlZV9wZHAodm0sIHBkcCk7CisJCWZyZWVfcGQodm0sIHBkcCk7CiAJfQogCXNwaW5fdW5s b2NrKCZwbWw0LT5sb2NrKTsKIHVud2luZDoKQEAgLTE1NTAsNyArMTUzMCw3IEBAIHN0YXRpYyBp bnQgZ2VuOF9wcmVhbGxvY2F0ZV90b3BfbGV2ZWxfcGRwKHN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0 dCkKIAkJCWdvdG8gdW53aW5kOwogCiAJCWluaXRfcGRfd2l0aF9wYWdlKHZtLCBwZCwgdm0tPnNj cmF0Y2hfcHQpOwotCQlnZW44X3BwZ3R0X3NldF9wZHBlKHZtLCBwZHAsIHBkLCBwZHBlKTsKKwkJ Z2VuOF9wcGd0dF9zZXRfcGRwZShwZHAsIHBkLCBwZHBlKTsKIAogCQlhdG9taWNfaW5jKCZwZHAt PnVzZWQpOwogCX0KQEAgLTE1NjIsNyArMTU0Miw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcmVhbGxv Y2F0ZV90b3BfbGV2ZWxfcGRwKHN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dCkKIHVud2luZDoKIAlz dGFydCAtPSBmcm9tOwogCWdlbjhfZm9yX2VhY2hfcGRwZShwZCwgcGRwLCBmcm9tLCBzdGFydCwg cGRwZSkgewotCQlnZW44X3BwZ3R0X3NldF9wZHBlKHZtLCBwZHAsIHZtLT5zY3JhdGNoX3BkLCBw ZHBlKTsKKwkJZ2VuOF9wcGd0dF9zZXRfcGRwZShwZHAsIHZtLT5zY3JhdGNoX3BkLCBwZHBlKTsK IAkJZnJlZV9wZCh2bSwgcGQpOwogCX0KIAlhdG9taWNfc2V0KCZwZHAtPnVzZWQsIDApOwpAQCAt MTYyMCwxMyArMTYwMCwxNyBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcHBndHQgKmdlbjhfcHBndHRf Y3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWlmIChlcnIpCiAJCWdvdG8g ZXJyX2ZyZWU7CiAKLQlwcGd0dC0+cGQgPSBhbGxvY19wZHAoJnBwZ3R0LT52bSk7Ci0JaWYgKElT X0VSUihwcGd0dC0+cGQpKSB7Ci0JCWVyciA9IFBUUl9FUlIocHBndHQtPnBkKTsKLQkJZ290byBl cnJfc2NyYXRjaDsKKwlwcGd0dC0+cGQgPSBfX2FsbG9jX3BkKCk7CisJaWYgKCFwcGd0dC0+cGQp IHsKKwkJZXJyID0gLUVOT01FTTsKKwkJZ290byBlcnJfZnJlZV9zY3JhdGNoOwogCX0KIAogCWlm IChpOTE1X3ZtX2lzXzRsdmwoJnBwZ3R0LT52bSkpIHsKKwkJZXJyID0gc2V0dXBfcHgoJnBwZ3R0 LT52bSwgcHBndHQtPnBkKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gZXJyX2ZyZWVfcGRwOworCiAJ CWluaXRfcGQoJnBwZ3R0LT52bSwgcHBndHQtPnBkLCBwcGd0dC0+dm0uc2NyYXRjaF9wZHApOwog CiAJCXBwZ3R0LT52bS5hbGxvY2F0ZV92YV9yYW5nZSA9IGdlbjhfcHBndHRfYWxsb2NfNGx2bDsK QEAgLTE2NDMsNyArMTYyNyw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wcGd0dCAqZ2VuOF9wcGd0 dF9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCWlmIChpbnRlbF92Z3B1 X2FjdGl2ZShpOTE1KSkgewogCQkJZXJyID0gZ2VuOF9wcmVhbGxvY2F0ZV90b3BfbGV2ZWxfcGRw KHBwZ3R0KTsKIAkJCWlmIChlcnIpCi0JCQkJZ290byBlcnJfcGRwOworCQkJCWdvdG8gZXJyX2Zy ZWVfcGRwOwogCQl9CiAKIAkJcHBndHQtPnZtLmFsbG9jYXRlX3ZhX3JhbmdlID0gZ2VuOF9wcGd0 dF9hbGxvY18zbHZsOwpAQCAtMTY1OCw5ICsxNjQyLDkgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3Bw Z3R0ICpnZW44X3BwZ3R0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAog CXJldHVybiBwcGd0dDsKIAotZXJyX3BkcDoKLQlmcmVlX3BkcCgmcHBndHQtPnZtLCBwcGd0dC0+ cGQpOwotZXJyX3NjcmF0Y2g6CitlcnJfZnJlZV9wZHA6CisJZnJlZV9wZCgmcHBndHQtPnZtLCBw cGd0dC0+cGQpOworZXJyX2ZyZWVfc2NyYXRjaDoKIAlnZW44X2ZyZWVfc2NyYXRjaCgmcHBndHQt PnZtKTsKIGVycl9mcmVlOgogCWtmcmVlKHBwZ3R0KTsKLS0gCjIuMTcuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4