From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v3 17/37] drm/i915/lmem: support pread Date: Fri, 9 Aug 2019 23:26:23 +0100 Message-ID: <20190809222643.23142-18-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 V2UgbmVlZCB0byBhZGQgc3VwcG9ydCBmb3IgcHJlYWQnaW5nIGFuIExNRU0gb2JqZWN0LgoKU2ln bmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBTdGV2ZSBIYW1wc29uIDxzdGV2ZW4udC5oYW1wc29uQGludGVsLmNvbT4KQ2M6IEpv b25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IEFiZGll bCBKYW51bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5jICAgICAgfCA4OCArKysrKysrKysrKysr KysrKysrCiAuLi4vZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCAgfCAg MiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgICAgfCAgNiAr KwogMyBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2xtZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9sbWVtLmMKaW5kZXggOGQ5NTcxMzVhZmE0Li5mNWExMzk5NGRjMmEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9sbWVtLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2xtZW0uYwpAQCAtOCwxMiArOCwxMDAg QEAKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fbG1lbS5oIgogI2luY2x1ZGUgImk5MTVfZHJ2Lmgi CiAKK3N0YXRpYyBpbnQgbG1lbV9wcmVhZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAorCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3ByZWFkICphcmcpCit7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOworCXN0 cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0gPSAmaTkxNS0+cnVudGltZV9wbTsKKwlpbnRlbF93 YWtlcmVmX3Qgd2FrZXJlZjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKKwljaGFyIF9fdXNl ciAqdXNlcl9kYXRhOworCXVuc2lnbmVkIGludCBvZmZzZXQ7CisJdW5zaWduZWQgbG9uZyBpZHg7 CisJdTY0IHJlbWFpbjsKKwlpbnQgcmV0OworCisJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3dhaXQo b2JqLAorCQkJCSAgIEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFLAorCQkJCSAgIE1BWF9TQ0hFRFVM RV9USU1FT1VUKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gaTkxNV9nZW1f b2JqZWN0X3Bpbl9wYWdlcyhvYmopOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpOTE1 X2dlbV9vYmplY3RfbG9jayhvYmopOworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fd2Nf ZG9tYWluKG9iaiwgZmFsc2UpOworCWlmIChyZXQpIHsKKwkJaTkxNV9nZW1fb2JqZWN0X3VubG9j ayhvYmopOworCQlnb3RvIG91dF91bnBpbjsKKwl9CisKKwlmZW5jZSA9IGk5MTVfZ2VtX29iamVj dF9sb2NrX2ZlbmNlKG9iaik7CisJaTkxNV9nZW1fb2JqZWN0X3VubG9jayhvYmopOworCWlmICgh ZmVuY2UpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXRfdW5waW47CisJfQorCisJd2Fr ZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KHJwbSk7CisKKwlyZW1haW4gPSBhcmctPnNpemU7 CisJdXNlcl9kYXRhID0gdTY0X3RvX3VzZXJfcHRyKGFyZy0+ZGF0YV9wdHIpOworCW9mZnNldCA9 IG9mZnNldF9pbl9wYWdlKGFyZy0+b2Zmc2V0KTsKKwlmb3IgKGlkeCA9IGFyZy0+b2Zmc2V0ID4+ IFBBR0VfU0hJRlQ7IHJlbWFpbjsgaWR4KyspIHsKKwkJdW5zaWduZWQgbG9uZyB1bndyaXR0ZW47 CisJCXZvaWQgX19pb21lbSAqdmFkZHI7CisJCWludCBsZW5ndGg7CisKKwkJbGVuZ3RoID0gcmVt YWluOworCQlpZiAob2Zmc2V0ICsgbGVuZ3RoID4gUEFHRV9TSVpFKQorCQkJbGVuZ3RoID0gUEFH RV9TSVpFIC0gb2Zmc2V0OworCisJCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X2xtZW1faW9fbWFw X3BhZ2VfYXRvbWljKG9iaiwgaWR4KTsKKwkJaWYgKCF2YWRkcikgeworCQkJcmV0ID0gLUVOT01F TTsKKwkJCWdvdG8gb3V0X3B1dDsKKwkJfQorCQl1bndyaXR0ZW4gPSBfX2NvcHlfdG9fdXNlcl9p bmF0b21pYyh1c2VyX2RhdGEsCisJCQkJCQkgICAgKHZvaWQgX19mb3JjZSAqKXZhZGRyICsgb2Zm c2V0LAorCQkJCQkJICAgIGxlbmd0aCk7CisJCWlvX21hcHBpbmdfdW5tYXBfYXRvbWljKHZhZGRy KTsKKwkJaWYgKHVud3JpdHRlbikgeworCQkJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfbG1lbV9p b19tYXBfcGFnZShvYmosIGlkeCk7CisJCQl1bndyaXR0ZW4gPSBjb3B5X3RvX3VzZXIodXNlcl9k YXRhLAorCQkJCQkJICh2b2lkIF9fZm9yY2UgKil2YWRkciArIG9mZnNldCwKKwkJCQkJCSBsZW5n dGgpOworCQkJaW9fbWFwcGluZ191bm1hcCh2YWRkcik7CisJCX0KKwkJaWYgKHVud3JpdHRlbikg eworCQkJcmV0ID0gLUVGQVVMVDsKKwkJCWdvdG8gb3V0X3B1dDsKKwkJfQorCisJCXJlbWFpbiAt PSBsZW5ndGg7CisJCXVzZXJfZGF0YSArPSBsZW5ndGg7CisJCW9mZnNldCA9IDA7CisJfQorCitv dXRfcHV0OgorCWludGVsX3J1bnRpbWVfcG1fcHV0KHJwbSwgd2FrZXJlZik7CisJaTkxNV9nZW1f b2JqZWN0X3VubG9ja19mZW5jZShvYmosIGZlbmNlKTsKK291dF91bnBpbjoKKwlpOTE1X2dlbV9v YmplY3RfdW5waW5fcGFnZXMob2JqKTsKKworCXJldHVybiByZXQ7Cit9CisKIGNvbnN0IHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1X2dlbV9sbWVtX29ial9vcHMgPSB7CiAJLmZs YWdzID0gSTkxNV9HRU1fT0JKRUNUX0lTX01BUFBBQkxFLAogCiAJLmdldF9wYWdlcyA9IGk5MTVf Z2VtX29iamVjdF9nZXRfcGFnZXNfYnVkZHksCiAJLnB1dF9wYWdlcyA9IGk5MTVfZ2VtX29iamVj dF9wdXRfcGFnZXNfYnVkZHksCiAJLnJlbGVhc2UgPSBpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9t ZW1vcnlfcmVnaW9uLAorCisJLnByZWFkID0gbG1lbV9wcmVhZCwKIH07CiAKIC8qIFhYWDogVGlt ZSB0byB2ZnVuYyB5b3VyIGxpZmUgdXA/ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKaW5kZXggMTljM2Y5ODA0YjY4Li5jZDA2MDUxZWI3 OTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3Rf dHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5 cGVzLmgKQEAgLTUzLDYgKzUzLDggQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Rfb3BzIHsK IAl2b2lkICgqdHJ1bmNhdGUpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwogCXZv aWQgKCp3cml0ZWJhY2spKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwogCisJaW50 ICgqcHJlYWQpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICosCisJCSAgICAgY29uc3Qgc3Ry dWN0IGRybV9pOTE1X2dlbV9wcmVhZCAqYXJnKTsKIAlpbnQgKCpwd3JpdGUpKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1f cHdyaXRlICphcmcpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA4NzM1ZGVhNzQ4MDku Ljk2ZTE0M2QxMzNkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC00NjUsNiArNDY1LDEy IEBAIGk5MTVfZ2VtX3ByZWFkX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAKIAl0cmFjZV9pOTE1X2dlbV9vYmplY3RfcHJlYWQob2JqLCBhcmdzLT5vZmZzZXQsIGFy Z3MtPnNpemUpOwogCisJcmV0ID0gLUVOT0RFVjsKKwlpZiAob2JqLT5vcHMtPnByZWFkKQorCQly ZXQgPSBvYmotPm9wcy0+cHJlYWQob2JqLCBhcmdzKTsKKwlpZiAocmV0ICE9IC1FTk9ERVYpCisJ CWdvdG8gb3V0OworCiAJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3dhaXQob2JqLAogCQkJCSAgIEk5 MTVfV0FJVF9JTlRFUlJVUFRJQkxFLAogCQkJCSAgIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKLS0g CjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4