From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [RFC 3/5] drm/i915: Add support for CPU mapping to DRM_IOCTL_I915_GEM_MMAP_GTT Date: Tue, 26 Jan 2016 14:53:31 +0000 Message-ID: <1453820013-3908-4-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1453820013-3908-1-git-send-email-tvrtko.ursulin@linux.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 770F66E5FA for ; Tue, 26 Jan 2016 06:53:42 -0800 (PST) In-Reply-To: <1453820013-3908-1-git-send-email-tvrtko.ursulin@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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNpZ25lZC1v ZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyB8IDk2ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tCiBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggICAgIHwgIDMg KysKIDIgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCBkYWNmNmEwMDEzYzUuLjAzOWQ1NWE0OWZjNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0xOTU0LDYgKzE5NTQsNjAgQEAgb3V0OgogCXJldHVy biBpOTE1X2dlbV9yZXRfdG9fdm1fcmV0KGRldl9wcml2LCByZXQpOwogfQogCitzdGF0aWMgaW50 CitpOTE1X2dlbV9jcHVfZmF1bHQoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHN0cnVjdCB2 bV9mYXVsdCAqdm1mKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB0b19p bnRlbF9ibyh2bWEtPnZtX3ByaXZhdGVfZGF0YSk7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IG9iai0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKKwlib29sIHdyaXRlID0gISEodm1mLT5mbGFncyAmIEZBVUxUX0ZMQUdf V1JJVEUpOworCXBnb2ZmX3QgcGFnZV9vZmZzZXQ7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisJaW50 IHJldDsKKworCS8qIFdlIGRvbid0IHVzZSB2bWYtPnBnb2ZmIHNpbmNlIHRoYXQgaGFzIHRoZSBm YWtlIG9mZnNldCAqLworCXBhZ2Vfb2Zmc2V0ID0gKCh1bnNpZ25lZCBsb25nKXZtZi0+dmlydHVh bF9hZGRyZXNzIC0gdm1hLT52bV9zdGFydCkgPj4KKwkJCVBBR0VfU0hJRlQ7CisKKwl0cmFjZV9p OTE1X2dlbV9vYmplY3RfZmF1bHQob2JqLCBwYWdlX29mZnNldCwgdHJ1ZSwgd3JpdGUpOworCisJ aW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOworCisJcmV0ID0gaTkxNV9tdXRleF9sb2Nr X2ludGVycnVwdGlibGUoZGV2KTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCXJldCA9IGk5 MTVfZ2VtX29iamVjdF9zZXRfdG9fY3B1X2RvbWFpbihvYmosIHdyaXRlKTsKKwlpZiAocmV0KQor CQlnb3RvIG91dF91bmxvY2s7CisKKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzKG9i aik7CisJaWYgKHJldCkKKwkJZ290byBvdXRfdW5sb2NrOworCisJcGFnZSA9IGk5MTVfZ2VtX29i amVjdF9nZXRfcGFnZShvYmosIHBhZ2Vfb2Zmc2V0KTsKKwlpZiAoIXBhZ2UpIHsKKwkJcmV0ID0g LUVSQU5HRTsKKwkJZ290byBvdXRfdW5sb2NrOworCX0KKworCW11dGV4X3VubG9jaygmZGV2LT5z dHJ1Y3RfbXV0ZXgpOworCisJcmV0ID0gdm1faW5zZXJ0X3Bmbih2bWEsICh1bnNpZ25lZCBsb25n KXZtZi0+dmlydHVhbF9hZGRyZXNzLAorCQkJICAgIHBhZ2VfdG9fcGZuKHBhZ2UpKTsKKworCWlu dGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKKworCXJldHVybiBpOTE1X2dlbV9yZXRfdG9f dm1fcmV0KGRldl9wcml2LCByZXQpOworCitvdXRfdW5sb2NrOgorCW11dGV4X3VubG9jaygmZGV2 LT5zdHJ1Y3RfbXV0ZXgpOworb3V0OgorCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsK KworCXJldHVybiBpOTE1X2dlbV9yZXRfdG9fdm1fcmV0KGRldl9wcml2LCByZXQpOworfQorCiAv KioKICAqIGk5MTVfZ2VtX3JlbGVhc2VfbW1hcCAtIHJlbW92ZSBwaHlzaWNhbCBwYWdlIG1hcHBp bmdzCiAgKiBAb2JqOiBvYmogaW4gcXVlc3Rpb24KQEAgLTIwNzgsMTEgKzIxMzIsMTggQEAgc3Rh dGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0X2ZyZWVfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaikKIAlkcm1fZ2VtX2ZyZWVfbW1hcF9vZmZzZXQoJm9iai0+YmFzZSk7 CiB9CiAKLWludAotaTkxNV9nZW1fbW1hcF9ndHQoc3RydWN0IGRybV9maWxlICpmaWxlLAotCQkg IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCSAgdWludDMyX3QgaGFuZGxlLAotCQkgIHVpbnQ2 NF90ICpvZmZzZXQpCitzdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGk5 MTVfZ2VtX2NwdV92bV9vcHMgPSB7CisJLmZhdWx0ID0gaTkxNV9nZW1fY3B1X2ZhdWx0LAorCS5v cGVuID0gZHJtX2dlbV92bV9vcGVuLAorCS5jbG9zZSA9IGRybV9nZW1fdm1fY2xvc2UsCit9Owor CitzdGF0aWMgaW50CitpOTE1X2dlbV9tbWFwKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKKwkgICAg ICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCSAgICAgIHVpbnQzMl90IGhhbmRsZSwKKwkgICAg ICB1aW50MzJfdCBmbGFncywKKwkgICAgICB1aW50NjRfdCAqb2Zmc2V0KQogewogCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJaW50IHJldDsKQEAgLTIxMDMsMTAgKzIxNjQsMjMg QEAgaTkxNV9nZW1fbW1hcF9ndHQoc3RydWN0IGRybV9maWxlICpmaWxlLAogCQlnb3RvIG91dDsK IAl9CiAKKwlpZiAoIW9iai0+YmFzZS5maWxwICYmIChmbGFncyAmIEk5MTVfTU1BUDJfQ1BVKSkg eworCQlEUk1fREVCVUcoIkF0dGVtcHRpbmcgdG8gbW1hcCBub24tc2htIGJhc2VkIG9iamVjdCB2 aWEgQ1BVIVxuIik7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gb3V0OworCX0KKwogCXJldCA9 IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfbW1hcF9vZmZzZXQob2JqKTsKIAlpZiAocmV0KQogCQln b3RvIG91dDsKIAorCWlmIChmbGFncyAmIEk5MTVfTU1BUDJfQ1BVKSB7CisJCXJldCA9IGRybV92 bWFfbm9kZV9zZXRfdm1fb3BzKCZvYmotPmJhc2Uudm1hX25vZGUsCisJCQkJCSAgICAgICZpOTE1 X2dlbV9jcHVfdm1fb3BzKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0OworCX0KKwogCSpvZmZz ZXQgPSBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJm9iai0+YmFzZS52bWFfbm9kZSk7CiAKIG91 dDoKQEAgLTIxMTYsNiArMjE5MCwxNSBAQCB1bmxvY2s6CiAJcmV0dXJuIHJldDsKIH0KIAoraW50 CitpOTE1X2dlbV9tbWFwX2d0dChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCisJCSAgc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKKwkJICB1aW50MzJfdCBoYW5kbGUsCisJCSAgdWludDY0X3QgKm9mZnNl dCkKK3sKKwlyZXR1cm4gaTkxNV9nZW1fbW1hcChmaWxlLCBkZXYsIGhhbmRsZSwgMCwgb2Zmc2V0 KTsKK30KKwogLyoqCiAgKiBpOTE1X2dlbV9tbWFwX2d0dF9pb2N0bCAtIHByZXBhcmUgYW4gb2Jq ZWN0IGZvciBHVFQgbW1hcCdpbmcKICAqIEBkZXY6IERSTSBkZXZpY2UKQEAgLTIxMzcsNyArMjIy MCw4IEBAIGk5MTVfZ2VtX21tYXBfZ3R0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9tbWFwX2d0dCAqYXJncyA9IGRhdGE7 CiAKLQlyZXR1cm4gaTkxNV9nZW1fbW1hcF9ndHQoZmlsZSwgZGV2LCBhcmdzLT5oYW5kbGUsICZh cmdzLT5vZmZzZXQpOworCXJldHVybiBpOTE1X2dlbV9tbWFwKGZpbGUsIGRldiwgYXJncy0+aGFu ZGxlLCBhcmdzLT5mbGFncywKKwkJCSAgICAgJmFyZ3MtPm9mZnNldCk7CiB9CiAKIC8qIEltbWVk aWF0ZWx5IGRpc2NhcmQgdGhlIGJhY2tpbmcgc3RvcmFnZSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCmluZGV4 IDZhMTkzNzEzOTFmYS4uMzU5YTM2ZDYwNGJiIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJt L2k5MTVfZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCkBAIC01MjgsNiAr NTI4LDkgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9tbWFwX2d0dCB7CiAJICogVGhpcyBpcyBhIGZp eGVkLXNpemUgdHlwZSBmb3IgMzIvNjQgY29tcGF0aWJpbGl0eS4KIAkgKi8KIAlfX3U2NCBvZmZz ZXQ7CisKKyNkZWZpbmUgSTkxNV9NTUFQMl9DUFUgICAweDEKKwlfX3U2NCBmbGFnczsKIH07CiAK IHN0cnVjdCBkcm1faTkxNV9nZW1fc2V0X2RvbWFpbiB7Ci0tIAoxLjkuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK