From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 4/4] drm/i915: Support for pread/pwrite from/to non shmem backed objects Date: Tue, 15 Sep 2015 14:03:27 +0530 Message-ID: <1442306007-10792-5-git-send-email-ankitprasad.r.sharma@intel.com> References: <1442306007-10792-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 3A6746E839 for ; Tue, 15 Sep 2015 01:51:30 -0700 (PDT) In-Reply-To: <1442306007-10792-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 ZWN0cyBpbmNsdWRpbmcKd2l0aG91dCB0aWxpbmcgcmVzdHJpY3Rpb25zIChBbmtpdCkKClRlc3Rj YXNlOiBpZ3QvZ2VtX3N0b2xlbgoKU2lnbmVkLW9mZi1ieTogQW5raXRwcmFzYWQgU2hhcm1hIDxh bmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYyB8IDEyOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDg1MDI1YjEuLjJkZjM3YWMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYwpAQCAtNjE0LDYgKzYxNCwxMDIgQEAgc2htZW1fcHJlYWRfc2xvdyhzdHJ1Y3Qg cGFnZSAqcGFnZSwgaW50IHNobWVtX3BhZ2Vfb2Zmc2V0LCBpbnQgcGFnZV9sZW5ndGgsCiAJcmV0 dXJuIHJldCA/IC0gRUZBVUxUIDogMDsKIH0KIAorc3RhdGljIGlubGluZSB1aW50NjRfdAorc2xv d191c2VyX2FjY2VzcyhzdHJ1Y3QgaW9fbWFwcGluZyAqbWFwcGluZywKKwkJIHVpbnQ2NF90IHBh Z2VfYmFzZSwgaW50IHBhZ2Vfb2Zmc2V0LAorCQkgY2hhciBfX3VzZXIgKnVzZXJfZGF0YSwKKwkJ IGludCBsZW5ndGgsIGJvb2wgcHdyaXRlKQoreworCXZvaWQgX19pb21lbSAqdmFkZHJfaW5hdG9t aWM7CisJdm9pZCAqdmFkZHI7CisJdWludDY0X3QgdW53cml0dGVuOworCisJdmFkZHJfaW5hdG9t aWMgPSBpb19tYXBwaW5nX21hcF93YyhtYXBwaW5nLCBwYWdlX2Jhc2UpOworCS8qIFdlIGNhbiB1 c2UgdGhlIGNwdSBtZW0gY29weSBmdW5jdGlvbiBiZWNhdXNlIHRoaXMgaXMgWDg2LiAqLworCXZh ZGRyID0gKHZvaWQgX19mb3JjZSAqKXZhZGRyX2luYXRvbWljICsgcGFnZV9vZmZzZXQ7CisJaWYg KHB3cml0ZSkKKwkJdW53cml0dGVuID0gX19jb3B5X2Zyb21fdXNlcih2YWRkciwgdXNlcl9kYXRh LCBsZW5ndGgpOworCWVsc2UKKwkJdW53cml0dGVuID0gX19jb3B5X3RvX3VzZXIodXNlcl9kYXRh LCB2YWRkciwgbGVuZ3RoKTsKKworCWlvX21hcHBpbmdfdW5tYXAodmFkZHJfaW5hdG9taWMpOwor CXJldHVybiB1bndyaXR0ZW47Cit9CisKK3N0YXRpYyBpbnQKK2k5MTVfZ2VtX2d0dF9wcmVhZF9w d3JpdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCSAgc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwgdWludDY0X3Qgc2l6ZSwKKwkJCSAgdWludDY0X3QgZGF0YV9vZmZzZXQsIHVp bnQ2NF90IGRhdGFfcHRyLCBib29sIHB3cml0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWNoYXIgX191c2VyICp1c2VyX2RhdGE7 CisJdWludDY0X3QgcmVtYWluOworCXVpbnQ2NF90IG9mZnNldCwgcGFnZV9iYXNlOworCWludCBw YWdlX29mZnNldCwgcGFnZV9sZW5ndGgsIHJldCA9IDA7CisKKwlyZXQgPSBpOTE1X2dlbV9vYmpf Z2d0dF9waW4ob2JqLCAwLCBQSU5fTUFQUEFCTEUpOworCWlmIChyZXQpCisJCWdvdG8gb3V0Owor CisJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKG9iaiwgcHdyaXRlKTsK KwlpZiAocmV0KQorCQlnb3RvIG91dF91bnBpbjsKKworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9w dXRfZmVuY2Uob2JqKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF91bnBpbjsKKworCXVzZXJfZGF0 YSA9IHRvX3VzZXJfcHRyKGRhdGFfcHRyKTsKKwlyZW1haW4gPSBzaXplOworCW9mZnNldCA9IGk5 MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopICsgZGF0YV9vZmZzZXQ7CisKKwlpZiAocHdyaXRl KQorCQlpbnRlbF9mYl9vYmpfaW52YWxpZGF0ZShvYmosIE9SSUdJTl9HVFQpOworCisJbXV0ZXhf dW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJaWYgKCFwd3JpdGUgJiYgbGlrZWx5KCFpOTE1 LnByZWZhdWx0X2Rpc2FibGUpKQorCQlyZXQgPSBmYXVsdF9pbl9tdWx0aXBhZ2VzX3dyaXRlYWJs ZSh1c2VyX2RhdGEsIHJlbWFpbik7CisKKwkvKgorCSAqIHBhZ2Vfb2Zmc2V0ID0gb2Zmc2V0IHdp dGhpbiBwYWdlCisJICogcGFnZV9iYXNlID0gcGFnZSBvZmZzZXQgd2l0aGluIGFwZXJ0dXJlCisJ ICovCisJcGFnZV9vZmZzZXQgPSBvZmZzZXRfaW5fcGFnZShvZmZzZXQpOworCXBhZ2VfYmFzZSA9 IG9mZnNldCAmIFBBR0VfTUFTSzsKKworCXdoaWxlIChyZW1haW4gPiAwKSB7CisJCS8qIHBhZ2Vf bGVuZ3RoID0gYnl0ZXMgdG8gY29weSBmb3IgdGhpcyBwYWdlICovCisJCXBhZ2VfbGVuZ3RoID0g cmVtYWluOworCQlpZiAoKHBhZ2Vfb2Zmc2V0ICsgcmVtYWluKSA+IFBBR0VfU0laRSkKKwkJCXBh Z2VfbGVuZ3RoID0gUEFHRV9TSVpFIC0gcGFnZV9vZmZzZXQ7CisKKwkJLyogVGhpcyBpcyBhIHNs b3cgcmVhZC93cml0ZSBhcyBpdCB0cmllcyB0byByZWFkIGZyb20KKwkJICogYW5kIHdyaXRlIHRv IHVzZXIgbWVtb3J5IHdoaWNoIG1heSByZXN1bHQgaW50byBwYWdlCisJCSAqIGZhdWx0cworCQkg Ki8KKwkJcmV0ID0gc2xvd191c2VyX2FjY2VzcyhkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlLCBwYWdl X2Jhc2UsCisJCQkJICAgICAgIHBhZ2Vfb2Zmc2V0LCB1c2VyX2RhdGEsCisJCQkJICAgICAgIHBh Z2VfbGVuZ3RoLCBwd3JpdGUpOworCisJCWlmIChyZXQpIHsKKwkJCXJldCA9IC1FRkFVTFQ7CisJ CQlicmVhazsKKwkJfQorCisJCXJlbWFpbiAtPSBwYWdlX2xlbmd0aDsKKwkJdXNlcl9kYXRhICs9 IHBhZ2VfbGVuZ3RoOworCQlwYWdlX2Jhc2UgKz0gcGFnZV9sZW5ndGg7CisJCXBhZ2Vfb2Zmc2V0 ID0gMDsKKwl9CisKKwltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKK291dF91bnBp bjoKKwlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihvYmopOworb3V0OgorCXJldHVybiByZXQ7 Cit9CisKIHN0YXRpYyBpbnQKIGk5MTVfZ2VtX3NobWVtX3ByZWFkKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJCSAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKQEAgLTczNywx NyArODMzLDE1IEBAIGk5MTVfZ2VtX3ByZWFkX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCiAJCWdvdG8gb3V0OwogCX0KIAotCS8qIHByaW1lIG9iamVjdHMgaGF2ZSBu byBiYWNraW5nIGZpbHAgdG8gR0VNIHByZWFkL3B3cml0ZQotCSAqIHBhZ2VzIGZyb20uCi0JICov Ci0JaWYgKCFvYmotPmJhc2UuZmlscCkgewotCQlyZXQgPSAtRUlOVkFMOwotCQlnb3RvIG91dDsK LQl9Ci0KIAl0cmFjZV9pOTE1X2dlbV9vYmplY3RfcHJlYWQob2JqLCBhcmdzLT5vZmZzZXQsIGFy Z3MtPnNpemUpOwogCi0JcmV0ID0gaTkxNV9nZW1fc2htZW1fcHJlYWQoZGV2LCBvYmosIGFyZ3Ms IGZpbGUpOworCS8qIHByZWFkIGZvciBub24gc2htZW0gYmFja2VkIG9iamVjdHMgKi8KKwlpZiAo IW9iai0+YmFzZS5maWxwKQorCQlyZXQgPSBpOTE1X2dlbV9ndHRfcHJlYWRfcHdyaXRlKGRldiwg b2JqLCBhcmdzLT5zaXplLAorCQkJCQkJYXJncy0+b2Zmc2V0LCBhcmdzLT5kYXRhX3B0ciwKKwkJ CQkJCWZhbHNlKTsKKwllbHNlCisJCXJldCA9IGk5MTVfZ2VtX3NobWVtX3ByZWFkKGRldiwgb2Jq LCBhcmdzLCBmaWxlKTsKIAogb3V0OgogCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmot PmJhc2UpOwpAQCAtMTA5MCwxNyArMTE4NCwxNyBAQCBpOTE1X2dlbV9wd3JpdGVfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZ290byBvdXQ7CiAJfQogCi0JLyog cHJpbWUgb2JqZWN0cyBoYXZlIG5vIGJhY2tpbmcgZmlscCB0byBHRU0gcHJlYWQvcHdyaXRlCi0J ICogcGFnZXMgZnJvbS4KLQkgKi8KLQlpZiAoIW9iai0+YmFzZS5maWxwKSB7Ci0JCXJldCA9IC1F SU5WQUw7Ci0JCWdvdG8gb3V0OwotCX0KLQogCXRyYWNlX2k5MTVfZ2VtX29iamVjdF9wd3JpdGUo b2JqLCBhcmdzLT5vZmZzZXQsIGFyZ3MtPnNpemUpOwogCiAJcmV0ID0gLUVGQVVMVDsKKworCS8q IHB3cml0ZSBmb3Igbm9uIHNobWVtIGJhY2tlZCBvYmplY3RzICovCisJaWYgKCFvYmotPmJhc2Uu ZmlscCkgeworCQlyZXQgPSBpOTE1X2dlbV9ndHRfcHJlYWRfcHdyaXRlKGRldiwgb2JqLCBhcmdz LT5zaXplLAorCQkJCQkJYXJncy0+b2Zmc2V0LCBhcmdzLT5kYXRhX3B0ciwKKwkJCQkJCXRydWUp OworCQlnb3RvIG91dDsKKwl9CiAJLyogV2UgY2FuIG9ubHkgZG8gdGhlIEdUVCBwd3JpdGUgb24g dW50aWxlZCBidWZmZXJzLCBhcyBvdGhlcndpc2UKIAkgKiBpdCB3b3VsZCBlbmQgdXAgZ29pbmcg dGhyb3VnaCB0aGUgZmVuY2VkIGFjY2VzcywgYW5kIHdlJ2xsIGdldAogCSAqIGRpZmZlcmVudCBk ZXRpbGluZyBiZWhhdmlvciBiZXR3ZWVuIHJlYWRpbmcgYW5kIHdyaXRpbmcuCi0tIAoxLjkuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK