From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Stach Subject: [PATCH v2 2/2] drm/etnaviv: mmuv2: allocate 2nd level page tables on demand Date: Tue, 8 May 2018 15:23:16 +0200 Message-ID: <20180508132316.22018-2-l.stach@pengutronix.de> References: <20180508132316.22018-1-l.stach@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by gabe.freedesktop.org (Postfix) with ESMTPS id 210B26E8A1 for ; Tue, 8 May 2018 13:23:18 +0000 (UTC) In-Reply-To: <20180508132316.22018-1-l.stach@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: etnaviv@lists.freedesktop.org Cc: patchwork-lst@pengutronix.de, kernel@pengutronix.de, dri-devel@lists.freedesktop.org, Russell King List-Id: dri-devel@lists.freedesktop.org V2l0aCBldG5hdml2IG5vdCBiZWluZyB0aWVkIGludG8gdGhlIElPTU1VIGZyYW1ld29yayBhbnlt b3JlLCB0aGUgTU1VCmZ1bmN0aW9ucyB3aWxsIG9ubHkgYmUgY2FsbGVkIHVuZGVyIHNsZWVwaW5n IGxvY2tzLiBUaHVzIHdlIGFyZSBhYmxlCnRvIGFsbG9jYXRlIHRoZSBtZW1vcnkgZm9yIHRoZSAy bmQgbGV2ZWwgcGFnZSB0YWJsZXMgb24gZGVtYW5kIHdpdGhvdXQKaGF2aW5nIHRvIGRlYWwgd2l0 aCBtZW1vcnkgYWxsb2NhdGlvbiBpbiBhdG9taWMgY29udGV4dC4KClRoaXMgc3BlZWRzIHVwIGRy aXZlciBpbnRpdGlhbGl6YXRpb24gb24gTU1VdjIgR1BVIGNvcmVzLCBhcyB3ZSBkb24ndApuZWVk IHRvIHByZWFsbG9jYXRlIGFsbCB0aGUgcGFnZSB0YWJsZSBtZW1vcnkgYW5kIGFsc28gcmVkdWNl cyBtZW1vcnkKY29uc3VtcHRpb24gZm9yIG1vc3Qgd29ya2xvYWRzLCBhcyBtb3N0IG9mIHRoZW0g d29uJ3QgdXNlIHRoZSBmdWxsCkdQVSB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UuCgpTaWduZWQtb2Zm LWJ5OiBMdWNhcyBTdGFjaCA8bC5zdGFjaEBwZW5ndXRyb25peC5kZT4KLS0tCnYyOiBmaWxsIE1U TEIgZm9yIHVucG9wdWxhdGVkIFNUTEJzIHdpdGggUFRFX0VYQ0VQVElPTgotLS0KIGRyaXZlcnMv Z3B1L2RybS9ldG5hdml2L2V0bmF2aXZfaW9tbXVfdjIuYyB8IDYzICsrKysrKysrKysrKy0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2lvbW11X3YyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2lvbW11X3YyLmMKaW5kZXggNDc3ODVk NjFjZDk1Li4yZDlkMDk2MDhiYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2 L2V0bmF2aXZfaW9tbXVfdjIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2 X2lvbW11X3YyLmMKQEAgLTQ3LDggKzQ3LDkgQEAgc3RydWN0IGV0bmF2aXZfaW9tbXV2Ml9kb21h aW4gewogCXUzMiAqbXRsYl9jcHU7CiAJZG1hX2FkZHJfdCBtdGxiX2RtYTsKIAkvKiBTKGxhdmUp IFRMQiBha2Egc2Vjb25kIGxldmVsIHBhZ2V0YWJsZSAqLwotCXUzMiAqc3RsYl9jcHVbMTAyNF07 Ci0JZG1hX2FkZHJfdCBzdGxiX2RtYVsxMDI0XTsKKwl1MzIgKnN0bGJfY3B1W01NVXYyX01BWF9T VExCX0VOVFJJRVNdOworCWRtYV9hZGRyX3Qgc3RsYl9kbWFbTU1VdjJfTUFYX1NUTEJfRU5UUklF U107CisJREVDTEFSRV9CSVRNQVAoc3RsYl9hbGxvY2F0ZWQsIE1NVXYyX01BWF9TVExCX0VOVFJJ RVMpOwogfTsKIAogc3RhdGljIHN0cnVjdCBldG5hdml2X2lvbW11djJfZG9tYWluICoKQEAgLTU3 LDEzICs1OCwzNSBAQCB0b19ldG5hdml2X2RvbWFpbihzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21h aW4gKmRvbWFpbikKIAlyZXR1cm4gY29udGFpbmVyX29mKGRvbWFpbiwgc3RydWN0IGV0bmF2aXZf aW9tbXV2Ml9kb21haW4sIGJhc2UpOwogfQogCitzdGF0aWMgaW50CitldG5hdml2X2lvbW11djJf ZW5zdXJlX3N0bGIoc3RydWN0IGV0bmF2aXZfaW9tbXV2Ml9kb21haW4gKmV0bmF2aXZfZG9tYWlu LAorCQkJICAgIGludCBzdGxiKQoreworCWlmICh0ZXN0X2JpdChzdGxiLCBldG5hdml2X2RvbWFp bi0+c3RsYl9hbGxvY2F0ZWQpKQorCQlyZXR1cm4gMDsKKworCWV0bmF2aXZfZG9tYWluLT5zdGxi X2NwdVtzdGxiXSA9CisJCQlkbWFfYWxsb2Nfd3JpdGVjb21iaW5lKGV0bmF2aXZfZG9tYWluLT5i YXNlLmRldiwKKwkJCQkJICAgICAgIFNaXzRLLAorCQkJCQkgICAgICAgJmV0bmF2aXZfZG9tYWlu LT5zdGxiX2RtYVtzdGxiXSwKKwkJCQkJICAgICAgIEdGUF9LRVJORUwpOworCisJaWYgKCFldG5h dml2X2RvbWFpbi0+c3RsYl9jcHVbc3RsYl0pCisJCXJldHVybiAtRU5PTUVNOworCisJX19zZXRf Yml0KHN0bGIsIGV0bmF2aXZfZG9tYWluLT5zdGxiX2FsbG9jYXRlZCk7CisJZXRuYXZpdl9kb21h aW4tPm10bGJfY3B1W3N0bGJdID0gZXRuYXZpdl9kb21haW4tPnN0bGJfZG1hW3N0bGJdIHwKKwkJ CQkJCSAgICAgIE1NVXYyX1BURV9QUkVTRU5UOworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50 IGV0bmF2aXZfaW9tbXV2Ml9tYXAoc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICpkb21haW4s CiAJCQkgICAgICAgdW5zaWduZWQgbG9uZyBpb3ZhLCBwaHlzX2FkZHJfdCBwYWRkciwKIAkJCSAg ICAgICBzaXplX3Qgc2l6ZSwgaW50IHByb3QpCiB7CiAJc3RydWN0IGV0bmF2aXZfaW9tbXV2Ml9k b21haW4gKmV0bmF2aXZfZG9tYWluID0KIAkJCXRvX2V0bmF2aXZfZG9tYWluKGRvbWFpbik7Ci0J aW50IG10bGJfZW50cnksIHN0bGJfZW50cnk7CisJaW50IG10bGJfZW50cnksIHN0bGJfZW50cnks IHJldDsKIAl1MzIgZW50cnkgPSAodTMyKXBhZGRyIHwgTU1VdjJfUFRFX1BSRVNFTlQ7CiAKIAlp ZiAoc2l6ZSAhPSBTWl80SykKQEAgLTc1LDYgKzk4LDEwIEBAIHN0YXRpYyBpbnQgZXRuYXZpdl9p b21tdXYyX21hcChzdHJ1Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKmRvbWFpbiwKIAltdGxiX2Vu dHJ5ID0gKGlvdmEgJiBNTVV2Ml9NVExCX01BU0spID4+IE1NVXYyX01UTEJfU0hJRlQ7CiAJc3Rs Yl9lbnRyeSA9IChpb3ZhICYgTU1VdjJfU1RMQl9NQVNLKSA+PiBNTVV2Ml9TVExCX1NISUZUOwog CisJcmV0ID0gZXRuYXZpdl9pb21tdXYyX2Vuc3VyZV9zdGxiKGV0bmF2aXZfZG9tYWluLCBtdGxi X2VudHJ5KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCiAJZXRuYXZpdl9kb21haW4tPnN0 bGJfY3B1W210bGJfZW50cnldW3N0bGJfZW50cnldID0gZW50cnk7CiAKIAlyZXR1cm4gMDsKQEAg LTEwMSw3ICsxMjgsNyBAQCBzdGF0aWMgc2l6ZV90IGV0bmF2aXZfaW9tbXV2Ml91bm1hcChzdHJ1 Y3QgZXRuYXZpdl9pb21tdV9kb21haW4gKmRvbWFpbiwKIHN0YXRpYyBpbnQgZXRuYXZpdl9pb21t dXYyX2luaXQoc3RydWN0IGV0bmF2aXZfaW9tbXV2Ml9kb21haW4gKmV0bmF2aXZfZG9tYWluKQog ewogCXUzMiAqcDsKLQlpbnQgcmV0LCBpLCBqOworCWludCByZXQsIGk7CiAKIAkvKiBhbGxvY2F0 ZSBzY3JhdGNoIHBhZ2UgKi8KIAlldG5hdml2X2RvbWFpbi0+YmFzZS5iYWRfcGFnZV9jcHUgPQpA QCAtMTMyLDIzICsxNTksOCBAQCBzdGF0aWMgaW50IGV0bmF2aXZfaW9tbXV2Ml9pbml0KHN0cnVj dCBldG5hdml2X2lvbW11djJfZG9tYWluICpldG5hdml2X2RvbWFpbikKIAkJZ290byBmYWlsX21l bTsKIAl9CiAKLQkvKiBwcmUtcG9wdWxhdGUgU1RMQiBwYWdlcyAobWF5IHdhbnQgdG8gc3dpdGNo IHRvIG9uLWRlbWFuZCBsYXRlcikgKi8KLQlmb3IgKGkgPSAwOyBpIDwgTU1VdjJfTUFYX1NUTEJf RU5UUklFUzsgaSsrKSB7Ci0JCWV0bmF2aXZfZG9tYWluLT5zdGxiX2NwdVtpXSA9Ci0JCQkJZG1h X2FsbG9jX3djKGV0bmF2aXZfZG9tYWluLT5iYXNlLmRldiwgU1pfNEssCi0JCQkJCSAgICAgJmV0 bmF2aXZfZG9tYWluLT5zdGxiX2RtYVtpXSwKLQkJCQkJICAgICBHRlBfS0VSTkVMKTsKLQkJaWYg KCFldG5hdml2X2RvbWFpbi0+c3RsYl9jcHVbaV0pIHsKLQkJCXJldCA9IC1FTk9NRU07Ci0JCQln b3RvIGZhaWxfbWVtOwotCQl9Ci0JCXAgPSBldG5hdml2X2RvbWFpbi0+c3RsYl9jcHVbaV07Ci0J CWZvciAoaiA9IDA7IGogPCBTWl80SyAvIDQ7IGorKykKLQkJCSpwKysgPSBNTVV2Ml9QVEVfRVhD RVBUSU9OOwotCi0JCWV0bmF2aXZfZG9tYWluLT5tdGxiX2NwdVtpXSA9IGV0bmF2aXZfZG9tYWlu LT5zdGxiX2RtYVtpXSB8Ci0JCQkJCSAgICAgIE1NVXYyX1BURV9QUkVTRU5UOwotCX0KKwltZW1z ZXQzMihldG5hdml2X2RvbWFpbi0+bXRsYl9jcHUsIE1NVXYyX1BURV9FWENFUFRJT04sCisJCSBN TVV2Ml9NQVhfU1RMQl9FTlRSSUVTKTsKIAogCXJldHVybiAwOwogCkBAIC0xNjYsMTMgKzE3OCw2 IEBAIHN0YXRpYyBpbnQgZXRuYXZpdl9pb21tdXYyX2luaXQoc3RydWN0IGV0bmF2aXZfaW9tbXV2 Ml9kb21haW4gKmV0bmF2aXZfZG9tYWluKQogCQlkbWFfZnJlZV93YyhldG5hdml2X2RvbWFpbi0+ YmFzZS5kZXYsIFNaXzRLLAogCQkJICAgIGV0bmF2aXZfZG9tYWluLT5tdGxiX2NwdSwgZXRuYXZp dl9kb21haW4tPm10bGJfZG1hKTsKIAotCWZvciAoaSA9IDA7IGkgPCBNTVV2Ml9NQVhfU1RMQl9F TlRSSUVTOyBpKyspIHsKLQkJaWYgKGV0bmF2aXZfZG9tYWluLT5zdGxiX2NwdVtpXSkKLQkJCWRt YV9mcmVlX3djKGV0bmF2aXZfZG9tYWluLT5iYXNlLmRldiwgU1pfNEssCi0JCQkJICAgIGV0bmF2 aXZfZG9tYWluLT5zdGxiX2NwdVtpXSwKLQkJCQkgICAgZXRuYXZpdl9kb21haW4tPnN0bGJfZG1h W2ldKTsKLQl9Ci0KIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xOTMsNyArMTk4LDcgQEAgc3RhdGlj IHZvaWQgZXRuYXZpdl9pb21tdXYyX2RvbWFpbl9mcmVlKHN0cnVjdCBldG5hdml2X2lvbW11X2Rv bWFpbiAqZG9tYWluKQogCQkgICAgZXRuYXZpdl9kb21haW4tPm10bGJfY3B1LCBldG5hdml2X2Rv bWFpbi0+bXRsYl9kbWEpOwogCiAJZm9yIChpID0gMDsgaSA8IE1NVXYyX01BWF9TVExCX0VOVFJJ RVM7IGkrKykgewotCQlpZiAoZXRuYXZpdl9kb21haW4tPnN0bGJfY3B1W2ldKQorCQlpZiAodGVz dF9iaXQoaSwgZXRuYXZpdl9kb21haW4tPnN0bGJfYWxsb2NhdGVkKSkKIAkJCWRtYV9mcmVlX3dj KGV0bmF2aXZfZG9tYWluLT5iYXNlLmRldiwgU1pfNEssCiAJCQkJICAgIGV0bmF2aXZfZG9tYWlu LT5zdGxiX2NwdVtpXSwKIAkJCQkgICAgZXRuYXZpdl9kb21haW4tPnN0bGJfZG1hW2ldKTsKLS0g CjIuMTcuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==