From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Yao Subject: [PATCH v2] drm/rockchip: support non-iommu buffer path Date: Wed, 20 Apr 2016 10:53:33 +0800 Message-ID: <1461120813-1117-1-git-send-email-mark.yao@rock-chips.com> References: <1461032372-14630-1-git-send-email-mark.yao@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1461032372-14630-1-git-send-email-mark.yao@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Airlie , Heiko Stuebner , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org List-Id: linux-rockchip.vger.kernel.org U29tZSByb2NrY2hpcCB2b3Agbm90IHN1cHBvcnQgaW9tbXUsIG5lZWQgdXNlIG5vbi1pb21tdQpi dWZmZXIgZm9yIGl0LiBBbmQgaWYgd2UgZ2V0IGlvbW11IGlzc3Vlcywgd2UgY2FuIGNvbXBhcmUK dGhlIGlzc3VlcyB3aXRoIG5vbi1pb21tdSBwYXRoLCB0aGUgd291bGQgaGVscCB0aGUgZGVidWcu CgpTaWduZWQtb2ZmLWJ5OiBNYXJrIFlhbyA8bWFyay55YW9Acm9jay1jaGlwcy5jb20+Ci0tLQpD aGFuZ2VzIGluIHYyCkFkdmlzZWQgYnkgSGVpa28gU3R1ZWJuZXIKLSB1c2UgbW9yZSBzdWl0YWJs ZSBtZXNzYWdlIHByaW50LgoKIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1f ZHJ2LmMgfCAgIDY0ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDQ2IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5jCmluZGV4IGY1NTZhOGYuLjAwYWExNzUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuYwpAQCAtMzYsNiArMzYsOCBA QAogI2RlZmluZSBEUklWRVJfTUFKT1IJMQogI2RlZmluZSBEUklWRVJfTUlOT1IJMAogCitzdGF0 aWMgYm9vbCBpc19zdXBwb3J0X2lvbW11ID0gdHJ1ZTsKKwogLyoKICAqIEF0dGFjaCBhIChjb21w b25lbnQpIGRldmljZSB0byB0aGUgc2hhcmVkIGRybSBkbWEgbWFwcGluZyBmcm9tIG1hc3RlciBk cm0KICAqIGRldmljZS4gIFRoaXMgaXMgdXNlZCBieSB0aGUgVk9QcyB0byBtYXAgR0VNIGJ1ZmZl cnMgdG8gYSBjb21tb24gRE1BCkBAIC00Nyw2ICs0OSw5IEBAIGludCByb2NrY2hpcF9kcm1fZG1h X2F0dGFjaF9kZXZpY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCiAJc3RydWN0IGRtYV9p b21tdV9tYXBwaW5nICptYXBwaW5nID0gZHJtX2Rldi0+ZGV2LT5hcmNoZGF0YS5tYXBwaW5nOwog CWludCByZXQ7CiAKKwlpZiAoIWlzX3N1cHBvcnRfaW9tbXUpCisJCXJldHVybiAwOworCiAJcmV0 ID0gZG1hX3NldF9jb2hlcmVudF9tYXNrKGRldiwgRE1BX0JJVF9NQVNLKDMyKSk7CiAJaWYgKHJl dCkKIAkJcmV0dXJuIHJldDsKQEAgLTU5LDYgKzY0LDkgQEAgaW50IHJvY2tjaGlwX2RybV9kbWFf YXR0YWNoX2RldmljZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwKIHZvaWQgcm9ja2NoaXBf ZHJtX2RtYV9kZXRhY2hfZGV2aWNlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAogCQkJCSAg ICBzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CisJaWYgKCFpc19zdXBwb3J0X2lvbW11KQorCQlyZXR1 cm47CisKIAlhcm1faW9tbXVfZGV0YWNoX2RldmljZShkZXYpOwogfQogCkBAIC0xNTIsMjMgKzE2 MCwyNiBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX2RybV9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpk cm1fZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQogCQlnb3RvIGVycl9jb25maWdfY2xlYW51cDsK IAl9CiAKLQkvKiBUT0RPKGRqa3VydHopOiBmZXRjaCB0aGUgbWFwcGluZyBzdGFydC9zaXplIGZy b20gc29tZXdoZXJlICovCi0JbWFwcGluZyA9IGFybV9pb21tdV9jcmVhdGVfbWFwcGluZygmcGxh dGZvcm1fYnVzX3R5cGUsIDB4MDAwMDAwMDAsCi0JCQkJCSAgIFNaXzJHKTsKLQlpZiAoSVNfRVJS KG1hcHBpbmcpKSB7Ci0JCXJldCA9IFBUUl9FUlIobWFwcGluZyk7Ci0JCWdvdG8gZXJyX2NvbmZp Z19jbGVhbnVwOwotCX0KKwlpZiAoaXNfc3VwcG9ydF9pb21tdSkgeworCQkvKiBUT0RPKGRqa3Vy dHopOiBmZXRjaCB0aGUgbWFwcGluZyBzdGFydC9zaXplIGZyb20gc29tZXdoZXJlICovCisJCW1h cHBpbmcgPSBhcm1faW9tbXVfY3JlYXRlX21hcHBpbmcoJnBsYXRmb3JtX2J1c190eXBlLAorCQkJ CQkJICAgMHgwMDAwMDAwMCwKKwkJCQkJCSAgIFNaXzJHKTsKKwkJaWYgKElTX0VSUihtYXBwaW5n KSkgeworCQkJcmV0ID0gUFRSX0VSUihtYXBwaW5nKTsKKwkJCWdvdG8gZXJyX2NvbmZpZ19jbGVh bnVwOworCQl9CiAKLQlyZXQgPSBkbWFfc2V0X21hc2tfYW5kX2NvaGVyZW50KGRldiwgRE1BX0JJ VF9NQVNLKDMyKSk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfcmVsZWFzZV9tYXBwaW5nOworCQly ZXQgPSBkbWFfc2V0X21hc2tfYW5kX2NvaGVyZW50KGRldiwgRE1BX0JJVF9NQVNLKDMyKSk7CisJ CWlmIChyZXQpCisJCQlnb3RvIGVycl9yZWxlYXNlX21hcHBpbmc7CiAKLQlkbWFfc2V0X21heF9z ZWdfc2l6ZShkZXYsIERNQV9CSVRfTUFTSygzMikpOworCQlkbWFfc2V0X21heF9zZWdfc2l6ZShk ZXYsIERNQV9CSVRfTUFTSygzMikpOwogCi0JcmV0ID0gYXJtX2lvbW11X2F0dGFjaF9kZXZpY2Uo ZGV2LCBtYXBwaW5nKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl9yZWxlYXNlX21hcHBpbmc7CisJ CXJldCA9IGFybV9pb21tdV9hdHRhY2hfZGV2aWNlKGRldiwgbWFwcGluZyk7CisJCWlmIChyZXQp CisJCQlnb3RvIGVycl9yZWxlYXNlX21hcHBpbmc7CisJfQogCiAJLyogVHJ5IHRvIGJpbmQgYWxs IHN1YiBkcml2ZXJzLiAqLwogCXJldCA9IGNvbXBvbmVudF9iaW5kX2FsbChkZXYsIGRybV9kZXYp OwpAQCAtMjI2LDkgKzIzNywxMSBAQCBlcnJfa21zX2hlbHBlcl9wb2xsX2Zpbmk6CiBlcnJfdW5i aW5kOgogCWNvbXBvbmVudF91bmJpbmRfYWxsKGRldiwgZHJtX2Rldik7CiBlcnJfZGV0YWNoX2Rl dmljZToKLQlhcm1faW9tbXVfZGV0YWNoX2RldmljZShkZXYpOworCWlmIChpc19zdXBwb3J0X2lv bW11KQorCQlhcm1faW9tbXVfZGV0YWNoX2RldmljZShkZXYpOwogZXJyX3JlbGVhc2VfbWFwcGlu ZzoKLQlhcm1faW9tbXVfcmVsZWFzZV9tYXBwaW5nKGRldi0+YXJjaGRhdGEubWFwcGluZyk7CisJ aWYgKGlzX3N1cHBvcnRfaW9tbXUpCisJCWFybV9pb21tdV9yZWxlYXNlX21hcHBpbmcoZGV2LT5h cmNoZGF0YS5tYXBwaW5nKTsKIGVycl9jb25maWdfY2xlYW51cDoKIAlkcm1fbW9kZV9jb25maWdf Y2xlYW51cChkcm1fZGV2KTsKIAlkcm1fZGV2LT5kZXZfcHJpdmF0ZSA9IE5VTEw7CkBAIC0yNDMs OCArMjU2LDEwIEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZHJtX3VubG9hZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtX2RldikKIAlkcm1fdmJsYW5rX2NsZWFudXAoZHJtX2Rldik7CiAJZHJtX2ttc19o ZWxwZXJfcG9sbF9maW5pKGRybV9kZXYpOwogCWNvbXBvbmVudF91bmJpbmRfYWxsKGRldiwgZHJt X2Rldik7Ci0JYXJtX2lvbW11X2RldGFjaF9kZXZpY2UoZGV2KTsKLQlhcm1faW9tbXVfcmVsZWFz ZV9tYXBwaW5nKGRldi0+YXJjaGRhdGEubWFwcGluZyk7CisJaWYgKGlzX3N1cHBvcnRfaW9tbXUp IHsKKwkJYXJtX2lvbW11X2RldGFjaF9kZXZpY2UoZGV2KTsKKwkJYXJtX2lvbW11X3JlbGVhc2Vf bWFwcGluZyhkZXYtPmFyY2hkYXRhLm1hcHBpbmcpOworCX0KIAlkcm1fbW9kZV9jb25maWdfY2xl YW51cChkcm1fZGV2KTsKIAlkcm1fZGV2LT5kZXZfcHJpdmF0ZSA9IE5VTEw7CiAKQEAgLTQ4OCw2 ICs1MDMsOCBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX2RybV9wbGF0Zm9ybV9wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCSAqIHdvcmtzIGFzIGV4cGVjdGVkLgogCSAqLwogCWZv ciAoaSA9IDA7OyBpKyspIHsKKwkJc3RydWN0IGRldmljZV9ub2RlICppb21tdTsKKwogCQlwb3J0 ID0gb2ZfcGFyc2VfcGhhbmRsZShucCwgInBvcnRzIiwgaSk7CiAJCWlmICghcG9ydCkKIAkJCWJy ZWFrOwpAQCAtNDk3LDYgKzUxNCwxNyBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX2RybV9wbGF0Zm9y bV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQkJY29udGludWU7CiAJCX0K IAorCQlpb21tdSA9IG9mX3BhcnNlX3BoYW5kbGUocG9ydC0+cGFyZW50LCAiaW9tbXVzIiwgMCk7 CisJCWlmICghaW9tbXUgfHwgIW9mX2RldmljZV9pc19hdmFpbGFibGUoaW9tbXUtPnBhcmVudCkp IHsKKwkJCWRldl9kYmcoZGV2LCAibm8gaW9tbXUgYXR0YWNoZWQgZm9yICVzLCB1c2luZyBub24t aW9tbXUgYnVmZmVyc1xuIiwKKwkJCQlwb3J0LT5wYXJlbnQtPmZ1bGxfbmFtZSk7CisJCQkvKgor CQkJICogaWYgdGhlcmUgaXMgYSBjcnRjIG5vdCBzdXBwb3J0IGlvbW11LCBmb3JjZSBzZXQgYWxs CisJCQkgKiBjcnRjIHVzZSBub24taW9tbXUgYnVmZmVyLgorCQkJICovCisJCQlpc19zdXBwb3J0 X2lvbW11ID0gZmFsc2U7CisJCX0KKwogCQljb21wb25lbnRfbWF0Y2hfYWRkKGRldiwgJm1hdGNo LCBjb21wYXJlX29mLCBwb3J0LT5wYXJlbnQpOwogCQlvZl9ub2RlX3B1dChwb3J0KTsKIAl9Ci0t IAoxLjcuOS41CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==