From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [RFC PATCH 20/42] drm/i915/lmem: support pread Date: Thu, 14 Feb 2019 14:57:18 +0000 Message-ID: <20190214145740.14521-21-matthew.auld@intel.com> References: <20190214145740.14521-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 947956E920 for ; Thu, 14 Feb 2019 14:58:08 +0000 (UTC) In-Reply-To: <20190214145740.14521-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 IEphbnVsZ3VlIDxhYmRpZWwuamFudWxndWVAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9sbWVtLmMgfCA3MyArKysrKysrKysrKysrKysrKysr KysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JlZ2lvbl9sbWVtLmMKaW5kZXggYzhiZWUwYzE4Yzg4Li42N2RjNTBiZTJlNmIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9sbWVtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYwpAQCAtMjYsMTAgKzI2 LDgzIEBACiAjaW5jbHVkZSAiaW50ZWxfbWVtb3J5X3JlZ2lvbi5oIgogI2luY2x1ZGUgImludGVs X3JlZ2lvbl9sbWVtLmgiCiAKK3N0YXRpYyBpbnQgcmVnaW9uX2xtZW1fcHJlYWQoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9pOTE1X2dl bV9wcmVhZCAqYXJncykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5 MTUob2JqLT5iYXNlLmRldik7CisJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CisJY2hhciBfX3Vz ZXIgKnVzZXJfZGF0YTsKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0OworCXVuc2lnbmVkIGxvbmcgaWR4 OworCXU2NCByZW1haW47CisJaW50IHJldDsKKworCXJldCA9IGk5MTVfZ2VtX29iamVjdF93YWl0 KG9iaiwKKwkJCQkgICBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSwKKwkJCQkgICBNQVhfU0NIRURV TEVfVElNRU9VVCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IGk5MTVfZ2Vt X29iamVjdF9waW5fcGFnZXMob2JqKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0 ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlp ZiAocmV0KQorCQlnb3RvIG91dF91bnBpbjsKKworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3Bt X2dldChpOTE1KTsKKworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fd2NfZG9tYWluKG9i aiwgZmFsc2UpOworCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJaWYg KHJldCkKKwkJZ290byBvdXRfcHV0OworCisJcmVtYWluID0gYXJncy0+c2l6ZTsKKwl1c2VyX2Rh dGEgPSB1NjRfdG9fdXNlcl9wdHIoYXJncy0+ZGF0YV9wdHIpOworCW9mZnNldCA9IG9mZnNldF9p bl9wYWdlKGFyZ3MtPm9mZnNldCk7CisJZm9yIChpZHggPSBhcmdzLT5vZmZzZXQgPj4gUEFHRV9T SElGVDsgcmVtYWluOyBpZHgrKykgeworCQl1bnNpZ25lZCBsb25nIHVud3JpdHRlbjsKKwkJdm9p ZCBfX2lvbWVtICp2YWRkcjsKKwkJaW50IGxlbmd0aDsKKworCQlsZW5ndGggPSByZW1haW47CisJ CWlmIChvZmZzZXQgKyBsZW5ndGggPiBQQUdFX1NJWkUpCisJCQlsZW5ndGggPSBQQUdFX1NJWkUg LSBvZmZzZXQ7CisKKwkJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfbG1lbV9pb19tYXBfcGFnZShv YmosIGlkeCk7CisJCWlmICghdmFkZHIpIHsKKwkJCXJldCA9IC1FTk9NRU07CisJCQlnb3RvIG91 dF9wdXQ7CisJCX0KKworCQl1bndyaXR0ZW4gPSBjb3B5X3RvX3VzZXIodXNlcl9kYXRhLAorCQkJ CQkgKHZvaWQgX19mb3JjZSAqKXZhZGRyICsgb2Zmc2V0LAorCQkJCQkgbGVuZ3RoKTsKKwkJaW9f bWFwcGluZ191bm1hcF9hdG9taWModmFkZHIpOworCQlpZiAodW53cml0dGVuKSB7CisJCQlyZXQg PSAtRUZBVUxUOworCQkJZ290byBvdXRfcHV0OworCQl9CisKKwkJcmVtYWluIC09IGxlbmd0aDsK KwkJdXNlcl9kYXRhICs9IGxlbmd0aDsKKwkJb2Zmc2V0ID0gMDsKKwl9CisKK291dF9wdXQ6CisJ aW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CitvdXRfdW5waW46CisJaTkxNV9n ZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7CisKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Rfb3BzIHJlZ2lvbl9sbWVtX29ial9vcHMg PSB7CiAJLmdldF9wYWdlcyA9IGk5MTVfbWVtb3J5X3JlZ2lvbl9nZXRfcGFnZXNfYnVkZHksCiAJ LnB1dF9wYWdlcyA9IGk5MTVfbWVtb3J5X3JlZ2lvbl9wdXRfcGFnZXNfYnVkZHksCiAJLnJlbGVh c2UgPSBpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tZW1vcnlfcmVnaW9uLAorCS5wcmVhZCA9IHJl Z2lvbl9sbWVtX3ByZWFkLAogfTsKIAogc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICoKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4