From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v3 18/37] drm/i915/lmem: support pwrite Date: Fri, 9 Aug 2019 23:26:24 +0100 Message-ID: <20190809222643.23142-19-matthew.auld@intel.com> References: <20190809222643.23142-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190809222643.23142-1-matthew.auld@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: dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org V2UgbmVlZCB0byBhZGQgc3VwcG9ydCBmb3IgcHdyaXRlJ2luZyBhbiBMTUVNIG9iamVjdC4KClNp Z25lZC1vZmYtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KU2lnbmVk LW9mZi1ieTogU3RldmUgSGFtcHNvbiA8c3RldmVuLnQuaGFtcHNvbkBpbnRlbC5jb20+CkNjOiBK b29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+CkNjOiBBYmRp ZWwgSmFudWxndWUgPGFiZGllbC5qYW51bGd1ZUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2xtZW0uYyB8IDg3ICsrKysrKysrKysrKysrKysr KysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDg3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX2xtZW0uYwppbmRleCBmNWExMzk5NGRjMmEuLmYwMDA3OGFjMzMx ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2xtZW0uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5jCkBAIC05NCw2ICs5 NCw5MiBAQCBzdGF0aWMgaW50IGxtZW1fcHJlYWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiwKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50IGxtZW1fcHdyaXRlKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3B3cml0ZSAqYXJnKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9f aTkxNShvYmotPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtID0gJmk5 MTUtPnJ1bnRpbWVfcG07CisJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CisJc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2U7CisJY2hhciBfX3VzZXIgKnVzZXJfZGF0YTsKKwl1bnNpZ25lZCBpbnQgb2Zm c2V0OworCXVuc2lnbmVkIGxvbmcgaWR4OworCXU2NCByZW1haW47CisJaW50IHJldDsKKworCXJl dCA9IGk5MTVfZ2VtX29iamVjdF93YWl0KG9iaiwKKwkJCQkgICBJOTE1X1dBSVRfSU5URVJSVVBU SUJMRSwKKwkJCQkgICBNQVhfU0NIRURVTEVfVElNRU9VVCk7CisJaWYgKHJldCkKKwkJcmV0dXJu IHJldDsKKworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMob2JqKTsKKwlpZiAocmV0 KQorCQlyZXR1cm4gcmV0OworCisJaTkxNV9nZW1fb2JqZWN0X2xvY2sob2JqKTsKKwlyZXQgPSBp OTE1X2dlbV9vYmplY3Rfc2V0X3RvX3djX2RvbWFpbihvYmosIHRydWUpOworCWlmIChyZXQpIHsK KwkJaTkxNV9nZW1fb2JqZWN0X3VubG9jayhvYmopOworCQlnb3RvIG91dF91bnBpbjsKKwl9CisK KwlmZW5jZSA9IGk5MTVfZ2VtX29iamVjdF9sb2NrX2ZlbmNlKG9iaik7CisJaTkxNV9nZW1fb2Jq ZWN0X3VubG9jayhvYmopOworCWlmICghZmVuY2UpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290 byBvdXRfdW5waW47CisJfQorCisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KHJwbSk7 CisKKwlyZW1haW4gPSBhcmctPnNpemU7CisJdXNlcl9kYXRhID0gdTY0X3RvX3VzZXJfcHRyKGFy Zy0+ZGF0YV9wdHIpOworCW9mZnNldCA9IG9mZnNldF9pbl9wYWdlKGFyZy0+b2Zmc2V0KTsKKwlm b3IgKGlkeCA9IGFyZy0+b2Zmc2V0ID4+IFBBR0VfU0hJRlQ7IHJlbWFpbjsgaWR4KyspIHsKKwkJ dW5zaWduZWQgbG9uZyB1bndyaXR0ZW47CisJCXZvaWQgX19pb21lbSAqdmFkZHI7CisJCWludCBs ZW5ndGg7CisKKwkJbGVuZ3RoID0gcmVtYWluOworCQlpZiAob2Zmc2V0ICsgbGVuZ3RoID4gUEFH RV9TSVpFKQorCQkJbGVuZ3RoID0gUEFHRV9TSVpFIC0gb2Zmc2V0OworCisJCXZhZGRyID0gaTkx NV9nZW1fb2JqZWN0X2xtZW1faW9fbWFwX3BhZ2VfYXRvbWljKG9iaiwgaWR4KTsKKwkJaWYgKCF2 YWRkcikgeworCQkJcmV0ID0gLUVOT01FTTsKKwkJCWdvdG8gb3V0X3B1dDsKKwkJfQorCisJCXVu d3JpdHRlbiA9IF9fY29weV9mcm9tX3VzZXJfaW5hdG9taWNfbm9jYWNoZSgodm9pZCBfX2ZvcmNl Kil2YWRkciArIG9mZnNldCwKKwkJCQkJCQkgICAgICB1c2VyX2RhdGEsIGxlbmd0aCk7CisJCWlv X21hcHBpbmdfdW5tYXBfYXRvbWljKHZhZGRyKTsKKwkJaWYgKHVud3JpdHRlbikgeworCQkJdmFk ZHIgPSBpOTE1X2dlbV9vYmplY3RfbG1lbV9pb19tYXBfcGFnZShvYmosIGlkeCk7CisJCQl1bndy aXR0ZW4gPSBjb3B5X2Zyb21fdXNlcigodm9pZCBfX2ZvcmNlKil2YWRkciArIG9mZnNldCwKKwkJ CQkJCSAgIHVzZXJfZGF0YSwgbGVuZ3RoKTsKKwkJCWlvX21hcHBpbmdfdW5tYXAodmFkZHIpOwor CQl9CisJCWlmICh1bndyaXR0ZW4pIHsKKwkJCXJldCA9IC1FRkFVTFQ7CisJCQlnb3RvIG91dF9w dXQ7CisJCX0KKworCQlyZW1haW4gLT0gbGVuZ3RoOworCQl1c2VyX2RhdGEgKz0gbGVuZ3RoOwor CQlvZmZzZXQgPSAwOworCX0KKworb3V0X3B1dDoKKwlpbnRlbF9ydW50aW1lX3BtX3B1dChycG0s IHdha2VyZWYpOworCWk5MTVfZ2VtX29iamVjdF91bmxvY2tfZmVuY2Uob2JqLCBmZW5jZSk7Citv dXRfdW5waW46CisJaTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7CisKKwlyZXR1cm4g cmV0OworfQorCisKIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1X2dl bV9sbWVtX29ial9vcHMgPSB7CiAJLmZsYWdzID0gSTkxNV9HRU1fT0JKRUNUX0lTX01BUFBBQkxF LAogCkBAIC0xMDIsNiArMTg4LDcgQEAgY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Rf b3BzIGk5MTVfZ2VtX2xtZW1fb2JqX29wcyA9IHsKIAkucmVsZWFzZSA9IGk5MTVfZ2VtX29iamVj dF9yZWxlYXNlX21lbW9yeV9yZWdpb24sCiAKIAkucHJlYWQgPSBsbWVtX3ByZWFkLAorCS5wd3Jp dGUgPSBsbWVtX3B3cml0ZSwKIH07CiAKIC8qIFhYWDogVGltZSB0byB2ZnVuYyB5b3VyIGxpZmUg dXA/ICovCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA==