From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 4/6] drm/nouveau: Implement nvkm_memory_aperture() Date: Mon, 16 Sep 2019 17:17:55 +0200 Message-ID: <20190916151757.10953-5-thierry.reding@gmail.com> References: <20190916151757.10953-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190916151757.10953-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Ben Skeggs Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClRoZSBhcGVydHVyZSBv ZiBhIGJ1ZmZlciBpcyBhbHdheXMgc3BlY2lmaWMgdG8gd2hlcmUgaXRzIG1lbW9yeSB3YXMKYWxs b2NhdGVkIGZyb20uIEZ1cnRoZXJtb3JlLCB0aGUgZW5jb2Rpbmcgb2YgdGhlIGFwZXJ0dXJlIGlz IGFsd2F5cwp0aGUgc2FtZSwgcmVnYXJkbGVzcyBvZiBHUFUgZ2VuZXJhdGlvbi4KCkltcGxlbWVu dCB0aGUgbWVtb3J5IHRhcmdldCB0byBhcGVydHVyZSBjb252ZXJzaW9uIGluIG9uZSBjZW50cmFs CnBsYWNlIGFuZCBtYWtlIHRoZSBhcGVydHVyZSBpbmRlcGVuZGVudCBvZiB0aGUgVk1NLgoKTm90 ZSB0aGF0IHdlIG5vIGxvbmdlciByZXR1cm4gYSBuZWdhdGl2ZSBlcnJvciBjb2RlIGZvciB1bnN1 cHBvcnRlZAphcGVydHVyZXMuIEZpcnN0LCB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gdG8gYmVn aW4gd2l0aCBhbmQgaXMgYQpwcm9ncmFtbWluZyBlcnJvciwgd2hpY2ggaXMgd2h5IHdlIGhhdmUg YSBXQVJOIGFscmVhZHkuIFNlY29uZCwgdGhlCnN0YW5kYXJkIGFwZXJ0dXJlICgwLCBWUkFNKSBz aG91bGQgYmUgY29ycmVjdCBmb3IgdGhlIHZhc3QgbWFqb3JpdHkKb2YgbWVtb3J5IG9iamVjdHMu IExhc3RseSwgdGhlIGFwZXJ0dXJlIGFsc28gbmVlZHMgdG8gYmUgcHJvZ3JhbW1lZAppbnRvIG1h bnkgcmVnaXN0ZXJzIGFuZCBpbnN0YW5jZSBibG9ja3MuIEhhdmluZyB0byBjaGVjayBmb3IgZXJy b3IKY29kZXMgYXQgZXZlcnkgc3RlcCBvZiB0aGUgd2F5IHdvdWxkIG1ha2UgdGhpcyB2ZXJ5IHVu d2llbGR5LiBJZiBpbgphbnkgY2FzZSB0aGVyZSBpcyBldmVyIGEgcHJvYmxlbSB3aXRoIHRoZSBh cGVydHVyZSBiZWluZyB3cm9uZywgbGV0CnVzIHJlbHkgb24gdGhlIFdBUk4gdG8gdGVsbCB1cyBh Ym91dCBpdC4KClNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5j b20+Ci0tLQogLi4uL2RybS9ub3V2ZWF1L2luY2x1ZGUvbnZrbS9jb3JlL21lbW9yeS5oICAgIHwg MjggKysrKysrKysrKysrKysrKysrKwogLi4uL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L21tdS92 bW1nZjEwMC5jICAgIHwgIDcgKystLS0KIC4uLi9kcm0vbm91dmVhdS9udmttL3N1YmRldi9tbXUv dm1tZ3AxMDAuYyAgICB8ICA3ICsrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMo KyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv aW5jbHVkZS9udmttL2NvcmUvbWVtb3J5LmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNs dWRlL252a20vY29yZS9tZW1vcnkuaAppbmRleCBiMjNiZjYxMDlmMmQuLjI5YzYwZmJlZDE2NyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL2NvcmUvbWVt b3J5LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL2NvcmUvbWVt b3J5LmgKQEAgLTY0LDYgKzY0LDM0IEBAIHZvaWQgbnZrbV9tZW1vcnlfdGFnc19wdXQoc3RydWN0 IG52a21fbWVtb3J5ICosIHN0cnVjdCBudmttX2RldmljZSAqLAogI2RlZmluZSBudmttX21lbW9y eV9tYXAocCxvLHZtLHZhLGF2LGFjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKIAkocCktPmZ1bmMtPm1hcCgocCksKG8pLCh2bSksKHZhKSwoYXYpLChhYykpCiAKK3N0 YXRpYyBpbmxpbmUgdTMyCitudmttX21lbW9yeV9hcGVydHVyZShzdHJ1Y3QgbnZrbV9tZW1vcnkg Km1lbSkKK3sKKwllbnVtIG52a21fbWVtb3J5X3RhcmdldCB0YXJnZXQgPSBudmttX21lbW9yeV90 YXJnZXQobWVtKTsKKworCXN3aXRjaCAodGFyZ2V0KSB7CisJY2FzZSBOVktNX01FTV9UQVJHRVRf VlJBTToKKwkJcmV0dXJuIDA7CisKKwljYXNlIE5WS01fTUVNX1RBUkdFVF9IT1NUOgorCQlyZXR1 cm4gMjsKKworCWNhc2UgTlZLTV9NRU1fVEFSR0VUX05DT0g6CisJCXJldHVybiAzOworCisJZGVm YXVsdDoKKwkJYnJlYWs7CisJfQorCisJLyoKKwkgKiBUaGlzIGlzIGludmFsaWQsIHNvIHdhcm4g YWJvdXQgdGhpcyBsb3VkbHkuIEhvd2V2ZXIsIHJldHVybiAwIHRvCisJICogYXZvaWQgd3JpdGlu ZyBnYXJiYWdlIGludG8gcmVnaXN0ZXJzLiAwIGlzIHRoZSBWUkFNIGFwZXJ0dXJlIGFuZAorCSAq IG1pZ2h0IHN0aWxsIHdvcmsgaW4gbW9zdCBjYXNlcy4KKwkgKi8KKwlXQVJOKDEsICJpbnZhbGlk IG1lbW9yeSB0YXJnZXQ6ICVkXG4iLCB0YXJnZXQpOworCXJldHVybiAwOworfQorCiAvKiBhY2Nl c3NvciBtYWNyb3MgLSBrbWFwKCkvZG9uZSgpIG11c3QgYnJhY2tldCB1c2Ugb2YgdGhlIG90aGVy IGFjY2Vzc29yCiAgKiBtYWNyb3MgdG8gZ3VhcmFudGVlIGNvcnJlY3QgYmVoYXZpb3VyIGFjcm9z cyBhbGwgY2hpcHNldHMKICAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bnZrbS9zdWJkZXYvbW11L3ZtbWdmMTAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmtt L3N1YmRldi9tbXUvdm1tZ2YxMDAuYwppbmRleCBhYjY0MjRmYWY4NGMuLmZmYTY0YzBkM2VkYSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvbW11L3ZtbWdm MTAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvbW11L3ZtbWdm MTAwLmMKQEAgLTI0OCw4ICsyNDgsOSBAQCBnZjEwMF92bW1fdmFsaWQoc3RydWN0IG52a21fdm1t ICp2bW0sIHZvaWQgKmFyZ3YsIHUzMiBhcmdjLAogCXN0cnVjdCBudmttX2RldmljZSAqZGV2aWNl ID0gdm1tLT5tbXUtPnN1YmRldi5kZXZpY2U7CiAJc3RydWN0IG52a21fbWVtb3J5ICptZW1vcnkg PSBtYXAtPm1lbW9yeTsKIAl1OCAga2luZCwgcHJpdiwgcm8sIHZvbDsKLQlpbnQga2luZG4sIGFw ZXIsIHJldCA9IC1FTk9TWVM7CisJaW50IGtpbmRuLCByZXQgPSAtRU5PU1lTOwogCWNvbnN0IHU4 ICpraW5kbTsKKwl1MzIgYXBlcjsKIAogCW1hcC0+bmV4dCA9ICgxIDw8IHBhZ2UtPnNoaWZ0KSA+ PiA4OwogCW1hcC0+dHlwZSA9IG1hcC0+Y3RhZyA9IDA7CkBAIC0yNzAsOSArMjcxLDcgQEAgZ2Yx MDBfdm1tX3ZhbGlkKHN0cnVjdCBudmttX3ZtbSAqdm1tLCB2b2lkICphcmd2LCB1MzIgYXJnYywK IAkJcmV0dXJuIHJldDsKIAl9CiAKLQlhcGVyID0gdm1tLT5mdW5jLT5hcGVyKHRhcmdldCk7Ci0J aWYgKFdBUk5fT04oYXBlciA8IDApKQotCQlyZXR1cm4gYXBlcjsKKwlhcGVyID0gbnZrbV9tZW1v cnlfYXBlcnR1cmUobWFwLT5tZW1vcnkpOwogCiAJa2luZG0gPSB2bW0tPm1tdS0+ZnVuYy0+a2lu ZCh2bW0tPm1tdSwgJmtpbmRuKTsKIAlpZiAoa2luZCA+PSBraW5kbiB8fCBraW5kbVtraW5kXSA9 PSAweGZmKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRl di9tbXUvdm1tZ3AxMDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L21t dS92bW1ncDEwMC5jCmluZGV4IGI0ZjUxOTc2OGQ1ZS4uNGExYTY1ODMyOGU1IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9tbXUvdm1tZ3AxMDAuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9tbXUvdm1tZ3AxMDAuYwpAQCAt MzIxLDggKzMyMSw5IEBAIGdwMTAwX3ZtbV92YWxpZChzdHJ1Y3QgbnZrbV92bW0gKnZtbSwgdm9p ZCAqYXJndiwgdTMyIGFyZ2MsCiAJc3RydWN0IG52a21fZGV2aWNlICpkZXZpY2UgPSB2bW0tPm1t dS0+c3ViZGV2LmRldmljZTsKIAlzdHJ1Y3QgbnZrbV9tZW1vcnkgKm1lbW9yeSA9IG1hcC0+bWVt b3J5OwogCXU4ICBraW5kLCBwcml2LCBybywgdm9sOwotCWludCBraW5kbiwgYXBlciwgcmV0ID0g LUVOT1NZUzsKKwlpbnQga2luZG4sIHJldCA9IC1FTk9TWVM7CiAJY29uc3QgdTggKmtpbmRtOwor CXUzMiBhcGVyOwogCiAJbWFwLT5uZXh0ID0gKDFVTEwgPDwgcGFnZS0+c2hpZnQpID4+IDQ7CiAJ bWFwLT50eXBlID0gMDsKQEAgLTM0Myw5ICszNDQsNyBAQCBncDEwMF92bW1fdmFsaWQoc3RydWN0 IG52a21fdm1tICp2bW0sIHZvaWQgKmFyZ3YsIHUzMiBhcmdjLAogCQlyZXR1cm4gcmV0OwogCX0K IAotCWFwZXIgPSB2bW0tPmZ1bmMtPmFwZXIodGFyZ2V0KTsKLQlpZiAoV0FSTl9PTihhcGVyIDwg MCkpCi0JCXJldHVybiBhcGVyOworCWFwZXIgPSBudmttX21lbW9yeV9hcGVydHVyZShtYXAtPm1l bW9yeSk7CiAKIAlraW5kbSA9IHZtbS0+bW11LT5mdW5jLT5raW5kKHZtbS0+bW11LCAma2luZG4p OwogCWlmIChraW5kID49IGtpbmRuIHx8IGtpbmRtW2tpbmRdID09IDB4ZmYpIHsKLS0gCjIuMjMu MAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTm91dmVh dSBtYWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9ub3V2ZWF1