From mboxrd@z Thu Jan 1 00:00:00 1970 From: yu.dai@intel.com Subject: [PATCH 1/2] drm/i915: Add i915_gem_object_vmap to map GEM object to virtual space Date: Wed, 17 Feb 2016 15:18:27 -0800 Message-ID: <1455751108-17673-2-git-send-email-yu.dai@intel.com> References: <1455751108-17673-1-git-send-email-yu.dai@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 BED676E1BB for ; Wed, 17 Feb 2016 23:23:13 +0000 (UTC) In-Reply-To: <1455751108-17673-1-git-send-email-yu.dai@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@ffwll.ch List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+CgpUaGVyZSBhcmUgc2V2ZXJhbCBwbGFj ZXMgaW5zaWRlIGRyaXZlciB3aGVyZSBhIEdFTSBvYmplY3QgaXMgbWFwcGVkIHRvCmtlcm5lbCB2 aXJ0dWFsIHNwYWNlLiBUaGUgbWFwcGluZyBpcyBlaXRoZXIgZG9uZSBmb3IgdGhlIHdob2xlIG9i amVjdApvciBjZXJ0YWluIHBhZ2UgcmFuZ2Ugb2YgaXQuCgpUaGlzIHBhdGNoIGludHJvZHVjZXMg YSBmdW5jdGlvbiBpOTE1X2dlbV9vYmplY3Rfdm1hcCB0byBkbyBzdWNoIGpvYi4KClNpZ25lZC1v ZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgpDYzogRGF2ZSBHb3Jkb24gPGRhdmlk LnMuZ29yZG9uQGludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3 bGwuY2g+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jICB8IDI4ICstLS0tLS0tLS0t LS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgIDMg KysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCA0NCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2RtYWJ1Zi5jICB8IDE1ICsrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmMgfCAyNCArKy0tLS0tLS0tLS0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgNTIg aW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Nt ZF9wYXJzZXIuYwppbmRleCA4MTRkODk0Li45MTVlOGMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2NtZF9wYXJzZXIuYwpAQCAtODYzLDM3ICs4NjMsMTEgQEAgZmluZF9yZWcoY29uc3Qgc3Ry dWN0IGRybV9pOTE1X3JlZ19kZXNjcmlwdG9yICp0YWJsZSwKIHN0YXRpYyB1MzIgKnZtYXBfYmF0 Y2goc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJICAgICAgIHVuc2lnbmVkIHN0 YXJ0LCB1bnNpZ25lZCBsZW4pCiB7Ci0JaW50IGk7Ci0Jdm9pZCAqYWRkciA9IE5VTEw7Ci0Jc3Ry dWN0IHNnX3BhZ2VfaXRlciBzZ19pdGVyOwogCWludCBmaXJzdF9wYWdlID0gc3RhcnQgPj4gUEFH RV9TSElGVDsKIAlpbnQgbGFzdF9wYWdlID0gKGxlbiArIHN0YXJ0ICsgNDA5NSkgPj4gUEFHRV9T SElGVDsKIAlpbnQgbnBhZ2VzID0gbGFzdF9wYWdlIC0gZmlyc3RfcGFnZTsKLQlzdHJ1Y3QgcGFn ZSAqKnBhZ2VzOwotCi0JcGFnZXMgPSBkcm1fbWFsbG9jX2FiKG5wYWdlcywgc2l6ZW9mKCpwYWdl cykpOwotCWlmIChwYWdlcyA9PSBOVUxMKSB7Ci0JCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0 byBnZXQgc3BhY2UgZm9yIHBhZ2VzXG4iKTsKLQkJZ290byBmaW5pc2g7Ci0JfQotCi0JaSA9IDA7 Ci0JZm9yX2VhY2hfc2dfcGFnZShvYmotPnBhZ2VzLT5zZ2wsICZzZ19pdGVyLCBvYmotPnBhZ2Vz LT5uZW50cywgZmlyc3RfcGFnZSkgewotCQlwYWdlc1tpKytdID0gc2dfcGFnZV9pdGVyX3BhZ2Uo JnNnX2l0ZXIpOwotCQlpZiAoaSA9PSBucGFnZXMpCi0JCQlicmVhazsKLQl9Ci0KLQlhZGRyID0g dm1hcChwYWdlcywgaSwgMCwgUEFHRV9LRVJORUwpOwotCWlmIChhZGRyID09IE5VTEwpIHsKLQkJ RFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRvIHZtYXAgcGFnZXNcbiIpOwotCQlnb3RvIGZpbmlz aDsKLQl9CiAKLWZpbmlzaDoKLQlpZiAocGFnZXMpCi0JCWRybV9mcmVlX2xhcmdlKHBhZ2VzKTsK LQlyZXR1cm4gKHUzMiopYWRkcjsKKwlyZXR1cm4gKHUzMiopaTkxNV9nZW1fb2JqZWN0X3ZtYXAo b2JqLCBmaXJzdF9wYWdlLCBucGFnZXMpOwogfQogCiAvKiBSZXR1cm5zIGEgdm1hcCdkIHBvaW50 ZXIgdG8gZGVzdF9vYmosIHdoaWNoIHRoZSBjYWxsZXIgbXVzdCB1bm1hcCAqLwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKaW5kZXggNjY0NGMyZS4uNWIwMGE2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCkBAIC0yODk5LDYgKzI4OTksOSBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqaTkx NV9nZW1fb2JqZWN0X2NyZWF0ZV9mcm9tX2RhdGEoCiAJCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBzaXplKTsKIHZvaWQgaTkxNV9nZW1fZnJlZV9vYmpl Y3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwogdm9pZCBpOTE1X2dlbV92bWFfZGVzdHJv eShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7Cit2b2lkICppOTE1X2dlbV9vYmplY3Rfdm1hcChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJICAgdW5zaWduZWQgaW50IGZpcnN0LAor CQkJICAgdW5zaWduZWQgaW50IG5wYWdlcyk7CiAKIC8qIEZsYWdzIHVzZWQgYnkgcGluL2JpbmQm ZnJpZW5kcy4gKi8KICNkZWZpbmUgUElOX01BUFBBQkxFCSgxPDwwKQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKaW5kZXggZjY4ZjM0Ni4uYTZmNDY1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBA IC01MzU2LDMgKzUzNTYsNDcgQEAgZmFpbDoKIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgm b2JqLT5iYXNlKTsKIAlyZXR1cm4gRVJSX1BUUihyZXQpOwogfQorCisvKioKKyAqIGk5MTVfZ2Vt X29iamVjdF92bWFwIC0gbWFwIGEgR0VNIG9iaiBpbnRvIGtlcm5lbCB2aXJ0dWFsIHNwYWNlCisg KiBAb2JqOiB0aGUgR0VNIG9iaiB0byBiZSBtYXBwZWQKKyAqIEBmaXJzdDogaW5kZXggb2YgdGhl IGZpcnN0IHBhZ2Ugd2hlcmUgbWFwcGluZyBzdGFydHMKKyAqIEBucGFnZXM6IGhvdyBtYW55IHBh Z2VzIHRvIGJlIG1hcHBlZCwgc3RhcnRpbmcgZnJvbSBmaXJzdCBwYWdlCisgKgorICogTWFwIGEg Z2l2ZW4gcGFnZSByYW5nZSBvZiBHRU0gb2JqIGludG8ga2VybmVsIHZpcnR1YWwgc3BhY2UuIFRo ZSBjYWxsZXIgbXVzdAorICogbWFrZSBzdXJlIHRoZSBhc3NvY2lhdGVkIHBhZ2VzIGFyZSBnYXRo ZXJlZCBhbmQgcGlubmVkIGJlZm9yZSBjYWxsaW5nIHRoaXMKKyAqIGZ1bmN0aW9uLiB2dW5tYXAg c2hvdWxkIGJlIGNhbGxlZCBhZnRlciB1c2UuCisgKgorICogTlVMTCB3aWxsIGJlIHJldHVybmVk IGlmIGZhaWxzLgorICovCit2b2lkICppOTE1X2dlbV9vYmplY3Rfdm1hcChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJICAgdW5zaWduZWQgaW50IGZpcnN0LAorCQkJICAgdW5z aWduZWQgaW50IG5wYWdlcykKK3sKKwlzdHJ1Y3Qgc2dfcGFnZV9pdGVyIHNnX2l0ZXI7CisJc3Ry dWN0IHBhZ2UgKipwYWdlczsKKwl2b2lkICphZGRyOworCWludCBpOworCisJaWYgKGZpcnN0ICsg bnBhZ2VzID4gb2JqLT5wYWdlcy0+bmVudHMpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigiSW52YWxp ZCBwYWdlIGNvdW50XG4iKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJcGFnZXMgPSBkcm1fbWFs bG9jX2FiKG5wYWdlcywgc2l6ZW9mKCpwYWdlcykpOworCWlmIChwYWdlcyA9PSBOVUxMKSB7CisJ CURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byBnZXQgc3BhY2UgZm9yIHBhZ2VzXG4iKTsKKwkJ cmV0dXJuIE5VTEw7CisJfQorCisJaSA9IDA7CisJZm9yX2VhY2hfc2dfcGFnZShvYmotPnBhZ2Vz LT5zZ2wsICZzZ19pdGVyLCBucGFnZXMsIGZpcnN0KQorCQlwYWdlc1tpKytdID0gc2dfcGFnZV9p dGVyX3BhZ2UoJnNnX2l0ZXIpOworCisJYWRkciA9IHZtYXAocGFnZXMsIG5wYWdlcywgMCwgUEFH RV9LRVJORUwpOworCWlmIChhZGRyID09IE5VTEwpCisJCURSTV9ERUJVR19EUklWRVIoIkZhaWxl ZCB0byB2bWFwIHBhZ2VzXG4iKTsKKwlkcm1fZnJlZV9sYXJnZShwYWdlcyk7CisKKwlyZXR1cm4g YWRkcjsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2RtYWJ1 Zi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKaW5kZXggMWYzZWVm Ni4uZDI2OTk1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1h YnVmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKQEAgLTEx MCw5ICsxMTAsNyBAQCBzdGF0aWMgdm9pZCAqaTkxNV9nZW1fZG1hYnVmX3ZtYXAoc3RydWN0IGRt YV9idWYgKmRtYV9idWYpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGRt YV9idWZfdG9fb2JqKGRtYV9idWYpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJh c2UuZGV2OwotCXN0cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsKLQlzdHJ1Y3QgcGFnZSAqKnBh Z2VzOwotCWludCByZXQsIGk7CisJaW50IHJldDsKIAogCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19p bnRlcnJ1cHRpYmxlKGRldik7CiAJaWYgKHJldCkKQEAgLTEzMSwxNiArMTI5LDcgQEAgc3RhdGlj IHZvaWQgKmk5MTVfZ2VtX2RtYWJ1Zl92bWFwKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKQogCiAJ cmV0ID0gLUVOT01FTTsKIAotCXBhZ2VzID0gZHJtX21hbGxvY19hYihvYmotPmJhc2Uuc2l6ZSA+ PiBQQUdFX1NISUZULCBzaXplb2YoKnBhZ2VzKSk7Ci0JaWYgKHBhZ2VzID09IE5VTEwpCi0JCWdv dG8gZXJyX3VucGluOwotCi0JaSA9IDA7Ci0JZm9yX2VhY2hfc2dfcGFnZShvYmotPnBhZ2VzLT5z Z2wsICZzZ19pdGVyLCBvYmotPnBhZ2VzLT5uZW50cywgMCkKLQkJcGFnZXNbaSsrXSA9IHNnX3Bh Z2VfaXRlcl9wYWdlKCZzZ19pdGVyKTsKLQotCW9iai0+ZG1hX2J1Zl92bWFwcGluZyA9IHZtYXAo cGFnZXMsIGksIDAsIFBBR0VfS0VSTkVMKTsKLQlkcm1fZnJlZV9sYXJnZShwYWdlcyk7CisJb2Jq LT5kbWFfYnVmX3ZtYXBwaW5nID0gaTkxNV9nZW1fb2JqZWN0X3ZtYXAob2JqLCAwLCBvYmotPnBh Z2VzLT5uZW50cyk7CiAKIAlpZiAoIW9iai0+ZG1hX2J1Zl92bWFwcGluZykKIAkJZ290byBlcnJf dW5waW47CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggNDVjZTQ1 YS4uZmU2ZDE0YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAt MjA2NCwyNyArMjA2NCw2IEBAIHZvaWQgaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmooc3RydWN0 IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCiAJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4o cmluZ2J1Zi0+b2JqKTsKIH0KIAotc3RhdGljIHUzMiAqdm1hcF9vYmooc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaikKLXsKLQlzdHJ1Y3Qgc2dfcGFnZV9pdGVyIHNnX2l0ZXI7Ci0Jc3Ry dWN0IHBhZ2UgKipwYWdlczsKLQl2b2lkICphZGRyOwotCWludCBpOwotCi0JcGFnZXMgPSBkcm1f bWFsbG9jX2FiKG9iai0+YmFzZS5zaXplID4+IFBBR0VfU0hJRlQsIHNpemVvZigqcGFnZXMpKTsK LQlpZiAocGFnZXMgPT0gTlVMTCkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlpID0gMDsKLQlmb3JfZWFj aF9zZ19wYWdlKG9iai0+cGFnZXMtPnNnbCwgJnNnX2l0ZXIsIG9iai0+cGFnZXMtPm5lbnRzLCAw KQotCQlwYWdlc1tpKytdID0gc2dfcGFnZV9pdGVyX3BhZ2UoJnNnX2l0ZXIpOwotCi0JYWRkciA9 IHZtYXAocGFnZXMsIGksIDAsIFBBR0VfS0VSTkVMKTsKLQlkcm1fZnJlZV9sYXJnZShwYWdlcyk7 Ci0KLQlyZXR1cm4gYWRkcjsKLX0KLQogaW50IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJf b2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZikKIHsKQEAgLTIxMDMsNyArMjA4Miw4IEBAIGludCBpbnRlbF9waW5fYW5k X21hcF9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJcmV0dXJuIHJl dDsKIAkJfQogCi0JCXJpbmdidWYtPnZpcnR1YWxfc3RhcnQgPSB2bWFwX29iaihvYmopOworCQly aW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0KKwkJCWk5MTVfZ2VtX29iamVjdF92bWFwKG9iaiwgMCwg b2JqLT5wYWdlcy0+bmVudHMpOwogCQlpZiAocmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9PSBOVUxM KSB7CiAJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihvYmopOwogCQkJcmV0dXJuIC1FTk9N RU07Ci0tIAoyLjUuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==