From mboxrd@z Thu Jan 1 00:00:00 1970 From: yu.dai@intel.com Subject: [PATCH v2 1/2] drm/i915: Add i915_gem_object_vmap to map GEM object to virtual space Date: Thu, 18 Feb 2016 10:31:37 -0800 Message-ID: <1455820298-5463-2-git-send-email-yu.dai@intel.com> References: <1455820298-5463-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 3FB486ED20 for ; Thu, 18 Feb 2016 18:36:19 +0000 (UTC) In-Reply-To: <1455820298-5463-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 YSBmdW5jdGlvbiBpOTE1X2dlbV9vYmplY3Rfdm1hcCB0byBkbyBzdWNoIGpvYi4KCnYyOiBVc2Ug b2JqLT5wYWdlcy0+bmVudHMgZm9yIGl0ZXJhdGlvbiB3aXRoaW4gaTkxNV9nZW1fb2JqZWN0X3Zt YXA7CiAgICBicmVhayB3aGVuIGl0IGZpbmlzaGVzIGFsbCBkZXNpcmVkIHBhZ2VzLiBUaGUgY2Fs bGVyIG5lZWQgdG8gcGFzcwogICAgaW4gYWN0dWFsIHBhZ2UgbnVtYmVyLiAoVHZydGtvIFVyc3Vs aW4pCgpTaWduZWQtb2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KQ2M6IERhdmUg R29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5p ZWwudmV0dGVyQGZmd2xsLmNoPgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGlu dGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpTaWdu ZWQtb2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYyAgfCAyOCArLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgIDMgKysrCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCA0NyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jICB8IDE2 ICsrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCAy NCArKy0tLS0tLS0tLS0tLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCA2 MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Nt ZF9wYXJzZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jCmluZGV4 IDgxNGQ4OTQuLjkxNWU4YzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Y21kX3BhcnNlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5j CkBAIC04NjMsMzcgKzg2MywxMSBAQCBmaW5kX3JlZyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcmVn X2Rlc2NyaXB0b3IgKnRhYmxlLAogc3RhdGljIHUzMiAqdm1hcF9iYXRjaChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAogCQkgICAgICAgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxl bikKIHsKLQlpbnQgaTsKLQl2b2lkICphZGRyID0gTlVMTDsKLQlzdHJ1Y3Qgc2dfcGFnZV9pdGVy IHNnX2l0ZXI7CiAJaW50IGZpcnN0X3BhZ2UgPSBzdGFydCA+PiBQQUdFX1NISUZUOwogCWludCBs YXN0X3BhZ2UgPSAobGVuICsgc3RhcnQgKyA0MDk1KSA+PiBQQUdFX1NISUZUOwogCWludCBucGFn ZXMgPSBsYXN0X3BhZ2UgLSBmaXJzdF9wYWdlOwotCXN0cnVjdCBwYWdlICoqcGFnZXM7Ci0KLQlw YWdlcyA9IGRybV9tYWxsb2NfYWIobnBhZ2VzLCBzaXplb2YoKnBhZ2VzKSk7Ci0JaWYgKHBhZ2Vz ID09IE5VTEwpIHsKLQkJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRvIGdldCBzcGFjZSBmb3Ig cGFnZXNcbiIpOwotCQlnb3RvIGZpbmlzaDsKLQl9Ci0KLQlpID0gMDsKLQlmb3JfZWFjaF9zZ19w YWdlKG9iai0+cGFnZXMtPnNnbCwgJnNnX2l0ZXIsIG9iai0+cGFnZXMtPm5lbnRzLCBmaXJzdF9w YWdlKSB7Ci0JCXBhZ2VzW2krK10gPSBzZ19wYWdlX2l0ZXJfcGFnZSgmc2dfaXRlcik7Ci0JCWlm IChpID09IG5wYWdlcykKLQkJCWJyZWFrOwotCX0KLQotCWFkZHIgPSB2bWFwKHBhZ2VzLCBpLCAw LCBQQUdFX0tFUk5FTCk7Ci0JaWYgKGFkZHIgPT0gTlVMTCkgewotCQlEUk1fREVCVUdfRFJJVkVS KCJGYWlsZWQgdG8gdm1hcCBwYWdlc1xuIik7Ci0JCWdvdG8gZmluaXNoOwotCX0KIAotZmluaXNo OgotCWlmIChwYWdlcykKLQkJZHJtX2ZyZWVfbGFyZ2UocGFnZXMpOwotCXJldHVybiAodTMyKilh ZGRyOworCXJldHVybiAodTMyKilpOTE1X2dlbV9vYmplY3Rfdm1hcChvYmosIGZpcnN0X3BhZ2Us IG5wYWdlcyk7CiB9CiAKIC8qIFJldHVybnMgYSB2bWFwJ2QgcG9pbnRlciB0byBkZXN0X29iaiwg d2hpY2ggdGhlIGNhbGxlciBtdXN0IHVubWFwICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRl eCA2NjQ0YzJlLi41YjAwYTZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTI4OTksNiAr Mjg5OSw5IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICppOTE1X2dlbV9vYmplY3RfY3Jl YXRlX2Zyb21fZGF0YSgKIAkJc3RydWN0IGRybV9kZXZpY2UgKmRldiwgY29uc3Qgdm9pZCAqZGF0 YSwgc2l6ZV90IHNpemUpOwogdm9pZCBpOTE1X2dlbV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKm9iaik7CiB2b2lkIGk5MTVfZ2VtX3ZtYV9kZXN0cm95KHN0cnVjdCBpOTE1X3Zt YSAqdm1hKTsKK3ZvaWQgKmk5MTVfZ2VtX29iamVjdF92bWFwKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmosCisJCQkgICB1bnNpZ25lZCBpbnQgZmlyc3QsCisJCQkgICB1bnNpZ25lZCBp bnQgbnBhZ2VzKTsKIAogLyogRmxhZ3MgdXNlZCBieSBwaW4vYmluZCZmcmllbmRzLiAqLwogI2Rl ZmluZSBQSU5fTUFQUEFCTEUJKDE8PDApCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCBmNjhm MzQ2Li40YmMwY2U3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTUzNTYsMyArNTM1Niw1 MCBAQCBmYWlsOgogCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOwogCXJl dHVybiBFUlJfUFRSKHJldCk7CiB9CisKKy8qKgorICogaTkxNV9nZW1fb2JqZWN0X3ZtYXAgLSBt YXAgYSBHRU0gb2JqIGludG8ga2VybmVsIHZpcnR1YWwgc3BhY2UKKyAqIEBvYmo6IHRoZSBHRU0g b2JqIHRvIGJlIG1hcHBlZAorICogQGZpcnN0OiBpbmRleCBvZiB0aGUgZmlyc3QgcGFnZSB3aGVy ZSBtYXBwaW5nIHN0YXJ0cworICogQG5wYWdlczogaG93IG1hbnkgcGFnZXMgdG8gYmUgbWFwcGVk LCBzdGFydGluZyBmcm9tIGZpcnN0IHBhZ2UKKyAqCisgKiBNYXAgYSBnaXZlbiBwYWdlIHJhbmdl IG9mIEdFTSBvYmogaW50byBrZXJuZWwgdmlydHVhbCBzcGFjZS4gVGhlIGNhbGxlciBtdXN0Cisg KiBtYWtlIHN1cmUgdGhlIGFzc29jaWF0ZWQgcGFnZXMgYXJlIGdhdGhlcmVkIGFuZCBwaW5uZWQg YmVmb3JlIGNhbGxpbmcgdGhpcworICogZnVuY3Rpb24uIHZ1bm1hcCBzaG91bGQgYmUgY2FsbGVk IGFmdGVyIHVzZS4KKyAqCisgKiBOVUxMIHdpbGwgYmUgcmV0dXJuZWQgaWYgZmFpbHMuCisgKi8K K3ZvaWQgKmk5MTVfZ2VtX29iamVjdF92bWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCisJCQkgICB1bnNpZ25lZCBpbnQgZmlyc3QsCisJCQkgICB1bnNpZ25lZCBpbnQgbnBhZ2Vz KQoreworCXN0cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsKKwlzdHJ1Y3QgcGFnZSAqKnBhZ2Vz OworCXZvaWQgKmFkZHI7CisJaW50IGk7CisKKwlpZiAoZmlyc3QgKyBucGFnZXMgPiBvYmotPnBh Z2VzLT5uZW50cykgeworCQlEUk1fREVCVUdfRFJJVkVSKCJJbnZhbGlkIHBhZ2UgY291bnRcbiIp OworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlwYWdlcyA9IGRybV9tYWxsb2NfYWIobnBhZ2VzLCBz aXplb2YoKnBhZ2VzKSk7CisJaWYgKHBhZ2VzID09IE5VTEwpIHsKKwkJRFJNX0RFQlVHX0RSSVZF UigiRmFpbGVkIHRvIGdldCBzcGFjZSBmb3IgcGFnZXNcbiIpOworCQlyZXR1cm4gTlVMTDsKKwl9 CisKKwlpID0gMDsKKwlmb3JfZWFjaF9zZ19wYWdlKG9iai0+cGFnZXMtPnNnbCwgJnNnX2l0ZXIs IG9iai0+cGFnZXMtPm5lbnRzLCBmaXJzdCkgeworCQlwYWdlc1tpKytdID0gc2dfcGFnZV9pdGVy X3BhZ2UoJnNnX2l0ZXIpOworCQlpZiAoaSA9PSBucGFnZXMpCisJCQlicmVhazsKKwl9CisKKwlh ZGRyID0gdm1hcChwYWdlcywgbnBhZ2VzLCAwLCBQQUdFX0tFUk5FTCk7CisJaWYgKGFkZHIgPT0g TlVMTCkKKwkJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRvIHZtYXAgcGFnZXNcbiIpOworCWRy bV9mcmVlX2xhcmdlKHBhZ2VzKTsKKworCXJldHVybiBhZGRyOworfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9kbWFidWYuYwppbmRleCAxZjNlZWY2Li42MTMzMDM2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYwpAQCAtMTEwLDkgKzExMCw3IEBAIHN0YXRpYyB2b2lk ICppOTE1X2dlbV9kbWFidWZfdm1hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZikKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gZG1hX2J1Zl90b19vYmooZG1hX2J1Zik7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+YmFzZS5kZXY7Ci0Jc3RydWN0IHNnX3BhZ2Vf aXRlciBzZ19pdGVyOwotCXN0cnVjdCBwYWdlICoqcGFnZXM7Ci0JaW50IHJldCwgaTsKKwlpbnQg cmV0OwogCiAJcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoZGV2KTsKIAlpZiAo cmV0KQpAQCAtMTMxLDE2ICsxMjksOCBAQCBzdGF0aWMgdm9pZCAqaTkxNV9nZW1fZG1hYnVmX3Zt YXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYpCiAKIAlyZXQgPSAtRU5PTUVNOwogCi0JcGFnZXMg PSBkcm1fbWFsbG9jX2FiKG9iai0+YmFzZS5zaXplID4+IFBBR0VfU0hJRlQsIHNpemVvZigqcGFn ZXMpKTsKLQlpZiAocGFnZXMgPT0gTlVMTCkKLQkJZ290byBlcnJfdW5waW47Ci0KLQlpID0gMDsK LQlmb3JfZWFjaF9zZ19wYWdlKG9iai0+cGFnZXMtPnNnbCwgJnNnX2l0ZXIsIG9iai0+cGFnZXMt Pm5lbnRzLCAwKQotCQlwYWdlc1tpKytdID0gc2dfcGFnZV9pdGVyX3BhZ2UoJnNnX2l0ZXIpOwot Ci0Jb2JqLT5kbWFfYnVmX3ZtYXBwaW5nID0gdm1hcChwYWdlcywgaSwgMCwgUEFHRV9LRVJORUwp OwotCWRybV9mcmVlX2xhcmdlKHBhZ2VzKTsKKwlvYmotPmRtYV9idWZfdm1hcHBpbmcgPSBpOTE1 X2dlbV9vYmplY3Rfdm1hcChvYmosIDAsCisJCQlkbWFfYnVmLT5zaXplID4+IFBBR0VfU0hJRlQp OwogCiAJaWYgKCFvYmotPmRtYV9idWZfdm1hcHBpbmcpCiAJCWdvdG8gZXJyX3VucGluOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IDQ1Y2U0NWEuLjkzNjY2ZTkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTIwNjQsMjcgKzIw NjQsNiBAQCB2b2lkIGludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nYnVmKQogCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKHJpbmdidWYtPm9i aik7CiB9CiAKLXN0YXRpYyB1MzIgKnZtYXBfb2JqKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCi17Ci0Jc3RydWN0IHNnX3BhZ2VfaXRlciBzZ19pdGVyOwotCXN0cnVjdCBwYWdlICoq cGFnZXM7Ci0Jdm9pZCAqYWRkcjsKLQlpbnQgaTsKLQotCXBhZ2VzID0gZHJtX21hbGxvY19hYihv YmotPmJhc2Uuc2l6ZSA+PiBQQUdFX1NISUZULCBzaXplb2YoKnBhZ2VzKSk7Ci0JaWYgKHBhZ2Vz ID09IE5VTEwpCi0JCXJldHVybiBOVUxMOwotCi0JaSA9IDA7Ci0JZm9yX2VhY2hfc2dfcGFnZShv YmotPnBhZ2VzLT5zZ2wsICZzZ19pdGVyLCBvYmotPnBhZ2VzLT5uZW50cywgMCkKLQkJcGFnZXNb aSsrXSA9IHNnX3BhZ2VfaXRlcl9wYWdlKCZzZ19pdGVyKTsKLQotCWFkZHIgPSB2bWFwKHBhZ2Vz LCBpLCAwLCBQQUdFX0tFUk5FTCk7Ci0JZHJtX2ZyZWVfbGFyZ2UocGFnZXMpOwotCi0JcmV0dXJu IGFkZHI7Ci19Ci0KIGludCBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogCQkJCSAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYpCiB7CkBAIC0yMTAzLDcgKzIwODIsOCBAQCBpbnQgaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1 ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCXJldHVybiByZXQ7CiAJCX0KIAot CQlyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0gdm1hcF9vYmoob2JqKTsKKwkJcmluZ2J1Zi0+dmly dHVhbF9zdGFydCA9IGk5MTVfZ2VtX29iamVjdF92bWFwKG9iaiwgMCwKKwkJCQlyaW5nYnVmLT5z aXplID4+IFBBR0VfU0hJRlQpOwogCQlpZiAocmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9PSBOVUxM KSB7CiAJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihvYmopOwogCQkJcmV0dXJuIC1FTk9N RU07Ci0tIAoyLjUuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==