From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Ujfalusi Subject: [PATCH v2 2/2] drm/omap: partial workaround for DRA7xx DMM errata i878 Date: Thu, 22 Mar 2018 15:42:06 +0200 Message-ID: <20180322134206.22857-3-peter.ujfalusi@ti.com> References: <20180322134206.22857-1-peter.ujfalusi@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180322134206.22857-1-peter.ujfalusi@ti.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: tomi.valkeinen@ti.com, laurent.pinchart@ideasonboard.com Cc: devicetree@vger.kernel.org, jsarha@ti.com, dri-devel@lists.freedesktop.org List-Id: devicetree@vger.kernel.org RnJvbTogVG9taSBWYWxrZWluZW4gPHRvbWkudmFsa2VpbmVuQHRpLmNvbT4KCkVycmF0YSBpODc4 IHNheXMgdGhhdCBNUFUgc2hvdWxkIG5vdCBiZSB1c2VkIHRvIGFjY2VzcyBSQU0gYW5kIERNTSBh dAp0aGUgc2FtZSB0aW1lLiBBcyBpdCdzIG5vdCBwb3NzaWJsZSB0byBwcmV2ZW50IE1QVSBhY2Nl c3NpbmcgUkFNLCB3ZQpuZWVkIHRvIGFjY2VzcyBETU0gdmlhIGEgcHJveHkuCgpUaGlzIHBhdGNo IGNoYW5nZXMgRE1NIGRyaXZlciB0byBhY2Nlc3MgRE1NIHJlZ2lzdGVycyB2aWEgc0RNQS4gSW5z dGVhZApvZiBkb2luZyBhIG5vcm1hbCByZWFkbC93cml0ZWwgY2FsbCB0byByZWFkL3dyaXRlIGEg cmVnaXN0ZXIsIHdlIHVzZQpzRE1BIHRvIGNvcHkgNCBieXRlcyBmcm9tL3RvIHRoZSBETU0gcmVn aXN0ZXJzLgoKVGhpcyBwYXRjaCBwcm92aWRlcyBvbmx5IGEgcGFydGlhbCB3b3JrYXJvdW5kIGZv ciBpODc4LCBhcyBub3Qgb25seSBETU0KcmVnaXN0ZXIgcmVhZHMvd3JpdGVzIGFyZSBhZmZlY3Rl ZCwgYnV0IGFsc28gYWNjZXNzZXMgdG8gdGhlIERNTSBtYXBwZWQKYnVmZmVycyAoZnJhbWVidWZm ZXJzLCB1c3VhbGx5KS4KClNpZ25lZC1vZmYtYnk6IFRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtl aW5lbkB0aS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9kbW1fcHJpdi5o ICB8ICAgOCArKwogZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9kbW1fdGlsZXIuYyB8IDE1 MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDE1OSBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9vbWFwZHJtL29tYXBfZG1tX3ByaXYuaCBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBf ZG1tX3ByaXYuaAppbmRleCBjMjc4NWNjOThkYzkuLjljZTlkMWQ3MDM5YSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9kbW1fcHJpdi5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9vbWFwZHJtL29tYXBfZG1tX3ByaXYuaApAQCAtMTU1LDEwICsxNTUsMTIgQEAgc3RydWN0 IHJlZmlsbF9lbmdpbmUgewogCiBzdHJ1Y3QgZG1tX3BsYXRmb3JtX2RhdGEgewogCXUzMiBjcHVf Y2FjaGVfZmxhZ3M7CisJYm9vbCBlcnJhdGFfaTg3OF93YTsKIH07CiAKIHN0cnVjdCBkbW0gewog CXN0cnVjdCBkZXZpY2UgKmRldjsKKwlkbWFfYWRkcl90IHBoeXNfYmFzZTsKIAl2b2lkIF9faW9t ZW0gKmJhc2U7CiAJaW50IGlycTsKIApAQCAtMTg5LDYgKzE5MSwxMiBAQCBzdHJ1Y3QgZG1tIHsK IAlzdHJ1Y3QgbGlzdF9oZWFkIGFsbG9jX2hlYWQ7CiAKIAljb25zdCBzdHJ1Y3QgZG1tX3BsYXRm b3JtX2RhdGEgKnBsYXRfZGF0YTsKKworCWJvb2wgZG1tX3dvcmthcm91bmQ7CisJc3BpbmxvY2tf dCB3YV9sb2NrOworCXUzMiAqd2FfZG1hX2RhdGE7CisJZG1hX2FkZHJfdCB3YV9kbWFfaGFuZGxl OworCXN0cnVjdCBkbWFfY2hhbiAqd2FfZG1hX2NoYW47CiB9OwogCiAjZW5kaWYKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZG1tX3RpbGVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vb21hcGRybS9vbWFwX2RtbV90aWxlci5jCmluZGV4IGU4NDg3MWU3NDYxNS4uMjdjNjdi YzM2MjAzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2RtbV90aWxl ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZG1tX3RpbGVyLmMKQEAgLTE4 LDYgKzE4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8bGlu dXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGxp bnV4L2RtYWVuZ2luZS5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGlu dXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgpAQCAtNzksMTQgKzgwLDEz OCBAQCBzdGF0aWMgY29uc3QgdTMyIHJlZ1tdWzRdID0gewogCQkJRE1NX1BBVF9ERVNDUl9fMiwg RE1NX1BBVF9ERVNDUl9fM30sCiB9OwogCitzdGF0aWMgaW50IGRtbV9kbWFfY29weShzdHJ1Y3Qg ZG1tICpkbW0sIGRtYV9hZGRyX3Qgc3JjLCBkbWFfYWRkcl90IGRzdCkKK3sKKwlzdHJ1Y3QgZG1h X2RldmljZSAqZG1hX2RldiA9IGRtbS0+d2FfZG1hX2NoYW4tPmRldmljZTsKKwlzdHJ1Y3QgZG1h X2FzeW5jX3R4X2Rlc2NyaXB0b3IgKnR4OworCWVudW0gZG1hX3N0YXR1cyBzdGF0dXM7CisJZG1h X2Nvb2tpZV90IGNvb2tpZTsKKworCXR4ID0gZG1hX2Rldi0+ZGV2aWNlX3ByZXBfZG1hX21lbWNw eShkbW0tPndhX2RtYV9jaGFuLCBkc3QsIHNyYywgNCwgMCk7CisJaWYgKCF0eCkgeworCQlkZXZf ZXJyKGRtbS0+ZGV2LCAiRmFpbGVkIHRvIHByZXBhcmUgRE1BIG1lbWNweVxuIik7CisJCXJldHVy biAtRUlPOworCX0KKworCWNvb2tpZSA9IHR4LT50eF9zdWJtaXQodHgpOworCWlmIChkbWFfc3Vi bWl0X2Vycm9yKGNvb2tpZSkpIHsKKwkJZGV2X2VycihkbW0tPmRldiwgIkZhaWxlZCB0byBkbyBE TUEgdHhfc3VibWl0XG4iKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJZG1hX2FzeW5jX2lzc3Vl X3BlbmRpbmcoZG1tLT53YV9kbWFfY2hhbik7CisJc3RhdHVzID0gZG1hX3N5bmNfd2FpdChkbW0t PndhX2RtYV9jaGFuLCBjb29raWUpOworCWlmIChzdGF0dXMgIT0gRE1BX0NPTVBMRVRFKQorCQlk ZXZfZXJyKGRtbS0+ZGV2LCAiaTg3OCB3YSBETUEgY29weSBmYWlsdXJlXG4iKTsKKworCWRtYWVu Z2luZV90ZXJtaW5hdGVfYWxsKGRtbS0+d2FfZG1hX2NoYW4pOworCXJldHVybiAwOworfQorCitz dGF0aWMgdTMyIGRtbV9yZWFkX3dhKHN0cnVjdCBkbW0gKmRtbSwgdTMyIHJlZykKK3sKKwlkbWFf YWRkcl90IHNyYywgZHN0OworCWludCByOworCisJc3JjID0gZG1tLT5waHlzX2Jhc2UgKyByZWc7 CisJZHN0ID0gZG1tLT53YV9kbWFfaGFuZGxlOworCisJciA9IGRtbV9kbWFfY29weShkbW0sIHNy YywgZHN0KTsKKwlpZiAocikgeworCQlkZXZfZXJyKGRtbS0+ZGV2LCAic0RNQSByZWFkIHRyYW5z ZmVyIHRpbWVvdXRcbiIpOworCQlyZXR1cm4gcmVhZGwoZG1tLT5iYXNlICsgcmVnKTsKKwl9CisK KwkvKgorCSAqIEFzIHBlciBpODc4IHdvcmthcm91bmQsIHRoZSBETUEgaXMgdXNlZCB0byBhY2Nl c3MgdGhlIERNTSByZWdpc3RlcnMuCisJICogTWFrZSBzdXJlIHRoYXQgdGhlIHJlYWRsIGlzIG5v dCBtb3ZlZCBieSB0aGUgY29tcGlsZXIgb3IgdGhlIENQVQorCSAqIGVhcmxpZXIgdGhhbiB0aGUg RE1BIGZpbmlzaGVkIHdyaXRpbmcgdGhlIHZhbHVlIHRvIG1lbW9yeS4KKwkgKi8KKwlybWIoKTsK KwlyZXR1cm4gcmVhZGwoZG1tLT53YV9kbWFfZGF0YSk7Cit9CisKK3N0YXRpYyB2b2lkIGRtbV93 cml0ZV93YShzdHJ1Y3QgZG1tICpkbW0sIHUzMiB2YWwsIHUzMiByZWcpCit7CisJZG1hX2FkZHJf dCBzcmMsIGRzdDsKKwlpbnQgcjsKKworCXdyaXRlbCh2YWwsIGRtbS0+d2FfZG1hX2RhdGEpOwor CS8qCisJICogQXMgcGVyIGk4Nzggd29ya2Fyb3VuZCwgdGhlIERNQSBpcyB1c2VkIHRvIGFjY2Vz cyB0aGUgRE1NIHJlZ2lzdGVycy4KKwkgKiBNYWtlIHN1cmUgdGhhdCB0aGUgd3JpdGVsIGlzIG5v dCBtb3ZlZCBieSB0aGUgY29tcGlsZXIgb3IgdGhlIENQVSwgc28KKwkgKiB0aGUgZGF0YSB3aWxs IGJlIGluIHBsYWNlIGJlZm9yZSB3ZSBzdGFydCB0aGUgRE1BIHRvIGRvIHRoZSBhY3R1YWwKKwkg KiByZWdpc3RlciB3cml0ZS4KKwkgKi8KKwl3bWIoKTsKKworCXNyYyA9IGRtbS0+d2FfZG1hX2hh bmRsZTsKKwlkc3QgPSBkbW0tPnBoeXNfYmFzZSArIHJlZzsKKworCXIgPSBkbW1fZG1hX2NvcHko ZG1tLCBzcmMsIGRzdCk7CisJaWYgKHIpIHsKKwkJZGV2X2VycihkbW0tPmRldiwgInNETUEgd3Jp dGUgdHJhbnNmZXIgdGltZW91dFxuIik7CisJCXdyaXRlbCh2YWwsIGRtbS0+YmFzZSArIHJlZyk7 CisJfQorfQorCiBzdGF0aWMgdTMyIGRtbV9yZWFkKHN0cnVjdCBkbW0gKmRtbSwgdTMyIHJlZykK IHsKLQlyZXR1cm4gcmVhZGwoZG1tLT5iYXNlICsgcmVnKTsKKwlpZiAoZG1tLT5kbW1fd29ya2Fy b3VuZCkgeworCQl1MzIgdjsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCQlzcGluX2xvY2tf aXJxc2F2ZSgmZG1tLT53YV9sb2NrLCBmbGFncyk7CisJCXYgPSBkbW1fcmVhZF93YShkbW0sIHJl Zyk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRtbS0+d2FfbG9jaywgZmxhZ3MpOworCisJ CXJldHVybiB2OworCX0gZWxzZSB7CisJCXJldHVybiByZWFkbChkbW0tPmJhc2UgKyByZWcpOwor CX0KIH0KIAogc3RhdGljIHZvaWQgZG1tX3dyaXRlKHN0cnVjdCBkbW0gKmRtbSwgdTMyIHZhbCwg dTMyIHJlZykKIHsKLQl3cml0ZWwodmFsLCBkbW0tPmJhc2UgKyByZWcpOworCWlmIChkbW0tPmRt bV93b3JrYXJvdW5kKSB7CisJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwkJc3Bpbl9sb2NrX2ly cXNhdmUoJmRtbS0+d2FfbG9jaywgZmxhZ3MpOworCQlkbW1fd3JpdGVfd2EoZG1tLCB2YWwsIHJl Zyk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRtbS0+d2FfbG9jaywgZmxhZ3MpOworCX0g ZWxzZSB7CisJCXdyaXRlbCh2YWwsIGRtbS0+YmFzZSArIHJlZyk7CisJfQorfQorCitzdGF0aWMg aW50IGRtbV93b3JrYXJvdW5kX2luaXQoc3RydWN0IGRtbSAqZG1tKQoreworCWRtYV9jYXBfbWFz a190IG1hc2s7CisKKwlzcGluX2xvY2tfaW5pdCgmZG1tLT53YV9sb2NrKTsKKworCWRtbS0+d2Ff ZG1hX2RhdGEgPSBkbWFfYWxsb2NfY29oZXJlbnQoZG1tLT5kZXYsICBzaXplb2YodTMyKSwKKwkJ CQkJICAgICAgJmRtbS0+d2FfZG1hX2hhbmRsZSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkbW0tPndh X2RtYV9kYXRhKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRtYV9jYXBfemVybyhtYXNrKTsKKwlk bWFfY2FwX3NldChETUFfTUVNQ1BZLCBtYXNrKTsKKworCWRtbS0+d2FfZG1hX2NoYW4gPSBkbWFf cmVxdWVzdF9jaGFubmVsKG1hc2ssIE5VTEwsIE5VTEwpOworCWlmICghZG1tLT53YV9kbWFfY2hh bikgeworCQlkbWFfZnJlZV9jb2hlcmVudChkbW0tPmRldiwgNCwgZG1tLT53YV9kbWFfZGF0YSwg ZG1tLT53YV9kbWFfaGFuZGxlKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyB2b2lkIGRtbV93b3JrYXJvdW5kX3VuaW5pdChzdHJ1Y3QgZG1tICpkbW0p Cit7CisJZG1hX3JlbGVhc2VfY2hhbm5lbChkbW0tPndhX2RtYV9jaGFuKTsKKworCWRtYV9mcmVl X2NvaGVyZW50KGRtbS0+ZGV2LCA0LCBkbW0tPndhX2RtYV9kYXRhLCBkbW0tPndhX2RtYV9oYW5k bGUpOwogfQogCiAvKiBzaW1wbGUgYWxsb2NhdG9yIHRvIGdyYWIgbmV4dCAxNiBieXRlIGFsaWdu ZWQgbWVtb3J5IGZyb20gdHhuICovCkBAIC02MzIsNiArNzU3LDkgQEAgc3RhdGljIGludCBvbWFw X2RtbV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQogCQlpZiAob21hcF9kbW0t PmR1bW15X3BhZ2UpCiAJCQlfX2ZyZWVfcGFnZShvbWFwX2RtbS0+ZHVtbXlfcGFnZSk7CiAKKwkJ aWYgKG9tYXBfZG1tLT5kbW1fd29ya2Fyb3VuZCkKKwkJCWRtbV93b3JrYXJvdW5kX3VuaW5pdChv bWFwX2RtbSk7CisKIAkJaWYgKG9tYXBfZG1tLT5pcnEgPiAwKQogCQkJZnJlZV9pcnEob21hcF9k bW0tPmlycSwgb21hcF9kbW0pOwogCkBAIC02ODAsNiArODA4LDcgQEAgc3RhdGljIGludCBvbWFw X2RtbV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCiAJCWdvdG8gZmFpbDsKIAl9 CiAKKwlvbWFwX2RtbS0+cGh5c19iYXNlID0gbWVtLT5zdGFydDsKIAlvbWFwX2RtbS0+YmFzZSA9 IGlvcmVtYXAobWVtLT5zdGFydCwgU1pfMkspOwogCiAJaWYgKCFvbWFwX2RtbS0+YmFzZSkgewpA QCAtNjk1LDYgKzgyNCwxNyBAQCBzdGF0aWMgaW50IG9tYXBfZG1tX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKmRldikKIAogCW9tYXBfZG1tLT5kZXYgPSAmZGV2LT5kZXY7CiAKKwlpZiAo b21hcF9kbW0tPnBsYXRfZGF0YS0+ZXJyYXRhX2k4Nzhfd2EpIHsKKwkJaWYgKCFkbW1fd29ya2Fy b3VuZF9pbml0KG9tYXBfZG1tKSkgeworCQkJb21hcF9kbW0tPmRtbV93b3JrYXJvdW5kID0gdHJ1 ZTsKKwkJCWRldl9pbmZvKCZkZXYtPmRldiwKKwkJCQkid29ya2Fyb3VuZCBmb3IgZXJyYXRhIGk4 NzggaW4gdXNlXG4iKTsKKwkJfSBlbHNlIHsKKwkJCWRldl93YXJuKCZkZXYtPmRldiwKKwkJCQkg ImZhaWxlZCB0byBpbml0aWFsaXplIHdvcmstYXJvdW5kIGZvciBpODc4XG4iKTsKKwkJfQorCX0K KwogCWh3aW5mbyA9IGRtbV9yZWFkKG9tYXBfZG1tLCBETU1fUEFUX0hXSU5GTyk7CiAJb21hcF9k bW0tPm51bV9lbmdpbmVzID0gKGh3aW5mbyA+PiAyNCkgJiAweDFGOwogCW9tYXBfZG1tLT5udW1f bHV0ID0gKGh3aW5mbyA+PiAxNikgJiAweDFGOwpAQCAtMTA1OCw2ICsxMTk4LDExIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZG1tX3BsYXRmb3JtX2RhdGEgZG1tX29tYXA1X3BsYXRmb3JtX2RhdGEg PSB7CiAJLmNwdV9jYWNoZV9mbGFncyA9IE9NQVBfQk9fVU5DQUNIRUQsCiB9OwogCitzdGF0aWMg Y29uc3Qgc3RydWN0IGRtbV9wbGF0Zm9ybV9kYXRhIGRtbV9kcmE3X3BsYXRmb3JtX2RhdGEgPSB7 CisJLmNwdV9jYWNoZV9mbGFncyA9IE9NQVBfQk9fVU5DQUNIRUQsCisJLmVycmF0YV9pODc4X3dh ID0gdHJ1ZSwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGRtbV9vZl9t YXRjaFtdID0gewogCXsKIAkJLmNvbXBhdGlibGUgPSAidGksb21hcDQtZG1tIiwKQEAgLTEwNjcs NiArMTIxMiwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBkbW1fb2ZfbWF0 Y2hbXSA9IHsKIAkJLmNvbXBhdGlibGUgPSAidGksb21hcDUtZG1tIiwKIAkJLmRhdGEgPSAmZG1t X29tYXA1X3BsYXRmb3JtX2RhdGEsCiAJfSwKKwl7CisJCS5jb21wYXRpYmxlID0gInRpLGRyYTct ZG1tIiwKKwkJLmRhdGEgPSAmZG1tX2RyYTdfcGxhdGZvcm1fZGF0YSwKKwl9LAogCXt9LAogfTsK ICNlbmRpZgotLSAKUGV0ZXIKClRleGFzIEluc3RydW1lbnRzIEZpbmxhbmQgT3ksIFBvcmtrYWxh bmthdHUgMjIsIDAwMTgwIEhlbHNpbmtpLgpZLXR1bm51cy9CdXNpbmVzcyBJRDogMDYxNTUyMS00 LiBLb3RpcGFpa2thL0RvbWljaWxlOiBIZWxzaW5raQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==