From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shobhit Kumar Subject: [RFC v3 3/4] drm/i915: Add new panel driver based on crystal cove pmic Date: Wed, 21 Jan 2015 16:48:12 +0530 Message-ID: <1421839093-7635-4-git-send-email-shobhit.kumar@intel.com> References: <1421839093-7635-1-git-send-email-shobhit.kumar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1421839093-7635-1-git-send-email-shobhit.kumar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx Cc: Jani Nikula , Daniel Vetter , dri-devel , Shobhit Kumar List-Id: intel-gfx@lists.freedesktop.org VGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlICJjcnlzdGFsX2NvdmVfcGFuZWwi IGNlbGwgZGV2aWNlLgpPbiBCWVQtVCBwbWljIGhhcyB0byBiZSB1c2VkIHRvIGVuYWJsZS9kaXNh YmxlIHBhbmVsLgoKdjI6IEFkZHJlc3NlZCBKYW5pJ3MgY29tbWVudHMKICAgIC0gTW92ZWQgaW5z aWRlIGk5MTUKICAgIC0gQ29ycmVjdCBsaWNlbnNpbmcKICAgIC0gUmVtb3ZlIHVudXNlZCBzdHVm ZgogICAgLSBEbyBub3QgaW5pdGlhbGl6ZSBwcmVwYXJlL3VucHJlcGFyZSBhcyB0aGV5IGFyZSBu b3QgbmVlZGVkIGFzIG9mIG5vdwogICAgLSBDb3JyZWN0IGJhY2tsaWdodCBvZmYgZGVsYXkKClNp Z25lZC1vZmYtYnk6IFNob2JoaXQgS3VtYXIgPHNob2JoaXQua3VtYXJAaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcgICAgICAgICAgICAgICAgICAgfCAgMTIgKysK IGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDMgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWwtcGFuZWwtY3J5c3RhbGNvdmUuYyB8IDE1OSArKysr KysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE3NCBpbnNlcnRpb25zKCsp CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWwtcGFuZWwtY3J5 c3RhbGNvdmUuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnCmluZGV4IDRlMzlhYjMuLjA1MTBlZjAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvS2NvbmZpZwpAQCAtNjksMyArNjksMTUgQEAgY29uZmlnIERSTV9JOTE1X1BSRUxJTUlO QVJZX0hXX1NVUFBPUlQKIAkgIG9wdGlvbiBjaGFuZ2VzIHRoZSBkZWZhdWx0IGZvciB0aGF0IG1v ZHVsZSBvcHRpb24uCiAKIAkgIElmIGluIGRvdWJ0LCBzYXkgIk4iLgorCitjb25maWcgRFJNX0k5 MTVfUEFORUxfQ1JZU1RBTENPVkVfUE1JQworCWJvb2wgIkVuYWJsZSBkcm0gcGFuZWwgZm9yIGNy eXN0YWwgY292ZSBwbWljIGJhc2VkIGNvbnRyb2wiCisJZGVwZW5kcyBvbiBEUk1fSTkxNQorCWRl cGVuZHMgb24gRFJNX1BBTkVMCisJZGVmYXVsdCBuCisJaGVscAorCSAgQ2hvb3NlIHRoaXMgb3B0 aW9uIGlmIHlvdSBoYXZlIEJZVC1UIGJhc2VkIGRldmljZSB3aXRoIERTSSBwYW5lbC4gT24KKwkg IEJZVC1UIHRoZXJlIGEgY3J5c3RhbCBjb3ZlIFBNSUMgd2hpY2ggY29udHJvbHMgdGhlIFBBTkVM IEVOL0RJU0FCTEUKKwkgIHNpZ25hbHMuCisKKwkgIElmIGluIGRvdWJ0LCBzYXkgIk4iLgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZQppbmRleCAxODQ5ZmZhLi5jYzJmMTBkIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmls ZQpAQCAtODgsNCArODgsNyBAQCBpOTE1LXkgKz0gaTkxNV9kbWEubyBcCiAKIG9iai0kKENPTkZJ R19EUk1fSTkxNSkgICs9IGk5MTUubwogCisjIEk5MTUgRFJNIFBhbmVscworb2JqLSQoQ09ORklH X0RSTV9JOTE1X1BBTkVMX0NSWVNUQUxDT1ZFX1BNSUMpCSs9IGludGVsLXBhbmVsLWNyeXN0YWxj b3ZlLm8KKwogQ0ZMQUdTX2k5MTVfdHJhY2VfcG9pbnRzLm8gOj0gLUkkKHNyYykKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsLXBhbmVsLWNyeXN0YWxjb3ZlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbC1wYW5lbC1jcnlzdGFsY292ZS5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2YWVmYTMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbC1wYW5lbC1jcnlzdGFsY292ZS5jCkBAIC0wLDAgKzEsMTU5IEBA CisvKgorICogQ29weXJpZ2h0IMKpIDIwMTQgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJt aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv YnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3 YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAq IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmli dXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwg YW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNo ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAq IFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChp bmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxs IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoK KyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G IEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBT SEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB TlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9U SEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczoKKyAqCVNo b2JoaXQgS3VtYXIgPHNob2JoaXQua3VtYXJAaW50ZWwuY29tPgorICovCisKKyNpbmNsdWRlIDxk cm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgorI2luY2x1ZGUgPGRybS9kcm1f cGFuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tZmQvaW50ZWxfc29jX3BtaWMuaD4KKyNpbmNsdWRl IDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKwor I2RlZmluZSBQTUlDX1BBTkVMX0VOCQkweDUyCisjZGVmaW5lIFBNSUNfUFdNX0VOCQkweDUxCisj ZGVmaW5lIFBNSUNfQktMX0VOCQkweDRCCisjZGVmaW5lIFBNSUNfUFdNX0xFVkVMCQkweDRFCisK K3N0cnVjdCBjcnlzdGFsY292ZV9wYW5lbCB7CisJc3RydWN0IGRybV9wYW5lbCBiYXNlOworCWJv b2wgZW5hYmxlZDsKKworCS8qIGNyeXN0YWwgY292ZSBwbWljIHJlZ21hcCAqLworCXN0cnVjdCBy ZWdtYXAgKnJlZ21hcDsKK307CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNyeXN0YWxjb3ZlX3Bh bmVsICp0b19jcnlzdGFsY292ZV9wYW5lbChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwly ZXR1cm4gY29udGFpbmVyX29mKHBhbmVsLCBzdHJ1Y3QgY3J5c3RhbGNvdmVfcGFuZWwsIGJhc2Up OworfQorCitzdGF0aWMgaW50IGNyeXN0YWxjb3ZlX3BhbmVsX2Rpc2FibGUoc3RydWN0IGRybV9w YW5lbCAqcGFuZWwpCit7CisJc3RydWN0IGNyeXN0YWxjb3ZlX3BhbmVsICpwID0gdG9fY3J5c3Rh bGNvdmVfcGFuZWwocGFuZWwpOworCisJaWYgKCFwLT5lbmFibGVkKQorCQlyZXR1cm4gMDsKKwor CURSTV9ERUJVR19LTVMoIlxuIik7CisKKwkvKiBpbnZva2UgdGhlIHBtaWMgZHJpdmVyICovCisJ cmVnbWFwX3dyaXRlKHAtPnJlZ21hcCwgUE1JQ19QQU5FTF9FTiwgMHgwMCk7CisKKwkvKiBEaXNh YmxlIGJhY2tsaWdodCBhcyB3ZWxsICovCisJcmVnbWFwX3dyaXRlKHAtPnJlZ21hcCwgUE1JQ19Q V01fTEVWRUwsIDApOworCW1zbGVlcCgyMCk7CisJcmVnbWFwX3dyaXRlKHAtPnJlZ21hcCwgUE1J Q19QV01fRU4sIDB4MDApOworCXJlZ21hcF93cml0ZShwLT5yZWdtYXAsIFBNSUNfQktMX0VOLCAw eDdGKTsKKworCXAtPmVuYWJsZWQgPSBmYWxzZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMg aW50IGNyeXN0YWxjb3ZlX3BhbmVsX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sK KwlzdHJ1Y3QgY3J5c3RhbGNvdmVfcGFuZWwgKnAgPSB0b19jcnlzdGFsY292ZV9wYW5lbChwYW5l bCk7CisKKwlpZiAocC0+ZW5hYmxlZCkKKwkJcmV0dXJuIDA7CisKKwlEUk1fREVCVUdfS01TKCJc biIpOworCisJLyogaW52b2tlIHRoZSBwbWljIGRyaXZlciAqLworCXJlZ21hcF93cml0ZShwLT5y ZWdtYXAsIFBNSUNfUEFORUxfRU4sIDB4MDEpOworCisJLyogRW5hYmxlIEJLTCBhcyB3ZWxsICov CisJcmVnbWFwX3dyaXRlKHAtPnJlZ21hcCwgUE1JQ19CS0xfRU4sIDB4RkYpOworCXJlZ21hcF93 cml0ZShwLT5yZWdtYXAsIFBNSUNfUFdNX0VOLCAweDAxKTsKKwltc2xlZXAoMjApOworCXJlZ21h cF93cml0ZShwLT5yZWdtYXAsIFBNSUNfUFdNX0xFVkVMLCAyNTUpOworCisJcC0+ZW5hYmxlZCA9 IHRydWU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGFuZWxf ZnVuY3MgY3J5c3RhbGNvdmVfcGFuZWxfZnVuY3MgPSB7CisJLmRpc2FibGUgPSBjcnlzdGFsY292 ZV9wYW5lbF9kaXNhYmxlLAorCS5lbmFibGUgPSBjcnlzdGFsY292ZV9wYW5lbF9lbmFibGUsCit9 OworCitzdGF0aWMgaW50IGNyeXN0YWxjb3ZlX3BhbmVsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGNyeXN0YWxjb3ZlX3BhbmVsICpwYW5lbDsKKwlpbnQg cmV0dmFsOworCXN0cnVjdCBkZXZpY2UgKmRldiA9IHBkZXYtPmRldi5wYXJlbnQ7CisJc3RydWN0 IGludGVsX3NvY19wbWljICpwbWljID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlwYW5lbCA9 IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKnBhbmVsKSwgR0ZQX0tFUk5FTCk7CisJ aWYgKCFwYW5lbCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlEUk1fREVCVUdfS01TKCJcbiIpOwor CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcGFuZWwpOworCisJc3RyY3B5KHBhbmVsLT5i YXNlLm5hbWUsICJjcnlzdGFsX2NvdmVfcGFuZWwiKTsKKwlwYW5lbC0+cmVnbWFwID0gcG1pYy0+ cmVnbWFwOworCisJcmVnbWFwX3JlYWQocGFuZWwtPnJlZ21hcCwgUE1JQ19QQU5FTF9FTiwgJnJl dHZhbCk7CisJcGFuZWwtPmVuYWJsZWQgPSByZXR2YWw7CisKKwlkcm1fcGFuZWxfaW5pdCgmcGFu ZWwtPmJhc2UpOworCXBhbmVsLT5iYXNlLmRldiA9IGRldjsKKwlwYW5lbC0+YmFzZS5mdW5jcyA9 ICZjcnlzdGFsY292ZV9wYW5lbF9mdW5jczsKKworCWRybV9wYW5lbF9hZGQoJnBhbmVsLT5iYXNl KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNyeXN0YWxjb3ZlX3BhbmVsX3JlbW92 ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBjcnlzdGFsY292ZV9w YW5lbCAqcGFuZWwgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCURSTV9ERUJVR19L TVMoIlxuIik7CisKKwlkcm1fcGFuZWxfZGV0YWNoKCZwYW5lbC0+YmFzZSk7CisJZHJtX3BhbmVs X3JlbW92ZSgmcGFuZWwtPmJhc2UpOworCisJY3J5c3RhbGNvdmVfcGFuZWxfZGlzYWJsZSgmcGFu ZWwtPmJhc2UpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJp dmVyIGNyeXN0YWxjb3ZlX3BhbmVsX2RyaXZlciA9IHsKKwkucHJvYmUgPSBjcnlzdGFsY292ZV9w YW5lbF9wcm9iZSwKKwkucmVtb3ZlID0gY3J5c3RhbGNvdmVfcGFuZWxfcmVtb3ZlLAorCS5kcml2 ZXIgPSB7CisJCS5uYW1lID0gImNyeXN0YWxfY292ZV9wYW5lbCIsCisJfSwKK307CisKK21vZHVs ZV9wbGF0Zm9ybV9kcml2ZXIoY3J5c3RhbGNvdmVfcGFuZWxfZHJpdmVyKTsKKworTU9EVUxFX0FV VEhPUigiU2hvYmhpdCBLdW1hciA8c2hvYmhpdC5rdW1hckBsaW51eC5pbnRlbC5jb20iKTsKK01P RFVMRV9ERVNDUklQVElPTigiSW50ZWwgQ3J5c3RhbCBDb3ZlIFBhbmVsIERyaXZlciIpOworTU9E VUxFX0xJQ0VOU0UoIkdQTCBhbmQgYWRkaXRpb25hbCByaWdodHMiKTsKLS0gCjEuOS4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=