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, 29 Apr 2015 15:01:58 +0530 Message-ID: <1430299919-9865-5-git-send-email-ankitprasad.r.sharma@intel.com> References: <1430299919-9865-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 F351C7A006 for ; Wed, 29 Apr 2015 02:45:55 -0700 (PDT) In-Reply-To: <1430299919-9865-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 IHVzZXJwdHIgb2JqZWN0cyBpdCBpcyBzdGlsbCBmb3JiaWRkZW4uCgp0ZXN0Y2FzZTogaWd0L2dl bV9jcmVhdGVfc3RvbGVuCgpTaWduZWQtb2ZmLWJ5OiBBbmtpdHByYXNhZCBTaGFybWEgPGFua2l0 cHJhc2FkLnIuc2hhcm1hQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oIHwgICA3ICsrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyB8IDEyNSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDEyMyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CmluZGV4IDIxYTJiMWYuLmE1NjhjZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMzI3 MCw0ICszMjcwLDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X3RyYWNlX2lycV9nZXQoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAkJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJnJp bmctPnRyYWNlX2lycV9yZXEsIHJlcSk7CiB9CiAKKy8qIENoZWNraW5nIGlmIHByZWFkL3B3cml0 ZSBpcyBhbGxvd2VkIGZvciB0aGUgb2JqZWN0ICovCitpbmxpbmUgc3RhdGljIGJvb2wgaTkxNV9n ZW1fb2JqX2lzX3Byd19hbGxvd2VkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7 CisJLyogcHJlYWQvcHdyaXRlIGlzIGZvcmJpZGRlbiBmb3IgdXNlcnB0cnMgKi8KKwlyZXR1cm4g IW9iai0+dXNlcnB0ci5tbTsKK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRl eCA4MWM1MzgxLi4zNDkxYmQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTYzMSw2ICs2 MzEsOTYgQEAgc2htZW1fcHJlYWRfc2xvdyhzdHJ1Y3QgcGFnZSAqcGFnZSwgaW50IHNobWVtX3Bh Z2Vfb2Zmc2V0LCBpbnQgcGFnZV9sZW5ndGgsCiAJcmV0dXJuIHJldCA/IC0gRUZBVUxUIDogMDsK IH0KIAorc3RhdGljIGlubGluZSBpbnQKK3Nsb3dfdXNlcl9hY2Nlc3Moc3RydWN0IGlvX21hcHBp bmcgKm1hcHBpbmcsCisJCSBsb2ZmX3QgcGFnZV9iYXNlLCBpbnQgcGFnZV9vZmZzZXQsCisJCSBj aGFyIF9fdXNlciAqdXNlcl9kYXRhLAorCQkgaW50IGxlbmd0aCwgYm9vbCB3cml0ZSkKK3sKKwl2 b2lkIF9faW9tZW0gKnZhZGRyX2luYXRvbWljOworCXZvaWQgKnZhZGRyOworCXVuc2lnbmVkIGxv bmcgdW53cml0dGVuOworCisJdmFkZHJfaW5hdG9taWMgPSBpb19tYXBwaW5nX21hcF93YyhtYXBw aW5nLCBwYWdlX2Jhc2UpOworCS8qIFdlIGNhbiB1c2UgdGhlIGNwdSBtZW0gY29weSBmdW5jdGlv biBiZWNhdXNlIHRoaXMgaXMgWDg2LiAqLworCXZhZGRyID0gKHZvaWQgX19mb3JjZSAqKXZhZGRy X2luYXRvbWljICsgcGFnZV9vZmZzZXQ7CisJaWYgKHdyaXRlKQorCQl1bndyaXR0ZW4gPSBfX2Nv cHlfZnJvbV91c2VyKHZhZGRyLCB1c2VyX2RhdGEsIGxlbmd0aCk7CisJZWxzZQorCQl1bndyaXR0 ZW4gPSBfX2NvcHlfdG9fdXNlcih1c2VyX2RhdGEsIHZhZGRyLCBsZW5ndGgpOworCisJaW9fbWFw cGluZ191bm1hcCh2YWRkcl9pbmF0b21pYyk7CisJcmV0dXJuIHVud3JpdHRlbjsKK30KKworc3Rh dGljIGludAoraTkxNV9nZW1fZ3R0X3ByZWFkX3B3cml0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAorCQkJICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCB1aW50NjRfdCBzaXplLAor CQkJICB1aW50NjRfdCBkYXRhX29mZnNldCwgdWludDY0X3QgZGF0YV9wdHIsIGJvb2wgd3JpdGUp Cit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKKwljaGFyIF9fdXNlciAqdXNlcl9kYXRhOworCXNzaXplX3QgcmVtYWluOworCWxvZmZfdCBv ZmZzZXQsIHBhZ2VfYmFzZTsKKwlpbnQgcGFnZV9vZmZzZXQsIHBhZ2VfbGVuZ3RoLCByZXQgPSAw OworCisJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwgMCwgUElOX01BUFBBQkxFKTsK KwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9f Z3R0X2RvbWFpbihvYmosIHdyaXRlKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF91bnBpbjsKKwor CXJldCA9IGk5MTVfZ2VtX29iamVjdF9wdXRfZmVuY2Uob2JqKTsKKwlpZiAocmV0KQorCQlnb3Rv IG91dF91bnBpbjsKKworCXVzZXJfZGF0YSA9IHRvX3VzZXJfcHRyKGRhdGFfcHRyKTsKKwlyZW1h aW4gPSBzaXplOworCisJb2Zmc2V0ID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9iaikgKyBk YXRhX29mZnNldDsKKworCWlmICh3cml0ZSkKKwkJaW50ZWxfZmJfb2JqX2ludmFsaWRhdGUob2Jq LCBOVUxMLCBPUklHSU5fR1RUKTsKKworCXdoaWxlIChyZW1haW4gPiAwKSB7CisJCS8qIE9wZXJh dGlvbiBpbiB0aGlzIHBhZ2UKKwkJICoKKwkJICogcGFnZV9iYXNlID0gcGFnZSBvZmZzZXQgd2l0 aGluIGFwZXJ0dXJlCisJCSAqIHBhZ2Vfb2Zmc2V0ID0gb2Zmc2V0IHdpdGhpbiBwYWdlCisJCSAq IHBhZ2VfbGVuZ3RoID0gYnl0ZXMgdG8gY29weSBmb3IgdGhpcyBwYWdlCisJCSAqLworCQlwYWdl X2Jhc2UgPSBvZmZzZXQgJiBQQUdFX01BU0s7CisJCXBhZ2Vfb2Zmc2V0ID0gb2Zmc2V0X2luX3Bh Z2Uob2Zmc2V0KTsKKwkJcGFnZV9sZW5ndGggPSByZW1haW47CisJCWlmICgocGFnZV9vZmZzZXQg KyByZW1haW4pID4gUEFHRV9TSVpFKQorCQkJcGFnZV9sZW5ndGggPSBQQUdFX1NJWkUgLSBwYWdl X29mZnNldDsKKworCQkvKiBUaGlzIGlzIGEgc2xvdyByZWFkL3dyaXRlIGFzIGl0IHRyaWVzIHRv IHJlYWQgZnJvbQorCQkgKiBhbmQgd3JpdGUgdG8gdXNlciBtZW1vcnkgd2hpY2ggbWF5IHJlc3Vs dCBpbnRvIHBhZ2UKKwkJICogZmF1bHRzCisJCSAqLworCQlyZXQgPSBzbG93X3VzZXJfYWNjZXNz KGRldl9wcml2LT5ndHQubWFwcGFibGUsIHBhZ2VfYmFzZSwKKwkJCQkgICAgICAgcGFnZV9vZmZz ZXQsIHVzZXJfZGF0YSwKKwkJCQkgICAgICAgcGFnZV9sZW5ndGgsIHdyaXRlKTsKKworCQlpZiAo cmV0KSB7CisJCQlyZXQgPSAtRUlOVkFMOworCQkJYnJlYWs7CisJCX0KKworCQlyZW1haW4gLT0g cGFnZV9sZW5ndGg7CisJCXVzZXJfZGF0YSArPSBwYWdlX2xlbmd0aDsKKwkJb2Zmc2V0ICs9IHBh Z2VfbGVuZ3RoOworCX0KKworb3V0X3VucGluOgorCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGlu KG9iaik7CitvdXQ6CisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGludAogaTkxNV9nZW1fc2ht ZW1fcHJlYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJICAgICBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqLApAQCAtNzU0LDE3ICs4NDQsMjQgQEAgaTkxNV9nZW1fcHJlYWRfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZ290byBvdXQ7CiAJfQog Ci0JLyogcHJpbWUgb2JqZWN0cyBoYXZlIG5vIGJhY2tpbmcgZmlscCB0byBHRU0gcHJlYWQvcHdy aXRlCi0JICogcGFnZXMgZnJvbS4KLQkgKi8KLQlpZiAoIW9iai0+YmFzZS5maWxwKSB7CisJaWYg KCFpOTE1X2dlbV9vYmpfaXNfcHJ3X2FsbG93ZWQob2JqKSkgewogCQlyZXQgPSAtRUlOVkFMOwog CQlnb3RvIG91dDsKIAl9CiAKIAl0cmFjZV9pOTE1X2dlbV9vYmplY3RfcHJlYWQob2JqLCBhcmdz LT5vZmZzZXQsIGFyZ3MtPnNpemUpOwogCi0JcmV0ID0gaTkxNV9nZW1fc2htZW1fcHJlYWQoZGV2 LCBvYmosIGFyZ3MsIGZpbGUpOworCWlmICghb2JqLT5iYXNlLmZpbHApIHsKKwkJLyogcHJlYWQg Zm9yIG5vbiBzaG1lbSBiYWNrZWQgb2JqZWN0cyAqLworCQlpZiAob2JqLT50aWxpbmdfbW9kZSA9 PSBJOTE1X1RJTElOR19OT05FKQorCQkJcmV0ID0gaTkxNV9nZW1fZ3R0X3ByZWFkX3B3cml0ZShk ZXYsIG9iaiwgYXJncy0+c2l6ZSwKKwkJCQkJCQlhcmdzLT5vZmZzZXQsCisJCQkJCQkJYXJncy0+ ZGF0YV9wdHIsCisJCQkJCQkJZmFsc2UpOworCQllbHNlCisJCQlyZXQgPSAtRUlOVkFMOworCX0g ZWxzZQorCQlyZXQgPSBpOTE1X2dlbV9zaG1lbV9wcmVhZChkZXYsIG9iaiwgYXJncywgZmlsZSk7 CiAKIG91dDoKIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5iYXNlKTsKQEAgLTEx MDcsMTAgKzEyMDQsNyBAQCBpOTE1X2dlbV9wd3JpdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKIAkJZ290byBvdXQ7CiAJfQogCi0JLyogcHJpbWUgb2JqZWN0cyBo YXZlIG5vIGJhY2tpbmcgZmlscCB0byBHRU0gcHJlYWQvcHdyaXRlCi0JICogcGFnZXMgZnJvbS4K LQkgKi8KLQlpZiAoIW9iai0+YmFzZS5maWxwKSB7CisJaWYgKCFpOTE1X2dlbV9vYmpfaXNfcHJ3 X2FsbG93ZWQob2JqKSkgewogCQlyZXQgPSAtRUlOVkFMOwogCQlnb3RvIG91dDsKIAl9CkBAIC0x MTE4LDYgKzEyMTIsMTkgQEAgaTkxNV9nZW1fcHdyaXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCiAJdHJhY2VfaTkxNV9nZW1fb2JqZWN0X3B3cml0ZShvYmosIGFy Z3MtPm9mZnNldCwgYXJncy0+c2l6ZSk7CiAKIAlyZXQgPSAtRUZBVUxUOworCisJLyogcHdyaXRl IGZvciBub24gc2htZW0gYmFja2VkIG9iamVjdHMgKi8KKwlpZiAoIW9iai0+YmFzZS5maWxwKSB7 CisJCWlmIChvYmotPnRpbGluZ19tb2RlID09IEk5MTVfVElMSU5HX05PTkUpCisJCQlyZXQgPSBp OTE1X2dlbV9ndHRfcHJlYWRfcHdyaXRlKGRldiwgb2JqLCBhcmdzLT5zaXplLAorCQkJCQkJCWFy Z3MtPm9mZnNldCwKKwkJCQkJCQlhcmdzLT5kYXRhX3B0ciwKKwkJCQkJCQl0cnVlKTsKKwkJZWxz ZQorCQkJcmV0ID0gLUVJTlZBTDsKKworCQlnb3RvIG91dDsKKwl9CiAJLyogV2UgY2FuIG9ubHkg ZG8gdGhlIEdUVCBwd3JpdGUgb24gdW50aWxlZCBidWZmZXJzLCBhcyBvdGhlcndpc2UKIAkgKiBp dCB3b3VsZCBlbmQgdXAgZ29pbmcgdGhyb3VnaCB0aGUgZmVuY2VkIGFjY2VzcywgYW5kIHdlJ2xs IGdldAogCSAqIGRpZmZlcmVudCBkZXRpbGluZyBiZWhhdmlvciBiZXR3ZWVuIHJlYWRpbmcgYW5k IHdyaXRpbmcuCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK