From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 5/6] drm/i915: Support for pread/pwrite from/to non shmem backed objects Date: Thu, 8 Oct 2015 11:54:28 +0530 Message-ID: <1444285469-8187-6-git-send-email-ankitprasad.r.sharma@intel.com> References: <1444285469-8187-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 1DEB56E6D7 for ; Wed, 7 Oct 2015 23:44:14 -0700 (PDT) In-Reply-To: <1444285469-8187-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 dS9kcm0vaTkxNS9pOTE1X2dlbS5jIHwgMTI1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggOTFhMmU5Ny4uMmM5NGUyMiAxMDA2 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 QEAgLTc5NSw3ICs4ODUsNyBAQCBpOTE1X2dlbV9ndHRfcHdyaXRlX2Zhc3Qoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAljaGFyIF9fdXNlciAqdXNlcl9kYXRhOwogCWludCBwYWdlX29mZnNldCwg cGFnZV9sZW5ndGgsIHJldDsKIAotCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihvYmosIDAs IFBJTl9NQVBQQUJMRSB8IFBJTl9OT05CTE9DSyk7CisJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRf cGluKG9iaiwgMCwgUElOX01BUFBBQkxFKTsKIAlpZiAocmV0KQogCQlnb3RvIG91dDsKIApAQCAt MTA5MCwxNCArMTE4MCw2IEBAIGk5MTVfZ2VtX3B3cml0ZV9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAogCQlnb3RvIG91dDsKIAl9CiAKLQkvKiBwcmltZSBvYmplY3Rz IGhhdmUgbm8gYmFja2luZyBmaWxwIHRvIEdFTSBwcmVhZC9wd3JpdGUKLQkgKiBwYWdlcyBmcm9t LgotCSAqLwotCWlmICghb2JqLT5iYXNlLmZpbHApIHsKLQkJcmV0ID0gLUVJTlZBTDsKLQkJZ290 byBvdXQ7Ci0JfQotCiAJdHJhY2VfaTkxNV9nZW1fb2JqZWN0X3B3cml0ZShvYmosIGFyZ3MtPm9m ZnNldCwgYXJncy0+c2l6ZSk7CiAKIAlyZXQgPSAtRUZBVUxUOwpAQCAtMTEwOCw4ICsxMTkwLDkg QEAgaTkxNV9nZW1fcHdyaXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAJICogcGVyc3BlY3RpdmUsIHJlcXVpcmluZyBtYW51YWwgZGV0aWxpbmcgYnkgdGhlIGNs aWVudC4KIAkgKi8KIAlpZiAob2JqLT50aWxpbmdfbW9kZSA9PSBJOTE1X1RJTElOR19OT05FICYm Ci0JICAgIG9iai0+YmFzZS53cml0ZV9kb21haW4gIT0gSTkxNV9HRU1fRE9NQUlOX0NQVSAmJgot CSAgICBjcHVfd3JpdGVfbmVlZHNfY2xmbHVzaChvYmopKSB7CisJICAgICghb2JqLT5iYXNlLmZp bHAgfHwKKwkgICAgKG9iai0+YmFzZS53cml0ZV9kb21haW4gIT0gSTkxNV9HRU1fRE9NQUlOX0NQ VSAmJgorCSAgICBjcHVfd3JpdGVfbmVlZHNfY2xmbHVzaChvYmopKSkpIHsKIAkJcmV0ID0gaTkx NV9nZW1fZ3R0X3B3cml0ZV9mYXN0KGRldiwgb2JqLCBhcmdzLCBmaWxlKTsKIAkJLyogTm90ZSB0 aGF0IHRoZSBndHQgcGF0aHMgbWlnaHQgZmFpbCB3aXRoIG5vbi1wYWdlLWJhY2tlZCB1c2VyCiAJ CSAqIHBvaW50ZXJzIChlLmcuIGd0dCBtYXBwaW5ncyB3aGVuIG1vdmluZyBkYXRhIGJldHdlZW4K QEAgLTExMTksNyArMTIwMiw3IEBAIGk5MTVfZ2VtX3B3cml0ZV9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAogCWlmIChyZXQgPT0gLUVGQVVMVCB8fCByZXQgPT0gLUVO T1NQQykgewogCQlpZiAob2JqLT5waHlzX2hhbmRsZSkKIAkJCXJldCA9IGk5MTVfZ2VtX3BoeXNf cHdyaXRlKG9iaiwgYXJncywgZmlsZSk7Ci0JCWVsc2UKKwkJZWxzZSBpZiAob2JqLT5iYXNlLmZp bHApCiAJCQlyZXQgPSBpOTE1X2dlbV9zaG1lbV9wd3JpdGUoZGV2LCBvYmosIGFyZ3MsIGZpbGUp OwogCX0KIAotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==