From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 4/5] drm/i915: Support for pread/pwrite from/to non shmem backed objects Date: Wed, 23 Sep 2015 16:21:22 +0530 Message-ID: <1443005483-4481-5-git-send-email-ankitprasad.r.sharma@intel.com> References: <1443005483-4481-1-git-send-email-ankitprasad.r.sharma@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 7C5A86ED29 for ; Wed, 23 Sep 2015 04:09:17 -0700 (PDT) In-Reply-To: <1443005483-4481-1-git-send-email-ankitprasad.r.sharma@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: Ankitprasad Sharma , akash.goel@intel.com, shashidhar.hiremath@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20+ CgpUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgZXh0ZW5kaW5nIHRoZSBwcmVhZC9wd3JpdGUg ZnVuY3Rpb25hbGl0eQpmb3Igb2JqZWN0cyBub3QgYmFja2VkIGJ5IHNobWVtLiBUaGUgYWNjZXNz IHdpbGwgYmUgbWFkZSB0aHJvdWdoCmd0dCBpbnRlcmZhY2UuClRoaXMgd2lsbCBjb3ZlciBwcmlt ZSBvYmplY3RzIGFzIHdlbGwgYXMgc3RvbGVuIG1lbW9yeSBiYWNrZWQgb2JqZWN0cwpidXQgZm9y IHVzZXJwdHIgb2JqZWN0cyBpdCBpcyBzdGlsbCBmb3JiaWRkZW4uCgp2MjogRHJvcCBsb2NrcyBh cm91bmQgc2xvd191c2VyX2FjY2VzcywgcHJlZmF1bHQgdGhlIHBhZ2VzIGJlZm9yZQphY2Nlc3Mg KENocmlzKQoKdjM6IFJlYmFzZWQgdG8gdGhlIGxhdGVzdCBkcm0taW50ZWwtbmlnaHRseSAoQW5r aXQpCgp2NDogTW92ZWQgcGFnZSBiYXNlICYgb2Zmc2V0IGNhbGN1bGF0aW9ucyBvdXRzaWRlIHRo ZSBjb3B5IGxvb3AsCmNvcnJlY3RlZCBkYXRhIHR5cGVzIGZvciBzaXplIGFuZCBvZmZzZXQgdmFy aWFibGVzLCBjb3JyZWN0ZWQgaWYtZWxzZQpicmFjZXMgZm9ybWF0IChUdnJ0a28va2VybmVsZG9j cykKCnY1OiBFbmFibGVkIHByZWFkL3B3cml0ZSBmb3IgYWxsIG5vbi1zaG1lbSBiYWNrZWQgb2Jq ZWN0cyBpbmNsdWRpbmcKd2l0aG91dCB0aWxpbmcgcmVzdHJpY3Rpb25zIChBbmtpdCkKCnY2OiBV c2luZyBwd3JpdGVfZmFzdCBmb3Igbm9uLXNobWVtIGJhY2tlZCBvYmplY3RzIGFzIHdlbGwgKENo cmlzKQoKVGVzdGNhc2U6IGlndC9nZW1fc3RvbGVuCgpTaWduZWQtb2ZmLWJ5OiBBbmtpdHByYXNh ZCBTaGFybWEgPGFua2l0cHJhc2FkLnIuc2hhcm1hQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jIHwgMTMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMTAgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggODUwMjViMS4uYjRjNjRkNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC02MTQsNiArNjE0LDk5IEBAIHNobWVtX3ByZWFkX3Ns b3coc3RydWN0IHBhZ2UgKnBhZ2UsIGludCBzaG1lbV9wYWdlX29mZnNldCwgaW50IHBhZ2VfbGVu Z3RoLAogCXJldHVybiByZXQgPyAtIEVGQVVMVCA6IDA7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdWlu dDY0X3QKK3Nsb3dfdXNlcl9hY2Nlc3Moc3RydWN0IGlvX21hcHBpbmcgKm1hcHBpbmcsCisJCSB1 aW50NjRfdCBwYWdlX2Jhc2UsIGludCBwYWdlX29mZnNldCwKKwkJIGNoYXIgX191c2VyICp1c2Vy X2RhdGEsCisJCSBpbnQgbGVuZ3RoLCBib29sIHB3cml0ZSkKK3sKKwl2b2lkIF9faW9tZW0gKnZh ZGRyX2luYXRvbWljOworCXZvaWQgKnZhZGRyOworCXVpbnQ2NF90IHVud3JpdHRlbjsKKworCXZh ZGRyX2luYXRvbWljID0gaW9fbWFwcGluZ19tYXBfd2MobWFwcGluZywgcGFnZV9iYXNlKTsKKwkv KiBXZSBjYW4gdXNlIHRoZSBjcHUgbWVtIGNvcHkgZnVuY3Rpb24gYmVjYXVzZSB0aGlzIGlzIFg4 Ni4gKi8KKwl2YWRkciA9ICh2b2lkIF9fZm9yY2UgKil2YWRkcl9pbmF0b21pYyArIHBhZ2Vfb2Zm c2V0OworCWlmIChwd3JpdGUpCisJCXVud3JpdHRlbiA9IF9fY29weV9mcm9tX3VzZXIodmFkZHIs IHVzZXJfZGF0YSwgbGVuZ3RoKTsKKwllbHNlCisJCXVud3JpdHRlbiA9IF9fY29weV90b191c2Vy KHVzZXJfZGF0YSwgdmFkZHIsIGxlbmd0aCk7CisKKwlpb19tYXBwaW5nX3VubWFwKHZhZGRyX2lu YXRvbWljKTsKKwlyZXR1cm4gdW53cml0dGVuOworfQorCitzdGF0aWMgaW50CitpOTE1X2dlbV9n dHRfcHJlYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJICAgc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiwgdWludDY0X3Qgc2l6ZSwKKwkJICAgdWludDY0X3QgZGF0YV9vZmZzZXQs IHVpbnQ2NF90IGRhdGFfcHRyKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CisJY2hhciBfX3VzZXIgKnVzZXJfZGF0YTsKKwl1aW50NjRf dCByZW1haW47CisJdWludDY0X3Qgb2Zmc2V0LCBwYWdlX2Jhc2U7CisJaW50IHBhZ2Vfb2Zmc2V0 LCBwYWdlX2xlbmd0aCwgcmV0ID0gMDsKKworCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3Bpbihv YmosIDAsIFBJTl9NQVBQQUJMRSk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwlyZXQgPSBp OTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4ob2JqLCBmYWxzZSk7CisJaWYgKHJldCkK KwkJZ290byBvdXRfdW5waW47CisKKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcHV0X2ZlbmNlKG9i aik7CisJaWYgKHJldCkKKwkJZ290byBvdXRfdW5waW47CisKKwl1c2VyX2RhdGEgPSB0b191c2Vy X3B0cihkYXRhX3B0cik7CisJcmVtYWluID0gc2l6ZTsKKwlvZmZzZXQgPSBpOTE1X2dlbV9vYmpf Z2d0dF9vZmZzZXQob2JqKSArIGRhdGFfb2Zmc2V0OworCisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0 cnVjdF9tdXRleCk7CisJaWYgKGxpa2VseSghaTkxNS5wcmVmYXVsdF9kaXNhYmxlKSkKKwkJcmV0 ID0gZmF1bHRfaW5fbXVsdGlwYWdlc193cml0ZWFibGUodXNlcl9kYXRhLCByZW1haW4pOworCisJ LyoKKwkgKiBwYWdlX29mZnNldCA9IG9mZnNldCB3aXRoaW4gcGFnZQorCSAqIHBhZ2VfYmFzZSA9 IHBhZ2Ugb2Zmc2V0IHdpdGhpbiBhcGVydHVyZQorCSAqLworCXBhZ2Vfb2Zmc2V0ID0gb2Zmc2V0 X2luX3BhZ2Uob2Zmc2V0KTsKKwlwYWdlX2Jhc2UgPSBvZmZzZXQgJiBQQUdFX01BU0s7CisKKwl3 aGlsZSAocmVtYWluID4gMCkgeworCQkvKiBwYWdlX2xlbmd0aCA9IGJ5dGVzIHRvIGNvcHkgZm9y IHRoaXMgcGFnZSAqLworCQlwYWdlX2xlbmd0aCA9IHJlbWFpbjsKKwkJaWYgKChwYWdlX29mZnNl dCArIHJlbWFpbikgPiBQQUdFX1NJWkUpCisJCQlwYWdlX2xlbmd0aCA9IFBBR0VfU0laRSAtIHBh Z2Vfb2Zmc2V0OworCisJCS8qIFRoaXMgaXMgYSBzbG93IHJlYWQvd3JpdGUgYXMgaXQgdHJpZXMg dG8gcmVhZCBmcm9tCisJCSAqIGFuZCB3cml0ZSB0byB1c2VyIG1lbW9yeSB3aGljaCBtYXkgcmVz dWx0IGludG8gcGFnZQorCQkgKiBmYXVsdHMKKwkJICovCisJCXJldCA9IHNsb3dfdXNlcl9hY2Nl c3MoZGV2X3ByaXYtPmd0dC5tYXBwYWJsZSwgcGFnZV9iYXNlLAorCQkJCSAgICAgICBwYWdlX29m ZnNldCwgdXNlcl9kYXRhLAorCQkJCSAgICAgICBwYWdlX2xlbmd0aCwgZmFsc2UpOworCisJCWlm IChyZXQpIHsKKwkJCXJldCA9IC1FRkFVTFQ7CisJCQlicmVhazsKKwkJfQorCisJCXJlbWFpbiAt PSBwYWdlX2xlbmd0aDsKKwkJdXNlcl9kYXRhICs9IHBhZ2VfbGVuZ3RoOworCQlwYWdlX2Jhc2Ug Kz0gcGFnZV9sZW5ndGg7CisJCXBhZ2Vfb2Zmc2V0ID0gMDsKKwl9CisKKwltdXRleF9sb2NrKCZk ZXYtPnN0cnVjdF9tdXRleCk7CisKK291dF91bnBpbjoKKwlpOTE1X2dlbV9vYmplY3RfZ2d0dF91 bnBpbihvYmopOworb3V0OgorCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBpbnQKIGk5MTVfZ2Vt X3NobWVtX3ByZWFkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAgICAgc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiwKQEAgLTczNywxNyArODMwLDE0IEBAIGk5MTVfZ2VtX3ByZWFk X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWdvdG8gb3V0Owog CX0KIAotCS8qIHByaW1lIG9iamVjdHMgaGF2ZSBubyBiYWNraW5nIGZpbHAgdG8gR0VNIHByZWFk L3B3cml0ZQotCSAqIHBhZ2VzIGZyb20uCi0JICovCi0JaWYgKCFvYmotPmJhc2UuZmlscCkgewot CQlyZXQgPSAtRUlOVkFMOwotCQlnb3RvIG91dDsKLQl9Ci0KIAl0cmFjZV9pOTE1X2dlbV9vYmpl Y3RfcHJlYWQob2JqLCBhcmdzLT5vZmZzZXQsIGFyZ3MtPnNpemUpOwogCi0JcmV0ID0gaTkxNV9n ZW1fc2htZW1fcHJlYWQoZGV2LCBvYmosIGFyZ3MsIGZpbGUpOworCS8qIHByZWFkIGZvciBub24g c2htZW0gYmFja2VkIG9iamVjdHMgKi8KKwlpZiAoIW9iai0+YmFzZS5maWxwICYmIG9iai0+dGls aW5nX21vZGUgPT0gSTkxNV9USUxJTkdfTk9ORSkKKwkJcmV0ID0gaTkxNV9nZW1fZ3R0X3ByZWFk KGRldiwgb2JqLCBhcmdzLT5zaXplLAorCQkJCQkgYXJncy0+b2Zmc2V0LCBhcmdzLT5kYXRhX3B0 cik7CisJZWxzZQorCQlyZXQgPSBpOTE1X2dlbV9zaG1lbV9wcmVhZChkZXYsIG9iaiwgYXJncywg ZmlsZSk7CiAKIG91dDoKIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5iYXNlKTsK QEAgLTgzMSwxMCArOTIxLDE2IEBAIGk5MTVfZ2VtX2d0dF9wd3JpdGVfZmFzdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCQkgKiBzb3VyY2UgcGFnZSBpc24ndCBhdmFpbGFibGUuICBSZXR1cm4g dGhlIGVycm9yIGFuZCB3ZSdsbAogCQkgKiByZXRyeSBpbiB0aGUgc2xvdyBwYXRoLgogCQkgKi8K LQkJaWYgKGZhc3RfdXNlcl93cml0ZShkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlLCBwYWdlX2Jhc2Us CisJCWlmIChvYmotPmJhc2UuZmlscCAmJgorCQkgICAgZmFzdF91c2VyX3dyaXRlKGRldl9wcml2 LT5ndHQubWFwcGFibGUsIHBhZ2VfYmFzZSwKIAkJCQkgICAgcGFnZV9vZmZzZXQsIHVzZXJfZGF0 YSwgcGFnZV9sZW5ndGgpKSB7CiAJCQlyZXQgPSAtRUZBVUxUOwogCQkJZ290byBvdXRfZmx1c2g7 CisJCX0gZWxzZSBpZiAoc2xvd191c2VyX2FjY2VzcyhkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlLAor CQkJCQkgICAgcGFnZV9iYXNlLCBwYWdlX29mZnNldCwKKwkJCQkJICAgIHVzZXJfZGF0YSwgcGFn ZV9sZW5ndGgsIHRydWUpKSB7CisJCQlyZXQgPSAtRUZBVUxUOworCQkJZ290byBvdXRfZmx1c2g7 CiAJCX0KIAogCQlyZW1haW4gLT0gcGFnZV9sZW5ndGg7CkBAIC0xMDkwLDE0ICsxMTg2LDYgQEAg aTkxNV9nZW1fcHdyaXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs CiAJCWdvdG8gb3V0OwogCX0KIAotCS8qIHByaW1lIG9iamVjdHMgaGF2ZSBubyBiYWNraW5nIGZp bHAgdG8gR0VNIHByZWFkL3B3cml0ZQotCSAqIHBhZ2VzIGZyb20uCi0JICovCi0JaWYgKCFvYmot PmJhc2UuZmlscCkgewotCQlyZXQgPSAtRUlOVkFMOwotCQlnb3RvIG91dDsKLQl9Ci0KIAl0cmFj ZV9pOTE1X2dlbV9vYmplY3RfcHdyaXRlKG9iaiwgYXJncy0+b2Zmc2V0LCBhcmdzLT5zaXplKTsK IAogCXJldCA9IC1FRkFVTFQ7CkBAIC0xMTA4LDggKzExOTYsOSBAQCBpOTE1X2dlbV9wd3JpdGVf aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkgKiBwZXJzcGVjdGl2 ZSwgcmVxdWlyaW5nIG1hbnVhbCBkZXRpbGluZyBieSB0aGUgY2xpZW50LgogCSAqLwogCWlmIChv YmotPnRpbGluZ19tb2RlID09IEk5MTVfVElMSU5HX05PTkUgJiYKLQkgICAgb2JqLT5iYXNlLndy aXRlX2RvbWFpbiAhPSBJOTE1X0dFTV9ET01BSU5fQ1BVICYmCi0JICAgIGNwdV93cml0ZV9uZWVk c19jbGZsdXNoKG9iaikpIHsKKwkgICAgKCFvYmotPmJhc2UuZmlscCB8fAorCSAgICAob2JqLT5i YXNlLndyaXRlX2RvbWFpbiAhPSBJOTE1X0dFTV9ET01BSU5fQ1BVICYmCisJICAgIGNwdV93cml0 ZV9uZWVkc19jbGZsdXNoKG9iaikpKSkgewogCQlyZXQgPSBpOTE1X2dlbV9ndHRfcHdyaXRlX2Zh c3QoZGV2LCBvYmosIGFyZ3MsIGZpbGUpOwogCQkvKiBOb3RlIHRoYXQgdGhlIGd0dCBwYXRocyBt aWdodCBmYWlsIHdpdGggbm9uLXBhZ2UtYmFja2VkIHVzZXIKIAkJICogcG9pbnRlcnMgKGUuZy4g Z3R0IG1hcHBpbmdzIHdoZW4gbW92aW5nIGRhdGEgYmV0d2VlbgpAQCAtMTExOSw3ICsxMjA4LDcg QEAgaTkxNV9nZW1fcHdyaXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAJaWYgKHJldCA9PSAtRUZBVUxUIHx8IHJldCA9PSAtRU5PU1BDKSB7CiAJCWlmIChvYmot PnBoeXNfaGFuZGxlKQogCQkJcmV0ID0gaTkxNV9nZW1fcGh5c19wd3JpdGUob2JqLCBhcmdzLCBm aWxlKTsKLQkJZWxzZQorCQllbHNlIGlmIChvYmotPmJhc2UuZmlscCkKIAkJCXJldCA9IGk5MTVf Z2VtX3NobWVtX3B3cml0ZShkZXYsIG9iaiwgYXJncywgZmlsZSk7CiAJfQogCi0tIAoxLjkuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK