From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chandrabhanu Mahapatra Date: Wed, 21 Mar 2012 09:56:02 +0000 Subject: [PATCH V2 2/3] OMAPDSS: DISPC: Handle synclost errors in OMAP3 Message-Id: <1332323516-9050-1-git-send-email-cmahapatra@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="euc-kr" Content-Transfer-Encoding: base64 To: tomi.valkeinen@ti.com Cc: linux-omap@vger.kernel.org, linux-fbdev@vger.kernel.org, Chandrabhanu Mahapatra SW4gT01BUDMgRElTUEMgdmlkZW8gb3ZlcmxheXMgc3VmZmVyIGZyb20gc29tZSB1bmRvY3VtZW50 ZWQgaG9yaXpvbnRhbCBwb3NpdGlvbgphbmQgdGltaW5nIHJlbGF0ZWQgbGltaXRhdGlvbnMgbGVh ZGluZyB0byBTWU5DTE9TVCBlcnJvcnMuIFdoZW5ldmVyIHRoZSBpbWFnZQp3aW5kb3cgaXMgbW92 ZWQgdG93YXJkcyB0aGUgcmlnaHQgb2YgdGhlIHNjcmVlbiBTWU5DTE9TVCBlcnJvcnMgYmVjb21l CmZyZXF1ZW50LiBDaGVja3MgaGF2ZSBiZWVuIGltcGxlbWVudGVkIHRvIHNlZSB0aGF0IERJU1BD IGRyaXZlciByZWplY3RzCmNvbmZpZ3VyYXRpb24gZXhjZWVkaW5nIGFib3ZlIGxpbWl0YXRpb25z LgoKVGhpcyBjb2RlIHdhcyBzdWNjZXNzZnVsbHkgdGVzdGVkIG9uIE9NQVAzLiBUaGlzIGNvZGUg aXMgd3JpdHRlbiBiYXNlZCBvbiBjb2RlCndyaXR0ZW4gYnkgVmlsbGUgU3lyasOkbMOkIDx2aWxs ZS5zeXJqYWxhQG5va2lhLmNvbT4gaW4gTGludXggT01BUCBrZXJuZWwuIFZpbGxlClN5cmrDpGzD pCA8dmlsbGUuc3lyamFsYUBub2tpYS5jb20+IGhhZCBhZGRlZCBjaGVja3MgZm9yIHZpZGVvIG92 ZXJsYXkgaG9yaXpvbnRhbAp0aW1pbmcgYW5kIERJU1BDIGhvcml6b250YWwgYmxhbmtpbmcgbGVu Z3RoIGxpbWl0YXRpb25zLgoKU2lnbmVkLW9mZi1ieTogQ2hhbmRyYWJoYW51IE1haGFwYXRyYSA8 Y21haGFwYXRyYUB0aS5jb20+Ci0tLQogZHJpdmVycy92aWRlby9vbWFwMi9kc3MvZGlzcGMuYyB8 ICAgOTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGVzIGNo YW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdmlkZW8vb21hcDIvZHNzL2Rpc3BjLmMgYi9kcml2ZXJzL3ZpZGVvL29tYXAyL2Rzcy9k aXNwYy5jCmluZGV4IDVhMTk2M2UuLmQ4YTE2NzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8v b21hcDIvZHNzL2Rpc3BjLmMKKysrIGIvZHJpdmVycy92aWRlby9vbWFwMi9kc3MvZGlzcGMuYwpA QCAtMTYyMiw2ICsxNjIyLDU3IEBAIHN0YXRpYyB2b2lkIGNhbGNfZG1hX3JvdGF0aW9uX29mZnNl dCh1OCByb3RhdGlvbiwgYm9vbCBtaXJyb3IsCiAJfQogfQogCitzdGF0aWMgaW50IGNoZWNrX2hv cml6X3RpbWluZyhlbnVtIG9tYXBfY2hhbm5lbCBjaGFubmVsLCB1MTYgcG9zX3gsCisJCXUxNiB3 aWR0aCwgdTE2IGhlaWdodCwgdTE2IG91dF93aWR0aCwgdTE2IG91dF9oZWlnaHQpCit7CisJaW50 IERTID0gRElWX1JPVU5EX1VQKGhlaWdodCwgb3V0X2hlaWdodCk7CisJc3RydWN0IG9tYXBfZHNz X2RldmljZSAqZHNzZGV2ID0gZGlzcGNfbWdyX2dldF9kZXZpY2UoY2hhbm5lbCk7CisJc3RydWN0 IG9tYXBfdmlkZW9fdGltaW5ncyB0ID0gZHNzZGV2LT5wYW5lbC50aW1pbmdzOworCXVuc2lnbmVk IGxvbmcgbm9uYWN0aXZlLCBsY2xrLCBwY2xrOworCXN0YXRpYyBjb25zdCB1OCBsaW1pdHNbM10g PSB7IDgsIDEwLCAyMCB9OworCXU2NCB2YWwsIGJsYW5rOworCWludCBpOworCisJbm9uYWN0aXZl ID0gdC54X3JlcyArIHQuaGZwICsgdC5oc3cgKyB0LmhicCAtIG91dF93aWR0aDsKKwlwY2xrID0g ZGlzcGNfbWdyX3BjbGtfcmF0ZShjaGFubmVsKTsKKwlsY2xrID0gZGlzcGNfbWdyX2xjbGtfcmF0 ZShjaGFubmVsKTsKKworCWkgPSAwOworCWlmIChvdXRfaGVpZ2h0IDwgaGVpZ2h0KQorCQlpKys7 CisJaWYgKG91dF93aWR0aCA8IHdpZHRoKQorCQlpKys7CisJYmxhbmsgPSBkaXZfdTY0KCh1NjQp KHQuaGJwICsgdC5oc3cgKyB0LmhmcCkgKiBsY2xrLCBwY2xrKTsKKwlEU1NEQkcoImJsYW5raW5n IHBlcmlvZCArIHBwbCA9ICVsbHUgKGxpbWl0ID0gJXUpXG4iLCBibGFuaywgbGltaXRzW2ldKTsK KwlpZiAoYmxhbmsgPD0gbGltaXRzW2ldKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qCisJICog UGl4ZWwgZGF0YSBzaG91bGQgYmUgcHJlcGFyZWQgYmVmb3JlIHZpc2libGUgZGlzcGxheSBwb2lu dCBzdGFydHMuCisJICogU28sIGF0bGVhc3QgRFMtMiBsaW5lcyBtdXN0IGhhdmUgYWxyZWFkeSBi ZWVuIGZldGNoZWQgYnkgRElTUEMKKwkgKiBkdXJpbmcgbm9uYWN0aXZlIC0gcG9zX3ggcGVyaW9k LgorCSAqLworCXZhbCA9IGRpdl91NjQoKHU2NCkobm9uYWN0aXZlIC0gcG9zX3gpICogbGNsaywg cGNsayk7CisJRFNTREJHKCIobm9uYWN0aXZlIC0gcG9zX3gpICogcGNkID0gJWxsdSwiCisJCSIg bWF4KDAsIERTIC0gMikgKiB3aWR0aCA9ICVkXG4iLAorCQl2YWwsIG1heCgwLCBEUyAtIDIpICog d2lkdGgpOworCWlmICh2YWwgPCBtYXgoMCwgRFMgLSAyKSAqIHdpZHRoKQorCQlyZXR1cm4gLUVJ TlZBTDsKKworCS8qCisJICogQWxsIGxpbmVzIG5lZWQgdG8gYmUgcmVmaWxsZWQgZHVyaW5nIHRo ZSBub25hY3RpdmUgcGVyaW9kIG9mIHdoaWNoCisJICogb25seSBvbmUgbGluZSBjYW4gYmUgbG9h ZGVkIGR1cmluZyB0aGUgYWN0aXZlIHBlcmlvZC4gU28sIGF0bGVhc3QKKwkgKiBEUyAtIDEgbGlu ZXMgc2hvdWxkIGJlIGxvYWRlZCBkdXJpbmcgbm9uYWN0aXZlIHBlcmlvZC4KKwkgKi8KKwl2YWwg PSAgZGl2X3U2NCgodTY0KW5vbmFjdGl2ZSAqIGxjbGssIHBjbGspOworCURTU0RCRygibm9uYWN0 aXZlICogcGNkICA9ICVsbHUsIG1heCgwLCBEUyAtIDEpICogd2lkdGggPSAlZFxuIiwKKwkJdmFs LCBtYXgoMCwgRFMgLSAxKSAqIHdpZHRoKTsKKwlpZiAodmFsIDwgbWF4KDAsIERTIC0gMSkgKiB3 aWR0aCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIHVuc2ln bmVkIGxvbmcgY2FsY19mY2xrX2ZpdmVfdGFwcyhlbnVtIG9tYXBfY2hhbm5lbCBjaGFubmVsLCB1 MTYgd2lkdGgsCiAJCXUxNiBoZWlnaHQsIHUxNiBvdXRfd2lkdGgsIHUxNiBvdXRfaGVpZ2h0LAog CQllbnVtIG9tYXBfY29sb3JfbW9kZSBjb2xvcl9tb2RlKQpAQCAtMTcwMiw3ICsxNzUzLDcgQEAg c3RhdGljIGludCBkaXNwY19vdmxfY2FsY19zY2FsaW5nKGVudW0gb21hcF9wbGFuZSBwbGFuZSwK IAkJZW51bSBvbWFwX2NoYW5uZWwgY2hhbm5lbCwgdTE2IHdpZHRoLCB1MTYgaGVpZ2h0LAogCQl1 MTYgb3V0X3dpZHRoLCB1MTYgb3V0X2hlaWdodCwKIAkJZW51bSBvbWFwX2NvbG9yX21vZGUgY29s b3JfbW9kZSwgYm9vbCAqZml2ZV90YXBzLAotCQlpbnQgKnhfcHJlZGVjaW0sIGludCAqeV9wcmVk ZWNpbSkKKwkJaW50ICp4X3ByZWRlY2ltLCBpbnQgKnlfcHJlZGVjaW0sIHUxNiBwb3NfeCkKIHsK IAlzdHJ1Y3Qgb21hcF9vdmVybGF5ICpvdmwgPSBvbWFwX2Rzc19nZXRfb3ZlcmxheShwbGFuZSk7 CiAJY29uc3QgaW50IG1heGRvd25zY2FsZSA9IGRzc19mZWF0X2dldF9wYXJhbV9tYXgoRkVBVF9Q QVJBTV9ET1dOU0NBTEUpOwpAQCAtMTc3OCw2ICsxODI5LDkgQEAgc3RhdGljIGludCBkaXNwY19v dmxfY2FsY19zY2FsaW5nKGVudW0gb21hcF9wbGFuZSBwbGFuZSwKIAkJCWZjbGsgPSBjYWxjX2Zj bGtfZml2ZV90YXBzKGNoYW5uZWwsIGluX3dpZHRoLCBpbl9oZWlnaHQsCiAJCQkJb3V0X3dpZHRo LCBvdXRfaGVpZ2h0LCBjb2xvcl9tb2RlKTsKIAorCQkJZXJyb3IgPSBjaGVja19ob3Jpel90aW1p bmcoY2hhbm5lbCwgcG9zX3gsIGluX3dpZHRoLAorCQkJCWluX2hlaWdodCwgb3V0X3dpZHRoLCBv dXRfaGVpZ2h0KTsKKwogCQkJaWYgKGluX3dpZHRoID4gbWF4c2luZ2xlbGluZXdpZHRoKQogCQkJ CWlmIChpbl9oZWlnaHQgPiBvdXRfaGVpZ2h0ICYmCiAJCQkJCWluX2hlaWdodCA8IG91dF9oZWln aHQgKiAyKQpAQCAtMTc4NSw3ICsxODM5LDcgQEAgc3RhdGljIGludCBkaXNwY19vdmxfY2FsY19z Y2FsaW5nKGVudW0gb21hcF9wbGFuZSBwbGFuZSwKIAkJCWlmICghKmZpdmVfdGFwcykKIAkJCQlm Y2xrID0gY2FsY19mY2xrKGNoYW5uZWwsIGluX3dpZHRoLCBpbl9oZWlnaHQsCiAJCQkJCW91dF93 aWR0aCwgb3V0X2hlaWdodCk7Ci0JCQllcnJvciA9IChpbl93aWR0aCA+IG1heHNpbmdsZWxpbmV3 aWR0aCAqIDIgfHwKKwkJCWVycm9yID0gKGVycm9yIHx8IGluX3dpZHRoID4gbWF4c2luZ2xlbGlu ZXdpZHRoICogMiB8fAogCQkJCShpbl93aWR0aCA+IG1heHNpbmdsZWxpbmV3aWR0aCAmJiAqZml2 ZV90YXBzKSB8fAogCQkJCSFmY2xrIHx8IGZjbGsgPiBkaXNwY19mY2xrX3JhdGUoKSk7CiAJCQlp ZiAoZXJyb3IpIHsKQEAgLTE4MDEsNiArMTg1NSwxMiBAQCBzdGF0aWMgaW50IGRpc3BjX292bF9j YWxjX3NjYWxpbmcoZW51bSBvbWFwX3BsYW5lIHBsYW5lLAogCQl9IHdoaWxlIChkZWNpbV94IDw9 ICp4X3ByZWRlY2ltICYmIGRlY2ltX3kgPD0gKnlfcHJlZGVjaW0KIAkJCSYmIGVycm9yKTsKIAor CQlpZiAoY2hlY2tfaG9yaXpfdGltaW5nKGNoYW5uZWwsIHBvc194LCB3aWR0aCwgaGVpZ2h0LAor CQkJb3V0X3dpZHRoLCBvdXRfaGVpZ2h0KSl7CisJCQkJRFNTRVJSKCJob3Jpem9udGFsIHRpbWlu ZyB0b28gdGlnaHRcbiIpOworCQkJCXJldHVybiAtRUlOVkFMOworCQl9CisKIAkJaWYgKGluX3dp ZHRoID4gKG1heHNpbmdsZWxpbmV3aWR0aCAqIDIpKSB7CiAJCQlEU1NFUlIoIkNhbm5vdCBzZXR1 cCBzY2FsaW5nIik7CiAJCQlEU1NFUlIoIndpZHRoIGV4Y2VlZHMgbWF4aW11bSB3aWR0aCBwb3Nz aWJsZSIpOwpAQCAtMTkwMSw3ICsxOTYxLDcgQEAgaW50IGRpc3BjX292bF9zZXR1cChlbnVtIG9t YXBfcGxhbmUgcGxhbmUsIHN0cnVjdCBvbWFwX292ZXJsYXlfaW5mbyAqb2ksCiAKIAlyID0gZGlz cGNfb3ZsX2NhbGNfc2NhbGluZyhwbGFuZSwgY2hhbm5lbCwgaW5fd2lkdGgsIGluX2hlaWdodCwK IAkJCW91dF93aWR0aCwgb3V0X2hlaWdodCwgb2ktPmNvbG9yX21vZGUsICZmaXZlX3RhcHMsCi0J CQkmeF9wcmVkZWNpbSwgJnlfcHJlZGVjaW0pOworCQkJJnhfcHJlZGVjaW0sICZ5X3ByZWRlY2lt LCBvaS0+cG9zX3gpOwogCWlmIChyKQogCQlyZXR1cm4gcjsKIApAQCAtMjQ3MiwzMiArMjUzMiwx OSBAQCB1bnNpZ25lZCBsb25nIGRpc3BjX2ZjbGtfcmF0ZSh2b2lkKQogCiB1bnNpZ25lZCBsb25n IGRpc3BjX21ncl9sY2xrX3JhdGUoZW51bSBvbWFwX2NoYW5uZWwgY2hhbm5lbCkKIHsKLQlzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpkc2lkZXY7Ci0JaW50IGxjZDsKLQl1bnNpZ25lZCBsb25nIHI7 Ci0JdTMyIGw7CisJdW5zaWduZWQgbG9uZyByID0gZGlzcGNfZmNsa19yYXRlKCk7CiAKLQlsID0g ZGlzcGNfcmVhZF9yZWcoRElTUENfRElWSVNPUm8oY2hhbm5lbCkpOworCWlmIChkaXNwY19tZ3Jf aXNfbGNkKGNoYW5uZWwpKSB7CisJCXUzMiBsOworCQlpbnQgbGNkOwogCi0JbGNkID0gRkxEX0dF VChsLCAyMywgMTYpOworCQlsID0gZGlzcGNfcmVhZF9yZWcoRElTUENfRElWSVNPUm8oY2hhbm5l bCkpOworCQlsY2QgPSBGTERfR0VUKGwsIDIzLCAxNik7CiAKLQlzd2l0Y2ggKGRzc19nZXRfbGNk X2Nsa19zb3VyY2UoY2hhbm5lbCkpIHsKLQljYXNlIE9NQVBfRFNTX0NMS19TUkNfRkNLOgotCQly ID0gY2xrX2dldF9yYXRlKGRpc3BjLmRzc19jbGspOwotCQlicmVhazsKLQljYXNlIE9NQVBfRFNT X0NMS19TUkNfRFNJX1BMTF9IU0RJVl9ESVNQQzoKLQkJZHNpZGV2ID0gZHNpX2dldF9kc2lkZXZf ZnJvbV9pZCgwKTsKLQkJciA9IGRzaV9nZXRfcGxsX2hzZGl2X2Rpc3BjX3JhdGUoZHNpZGV2KTsK LQkJYnJlYWs7Ci0JY2FzZSBPTUFQX0RTU19DTEtfU1JDX0RTSTJfUExMX0hTRElWX0RJU1BDOgot CQlkc2lkZXYgPSBkc2lfZ2V0X2RzaWRldl9mcm9tX2lkKDEpOwotCQlyID0gZHNpX2dldF9wbGxf aHNkaXZfZGlzcGNfcmF0ZShkc2lkZXYpOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlCVUcoKTsK KwkJcmV0dXJuIHIgLyBsY2Q7CisJfSBlbHNlIHsKKwkJcmV0dXJuIHI7CiAJfQotCi0JcmV0dXJu IHIgLyBsY2Q7CiB9CiAKIHVuc2lnbmVkIGxvbmcgZGlzcGNfbWdyX3BjbGtfcmF0ZShlbnVtIG9t YXBfY2hhbm5lbCBjaGFubmVsKQotLSAKMS43LjEKCi0tClRvIHVuc3Vic2NyaWJlIGZyb20gdGhp cyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC1mYmRldiIgaW4KdGhlIGJv ZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcKTW9yZSBtYWpvcmRv bW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1s