From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Yao Subject: [PATCH] drm/rockchip: support non-iommu buffer path Date: Tue, 19 Apr 2016 10:19:32 +0800 Message-ID: <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: 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+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuYyB8ICAgNjUgKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwg MTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3Jv Y2tjaGlwX2RybV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1f ZHJ2LmMKaW5kZXggZjU1NmE4Zi4uOTA3MjljMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZHJtX2Rydi5jCkBAIC0zNiw2ICszNiw4IEBACiAjZGVmaW5lIERSSVZFUl9N QUpPUgkxCiAjZGVmaW5lIERSSVZFUl9NSU5PUgkwCiAKK3N0YXRpYyBib29sIGlzX3N1cHBvcnRf aW9tbXUgPSB0cnVlOworCiAvKgogICogQXR0YWNoIGEgKGNvbXBvbmVudCkgZGV2aWNlIHRvIHRo ZSBzaGFyZWQgZHJtIGRtYSBtYXBwaW5nIGZyb20gbWFzdGVyIGRybQogICogZGV2aWNlLiAgVGhp cyBpcyB1c2VkIGJ5IHRoZSBWT1BzIHRvIG1hcCBHRU0gYnVmZmVycyB0byBhIGNvbW1vbiBETUEK QEAgLTQ3LDYgKzQ5LDkgQEAgaW50IHJvY2tjaGlwX2RybV9kbWFfYXR0YWNoX2RldmljZShzdHJ1 Y3QgZHJtX2RldmljZSAqZHJtX2RldiwKIAlzdHJ1Y3QgZG1hX2lvbW11X21hcHBpbmcgKm1hcHBp bmcgPSBkcm1fZGV2LT5kZXYtPmFyY2hkYXRhLm1hcHBpbmc7CiAJaW50IHJldDsKIAorCWlmICgh aXNfc3VwcG9ydF9pb21tdSkKKwkJcmV0dXJuIDA7CisKIAlyZXQgPSBkbWFfc2V0X2NvaGVyZW50 X21hc2soZGV2LCBETUFfQklUX01BU0soMzIpKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpA QCAtNTksNiArNjQsOSBAQCBpbnQgcm9ja2NoaXBfZHJtX2RtYV9hdHRhY2hfZGV2aWNlKHN0cnVj dCBkcm1fZGV2aWNlICpkcm1fZGV2LAogdm9pZCByb2NrY2hpcF9kcm1fZG1hX2RldGFjaF9kZXZp Y2Uoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCiAJCQkJICAgIHN0cnVjdCBkZXZpY2UgKmRl dikKIHsKKwlpZiAoIWlzX3N1cHBvcnRfaW9tbXUpCisJCXJldHVybjsKKwogCWFybV9pb21tdV9k ZXRhY2hfZGV2aWNlKGRldik7CiB9CiAKQEAgLTE1MiwyMyArMTYwLDI2IEBAIHN0YXRpYyBpbnQg cm9ja2NoaXBfZHJtX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsIHVuc2lnbmVkIGxv bmcgZmxhZ3MpCiAJCWdvdG8gZXJyX2NvbmZpZ19jbGVhbnVwOwogCX0KIAotCS8qIFRPRE8oZGpr dXJ0eik6IGZldGNoIHRoZSBtYXBwaW5nIHN0YXJ0L3NpemUgZnJvbSBzb21ld2hlcmUgKi8KLQlt YXBwaW5nID0gYXJtX2lvbW11X2NyZWF0ZV9tYXBwaW5nKCZwbGF0Zm9ybV9idXNfdHlwZSwgMHgw MDAwMDAwMCwKLQkJCQkJICAgU1pfMkcpOwotCWlmIChJU19FUlIobWFwcGluZykpIHsKLQkJcmV0 ID0gUFRSX0VSUihtYXBwaW5nKTsKLQkJZ290byBlcnJfY29uZmlnX2NsZWFudXA7Ci0JfQorCWlm IChpc19zdXBwb3J0X2lvbW11KSB7CisJCS8qIFRPRE8oZGprdXJ0eik6IGZldGNoIHRoZSBtYXBw aW5nIHN0YXJ0L3NpemUgZnJvbSBzb21ld2hlcmUgKi8KKwkJbWFwcGluZyA9IGFybV9pb21tdV9j cmVhdGVfbWFwcGluZygmcGxhdGZvcm1fYnVzX3R5cGUsCisJCQkJCQkgICAweDAwMDAwMDAwLAor CQkJCQkJICAgU1pfMkcpOworCQlpZiAoSVNfRVJSKG1hcHBpbmcpKSB7CisJCQlyZXQgPSBQVFJf RVJSKG1hcHBpbmcpOworCQkJZ290byBlcnJfY29uZmlnX2NsZWFudXA7CisJCX0KIAotCXJldCA9 IGRtYV9zZXRfbWFza19hbmRfY29oZXJlbnQoZGV2LCBETUFfQklUX01BU0soMzIpKTsKLQlpZiAo cmV0KQotCQlnb3RvIGVycl9yZWxlYXNlX21hcHBpbmc7CisJCXJldCA9IGRtYV9zZXRfbWFza19h bmRfY29oZXJlbnQoZGV2LCBETUFfQklUX01BU0soMzIpKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8g ZXJyX3JlbGVhc2VfbWFwcGluZzsKIAotCWRtYV9zZXRfbWF4X3NlZ19zaXplKGRldiwgRE1BX0JJ VF9NQVNLKDMyKSk7CisJCWRtYV9zZXRfbWF4X3NlZ19zaXplKGRldiwgRE1BX0JJVF9NQVNLKDMy KSk7CiAKLQlyZXQgPSBhcm1faW9tbXVfYXR0YWNoX2RldmljZShkZXYsIG1hcHBpbmcpOwotCWlm IChyZXQpCi0JCWdvdG8gZXJyX3JlbGVhc2VfbWFwcGluZzsKKwkJcmV0ID0gYXJtX2lvbW11X2F0 dGFjaF9kZXZpY2UoZGV2LCBtYXBwaW5nKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyX3JlbGVh c2VfbWFwcGluZzsKKwl9CiAKIAkvKiBUcnkgdG8gYmluZCBhbGwgc3ViIGRyaXZlcnMuICovCiAJ cmV0ID0gY29tcG9uZW50X2JpbmRfYWxsKGRldiwgZHJtX2Rldik7CkBAIC0yMjYsOSArMjM3LDEx IEBAIGVycl9rbXNfaGVscGVyX3BvbGxfZmluaToKIGVycl91bmJpbmQ6CiAJY29tcG9uZW50X3Vu YmluZF9hbGwoZGV2LCBkcm1fZGV2KTsKIGVycl9kZXRhY2hfZGV2aWNlOgotCWFybV9pb21tdV9k ZXRhY2hfZGV2aWNlKGRldik7CisJaWYgKGlzX3N1cHBvcnRfaW9tbXUpCisJCWFybV9pb21tdV9k ZXRhY2hfZGV2aWNlKGRldik7CiBlcnJfcmVsZWFzZV9tYXBwaW5nOgotCWFybV9pb21tdV9yZWxl YXNlX21hcHBpbmcoZGV2LT5hcmNoZGF0YS5tYXBwaW5nKTsKKwlpZiAoaXNfc3VwcG9ydF9pb21t dSkKKwkJYXJtX2lvbW11X3JlbGVhc2VfbWFwcGluZyhkZXYtPmFyY2hkYXRhLm1hcHBpbmcpOwog ZXJyX2NvbmZpZ19jbGVhbnVwOgogCWRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKGRybV9kZXYpOwog CWRybV9kZXYtPmRldl9wcml2YXRlID0gTlVMTDsKQEAgLTI0Myw4ICsyNTYsMTAgQEAgc3RhdGlj IGludCByb2NrY2hpcF9kcm1fdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2KQogCWRy bV92YmxhbmtfY2xlYW51cChkcm1fZGV2KTsKIAlkcm1fa21zX2hlbHBlcl9wb2xsX2ZpbmkoZHJt X2Rldik7CiAJY29tcG9uZW50X3VuYmluZF9hbGwoZGV2LCBkcm1fZGV2KTsKLQlhcm1faW9tbXVf ZGV0YWNoX2RldmljZShkZXYpOwotCWFybV9pb21tdV9yZWxlYXNlX21hcHBpbmcoZGV2LT5hcmNo ZGF0YS5tYXBwaW5nKTsKKwlpZiAoaXNfc3VwcG9ydF9pb21tdSkgeworCQlhcm1faW9tbXVfZGV0 YWNoX2RldmljZShkZXYpOworCQlhcm1faW9tbXVfcmVsZWFzZV9tYXBwaW5nKGRldi0+YXJjaGRh dGEubWFwcGluZyk7CisJfQogCWRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKGRybV9kZXYpOwogCWRy bV9kZXYtPmRldl9wcml2YXRlID0gTlVMTDsKIApAQCAtNDg4LDYgKzUwMyw4IEBAIHN0YXRpYyBp bnQgcm9ja2NoaXBfZHJtX3BsYXRmb3JtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCiAJICogd29ya3MgYXMgZXhwZWN0ZWQuCiAJICovCiAJZm9yIChpID0gMDs7IGkrKykgewor CQlzdHJ1Y3QgZGV2aWNlX25vZGUgKmlvbW11OworCiAJCXBvcnQgPSBvZl9wYXJzZV9waGFuZGxl KG5wLCAicG9ydHMiLCBpKTsKIAkJaWYgKCFwb3J0KQogCQkJYnJlYWs7CkBAIC00OTcsNiArNTE0 LDE4IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZHJtX3BsYXRmb3JtX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQljb250aW51ZTsKIAkJfQogCisJCWlvbW11ID0gb2ZfcGFy c2VfcGhhbmRsZShwb3J0LT5wYXJlbnQsICJpb21tdXMiLCAwKTsKKwkJaWYgKCFpb21tdSB8fCAh b2ZfZGV2aWNlX2lzX2F2YWlsYWJsZShpb21tdS0+cGFyZW50KSkgeworCQkJZGV2X3dhcm4oZGV2 LCAiTm8gYXZhaWxhYmxlIGlvbW11IGZvdW5kIGZvciAlc1xuIiwKKwkJCQkgcG9ydC0+cGFyZW50 LT5mdWxsX25hbWUpOworCQkJZGV2X3dhcm4oZGV2LCAiRm9yY2Ugbm9uLWlvbW11IGJ1ZmZlciBm b3IgYWxsIGNydGNcbiIpOworCQkJLyoKKwkJCSAqIGlmIHRoZXJlIGlzIGEgY3J0YyBub3Qgc3Vw cG9ydCBpb21tdSwgZm9yY2Ugc2V0IGFsbAorCQkJICogY3J0YyB1c2Ugbm9uLWlvbW11IGJ1ZmZl ci4KKwkJCSAqLworCQkJaXNfc3VwcG9ydF9pb21tdSA9IGZhbHNlOworCQl9CisKIAkJY29tcG9u ZW50X21hdGNoX2FkZChkZXYsICZtYXRjaCwgY29tcGFyZV9vZiwgcG9ydC0+cGFyZW50KTsKIAkJ b2Zfbm9kZV9wdXQocG9ydCk7CiAJfQotLSAKMS43LjkuNQoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=