From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH v4 1/3] drm/i915: add i915_gem_object_vmap_range() to map GEM object to virtual space Date: Mon, 22 Feb 2016 15:18:26 +0000 Message-ID: <1456154308-9342-2-git-send-email-david.s.gordon@intel.com> References: <1456154308-9342-1-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 6603E6E21F for ; Mon, 22 Feb 2016 15:18:40 +0000 (UTC) In-Reply-To: <1456154308-9342-1-git-send-email-david.s.gordon@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: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+CgpUaGVyZSBhcmUgc2V2ZXJhbCBwbGFj ZXMgaW5zaWRlIGRyaXZlciB3aGVyZSBhIEdFTSBvYmplY3QgaXMgbWFwcGVkCnRvIGtlcm5lbCB2 aXJ0dWFsIHNwYWNlLiBUaGUgbWFwcGluZyBtYXkgYmUgZG9uZSBlaXRoZXIgZm9yIHRoZSB3aG9s ZQpvYmplY3Qgb3Igb25seSBhIHN1YnNldCBvZiBpdC4KClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBh IGZ1bmN0aW9uIGk5MTVfZ2VtX29iamVjdF92bWFwX3JhbmdlKCkgdG8KaW1wbGVtZW50IHRoZSBj b21tb24gZnVuY3Rpb25hbGl0eS4KCnYyOiBVc2Ugb2JqLT5wYWdlcy0+bmVudHMgZm9yIGl0ZXJh dGlvbiB3aXRoaW4gaTkxNV9nZW1fb2JqZWN0X3ZtYXA7CiAgICBicmVhayB3aGVuIGl0IGZpbmlz aGVzIGFsbCBkZXNpcmVkIHBhZ2VzLiBUaGUgY2FsbGVyIG11c3QgcGFzcyB0aGUKICAgIGFjdHVh bCBwYWdlIGNvdW50IHJlcXVpcmVkLiAoVHZydGtvIFVyc3VsaW4pCgp2NDogcmVuYW1lZCB0byBp OTE1X2dlbV9vYmplY3Rfdm1hcF9yYW5nZSgpIHRvIG1ha2UgaXRzIGZ1bmN0aW9uCiAgICBjbGVh cmVyLiAoRGF2ZSBHb3Jkb24pCgpTaWduZWQtb2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGludGVs LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNv bT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CkNjOiBUdnJ0a28g VXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJp c0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRf cGFyc2VyLmMgIHwgMjggKy0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggICAgICAgICB8ICA0ICsrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAgICAgICAgIHwgNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYyAgfCAxNiArKystLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgMjQgKystLS0tLS0tLS0tLS0t LS0KIDUgZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYwppbmRleCA4MTRkODk0Li4xMTRiNTVm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYwpAQCAtODYzLDM3ICs4NjMs MTEgQEAgdm9pZCBpOTE1X2NtZF9wYXJzZXJfZmluaV9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcpCiBzdGF0aWMgdTMyICp2bWFwX2JhdGNoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosCiAJCSAgICAgICB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuKQogewotCWlu dCBpOwotCXZvaWQgKmFkZHIgPSBOVUxMOwotCXN0cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsK IAlpbnQgZmlyc3RfcGFnZSA9IHN0YXJ0ID4+IFBBR0VfU0hJRlQ7CiAJaW50IGxhc3RfcGFnZSA9 IChsZW4gKyBzdGFydCArIDQwOTUpID4+IFBBR0VfU0hJRlQ7CiAJaW50IG5wYWdlcyA9IGxhc3Rf cGFnZSAtIGZpcnN0X3BhZ2U7Ci0Jc3RydWN0IHBhZ2UgKipwYWdlczsKLQotCXBhZ2VzID0gZHJt X21hbGxvY19hYihucGFnZXMsIHNpemVvZigqcGFnZXMpKTsKLQlpZiAocGFnZXMgPT0gTlVMTCkg ewotCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gZ2V0IHNwYWNlIGZvciBwYWdlc1xuIik7 Ci0JCWdvdG8gZmluaXNoOwotCX0KLQotCWkgPSAwOwotCWZvcl9lYWNoX3NnX3BhZ2Uob2JqLT5w YWdlcy0+c2dsLCAmc2dfaXRlciwgb2JqLT5wYWdlcy0+bmVudHMsIGZpcnN0X3BhZ2UpIHsKLQkJ cGFnZXNbaSsrXSA9IHNnX3BhZ2VfaXRlcl9wYWdlKCZzZ19pdGVyKTsKLQkJaWYgKGkgPT0gbnBh Z2VzKQotCQkJYnJlYWs7Ci0JfQotCi0JYWRkciA9IHZtYXAocGFnZXMsIGksIDAsIFBBR0VfS0VS TkVMKTsKLQlpZiAoYWRkciA9PSBOVUxMKSB7Ci0JCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0 byB2bWFwIHBhZ2VzXG4iKTsKLQkJZ290byBmaW5pc2g7Ci0JfQogCi1maW5pc2g6Ci0JaWYgKHBh Z2VzKQotCQlkcm1fZnJlZV9sYXJnZShwYWdlcyk7Ci0JcmV0dXJuICh1MzIqKWFkZHI7CisJcmV0 dXJuIGk5MTVfZ2VtX29iamVjdF92bWFwX3JhbmdlKG9iaiwgZmlyc3RfcGFnZSwgbnBhZ2VzKTsK IH0KIAogLyogUmV0dXJucyBhIHZtYXAnZCBwb2ludGVyIHRvIGRlc3Rfb2JqLCB3aGljaCB0aGUg Y2FsbGVyIG11c3QgdW5tYXAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDY2NDRjMmUu LjhjZDQ3YzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjk3OSw2ICsyOTc5LDEwIEBA IHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlvYmotPnBhZ2VzX3Bpbl9jb3VudC0tOwogfQogCit2 b2lkICpfX211c3RfY2hlY2sgaTkxNV9nZW1fb2JqZWN0X3ZtYXBfcmFuZ2Uoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCQkJICAgICAgdW5zaWduZWQgaW50IGZpcnN0LAorCQkJ CQkgICAgICB1bnNpZ25lZCBpbnQgbnBhZ2VzKTsKKwogaW50IF9fbXVzdF9jaGVjayBpOTE1X211 dGV4X2xvY2tfaW50ZXJydXB0aWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGludCBpOTE1 X2dlbV9vYmplY3Rfc3luYyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJIHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnRvLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggZjY4 ZjM0Ni4uMGQ1NzA5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0yNDAwLDYgKzI0MDAs NTMgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0X2ZyZWVfbW1hcF9vZmZzZXQoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlyZXR1cm4gMDsKIH0KIAorLyoqCisgKiBpOTE1 X2dlbV9vYmplY3Rfdm1hcF9yYW5nZSAtIG1hcCBzb21lIG9yIGFsbCBvZiBhIEdFTSBvYmplY3Qg aW50byBrZXJuZWwgc3BhY2UKKyAqIEBvYmo6IHRoZSBHRU0gb2JqZWN0IHRvIGJlIG1hcHBlZAor ICogQGZpcnN0OiBpbmRleCBvZiB0aGUgZmlyc3QgcGFnZSBvZiB0aGUgb2JqZWN0IHRvIGJlIG1h cHBlZAorICogQG5wYWdlczogbGVuZ3RoIG9mIHRoZSBtYXBwaW5nIHRvIGJlIGNyZWF0ZWQsIGlu IHBhZ2VzCisgKgorICogTWFwIGEgZ2l2ZW4gcGFnZSByYW5nZSBvZiBhIEdFTSBvYmplY3QgaW50 byBrZXJuZWwgdmlydHVhbCBzcGFjZS4gVGhlIGNhbGxlcgorICogbXVzdCBtYWtlIHN1cmUgdGhl IGFzc29jaWF0ZWQgcGFnZXMgYXJlIGdhdGhlcmVkIGFuZCBwaW5uZWQgYmVmb3JlIGNhbGxpbmcK KyAqIHRoaXMgZnVuY3Rpb24sIGFuZCBpcyByZXNwb25zaWJsZSBmb3IgdnVubWFwcGluZyB0aGUg cmV0dXJuZWQgYWRkcmVzcy4KKyAqCisgKiBSZXR1cm5zIE5VTEwgb24gZmFpbHVyZS4KKyAqLwor dm9pZCAqaTkxNV9nZW1fb2JqZWN0X3ZtYXBfcmFuZ2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKKwkJCQkgdW5zaWduZWQgaW50IGZpcnN0LAorCQkJCSB1bnNpZ25lZCBpbnQgbnBh Z2VzKQoreworCXN0cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsKKwlzdHJ1Y3QgcGFnZSAqKnBh Z2VzOworCXZvaWQgKmFkZHI7CisJaW50IGk7CisKKwlpZiAoZmlyc3QgKyBucGFnZXMgPiBvYmot PnBhZ2VzLT5uZW50cykgeworCQlEUk1fREVCVUdfRFJJVkVSKCJJbnZhbGlkIHBhZ2UgY291bnRc biIpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlwYWdlcyA9IGRybV9tYWxsb2NfYWIobnBhZ2Vz LCBzaXplb2YoKnBhZ2VzKSk7CisJaWYgKHBhZ2VzID09IE5VTEwpIHsKKwkJRFJNX0RFQlVHX0RS SVZFUigiRmFpbGVkIHRvIGdldCBzcGFjZSBmb3IgcGFnZXNcbiIpOworCQlyZXR1cm4gTlVMTDsK Kwl9CisKKwlpID0gMDsKKwlmb3JfZWFjaF9zZ19wYWdlKG9iai0+cGFnZXMtPnNnbCwgJnNnX2l0 ZXIsIG9iai0+cGFnZXMtPm5lbnRzLCBmaXJzdCkgeworCQlwYWdlc1tpKytdID0gc2dfcGFnZV9p dGVyX3BhZ2UoJnNnX2l0ZXIpOworCQlpZiAoaSA9PSBucGFnZXMpCisJCQlicmVhazsKKwl9CisK KwlhZGRyID0gdm1hcChwYWdlcywgbnBhZ2VzLCAwLCBQQUdFX0tFUk5FTCk7CisJaWYgKGFkZHIg PT0gTlVMTCkKKwkJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRvIHZtYXAgcGFnZXNcbiIpOwor CWRybV9mcmVlX2xhcmdlKHBhZ2VzKTsKKworCXJldHVybiBhZGRyOworfQorCiB2b2lkIGk5MTVf dm1hX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCQkJICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f ZG1hYnVmLmMKaW5kZXggMWYzZWVmNi4uYWVlNDE0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZG1hYnVmLmMKQEAgLTExMCw5ICsxMTAsNyBAQCBzdGF0aWMgdm9pZCAqaTkxNV9nZW1f ZG1hYnVmX3ZtYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYpCiB7CiAJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiA9IGRtYV9idWZfdG9fb2JqKGRtYV9idWYpOwogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2OwotCXN0cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRl cjsKLQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwotCWludCByZXQsIGk7CisJaW50IHJldDsKIAogCXJl dCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRldik7CiAJaWYgKHJldCkKQEAgLTEz MSwxNiArMTI5LDggQEAgc3RhdGljIHZvaWQgKmk5MTVfZ2VtX2RtYWJ1Zl92bWFwKHN0cnVjdCBk bWFfYnVmICpkbWFfYnVmKQogCiAJcmV0ID0gLUVOT01FTTsKIAotCXBhZ2VzID0gZHJtX21hbGxv Y19hYihvYmotPmJhc2Uuc2l6ZSA+PiBQQUdFX1NISUZULCBzaXplb2YoKnBhZ2VzKSk7Ci0JaWYg KHBhZ2VzID09IE5VTEwpCi0JCWdvdG8gZXJyX3VucGluOwotCi0JaSA9IDA7Ci0JZm9yX2VhY2hf c2dfcGFnZShvYmotPnBhZ2VzLT5zZ2wsICZzZ19pdGVyLCBvYmotPnBhZ2VzLT5uZW50cywgMCkK LQkJcGFnZXNbaSsrXSA9IHNnX3BhZ2VfaXRlcl9wYWdlKCZzZ19pdGVyKTsKLQotCW9iai0+ZG1h X2J1Zl92bWFwcGluZyA9IHZtYXAocGFnZXMsIGksIDAsIFBBR0VfS0VSTkVMKTsKLQlkcm1fZnJl ZV9sYXJnZShwYWdlcyk7CisJb2JqLT5kbWFfYnVmX3ZtYXBwaW5nID0gaTkxNV9nZW1fb2JqZWN0 X3ZtYXBfcmFuZ2Uob2JqLCAwLAorCQkJCQkJZG1hX2J1Zi0+c2l6ZSA+PiBQQUdFX1NISUZUKTsK IAogCWlmICghb2JqLT5kbWFfYnVmX3ZtYXBwaW5nKQogCQlnb3RvIGVycl91bnBpbjsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCA0NWNlNDVhLi40MzRhNDUyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC0yMDY0LDI3ICsyMDY0 LDYgQEAgdm9pZCBpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZikKIAlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihyaW5nYnVmLT5vYmop OwogfQogCi1zdGF0aWMgdTMyICp2bWFwX29iaihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQotewotCXN0cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsKLQlzdHJ1Y3QgcGFnZSAqKnBh Z2VzOwotCXZvaWQgKmFkZHI7Ci0JaW50IGk7Ci0KLQlwYWdlcyA9IGRybV9tYWxsb2NfYWIob2Jq LT5iYXNlLnNpemUgPj4gUEFHRV9TSElGVCwgc2l6ZW9mKCpwYWdlcykpOwotCWlmIChwYWdlcyA9 PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKLQotCWkgPSAwOwotCWZvcl9lYWNoX3NnX3BhZ2Uob2Jq LT5wYWdlcy0+c2dsLCAmc2dfaXRlciwgb2JqLT5wYWdlcy0+bmVudHMsIDApCi0JCXBhZ2VzW2kr K10gPSBzZ19wYWdlX2l0ZXJfcGFnZSgmc2dfaXRlcik7Ci0KLQlhZGRyID0gdm1hcChwYWdlcywg aSwgMCwgUEFHRV9LRVJORUwpOwotCWRybV9mcmVlX2xhcmdlKHBhZ2VzKTsKLQotCXJldHVybiBh ZGRyOwotfQotCiBpbnQgaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm KQogewpAQCAtMjEwMyw3ICsyMDgyLDggQEAgaW50IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZm ZXJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQlyZXR1cm4gcmV0OwogCQl9CiAKLQkJ cmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9IHZtYXBfb2JqKG9iaik7CisJCXJpbmdidWYtPnZpcnR1 YWxfc3RhcnQgPSBpOTE1X2dlbV9vYmplY3Rfdm1hcF9yYW5nZShvYmosIDAsCisJCQkJCQlyaW5n YnVmLT5zaXplID4+IFBBR0VfU0hJRlQpOwogCQlpZiAocmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9 PSBOVUxMKSB7CiAJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihvYmopOwogCQkJcmV0dXJu IC1FTk9NRU07Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==