From mboxrd@z Thu Jan 1 00:00:00 1970 From: YT Shen Subject: [PATCH v12 04/12] drm/mediatek: add shadow register support Date: Mon, 23 Jan 2017 19:05:17 +0800 Message-ID: <1485169525-22163-5-git-send-email-yt.shen@mediatek.com> References: <1485169525-22163-1-git-send-email-yt.shen@mediatek.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1485169525-22163-1-git-send-email-yt.shen@mediatek.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, Philipp Zabel , CK Hu Cc: Mark Rutland , devicetree@vger.kernel.org, srv_heupstream@mediatek.com, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, Rob Herring , linux-mediatek@lists.infradead.org, Matthias Brugger , yingjoe.chen@mediatek.com, linux-arm-kernel@lists.infradead.org List-Id: linux-mediatek@lists.infradead.org V2UgbmVlZCB0byBhY3F1aXJlIG11dGV4IGJlZm9yZSB1c2luZyB0aGUgcmVzb3VyY2VzLAphbmQg bmVlZCB0byByZWxlYXNlIGl0IGFmdGVyIGZpbmlzaGVkLgpTbyB3ZSBkb24ndCBuZWVkIHRvIHdy aXRlIHJlZ2lzdGVycyBpbiB0aGUgYmxhbmtpbmcgcGVyaW9kLgoKU2lnbmVkLW9mZi1ieTogWVQg U2hlbiA8eXQuc2hlbkBtZWRpYXRlay5jb20+CkFja2VkLWJ5OiBDSyBIdSA8Y2suaHVAbWVkaWF0 ZWsuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYyB8IDc1 ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kcm1fZGRwLmMgIHwgMjUgKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHJtX2RkcC5oICB8ICAyICsKIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtf ZHJtX2Rydi5oICB8ICAxICsKIDQgZmlsZXMgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwgMjkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k cm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5jCmluZGV4 IDAxYTIxZGQuLmI5YjgyZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRj LmMKQEAgLTMyOSw2ICszMjksNDIgQEAgc3RhdGljIHZvaWQgbXRrX2NydGNfZGRwX2h3X2Zpbmko c3RydWN0IG10a19kcm1fY3J0YyAqbXRrX2NydGMpCiAJcG1fcnVudGltZV9wdXQoZHJtLT5kZXYp OwogfQogCitzdGF0aWMgdm9pZCBtdGtfY3J0Y19kZHBfY29uZmlnKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKK3sKKwlzdHJ1Y3QgbXRrX2RybV9jcnRjICptdGtfY3J0YyA9IHRvX210a19jcnRjKGNy dGMpOworCXN0cnVjdCBtdGtfY3J0Y19zdGF0ZSAqc3RhdGUgPSB0b19tdGtfY3J0Y19zdGF0ZSht dGtfY3J0Yy0+YmFzZS5zdGF0ZSk7CisJc3RydWN0IG10a19kZHBfY29tcCAqb3ZsID0gbXRrX2Ny dGMtPmRkcF9jb21wWzBdOworCXVuc2lnbmVkIGludCBpOworCisJLyoKKwkgKiBUT0RPOiBpbnN0 ZWFkIG9mIHVwZGF0aW5nIHRoZSByZWdpc3RlcnMgaGVyZSwgd2Ugc2hvdWxkIHByZXBhcmUKKwkg KiB3b3JraW5nIHJlZ2lzdGVycyBpbiBhdG9taWNfY29tbWl0IGFuZCBsZXQgdGhlIGhhcmR3YXJl IGNvbW1hbmQKKwkgKiBxdWV1ZSB1cGRhdGUgbW9kdWxlIHJlZ2lzdGVycyBvbiB2YmxhbmsuCisJ ICovCisJaWYgKHN0YXRlLT5wZW5kaW5nX2NvbmZpZykgeworCQltdGtfZGRwX2NvbXBfY29uZmln KG92bCwgc3RhdGUtPnBlbmRpbmdfd2lkdGgsCisJCQkJICAgIHN0YXRlLT5wZW5kaW5nX2hlaWdo dCwKKwkJCQkgICAgc3RhdGUtPnBlbmRpbmdfdnJlZnJlc2gsIDApOworCisJCXN0YXRlLT5wZW5k aW5nX2NvbmZpZyA9IGZhbHNlOworCX0KKworCWlmIChtdGtfY3J0Yy0+cGVuZGluZ19wbGFuZXMp IHsKKwkJZm9yIChpID0gMDsgaSA8IE9WTF9MQVlFUl9OUjsgaSsrKSB7CisJCQlzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSA9ICZtdGtfY3J0Yy0+cGxhbmVzW2ldOworCQkJc3RydWN0IG10a19wbGFu ZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CisKKwkJCXBsYW5lX3N0YXRlID0gdG9fbXRrX3BsYW5lX3N0 YXRlKHBsYW5lLT5zdGF0ZSk7CisKKwkJCWlmIChwbGFuZV9zdGF0ZS0+cGVuZGluZy5jb25maWcp IHsKKwkJCQltdGtfZGRwX2NvbXBfbGF5ZXJfY29uZmlnKG92bCwgaSwgcGxhbmVfc3RhdGUpOwor CQkJCXBsYW5lX3N0YXRlLT5wZW5kaW5nLmNvbmZpZyA9IGZhbHNlOworCQkJfQorCQl9CisJCW10 a19jcnRjLT5wZW5kaW5nX3BsYW5lcyA9IGZhbHNlOworCX0KK30KKwogc3RhdGljIHZvaWQgbXRr X2RybV9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IG10a19k cm1fY3J0YyAqbXRrX2NydGMgPSB0b19tdGtfY3J0YyhjcnRjKTsKQEAgLTQwNSw2ICs0NDEsNyBA QCBzdGF0aWMgdm9pZCBtdGtfZHJtX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKIAkJCQkgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQog ewogCXN0cnVjdCBtdGtfZHJtX2NydGMgKm10a19jcnRjID0gdG9fbXRrX2NydGMoY3J0Yyk7CisJ c3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7CiAJ dW5zaWduZWQgaW50IHBlbmRpbmdfcGxhbmVzID0gMDsKIAlpbnQgaTsKIApAQCAtNDI2LDYgKzQ2 MywxMiBAQCBzdGF0aWMgdm9pZCBtdGtfZHJtX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIAlpZiAoY3J0Yy0+c3RhdGUtPmNvbG9yX21nbXRfY2hhbmdlZCkKIAkJZm9y IChpID0gMDsgaSA8IG10a19jcnRjLT5kZHBfY29tcF9ucjsgaSsrKQogCQkJbXRrX2RkcF9nYW1t YV9zZXQobXRrX2NydGMtPmRkcF9jb21wW2ldLCBjcnRjLT5zdGF0ZSk7CisKKwlpZiAocHJpdi0+ ZGF0YS0+c2hhZG93X3JlZ2lzdGVyKSB7CisJCW10a19kaXNwX211dGV4X2FjcXVpcmUobXRrX2Ny dGMtPm11dGV4KTsKKwkJbXRrX2NydGNfZGRwX2NvbmZpZyhjcnRjKTsKKwkJbXRrX2Rpc3BfbXV0 ZXhfcmVsZWFzZShtdGtfY3J0Yy0+bXV0ZXgpOworCX0KIH0KIAogc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fY3J0Y19mdW5jcyBtdGtfY3J0Y19mdW5jcyA9IHsKQEAgLTQ3MSwzNiArNTE0LDEwIEBA IHN0YXRpYyBpbnQgbXRrX2RybV9jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIHZv aWQgbXRrX2NydGNfZGRwX2lycShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0cnVjdCBtdGtfZGRw X2NvbXAgKm92bCkKIHsKIAlzdHJ1Y3QgbXRrX2RybV9jcnRjICptdGtfY3J0YyA9IHRvX210a19j cnRjKGNydGMpOwotCXN0cnVjdCBtdGtfY3J0Y19zdGF0ZSAqc3RhdGUgPSB0b19tdGtfY3J0Y19z dGF0ZShtdGtfY3J0Yy0+YmFzZS5zdGF0ZSk7Ci0JdW5zaWduZWQgaW50IGk7CisJc3RydWN0IG10 a19kcm1fcHJpdmF0ZSAqcHJpdiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7CiAKLQkvKgotCSAq IFRPRE86IGluc3RlYWQgb2YgdXBkYXRpbmcgdGhlIHJlZ2lzdGVycyBoZXJlLCB3ZSBzaG91bGQg cHJlcGFyZQotCSAqIHdvcmtpbmcgcmVnaXN0ZXJzIGluIGF0b21pY19jb21taXQgYW5kIGxldCB0 aGUgaGFyZHdhcmUgY29tbWFuZAotCSAqIHF1ZXVlIHVwZGF0ZSBtb2R1bGUgcmVnaXN0ZXJzIG9u IHZibGFuay4KLQkgKi8KLQlpZiAoc3RhdGUtPnBlbmRpbmdfY29uZmlnKSB7Ci0JCW10a19kZHBf Y29tcF9jb25maWcob3ZsLCBzdGF0ZS0+cGVuZGluZ193aWR0aCwKLQkJCQkgICAgc3RhdGUtPnBl bmRpbmdfaGVpZ2h0LAotCQkJCSAgICBzdGF0ZS0+cGVuZGluZ192cmVmcmVzaCwgMCk7Ci0KLQkJ c3RhdGUtPnBlbmRpbmdfY29uZmlnID0gZmFsc2U7Ci0JfQotCi0JaWYgKG10a19jcnRjLT5wZW5k aW5nX3BsYW5lcykgewotCQlmb3IgKGkgPSAwOyBpIDwgT1ZMX0xBWUVSX05SOyBpKyspIHsKLQkJ CXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gJm10a19jcnRjLT5wbGFuZXNbaV07Ci0JCQlzdHJ1 Y3QgbXRrX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKLQotCQkJcGxhbmVfc3RhdGUgPSB0b19t dGtfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKTsKLQotCQkJaWYgKHBsYW5lX3N0YXRlLT5wZW5k aW5nLmNvbmZpZykgewotCQkJCW10a19kZHBfY29tcF9sYXllcl9jb25maWcob3ZsLCBpLCBwbGFu ZV9zdGF0ZSk7Ci0JCQkJcGxhbmVfc3RhdGUtPnBlbmRpbmcuY29uZmlnID0gZmFsc2U7Ci0JCQl9 Ci0JCX0KLQkJbXRrX2NydGMtPnBlbmRpbmdfcGxhbmVzID0gZmFsc2U7Ci0JfQorCWlmICghcHJp di0+ZGF0YS0+c2hhZG93X3JlZ2lzdGVyKQorCQltdGtfY3J0Y19kZHBfY29uZmlnKGNydGMpOwog CiAJbXRrX2RybV9maW5pc2hfcGFnZV9mbGlwKG10a19jcnRjKTsKIH0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcC5jIGIvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcm1fZGRwLmMKaW5kZXggODAzMDc2OS4uYjc3ZDQ1NiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmMKQEAgLTEyLDYgKzEyLDcgQEAKICAqLwogCiAjaW5j bHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb2xsLmg+CiAjaW5jbHVkZSA8 bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAjaW5jbHVkZSA8 bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CkBAIC0zMiwxMCArMzMsMTMgQEAKICNkZWZpbmUgRElT UF9SRUdfQ09ORklHX01NU1lTX0NHX0NPTjAJCTB4MTAwCiAKICNkZWZpbmUgRElTUF9SRUdfTVVU RVhfRU4obikJKDB4MjAgKyAweDIwICogKG4pKQorI2RlZmluZSBESVNQX1JFR19NVVRFWChuKQko MHgyNCArIDB4MjAgKiAobikpCiAjZGVmaW5lIERJU1BfUkVHX01VVEVYX1JTVChuKQkoMHgyOCAr IDB4MjAgKiAobikpCiAjZGVmaW5lIERJU1BfUkVHX01VVEVYX01PRChuKQkoMHgyYyArIDB4MjAg KiAobikpCiAjZGVmaW5lIERJU1BfUkVHX01VVEVYX1NPRihuKQkoMHgzMCArIDB4MjAgKiAobikp CiAKKyNkZWZpbmUgSU5UX01VVEVYCQkJCUJJVCgxKQorCiAjZGVmaW5lIE1UODE3M19NVVRFWF9N T0RfRElTUF9PVkwwCQlCSVQoMTEpCiAjZGVmaW5lIE1UODE3M19NVVRFWF9NT0RfRElTUF9PVkwx CQlCSVQoMTIpCiAjZGVmaW5lIE1UODE3M19NVVRFWF9NT0RfRElTUF9SRE1BMAkJQklUKDEzKQpA QCAtMzAwLDYgKzMwNCwyNyBAQCB2b2lkIG10a19kaXNwX211dGV4X2Rpc2FibGUoc3RydWN0IG10 a19kaXNwX211dGV4ICptdXRleCkKIAl3cml0ZWwoMCwgZGRwLT5yZWdzICsgRElTUF9SRUdfTVVU RVhfRU4obXV0ZXgtPmlkKSk7CiB9CiAKK3ZvaWQgbXRrX2Rpc3BfbXV0ZXhfYWNxdWlyZShzdHJ1 Y3QgbXRrX2Rpc3BfbXV0ZXggKm11dGV4KQoreworCXN0cnVjdCBtdGtfZGRwICpkZHAgPSBjb250 YWluZXJfb2YobXV0ZXgsIHN0cnVjdCBtdGtfZGRwLAorCQkJCQkgICBtdXRleFttdXRleC0+aWRd KTsKKwl1MzIgdG1wOworCisJd3JpdGVsKDEsIGRkcC0+cmVncyArIERJU1BfUkVHX01VVEVYX0VO KG11dGV4LT5pZCkpOworCXdyaXRlbCgxLCBkZHAtPnJlZ3MgKyBESVNQX1JFR19NVVRFWChtdXRl eC0+aWQpKTsKKwlpZiAocmVhZGxfcG9sbF90aW1lb3V0X2F0b21pYyhkZHAtPnJlZ3MgKyBESVNQ X1JFR19NVVRFWChtdXRleC0+aWQpLAorCQkJCSAgICAgIHRtcCwgdG1wICYgSU5UX01VVEVYLCAx LCAxMDAwMCkpCisJCXByX2VycigiY291bGQgbm90IGFjcXVpcmUgbXV0ZXggJWRcbiIsIG11dGV4 LT5pZCk7Cit9CisKK3ZvaWQgbXRrX2Rpc3BfbXV0ZXhfcmVsZWFzZShzdHJ1Y3QgbXRrX2Rpc3Bf bXV0ZXggKm11dGV4KQoreworCXN0cnVjdCBtdGtfZGRwICpkZHAgPSBjb250YWluZXJfb2YobXV0 ZXgsIHN0cnVjdCBtdGtfZGRwLAorCQkJCQkgICBtdXRleFttdXRleC0+aWRdKTsKKworCXdyaXRl bCgwLCBkZHAtPnJlZ3MgKyBESVNQX1JFR19NVVRFWChtdXRleC0+aWQpKTsKK30KKwogc3RhdGlj IGludCBtdGtfZGRwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJc3Ry dWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2RkcC5oIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k cm1fZGRwLmgKaW5kZXggOTJjMTE3NS4uZjlhNzk5MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fZGRwLmgKQEAgLTM3LDUgKzM3LDcgQEAgdm9pZCBtdGtfZGlzcF9tdXRleF9yZW1v dmVfY29tcChzdHJ1Y3QgbXRrX2Rpc3BfbXV0ZXggKm11dGV4LAogCQkJCWVudW0gbXRrX2RkcF9j b21wX2lkIGlkKTsKIHZvaWQgbXRrX2Rpc3BfbXV0ZXhfdW5wcmVwYXJlKHN0cnVjdCBtdGtfZGlz cF9tdXRleCAqbXV0ZXgpOwogdm9pZCBtdGtfZGlzcF9tdXRleF9wdXQoc3RydWN0IG10a19kaXNw X211dGV4ICptdXRleCk7Cit2b2lkIG10a19kaXNwX211dGV4X2FjcXVpcmUoc3RydWN0IG10a19k aXNwX211dGV4ICptdXRleCk7Cit2b2lkIG10a19kaXNwX211dGV4X3JlbGVhc2Uoc3RydWN0IG10 a19kaXNwX211dGV4ICptdXRleCk7CiAKICNlbmRpZiAvKiBNVEtfRFJNX0REUF9IICovCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oCmluZGV4IGZhMGIxMDYuLjk0ZjhiNjYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oCkBAIC0zMyw2ICszMyw3IEBAIHN0 cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgewogCXVuc2lnbmVkIGludCBtYWluX2xlbjsKIAlj b25zdCBlbnVtIG10a19kZHBfY29tcF9pZCAqZXh0X3BhdGg7CiAJdW5zaWduZWQgaW50IGV4dF9s ZW47CisJYm9vbCBzaGFkb3dfcmVnaXN0ZXI7CiB9OwogCiBzdHJ1Y3QgbXRrX2RybV9wcml2YXRl IHsKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK