From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lowry Li (Arm Technology China)" Subject: [PATCH v2 1/2] drm/komeda: Adds SMMU support Date: Thu, 6 Jun 2019 09:53:05 +0000 Message-ID: <1559814765-18455-2-git-send-email-lowry.li@arm.com> References: <1559814765-18455-1-git-send-email-lowry.li@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03on0602.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe08::602]) by gabe.freedesktop.org (Postfix) with ESMTPS id 872E689791 for ; Thu, 6 Jun 2019 09:53:08 +0000 (UTC) In-Reply-To: <1559814765-18455-1-git-send-email-lowry.li@arm.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Liviu Dudau , "james qian wang (Arm Technology China)" , "maarten.lankhorst@linux.intel.com" , "seanpaul@chromium.org" , "airlied@linux.ie" , Brian Starkey Cc: Ayan Halder , "Jonathan Chai (Arm Technology China)" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "Julien Yin (Arm Technology China)" , nd List-Id: dri-devel@lists.freedesktop.org RnJvbTogIkxvd3J5IExpIChBcm0gVGVjaG5vbG9neSBDaGluYSkiIDxMb3dyeS5MaUBhcm0uY29t Pg0KDQpBZGRzIGlvbW11X2Nvbm5lY3QgYW5kIGRpc2Nvbm5lY3QgZm9yIFNNTVUgc3VwcG9ydCwg YW5kIGNvbmZpZ3VyZXMNClRCVSB0cmFuc2xhdGlvbiBvbmNlIFNNTVUgaGFzIGJlZW4gYXR0YWNo ZWQgdG8gdGhlIGRpc3BsYXkgZGV2aWNlLg0KDQpTaWduZWQtb2ZmLWJ5OiBMb3dyeSBMaSAoQXJt IFRlY2hub2xvZ3kgQ2hpbmEpIDxsb3dyeS5saUBhcm0uY29tPg0KLS0tDQogLi4uL2dwdS9kcm0v YXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfY29tcG9uZW50LmMgfCAgNSArKysNCiBkcml2ZXJz L2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfZGV2LmMgICB8IDQ5ICsrKysrKysr KysrKysrKysrKysrKysNCiBkcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVk YV9kZXYuYyAgICB8IDE4ICsrKysrKysrDQogZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tv bWVkYS9rb21lZGFfZGV2LmggICAgfCAgNyArKysrDQogLi4uL2RybS9hcm0vZGlzcGxheS9rb21l ZGEva29tZWRhX2ZyYW1lYnVmZmVyLmMgICAgfCAgMiArDQogLi4uL2RybS9hcm0vZGlzcGxheS9r b21lZGEva29tZWRhX2ZyYW1lYnVmZmVyLmggICAgfCAgMiArDQogNiBmaWxlcyBjaGFuZ2VkLCA4 MyBpbnNlcnRpb25zKCspDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3Bs YXkva29tZWRhL2Q3MS9kNzFfY29tcG9uZW50LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3Bs YXkva29tZWRhL2Q3MS9kNzFfY29tcG9uZW50LmMNCmluZGV4IDRlMjZhODAuLjRhNDhkZDYgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfY29t cG9uZW50LmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEvZDcxL2Q3 MV9jb21wb25lbnQuYw0KQEAgLTIxNSw2ICsyMTUsOCBAQCBzdGF0aWMgdm9pZCBkNzFfbGF5ZXJf dXBkYXRlKHN0cnVjdCBrb21lZGFfY29tcG9uZW50ICpjLA0KIAltYWxpZHBfd3JpdGUzMihyZWcs IExBWUVSX0ZNVCwga2ZiLT5mb3JtYXRfY2Fwcy0+aHdfaWQpOw0KIAltYWxpZHBfd3JpdGUzMihy ZWcsIEJMS19JTl9TSVpFLCBIVl9TSVpFKHN0LT5oc2l6ZSwgc3QtPnZzaXplKSk7DQogDQorCWlm IChrZmItPmlzX3ZhKQ0KKwkJY3RybCB8PSBMX1RCVV9FTjsNCiAJbWFsaWRwX3dyaXRlMzJfbWFz ayhyZWcsIEJMS19DT05UUk9MLCBjdHJsX21hc2ssIGN0cmwpOw0KIH0NCiANCkBAIC0zNDgsNiAr MzUwLDkgQEAgc3RhdGljIHZvaWQgZDcxX3diX2xheWVyX3VwZGF0ZShzdHJ1Y3Qga29tZWRhX2Nv bXBvbmVudCAqYywNCiAJCQkgICAgICAgZmItPnBpdGNoZXNbaV0gJiAweEZGRkYpOw0KIAl9DQog DQorCWlmIChrZmItPmlzX3ZhKQ0KKwkJY3RybCB8PSBMV19UQlVfRU47DQorDQogCW1hbGlkcF93 cml0ZTMyKHJlZywgTEFZRVJfRk1ULCBrZmItPmZvcm1hdF9jYXBzLT5od19pZCk7DQogCW1hbGlk cF93cml0ZTMyKHJlZywgQkxLX0lOX1NJWkUsIEhWX1NJWkUoc3QtPmhzaXplLCBzdC0+dnNpemUp KTsNCiAJbWFsaWRwX3dyaXRlMzIocmVnLCBCTEtfSU5QVVRfSUQwLCB0b19kNzFfaW5wdXRfaWQo JnN0YXRlLT5pbnB1dHNbMF0pKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rp c3BsYXkva29tZWRhL2Q3MS9kNzFfZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkv a29tZWRhL2Q3MS9kNzFfZGV2LmMNCmluZGV4IDhlNjgyYzcuLjFiOWU3MzQgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfZGV2LmMNCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEvZDcxL2Q3MV9kZXYuYw0KQEAgLTUx Nyw2ICs1MTcsNTMgQEAgc3RhdGljIHZvaWQgZDcxX2luaXRfZm10X3RibChzdHJ1Y3Qga29tZWRh X2RldiAqbWRldikNCiAJdGFibGUtPm5fZm9ybWF0cyA9IEFSUkFZX1NJWkUoZDcxX2Zvcm1hdF9j YXBzX3RhYmxlKTsNCiB9DQogDQorc3RhdGljIGludCBkNzFfY29ubmVjdF9pb21tdShzdHJ1Y3Qg a29tZWRhX2RldiAqbWRldikNCit7DQorCXN0cnVjdCBkNzFfZGV2ICpkNzEgPSBtZGV2LT5jaGlw X2RhdGE7DQorCXUzMiBfX2lvbWVtICpyZWcgPSBkNzEtPmdjdV9hZGRyOw0KKwl1MzIgY2hlY2tf Yml0cyA9IChkNzEtPm51bV9waXBlbGluZXMgPT0gMikgPw0KKwkJCSBHQ1VfU1RBVFVTX1RDUzAg fCBHQ1VfU1RBVFVTX1RDUzEgOiBHQ1VfU1RBVFVTX1RDUzA7DQorCWludCBpLCByZXQ7DQorDQor CWlmICghZDcxLT5pbnRlZ3JhdGVzX3RidSkNCisJCXJldHVybiAtMTsNCisNCisJbWFsaWRwX3dy aXRlMzJfbWFzayhyZWcsIEJMS19DT05UUk9MLCAweDcsIFRCVV9DT05ORUNUX01PREUpOw0KKw0K KwlyZXQgPSBkcF93YWl0X2NvbmQoaGFzX2JpdHMoY2hlY2tfYml0cywgbWFsaWRwX3JlYWQzMihy ZWcsIEJMS19TVEFUVVMpKSwNCisJCQkxMDAsIDEwMDAsIDEwMDApOw0KKwlpZiAocmV0IDw9IDAp IHsNCisJCURSTV9FUlJPUigiY29ubmVjdCB0byBUQ1UgdGltZW91dCFcbiIpOw0KKwkJbWFsaWRw X3dyaXRlMzJfbWFzayhyZWcsIEJMS19DT05UUk9MLCAweDcsIElOQUNUSVZFX01PREUpOw0KKwkJ cmV0dXJuIC1FVElNRURPVVQ7DQorCX0NCisNCisJZm9yIChpID0gMDsgaSA8IGQ3MS0+bnVtX3Bp cGVsaW5lczsgaSsrKQ0KKwkJbWFsaWRwX3dyaXRlMzJfbWFzayhkNzEtPnBpcGVzW2ldLT5scHVf YWRkciwgTFBVX1RCVV9DT05UUk9MLA0KKwkJCQkgICAgTFBVX1RCVV9DVFJMX1RMQlBFTiwgTFBV X1RCVV9DVFJMX1RMQlBFTik7DQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgaW50IGQ3MV9k aXNjb25uZWN0X2lvbW11KHN0cnVjdCBrb21lZGFfZGV2ICptZGV2KQ0KK3sNCisJc3RydWN0IGQ3 MV9kZXYgKmQ3MSA9IG1kZXYtPmNoaXBfZGF0YTsNCisJdTMyIF9faW9tZW0gKnJlZyA9IGQ3MS0+ Z2N1X2FkZHI7DQorCXUzMiBjaGVja19iaXRzID0gKGQ3MS0+bnVtX3BpcGVsaW5lcyA9PSAyKSA/ DQorCQkJIEdDVV9TVEFUVVNfVENTMCB8IEdDVV9TVEFUVVNfVENTMSA6IEdDVV9TVEFUVVNfVENT MDsNCisJaW50IHJldDsNCisNCisJbWFsaWRwX3dyaXRlMzJfbWFzayhyZWcsIEJMS19DT05UUk9M LCAweDcsIFRCVV9ESVNDT05ORUNUX01PREUpOw0KKw0KKwlyZXQgPSBkcF93YWl0X2NvbmQoKCht YWxpZHBfcmVhZDMyKHJlZywgQkxLX1NUQVRVUykgJiBjaGVja19iaXRzKSA9PSAwKSwNCisJCQkx MDAsIDEwMDAsIDEwMDApOw0KKwlpZiAocmV0IDwgMCkgew0KKwkJRFJNX0VSUk9SKCJkaXNjb25u ZWN0IGZyb20gVENVIHRpbWVvdXQhXG4iKTsNCisJCW1hbGlkcF93cml0ZTMyX21hc2socmVnLCBC TEtfQ09OVFJPTCwgMHg3LCBJTkFDVElWRV9NT0RFKTsNCisJfQ0KKw0KKwlyZXR1cm4gcmV0Ow0K K30NCisNCiBzdGF0aWMgc3RydWN0IGtvbWVkYV9kZXZfZnVuY3MgZDcxX2NoaXBfZnVuY3MgPSB7 DQogCS5pbml0X2Zvcm1hdF90YWJsZSA9IGQ3MV9pbml0X2ZtdF90YmwsDQogCS5lbnVtX3Jlc291 cmNlcwk9IGQ3MV9lbnVtX3Jlc291cmNlcywNCkBAIC01MjcsNiArNTc0LDggQEAgc3RhdGljIHZv aWQgZDcxX2luaXRfZm10X3RibChzdHJ1Y3Qga29tZWRhX2RldiAqbWRldikNCiAJLm9uX29mZl92 YmxhbmsJPSBkNzFfb25fb2ZmX3ZibGFuaywNCiAJLmNoYW5nZV9vcG1vZGUJPSBkNzFfY2hhbmdl X29wbW9kZSwNCiAJLmZsdXNoCQk9IGQ3MV9mbHVzaCwNCisJLmNvbm5lY3RfaW9tbXUJPSBkNzFf Y29ubmVjdF9pb21tdSwNCisJLmRpc2Nvbm5lY3RfaW9tbXUgPSBkNzFfZGlzY29ubmVjdF9pb21t dSwNCiB9Ow0KIA0KIHN0cnVjdCBrb21lZGFfZGV2X2Z1bmNzICoNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kZXYuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2Rldi5jDQppbmRleCBjOTJlMTYxLi5lODBl NjczIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21l ZGFfZGV2LmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRh X2Rldi5jDQpAQCAtMjUzLDYgKzI1MywxOSBAQCBzdHJ1Y3Qga29tZWRhX2RldiAqa29tZWRhX2Rl dl9jcmVhdGUoc3RydWN0IGRldmljZSAqZGV2KQ0KIAlkZXYtPmRtYV9wYXJtcyA9ICZtZGV2LT5k bWFfcGFybXM7DQogCWRtYV9zZXRfbWF4X3NlZ19zaXplKGRldiwgRE1BX0JJVF9NQVNLKDMyKSk7 DQogDQorCW1kZXYtPmlvbW11ID0gaW9tbXVfZ2V0X2RvbWFpbl9mb3JfZGV2KG1kZXYtPmRldik7 DQorCWlmICghbWRldi0+aW9tbXUpDQorCQlEUk1fSU5GTygiY29udGludWUgd2l0aG91dCBJT01N VSBzdXBwb3J0IVxuIik7DQorDQorCWlmIChtZGV2LT5pb21tdSAmJiBtZGV2LT5mdW5jcy0+Y29u bmVjdF9pb21tdSkgew0KKwkJZXJyID0gbWRldi0+ZnVuY3MtPmNvbm5lY3RfaW9tbXUobWRldik7 DQorCQlpZiAoZXJyKSB7DQorCQkJbWRldi0+aW9tbXUgPSBOVUxMOw0KKwkJCURSTV9FUlJPUigi Y29ubmVjdCBpb21tdSBmYWlsZWQuXG4iKTsNCisJCQlnb3RvIGVycl9jbGVhbnVwOw0KKwkJfQ0K Kwl9DQorDQogCWVyciA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmZGV2LT5rb2JqLCAma29tZWRhX3N5 c2ZzX2F0dHJfZ3JvdXApOw0KIAlpZiAoZXJyKSB7DQogCQlEUk1fRVJST1IoImNyZWF0ZSBzeXNm cyBncm91cCBmYWlsZWQuXG4iKTsNCkBAIC0yODIsNiArMjk1LDExIEBAIHZvaWQga29tZWRhX2Rl dl9kZXN0cm95KHN0cnVjdCBrb21lZGFfZGV2ICptZGV2KQ0KIAlkZWJ1Z2ZzX3JlbW92ZV9yZWN1 cnNpdmUobWRldi0+ZGVidWdmc19yb290KTsNCiAjZW5kaWYNCiANCisJaWYgKG1kZXYtPmlvbW11 ICYmIG1kZXYtPmZ1bmNzLT5kaXNjb25uZWN0X2lvbW11KQ0KKwkJaWYgKG1kZXYtPmZ1bmNzLT5k aXNjb25uZWN0X2lvbW11KG1kZXYpKQ0KKwkJCURSTV9FUlJPUigiZGlzY29ubmVjdCBpb21tdSBm YWlsZWQuXG4iKTsNCisJbWRldi0+aW9tbXUgPSBOVUxMOw0KKw0KIAlmb3IgKGkgPSAwOyBpIDwg bWRldi0+bl9waXBlbGluZXM7IGkrKykgew0KIAkJa29tZWRhX3BpcGVsaW5lX2Rlc3Ryb3kobWRl diwgbWRldi0+cGlwZWxpbmVzW2ldKTsNCiAJCW1kZXYtPnBpcGVsaW5lc1tpXSA9IE5VTEw7DQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZGV2 LmggYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kZXYuaA0KaW5k ZXggODNhY2U3MS4uZGFjMWVkYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlz cGxheS9rb21lZGEva29tZWRhX2Rldi5oDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3Bs YXkva29tZWRhL2tvbWVkYV9kZXYuaA0KQEAgLTkyLDYgKzkyLDEwIEBAIHN0cnVjdCBrb21lZGFf ZGV2X2Z1bmNzIHsNCiAJaW50ICgqZW51bV9yZXNvdXJjZXMpKHN0cnVjdCBrb21lZGFfZGV2ICpt ZGV2KTsNCiAJLyoqIEBjbGVhbnVwOiBjYWxsIHRvIGNoaXAgdG8gY2xlYW51cCBrb21lZGFfZGV2 LT5jaGlwIGRhdGEgKi8NCiAJdm9pZCAoKmNsZWFudXApKHN0cnVjdCBrb21lZGFfZGV2ICptZGV2 KTsNCisJLyoqIEBjb25uZWN0X2lvbW11OiBPcHRpb25hbCwgY29ubmVjdCB0byBleHRlcm5hbCBp b21tdSAqLw0KKwlpbnQgKCpjb25uZWN0X2lvbW11KShzdHJ1Y3Qga29tZWRhX2RldiAqbWRldik7 DQorCS8qKiBAZGlzY29ubmVjdF9pb21tdTogT3B0aW9uYWwsIGRpc2Nvbm5lY3QgdG8gZXh0ZXJu YWwgaW9tbXUgKi8NCisJaW50ICgqZGlzY29ubmVjdF9pb21tdSkoc3RydWN0IGtvbWVkYV9kZXYg Km1kZXYpOw0KIAkvKioNCiAJICogQGlycV9oYW5kbGVyOg0KIAkgKg0KQEAgLTE4NCw2ICsxODgs OSBAQCBzdHJ1Y3Qga29tZWRhX2RldiB7DQogCSAqLw0KIAl2b2lkICpjaGlwX2RhdGE7DQogDQor CS8qKiBAaW9tbXU6IGlvbW11IGRvbWFpbiAqLw0KKwlzdHJ1Y3QgaW9tbXVfZG9tYWluICppb21t dTsNCisNCiAJLyoqIEBkZWJ1Z2ZzX3Jvb3Q6IHJvb3QgZGlyZWN0b3J5IG9mIGtvbWVkYSBkZWJ1 Z2ZzICovDQogCXN0cnVjdCBkZW50cnkgKmRlYnVnZnNfcm9vdDsNCiB9Ow0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ZyYW1lYnVmZmVyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mcmFtZWJ1ZmZlci5j DQppbmRleCBkNTgyMmEzLi4zNjBhYjcwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Fy bS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIuYw0KKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIuYw0KQEAgLTIwMSw2ICsy MDEsOCBAQCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICoNCiAJCWdvdG8gZXJyX2NsZWFudXA7DQog CX0NCiANCisJa2ZiLT5pc192YSA9IG1kZXYtPmlvbW11ID8gdHJ1ZSA6IGZhbHNlOw0KKw0KIAly ZXR1cm4gJmtmYi0+YmFzZTsNCiANCiBlcnJfY2xlYW51cDoNCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mcmFtZWJ1ZmZlci5oIGIvZHJpdmVy cy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIuaA0KaW5kZXgg NmNiYjJmNi4uZjQwNDZlMiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxh eS9rb21lZGEva29tZWRhX2ZyYW1lYnVmZmVyLmgNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0v ZGlzcGxheS9rb21lZGEva29tZWRhX2ZyYW1lYnVmZmVyLmgNCkBAIC0yMSw2ICsyMSw4IEBAIHN0 cnVjdCBrb21lZGFfZmIgew0KIAkgKiBleHRlbmRzIGRybV9mb3JtYXRfaW5mbyBmb3Iga29tZWRh IHNwZWNpZmljIGluZm9ybWF0aW9uDQogCSAqLw0KIAljb25zdCBzdHJ1Y3Qga29tZWRhX2Zvcm1h dF9jYXBzICpmb3JtYXRfY2FwczsNCisJLyoqIEBpc192YTogaWYgc21tdSBpcyBlbmFibGVkLCBp dCB3aWxsIGJlIHRydWUgKi8NCisJYm9vbCBpc192YTsNCiAJLyoqIEBhbGlnbmVkX3c6IGFsaWdu ZWQgZnJhbWUgYnVmZmVyIHdpZHRoICovDQogCXUzMiBhbGlnbmVkX3c7DQogCS8qKiBAYWxpZ25l ZF9oOiBhbGlnbmVkIGZyYW1lIGJ1ZmZlciBoZWlnaHQgKi8NCi0tIA0KMS45LjENCg0KX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs