From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v2 16/37] drm/i915/lmem: support pread Date: Thu, 27 Jun 2019 21:56:12 +0100 Message-ID: <20190627205633.1143-17-matthew.auld@intel.com> References: <20190627205633.1143-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id E832D6E84E for ; Thu, 27 Jun 2019 20:56:54 +0000 (UTC) In-Reply-To: <20190627205633.1143-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 List-Id: intel-gfx@lists.freedesktop.org V2UgbmVlZCB0byBhZGQgc3VwcG9ydCBmb3IgcHJlYWQnaW5nIGFuIExNRU0gb2JqZWN0LgoKU2ln bmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpDYzogSm9v bmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgpDYzogQWJkaWVs IEphbnVsZ3VlIDxhYmRpZWwuamFudWxndWVAbGludXguaW50ZWwuY29tPgotLS0KIC4uLi9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oICB8ICAyICsKIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgICB8ICA2ICsrCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yZWdpb25fbG1lbS5jICAgICAgfCA3NiArKysrKysrKysrKysrKysrKysr CiAzIGZpbGVzIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKaW5kZXggODBmZjVhZDliYzA3Li44 Y2RlZTE4NTI1MWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9vYmplY3RfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f b2JqZWN0X3R5cGVzLmgKQEAgLTUyLDYgKzUyLDggQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3Rfb3BzIHsKIAl2b2lkICgqdHJ1bmNhdGUpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopOwogCXZvaWQgKCp3cml0ZWJhY2spKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmop OwogCisJaW50ICgqcHJlYWQpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICosCisJCSAgICAg Y29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9wcmVhZCAqYXJnKTsKIAlpbnQgKCpwd3JpdGUpKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1f aTkxNV9nZW1fcHdyaXRlICphcmcpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA4NTY3 N2FlODk4NDkuLjRiYTM4NmFiMzVlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC00NjMs NiArNDYzLDEyIEBAIGk5MTVfZ2VtX3ByZWFkX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCiAKIAl0cmFjZV9pOTE1X2dlbV9vYmplY3RfcHJlYWQob2JqLCBhcmdzLT5v ZmZzZXQsIGFyZ3MtPnNpemUpOwogCisJcmV0ID0gLUVOT0RFVjsKKwlpZiAob2JqLT5vcHMtPnBy ZWFkKQorCQlyZXQgPSBvYmotPm9wcy0+cHJlYWQob2JqLCBhcmdzKTsKKwlpZiAocmV0ICE9IC1F Tk9ERVYpCisJCWdvdG8gb3V0OworCiAJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3dhaXQob2JqLAog CQkJCSAgIEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFLAogCQkJCSAgIE1BWF9TQ0hFRFVMRV9USU1F T1VUKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9sbWVt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fbG1lbS5jCmluZGV4IDcwMWJj YWMzNDc5ZS4uNTRiMmM3YmYxNzdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yZWdpb25fbG1lbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlZ2lv bl9sbWVtLmMKQEAgLTcsMTAgKzcsODYgQEAKICNpbmNsdWRlICJpbnRlbF9tZW1vcnlfcmVnaW9u LmgiCiAjaW5jbHVkZSAiaW50ZWxfcmVnaW9uX2xtZW0uaCIKIAorc3RhdGljIGludCBsbWVtX3By ZWFkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCSAgICAgIGNvbnN0IHN0cnVj dCBkcm1faTkxNV9nZW1fcHJlYWQgKmFyZykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSA9IHRvX2k5MTUob2JqLT5iYXNlLmRldik7CisJc3RydWN0IGludGVsX3J1bnRpbWVfcG0g KnJwbSA9ICZpOTE1LT5ydW50aW1lX3BtOworCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOworCXN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlOworCWNoYXIgX191c2VyICp1c2VyX2RhdGE7CisJdW5zaWdu ZWQgaW50IG9mZnNldDsKKwl1bnNpZ25lZCBsb25nIGlkeDsKKwl1NjQgcmVtYWluOworCWludCBy ZXQ7CisKKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7CisJaWYgKHJldCkK KwkJcmV0dXJuIHJldDsKKworCWk5MTVfZ2VtX29iamVjdF9sb2NrKG9iaik7CisJcmV0ID0gaTkx NV9nZW1fb2JqZWN0X3NldF90b193Y19kb21haW4ob2JqLCBmYWxzZSk7CisJaWYgKHJldCkgewor CQlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKG9iaik7CisJCWdvdG8gb3V0X3VucGluOworCX0KKwor CWZlbmNlID0gaTkxNV9nZW1fb2JqZWN0X2xvY2tfZmVuY2Uob2JqKTsKKwlpOTE1X2dlbV9vYmpl Y3RfdW5sb2NrKG9iaik7CisJaWYgKCFmZW5jZSkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3Rv IG91dF91bnBpbjsKKwl9CisKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQocnBtKTsK KworCXJlbWFpbiA9IGFyZy0+c2l6ZTsKKwl1c2VyX2RhdGEgPSB1NjRfdG9fdXNlcl9wdHIoYXJn LT5kYXRhX3B0cik7CisJb2Zmc2V0ID0gb2Zmc2V0X2luX3BhZ2UoYXJnLT5vZmZzZXQpOworCWZv ciAoaWR4ID0gYXJnLT5vZmZzZXQgPj4gUEFHRV9TSElGVDsgcmVtYWluOyBpZHgrKykgeworCQl1 bnNpZ25lZCBsb25nIHVud3JpdHRlbjsKKwkJdm9pZCBfX2lvbWVtICp2YWRkcjsKKwkJaW50IGxl bmd0aDsKKworCQlsZW5ndGggPSByZW1haW47CisJCWlmIChvZmZzZXQgKyBsZW5ndGggPiBQQUdF X1NJWkUpCisJCQlsZW5ndGggPSBQQUdFX1NJWkUgLSBvZmZzZXQ7CisKKwkJdmFkZHIgPSBpOTE1 X2dlbV9vYmplY3RfbG1lbV9pb19tYXBfcGFnZShvYmosIGlkeCk7CisJCWlmICghdmFkZHIpIHsK KwkJCXJldCA9IC1FTk9NRU07CisJCQlnb3RvIG91dF9wdXQ7CisJCX0KKworCQl1bndyaXR0ZW4g PSBjb3B5X3RvX3VzZXIodXNlcl9kYXRhLAorCQkJCQkgKHZvaWQgX19mb3JjZSAqKXZhZGRyICsg b2Zmc2V0LAorCQkJCQkgbGVuZ3RoKTsKKwkJaW9fbWFwcGluZ191bm1hcF9hdG9taWModmFkZHIp OworCQlpZiAodW53cml0dGVuKSB7CisJCQlyZXQgPSAtRUZBVUxUOworCQkJZ290byBvdXRfcHV0 OworCQl9CisKKwkJcmVtYWluIC09IGxlbmd0aDsKKwkJdXNlcl9kYXRhICs9IGxlbmd0aDsKKwkJ b2Zmc2V0ID0gMDsKKwl9CisKK291dF9wdXQ6CisJaW50ZWxfcnVudGltZV9wbV9wdXQocnBtLCB3 YWtlcmVmKTsKKwlpOTE1X2dlbV9vYmplY3RfdW5sb2NrX2ZlbmNlKG9iaiwgZmVuY2UpOworb3V0 X3VucGluOgorCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOworCisJcmV0dXJuIHJl dDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyByZWdp b25fbG1lbV9vYmpfb3BzID0gewogCS5nZXRfcGFnZXMgPSBpOTE1X21lbW9yeV9yZWdpb25fZ2V0 X3BhZ2VzX2J1ZGR5LAogCS5wdXRfcGFnZXMgPSBpOTE1X21lbW9yeV9yZWdpb25fcHV0X3BhZ2Vz X2J1ZGR5LAogCS5yZWxlYXNlID0gaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbWVtb3J5X3JlZ2lv biwKKworCS5wcmVhZCA9IGxtZW1fcHJlYWQsCiB9OwogCiBzdGF0aWMgc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKgotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZng=