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: Wed, 11 Nov 2015 16:06:12 +0530 Message-ID: <1447238173-31347-6-git-send-email-ankitprasad.r.sharma@intel.com> References: <1447238173-31347-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 BA2F26E3EB for ; Wed, 11 Nov 2015 02:55:51 -0800 (PST) In-Reply-To: <1447238173-31347-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 IHdpbGwgYmUgbWFkZSB0aHJvdWdoCmd0dCBpbnRlcmZhY2UuIFRoaXMgd2lsbCBjb3ZlciBvYmpl Y3RzIGJhY2tlZCBieSBzdG9sZW4gbWVtb3J5IGFzIHdlbGwKYXMgb3RoZXIgbm9uLXNobWVtIGJh Y2tlZCBvYmplY3RzLgoKdjI6IERyb3AgbG9ja3MgYXJvdW5kIHNsb3dfdXNlcl9hY2Nlc3MsIHBy ZWZhdWx0IHRoZSBwYWdlcyBiZWZvcmUKYWNjZXNzIChDaHJpcykKCnYzOiBSZWJhc2VkIHRvIHRo ZSBsYXRlc3QgZHJtLWludGVsLW5pZ2h0bHkgKEFua2l0KQoKdjQ6IE1vdmVkIHBhZ2UgYmFzZSAm IG9mZnNldCBjYWxjdWxhdGlvbnMgb3V0c2lkZSB0aGUgY29weSBsb29wLApjb3JyZWN0ZWQgZGF0 YSB0eXBlcyBmb3Igc2l6ZSBhbmQgb2Zmc2V0IHZhcmlhYmxlcywgY29ycmVjdGVkIGlmLWVsc2UK YnJhY2VzIGZvcm1hdCAoVHZydGtvL2tlcm5lbGRvY3MpCgp2NTogRW5hYmxlZCBwcmVhZC9wd3Jp dGUgZm9yIGFsbCBub24tc2htZW0gYmFja2VkIG9iamVjdHMgaW5jbHVkaW5nCndpdGhvdXQgdGls aW5nIHJlc3RyaWN0aW9ucyAoQW5raXQpCgp2NjogVXNpbmcgcHdyaXRlX2Zhc3QgZm9yIG5vbi1z aG1lbSBiYWNrZWQgb2JqZWN0cyBhcyB3ZWxsIChDaHJpcykKCnY3OiBVcGRhdGVkIGNvbW1pdCBt ZXNzYWdlIChUdnJ0a28pCgpUZXN0Y2FzZTogaWd0L2dlbV9zdG9sZW4KClNpZ25lZC1vZmYtYnk6 IEFua2l0cHJhc2FkIFNoYXJtYSA8YW5raXRwcmFzYWQuci5zaGFybWFAaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgfCAxNDYgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyMiBpbnNlcnRpb25zKCsp LCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCAyZDhjOWUwLi5l MGI5NTAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTYxNCw2ICs2MTQsOTkgQEAgc2ht ZW1fcHJlYWRfc2xvdyhzdHJ1Y3QgcGFnZSAqcGFnZSwgaW50IHNobWVtX3BhZ2Vfb2Zmc2V0LCBp bnQgcGFnZV9sZW5ndGgsCiAJcmV0dXJuIHJldCA/IC0gRUZBVUxUIDogMDsKIH0KIAorc3RhdGlj IGlubGluZSB1aW50NjRfdAorc2xvd191c2VyX2FjY2VzcyhzdHJ1Y3QgaW9fbWFwcGluZyAqbWFw cGluZywKKwkJIHVpbnQ2NF90IHBhZ2VfYmFzZSwgaW50IHBhZ2Vfb2Zmc2V0LAorCQkgY2hhciBf X3VzZXIgKnVzZXJfZGF0YSwKKwkJIGludCBsZW5ndGgsIGJvb2wgcHdyaXRlKQoreworCXZvaWQg X19pb21lbSAqdmFkZHJfaW5hdG9taWM7CisJdm9pZCAqdmFkZHI7CisJdWludDY0X3QgdW53cml0 dGVuOworCisJdmFkZHJfaW5hdG9taWMgPSBpb19tYXBwaW5nX21hcF93YyhtYXBwaW5nLCBwYWdl X2Jhc2UpOworCS8qIFdlIGNhbiB1c2UgdGhlIGNwdSBtZW0gY29weSBmdW5jdGlvbiBiZWNhdXNl IHRoaXMgaXMgWDg2LiAqLworCXZhZGRyID0gKHZvaWQgX19mb3JjZSAqKXZhZGRyX2luYXRvbWlj ICsgcGFnZV9vZmZzZXQ7CisJaWYgKHB3cml0ZSkKKwkJdW53cml0dGVuID0gX19jb3B5X2Zyb21f dXNlcih2YWRkciwgdXNlcl9kYXRhLCBsZW5ndGgpOworCWVsc2UKKwkJdW53cml0dGVuID0gX19j b3B5X3RvX3VzZXIodXNlcl9kYXRhLCB2YWRkciwgbGVuZ3RoKTsKKworCWlvX21hcHBpbmdfdW5t YXAodmFkZHJfaW5hdG9taWMpOworCXJldHVybiB1bndyaXR0ZW47Cit9CisKK3N0YXRpYyBpbnQK K2k5MTVfZ2VtX2d0dF9jb3B5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCSAgIHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIHVpbnQ2NF90IHNpemUsCisJCSAgIHVpbnQ2NF90IGRh dGFfb2Zmc2V0LCB1aW50NjRfdCBkYXRhX3B0cikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWNoYXIgX191c2VyICp1c2VyX2RhdGE7 CisJdWludDY0X3QgcmVtYWluOworCXVpbnQ2NF90IG9mZnNldCwgcGFnZV9iYXNlOworCWludCBw YWdlX29mZnNldCwgcGFnZV9sZW5ndGgsIHJldCA9IDA7CisKKwlyZXQgPSBpOTE1X2dlbV9vYmpf Z2d0dF9waW4ob2JqLCAwLCBQSU5fTUFQUEFCTEUpOworCWlmIChyZXQpCisJCWdvdG8gb3V0Owor CisJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKG9iaiwgZmFsc2UpOwor CWlmIChyZXQpCisJCWdvdG8gb3V0X3VucGluOworCisJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3B1 dF9mZW5jZShvYmopOworCWlmIChyZXQpCisJCWdvdG8gb3V0X3VucGluOworCisJdXNlcl9kYXRh ID0gdG9fdXNlcl9wdHIoZGF0YV9wdHIpOworCXJlbWFpbiA9IHNpemU7CisJb2Zmc2V0ID0gaTkx NV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9iaikgKyBkYXRhX29mZnNldDsKKworCW11dGV4X3VubG9j aygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCWlmIChsaWtlbHkoIWk5MTUucHJlZmF1bHRfZGlzYWJs ZSkpCisJCXJldCA9IGZhdWx0X2luX211bHRpcGFnZXNfd3JpdGVhYmxlKHVzZXJfZGF0YSwgcmVt YWluKTsKKworCS8qCisJICogcGFnZV9vZmZzZXQgPSBvZmZzZXQgd2l0aGluIHBhZ2UKKwkgKiBw YWdlX2Jhc2UgPSBwYWdlIG9mZnNldCB3aXRoaW4gYXBlcnR1cmUKKwkgKi8KKwlwYWdlX29mZnNl dCA9IG9mZnNldF9pbl9wYWdlKG9mZnNldCk7CisJcGFnZV9iYXNlID0gb2Zmc2V0ICYgUEFHRV9N QVNLOworCisJd2hpbGUgKHJlbWFpbiA+IDApIHsKKwkJLyogcGFnZV9sZW5ndGggPSBieXRlcyB0 byBjb3B5IGZvciB0aGlzIHBhZ2UgKi8KKwkJcGFnZV9sZW5ndGggPSByZW1haW47CisJCWlmICgo cGFnZV9vZmZzZXQgKyByZW1haW4pID4gUEFHRV9TSVpFKQorCQkJcGFnZV9sZW5ndGggPSBQQUdF X1NJWkUgLSBwYWdlX29mZnNldDsKKworCQkvKiBUaGlzIGlzIGEgc2xvdyByZWFkL3dyaXRlIGFz IGl0IHRyaWVzIHRvIHJlYWQgZnJvbQorCQkgKiBhbmQgd3JpdGUgdG8gdXNlciBtZW1vcnkgd2hp Y2ggbWF5IHJlc3VsdCBpbnRvIHBhZ2UKKwkJICogZmF1bHRzCisJCSAqLworCQlyZXQgPSBzbG93 X3VzZXJfYWNjZXNzKGRldl9wcml2LT5ndHQubWFwcGFibGUsIHBhZ2VfYmFzZSwKKwkJCQkgICAg ICAgcGFnZV9vZmZzZXQsIHVzZXJfZGF0YSwKKwkJCQkgICAgICAgcGFnZV9sZW5ndGgsIGZhbHNl KTsKKworCQlpZiAocmV0KSB7CisJCQlyZXQgPSAtRUZBVUxUOworCQkJYnJlYWs7CisJCX0KKwor CQlyZW1haW4gLT0gcGFnZV9sZW5ndGg7CisJCXVzZXJfZGF0YSArPSBwYWdlX2xlbmd0aDsKKwkJ cGFnZV9iYXNlICs9IHBhZ2VfbGVuZ3RoOworCQlwYWdlX29mZnNldCA9IDA7CisJfQorCisJbXV0 ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCitvdXRfdW5waW46CisJaTkxNV9nZW1fb2Jq ZWN0X2dndHRfdW5waW4ob2JqKTsKK291dDoKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgaW50 CiBpOTE1X2dlbV9zaG1lbV9wcmVhZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkgICAgIHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCkBAIC03MzcsMTcgKzgzMCwxNCBAQCBpOTE1 X2dlbV9wcmVhZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQln b3RvIG91dDsKIAl9CiAKLQkvKiBwcmltZSBvYmplY3RzIGhhdmUgbm8gYmFja2luZyBmaWxwIHRv IEdFTSBwcmVhZC9wd3JpdGUKLQkgKiBwYWdlcyBmcm9tLgotCSAqLwotCWlmICghb2JqLT5iYXNl LmZpbHApIHsKLQkJcmV0ID0gLUVJTlZBTDsKLQkJZ290byBvdXQ7Ci0JfQotCiAJdHJhY2VfaTkx NV9nZW1fb2JqZWN0X3ByZWFkKG9iaiwgYXJncy0+b2Zmc2V0LCBhcmdzLT5zaXplKTsKIAotCXJl dCA9IGk5MTVfZ2VtX3NobWVtX3ByZWFkKGRldiwgb2JqLCBhcmdzLCBmaWxlKTsKKwkvKiBwcmVh ZCBmb3Igbm9uIHNobWVtIGJhY2tlZCBvYmplY3RzICovCisJaWYgKCFvYmotPmJhc2UuZmlscCAm JiBvYmotPnRpbGluZ19tb2RlID09IEk5MTVfVElMSU5HX05PTkUpCisJCXJldCA9IGk5MTVfZ2Vt X2d0dF9jb3B5KGRldiwgb2JqLCBhcmdzLT5zaXplLAorCQkJCQlhcmdzLT5vZmZzZXQsIGFyZ3Mt PmRhdGFfcHRyKTsKKwllbHNlCisJCXJldCA9IGk5MTVfZ2VtX3NobWVtX3ByZWFkKGRldiwgb2Jq LCBhcmdzLCBmaWxlKTsKIAogb3V0OgogCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmot PmJhc2UpOwpAQCAtNzkzLDYgKzg4Myw3IEBAIGk5MTVfZ2VtX2d0dF9wd3JpdGVfZmFzdChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAl1aW50NjRfdCByZW1haW4sIG9mZnNldDsKIAlj aGFyIF9fdXNlciAqdXNlcl9kYXRhOwogCWludCByZXQ7CisJYm9vbCBmYXVsdGVkID0gZmFsc2U7 CiAKIAlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4ob2JqLCAwLCBQSU5fTUFQUEFCTEUgfCBQ SU5fTk9OQkxPQ0spOwogCWlmIChyZXQpIHsKQEAgLTg1MSwxMSArOTQyLDI1IEBAIGk5MTVfZ2Vt X2d0dF9wd3JpdGVfZmFzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJLyogSWYg d2UgZ2V0IGEgZmF1bHQgd2hpbGUgY29weWluZyBkYXRhLCB0aGVuIChwcmVzdW1hYmx5KSBvdXIK IAkJICogc291cmNlIHBhZ2UgaXNuJ3QgYXZhaWxhYmxlLiAgUmV0dXJuIHRoZSBlcnJvciBhbmQg d2UnbGwKIAkJICogcmV0cnkgaW4gdGhlIHNsb3cgcGF0aC4KKwkJICogSWYgdGhlIG9iamVjdCBp cyBub24tc2htZW0gYmFja2VkLCB3ZSByZXRyeSBhZ2FpbiB3aXRoIHRoZQorCQkgKiBwYXRoIHRo YXQgaGFuZGxlcyBwYWdlIGZhdWx0LgogCQkgKi8KLQkJaWYgKGZhc3RfdXNlcl93cml0ZShpOTE1 LT5ndHQubWFwcGFibGUsIHBhZ2VfYmFzZSwKLQkJCQkgICAgcGFnZV9vZmZzZXQsIHVzZXJfZGF0 YSwgcGFnZV9sZW5ndGgpKSB7Ci0JCQlyZXQgPSAtRUZBVUxUOwotCQkJZ290byBvdXRfZmx1c2g7 CisJCWlmIChmYXVsdGVkIHx8IGZhc3RfdXNlcl93cml0ZShpOTE1LT5ndHQubWFwcGFibGUsCisJ CQkJCQlwYWdlX2Jhc2UsIHBhZ2Vfb2Zmc2V0LAorCQkJCQkJdXNlcl9kYXRhLCBwYWdlX2xlbmd0 aCkpIHsKKwkJCWlmICghb2JqLT5iYXNlLmZpbHApIHsKKwkJCQlmYXVsdGVkID0gdHJ1ZTsKKwkJ CQlpZiAoc2xvd191c2VyX2FjY2VzcyhpOTE1LT5ndHQubWFwcGFibGUsCisJCQkJCQkgICAgIHBh Z2VfYmFzZSwKKwkJCQkJCSAgICAgcGFnZV9vZmZzZXQsIHVzZXJfZGF0YSwKKwkJCQkJCSAgICAg cGFnZV9sZW5ndGgsIHRydWUpKSB7CisJCQkJCXJldCA9IC1FRkFVTFQ7CisJCQkJCWdvdG8gb3V0 X2ZsdXNoOworCQkJCX0KKwkJCX0gZWxzZSB7CisJCQkJcmV0ID0gLUVGQVVMVDsKKwkJCQlnb3Rv IG91dF9mbHVzaDsKKwkJCX0KIAkJfQogCiAJCXJlbWFpbiAtPSBwYWdlX2xlbmd0aDsKQEAgLTEx MjEsMTQgKzEyMjYsNiBAQCBpOTE1X2dlbV9wd3JpdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKIAkJZ290byBvdXQ7CiAJfQogCi0JLyogcHJpbWUgb2JqZWN0cyBo YXZlIG5vIGJhY2tpbmcgZmlscCB0byBHRU0gcHJlYWQvcHdyaXRlCi0JICogcGFnZXMgZnJvbS4K LQkgKi8KLQlpZiAoIW9iai0+YmFzZS5maWxwKSB7Ci0JCXJldCA9IC1FSU5WQUw7Ci0JCWdvdG8g b3V0OwotCX0KLQogCXRyYWNlX2k5MTVfZ2VtX29iamVjdF9wd3JpdGUob2JqLCBhcmdzLT5vZmZz ZXQsIGFyZ3MtPnNpemUpOwogCiAJcmV0ID0gLUVGQVVMVDsKQEAgLTExMzksOCArMTIzNiw5IEBA IGk5MTVfZ2VtX3B3cml0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAogCSAqIHBlcnNwZWN0aXZlLCByZXF1aXJpbmcgbWFudWFsIGRldGlsaW5nIGJ5IHRoZSBjbGll bnQuCiAJICovCiAJaWYgKG9iai0+dGlsaW5nX21vZGUgPT0gSTkxNV9USUxJTkdfTk9ORSAmJgot CSAgICBvYmotPmJhc2Uud3JpdGVfZG9tYWluICE9IEk5MTVfR0VNX0RPTUFJTl9DUFUgJiYKLQkg ICAgY3B1X3dyaXRlX25lZWRzX2NsZmx1c2gob2JqKSkgeworCSAgICAoIW9iai0+YmFzZS5maWxw IHx8CisJICAgIChvYmotPmJhc2Uud3JpdGVfZG9tYWluICE9IEk5MTVfR0VNX0RPTUFJTl9DUFUg JiYKKwkgICAgY3B1X3dyaXRlX25lZWRzX2NsZmx1c2gob2JqKSkpKSB7CiAJCXJldCA9IGk5MTVf Z2VtX2d0dF9wd3JpdGVfZmFzdChkZXZfcHJpdiwgb2JqLCBhcmdzLCBmaWxlKTsKIAkJLyogTm90 ZSB0aGF0IHRoZSBndHQgcGF0aHMgbWlnaHQgZmFpbCB3aXRoIG5vbi1wYWdlLWJhY2tlZCB1c2Vy CiAJCSAqIHBvaW50ZXJzIChlLmcuIGd0dCBtYXBwaW5ncyB3aGVuIG1vdmluZyBkYXRhIGJldHdl ZW4KQEAgLTExNTAsNyArMTI0OCw3IEBAIGk5MTVfZ2VtX3B3cml0ZV9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCWlmIChyZXQgPT0gLUVGQVVMVCB8fCByZXQgPT0g LUVOT1NQQykgewogCQlpZiAob2JqLT5waHlzX2hhbmRsZSkKIAkJCXJldCA9IGk5MTVfZ2VtX3Bo eXNfcHdyaXRlKG9iaiwgYXJncywgZmlsZSk7Ci0JCWVsc2UKKwkJZWxzZSBpZiAob2JqLT5iYXNl LmZpbHApCiAJCQlyZXQgPSBpOTE1X2dlbV9zaG1lbV9wd3JpdGUoZGV2LCBvYmosIGFyZ3MsIGZp bGUpOwogCX0KIAotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==