From mboxrd@z Thu Jan 1 00:00:00 1970 From: Qiang Yu Subject: [PATCH RFC 14/24] drm/lima: add MMU related functions Date: Fri, 18 May 2018 17:28:05 +0800 Message-ID: <20180518092815.25280-15-yuq825@gmail.com> References: <20180518092815.25280-1-yuq825@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180518092815.25280-1-yuq825@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org Cc: Simon Shields , Marek Vasut , Connor Abbott , Neil Armstrong , Andrei Paulau <7134956@gmail.com>, Vasily Khoruzhick , Qiang Yu , Erico Nunes List-Id: devicetree@vger.kernel.org RnJvbTogTGltYSBQcm9qZWN0IERldmVsb3BlcnMgPGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmc+CgpTaWduZWQtb2ZmLWJ5OiBRaWFuZyBZdSA8eXVxODI1QGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogTWFyZWsgVmFzdXQgPG1hcmV4QGRlbnguZGU+ClNpZ25lZC1vZmYtYnk6IEhlaWtv IFN0dWVibmVyIDxoZWlrb0BzbnRlY2guZGU+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2xpbWEvbGlt YV9tbXUuYyB8IDE1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9n cHUvZHJtL2xpbWEvbGltYV9tbXUuaCB8ICAzNCArKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDE4 OCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2xpbWEv bGltYV9tbXUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFf bW11LmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX21tdS5jIGIvZHJp dmVycy9ncHUvZHJtL2xpbWEvbGltYV9tbXUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjIyYWM0ZGIwNzg0OQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9saW1hL2xpbWFfbW11LmMKQEAgLTAsMCArMSwxNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQg KEMpIDIwMTctMjAxOCBMaW1hIFByb2plY3QKKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29w eSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo ZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAor ICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz b25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmln aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGlu CisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4K KyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZF TlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFC TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5H IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaW5jbHVk ZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxs aW51eC9kZXZpY2UuaD4KKworI2luY2x1ZGUgImxpbWFfZGV2aWNlLmgiCisjaW5jbHVkZSAibGlt YV9tbXUuaCIKKyNpbmNsdWRlICJsaW1hX3ZtLmgiCisjaW5jbHVkZSAibGltYV9vYmplY3QuaCIK KyNpbmNsdWRlICJsaW1hX3JlZ3MuaCIKKworI2RlZmluZSBtbXVfd3JpdGUocmVnLCBkYXRhKSB3 cml0ZWwoZGF0YSwgaXAtPmlvbWVtICsgTElNQV9NTVVfIyNyZWcpCisjZGVmaW5lIG1tdV9yZWFk KHJlZykgcmVhZGwoaXAtPmlvbWVtICsgTElNQV9NTVVfIyNyZWcpCisKKyNkZWZpbmUgbGltYV9t bXVfc2VuZF9jb21tYW5kKGNvbW1hbmQsIGNvbmRpdGlvbikJICAgICBcCisoewkJCQkJCQkgICAg IFwKKwlpbnQgX190aW1lb3V0LCBfX3JldCA9IDA7CQkJICAgICBcCisJCQkJCQkJICAgICBcCisJ bW11X3dyaXRlKENPTU1BTkQsIGNvbW1hbmQpOwkJCSAgICAgXAorCWZvciAoX190aW1lb3V0ID0g MTAwMDsgX190aW1lb3V0ID4gMDsgX190aW1lb3V0LS0pIHsgXAorCQlpZiAoY29uZGl0aW9uKQkJ CQkgICAgIFwKKwkJCWJyZWFrOwkJCQkgICAgIFwKKwl9CQkJCQkJICAgICBcCisJaWYgKCFfX3Rp bWVvdXQpCXsJCQkJICAgICBcCisJCWRldl9lcnIoZGV2LT5kZXYsICJtbXUgY29tbWFuZCAleCB0 aW1lb3V0XG4iLCBjb21tYW5kKTsgXAorCQlfX3JldCA9IC1FVElNRURPVVQ7CQkJICAgICBcCisJ fQkJCQkJCSAgICAgXAorCV9fcmV0OwkJCQkJCSAgICAgXAorfSkKKworc3RhdGljIGlycXJldHVy bl90IGxpbWFfbW11X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0 IGxpbWFfaXAgKmlwID0gZGF0YTsKKwlzdHJ1Y3QgbGltYV9kZXZpY2UgKmRldiA9IGlwLT5kZXY7 CisJdTMyIHN0YXR1cyA9IG1tdV9yZWFkKElOVF9TVEFUVVMpOworCXN0cnVjdCBsaW1hX3NjaGVk X3BpcGUgKnBpcGU7CisKKwkvKiBmb3Igc2hhcmVkIGlycSBjYXNlICovCisJaWYgKCFzdGF0dXMp CisJCXJldHVybiBJUlFfTk9ORTsKKworCWlmIChzdGF0dXMgJiBMSU1BX01NVV9JTlRfUEFHRV9G QVVMVCkgeworCQl1MzIgZmF1bHQgPSBtbXVfcmVhZChQQUdFX0ZBVUxUX0FERFIpOworCQlkZXZf ZXJyKGRldi0+ZGV2LCAibW11IHBhZ2UgZmF1bHQgYXQgMHgleCBmcm9tIGJ1cyBpZCAlZCBvZiB0 eXBlICVzIG9uICVzXG4iLAorCQkJZmF1bHQsIExJTUFfTU1VX1NUQVRVU19CVVNfSUQoc3RhdHVz KSwKKwkJCXN0YXR1cyAmIExJTUFfTU1VX1NUQVRVU19QQUdFX0ZBVUxUX0lTX1dSSVRFID8gIndy aXRlIiA6ICJyZWFkIiwKKwkJCWxpbWFfaXBfbmFtZShpcCkpOworCX0KKworCWlmIChzdGF0dXMg JiBMSU1BX01NVV9JTlRfUkVBRF9CVVNfRVJST1IpIHsKKwkJZGV2X2VycihkZXYtPmRldiwgIm1t dSAlcyBpcnEgYnVzIGVycm9yXG4iLCBsaW1hX2lwX25hbWUoaXApKTsKKwl9CisKKwkvKiBtYXNr IGFsbCBpbnRlcnJ1cHRzIGJlZm9yZSByZXN1bWUgKi8KKwltbXVfd3JpdGUoSU5UX01BU0ssIDAp OworCW1tdV93cml0ZShJTlRfQ0xFQVIsIHN0YXR1cyk7CisKKwlwaXBlID0gZGV2LT5waXBlICsg KGlwLT5pZCA9PSBsaW1hX2lwX2dwbW11ID8gbGltYV9waXBlX2dwIDogbGltYV9waXBlX3BwKTsK KwlsaW1hX3NjaGVkX3BpcGVfbW11X2Vycm9yKHBpcGUpOworCisJcmV0dXJuIElSUV9IQU5ETEVE OworfQorCitpbnQgbGltYV9tbXVfaW5pdChzdHJ1Y3QgbGltYV9pcCAqaXApCit7CisJc3RydWN0 IGxpbWFfZGV2aWNlICpkZXYgPSBpcC0+ZGV2OworCWludCBlcnI7CisKKwlpZiAoaXAtPmlkID09 IGxpbWFfaXBfcHBtbXVfYmNhc3QpCisJCXJldHVybiAwOworCisJbW11X3dyaXRlKERURV9BRERS LCAweENBRkVCQUJFKTsKKwlpZiAobW11X3JlYWQoRFRFX0FERFIpICE9IDB4Q0FGRUIwMDApIHsK KwkJZGV2X2VycihkZXYtPmRldiwgIm1tdSAlcyBkdGUgd3JpdGUgdGVzdCBmYWlsXG4iLCBsaW1h X2lwX25hbWUoaXApKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJZXJyID0gbGltYV9tbXVfc2Vu ZF9jb21tYW5kKExJTUFfTU1VX0NPTU1BTkRfSEFSRF9SRVNFVCwgbW11X3JlYWQoRFRFX0FERFIp ID09IDApOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwllcnIgPSBkZXZtX3JlcXVlc3Rf aXJxKGRldi0+ZGV2LCBpcC0+aXJxLCBsaW1hX21tdV9pcnFfaGFuZGxlciwKKwkJCSAgICAgICBJ UlFGX1NIQVJFRCwgbGltYV9pcF9uYW1lKGlwKSwgaXApOworCWlmIChlcnIpIHsKKwkJZGV2X2Vy cihkZXYtPmRldiwgIm1tdSAlcyBmYWlsIHRvIHJlcXVlc3QgaXJxXG4iLCBsaW1hX2lwX25hbWUo aXApKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwltbXVfd3JpdGUoSU5UX01BU0ssIExJTUFfTU1V X0lOVF9QQUdFX0ZBVUxUIHwgTElNQV9NTVVfSU5UX1JFQURfQlVTX0VSUk9SKTsKKwltbXVfd3Jp dGUoRFRFX0FERFIsICpsaW1hX2JvX2dldF9wYWdlcyhkZXYtPmVtcHR5X3ZtLT5wZCkpOworCXJl dHVybiBsaW1hX21tdV9zZW5kX2NvbW1hbmQoTElNQV9NTVVfQ09NTUFORF9FTkFCTEVfUEFHSU5H LAorCQkJCSAgICAgbW11X3JlYWQoU1RBVFVTKSAmIExJTUFfTU1VX1NUQVRVU19QQUdJTkdfRU5B QkxFRCk7Cit9CisKK3ZvaWQgbGltYV9tbXVfZmluaShzdHJ1Y3QgbGltYV9pcCAqaXApCit7CisK K30KKwordm9pZCBsaW1hX21tdV9zd2l0Y2hfdm0oc3RydWN0IGxpbWFfaXAgKmlwLCBzdHJ1Y3Qg bGltYV92bSAqdm0pCit7CisJc3RydWN0IGxpbWFfZGV2aWNlICpkZXYgPSBpcC0+ZGV2OworCisJ bGltYV9tbXVfc2VuZF9jb21tYW5kKExJTUFfTU1VX0NPTU1BTkRfRU5BQkxFX1NUQUxMLAorCQkJ ICAgICAgbW11X3JlYWQoU1RBVFVTKSAmIExJTUFfTU1VX1NUQVRVU19TVEFMTF9BQ1RJVkUpOwor CisJaWYgKHZtKQorCQltbXVfd3JpdGUoRFRFX0FERFIsICpsaW1hX2JvX2dldF9wYWdlcyh2bS0+ cGQpKTsKKworCS8qIGZsdXNoIHRoZSBUTEIgKi8KKwltbXVfd3JpdGUoQ09NTUFORCwgTElNQV9N TVVfQ09NTUFORF9aQVBfQ0FDSEUpOworCisJbGltYV9tbXVfc2VuZF9jb21tYW5kKExJTUFfTU1V X0NPTU1BTkRfRElTQUJMRV9TVEFMTCwKKwkJCSAgICAgICEobW11X3JlYWQoU1RBVFVTKSAmIExJ TUFfTU1VX1NUQVRVU19TVEFMTF9BQ1RJVkUpKTsKK30KKwordm9pZCBsaW1hX21tdV9wYWdlX2Zh dWx0X3Jlc3VtZShzdHJ1Y3QgbGltYV9pcCAqaXApCit7CisJc3RydWN0IGxpbWFfZGV2aWNlICpk ZXYgPSBpcC0+ZGV2OworCXUzMiBzdGF0dXMgPSBtbXVfcmVhZChTVEFUVVMpOworCisJaWYgKHN0 YXR1cyAmIExJTUFfTU1VX1NUQVRVU19QQUdFX0ZBVUxUX0FDVElWRSkgeworCQlkZXZfaW5mbyhk ZXYtPmRldiwgIm1tdSByZXN1bWVcbiIpOworCisJCW1tdV93cml0ZShJTlRfTUFTSywgMCk7CisJ CW1tdV93cml0ZShEVEVfQUREUiwgMHhDQUZFQkFCRSk7CisJCWxpbWFfbW11X3NlbmRfY29tbWFu ZChMSU1BX01NVV9DT01NQU5EX0hBUkRfUkVTRVQsIG1tdV9yZWFkKERURV9BRERSKSA9PSAwKTsK KwkgICAgICAgIG1tdV93cml0ZShJTlRfTUFTSywgTElNQV9NTVVfSU5UX1BBR0VfRkFVTFQgfCBM SU1BX01NVV9JTlRfUkVBRF9CVVNfRVJST1IpOworCQltbXVfd3JpdGUoRFRFX0FERFIsICpsaW1h X2JvX2dldF9wYWdlcyhkZXYtPmVtcHR5X3ZtLT5wZCkpOworCQlsaW1hX21tdV9zZW5kX2NvbW1h bmQoTElNQV9NTVVfQ09NTUFORF9FTkFCTEVfUEFHSU5HLAorCQkJCSAgICAgIG1tdV9yZWFkKFNU QVRVUykgJiBMSU1BX01NVV9TVEFUVVNfUEFHSU5HX0VOQUJMRUQpOworCX0KK30KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfbW11LmggYi9kcml2ZXJzL2dwdS9kcm0vbGlt YS9saW1hX21tdS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOTkz MDUyMWRkZmExCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9t bXUuaApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggTGlt YSBQcm9qZWN0CisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy ZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisg KiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQor ICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY UFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUg Q09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0s IERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg Q09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBE RUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKyNpZm5kZWYgX19MSU1BX01NVV9IX18KKyNk ZWZpbmUgX19MSU1BX01NVV9IX18KKworc3RydWN0IGxpbWFfaXA7CitzdHJ1Y3QgbGltYV92bTsK KworaW50IGxpbWFfbW11X2luaXQoc3RydWN0IGxpbWFfaXAgKmlwKTsKK3ZvaWQgbGltYV9tbXVf ZmluaShzdHJ1Y3QgbGltYV9pcCAqaXApOworCit2b2lkIGxpbWFfbW11X3N3aXRjaF92bShzdHJ1 Y3QgbGltYV9pcCAqaXAsIHN0cnVjdCBsaW1hX3ZtICp2bSk7Cit2b2lkIGxpbWFfbW11X3BhZ2Vf ZmF1bHRfcmVzdW1lKHN0cnVjdCBsaW1hX2lwICppcCk7CisKKyNlbmRpZgotLSAKMi4xNy4wCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK