From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shobhit Kumar Subject: [RFC v2 3/4] drm/panel: Add new panel driver based on crystal cove pmic Date: Fri, 2 Jan 2015 19:11:24 +0530 Message-ID: <1420206085-2913-4-git-send-email-shobhit.kumar@intel.com> References: <1420206085-2913-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: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 128B86E37D for ; Fri, 2 Jan 2015 05:38:52 -0800 (PST) In-Reply-To: <1420206085-2913-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 , jacob.jun.pan@intel.com, Shobhit Kumar List-Id: intel-gfx@lists.freedesktop.org VGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlICJjcnlzdGFsX2NvdmVfcGFuZWwi IGNlbGwgZGV2aWNlLgpPbiBCWVQtVCBwbWljIGhhcyB0byBiZSB1c2VkIHRvIGVuYWJsZS9kaXNh YmxlIHBhbmVsLgoKU2lnbmVkLW9mZi1ieTogU2hvYmhpdCBLdW1hciA8c2hvYmhpdC5rdW1hckBp bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcgICAgICAgICAgICAg fCAgIDcgKysKIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9NYWtlZmlsZSAgICAgICAgICAgIHwgICAx ICsKIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1jcnlzdGFsY292ZS5jIHwgMTkxICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxOTkgaW5zZXJ0aW9u cygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1jcnlz dGFsY292ZS5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcgYi9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZwppbmRleCAwMjRlOThlLi5kODEzYmQxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9k cm0vcGFuZWwvS2NvbmZpZwpAQCAtNDAsNCArNDAsMTEgQEAgY29uZmlnIERSTV9QQU5FTF9TSEFS UF9MUTEwMVIxU1gwMQogCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hv b3NlIE0gaGVyZTogdGhlIG1vZHVsZQogCSAgd2lsbCBiZSBjYWxsZWQgcGFuZWwtc2hhcnAtbHEx MDFyMXN4MDEuCiAKK2NvbmZpZyBEUk1fUEFORUxfQ1JZU1RBTENPVkUKKwl0cmlzdGF0ZSAiQ3J5 c3RhbGNvdmUgUE1JQyBjb250cm9sbGVkIHBhbmVsIgorCWRlcGVuZHMgb24gSU5URUxfU09DX1BN SUMKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBzdXBwb3J0IGZv ciBEU0kgcGFuZWwgYW5kIGJhY2tsaWdodAorCSAgY29udHJvbCB1c2luZyBjcnlzdGFsY292ZSBw bWljLiBUaGlzIGlzIHVzZWQgZm9yIEJZVCBDUiBjb25maWd1cmF0aW9ucworCiBlbmRtZW51CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9k cm0vcGFuZWwvTWFrZWZpbGUKaW5kZXggNGIyYTA0My4uYzA1ODI0ZSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9N YWtlZmlsZQpAQCAtMiwzICsyLDQgQEAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TSU1QTEUpICs9 IHBhbmVsLXNpbXBsZS5vCiBvYmotJChDT05GSUdfRFJNX1BBTkVMX0xEOTA0MCkgKz0gcGFuZWwt bGQ5MDQwLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfUzZFOEFBMCkgKz0gcGFuZWwtczZlOGFh MC5vCiBvYmotJChDT05GSUdfRFJNX1BBTkVMX1NIQVJQX0xRMTAxUjFTWDAxKSArPSBwYW5lbC1z aGFycC1scTEwMXIxc3gwMS5vCitvYmotJChDT05GSUdfRFJNX1BBTkVMX0NSWVNUQUxDT1ZFKSAr PSBwYW5lbC1jcnlzdGFsY292ZS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtY3J5c3RhbGNvdmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1jcnlzdGFs Y292ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyZjdmZjUKLS0tIC9k ZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtY3J5c3RhbGNvdmUuYwpA QCAtMCwwICsxLDE5MSBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDA2LTIwMTQgSW50ZWwgQ29y cG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJl IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAq IHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l cmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29w aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisg KiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hh bGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJ TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP TERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJ TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNF LCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisg KgorICogQXV0aG9yczoKKyAqCVNob2JoaXQgS3VtYXIgPHNob2JoaXQua3VtYXJAaW50ZWwuY29t PgorICovCisKKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5o PgorI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tZmQvaW50ZWxf c29jX3BtaWMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRl IDxsaW51eC9yZWdtYXAuaD4KKworI2RlZmluZSBQTUlDX1BBTkVMX0VOCQkweDUyCisjZGVmaW5l IFBNSUNfUFdNX0VOCQkweDUxCisjZGVmaW5lIFBNSUNfQktMX0VOCQkweDRCCisjZGVmaW5lIFBN SUNfUFdNX0xFVkVMCQkweDRFCisKK3N0cnVjdCBjcnlzdGFsY292ZV9wYW5lbCB7CisJc3RydWN0 IGRybV9wYW5lbCBiYXNlOworCWNoYXIgbmFtZVtOQU1FX01BWF07CisJYm9vbCBwcmVwYXJlZDsK Kwlib29sIGVuYWJsZWQ7CisKKwlzdHJ1Y3QgbXV0ZXggbG9jazsKKworCS8qIGNyeXN0YWwgY292 ZSBwbWljIHJlZ21hcCAqLworCXN0cnVjdCByZWdtYXAgKnJlZ21hcDsKK307CisKK3N0YXRpYyBp bmxpbmUgc3RydWN0IGNyeXN0YWxjb3ZlX3BhbmVsICp0b19jcnlzdGFsY292ZV9wYW5lbChzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKHBhbmVsLCBzdHJ1 Y3QgY3J5c3RhbGNvdmVfcGFuZWwsIGJhc2UpOworfQorCitzdGF0aWMgaW50IGNyeXN0YWxjb3Zl X3BhbmVsX2Rpc2FibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IGNyeXN0 YWxjb3ZlX3BhbmVsICpwID0gdG9fY3J5c3RhbGNvdmVfcGFuZWwocGFuZWwpOworCisJaWYgKCFw LT5lbmFibGVkKQorCQlyZXR1cm4gMDsKKworCURSTV9ERUJVR19LTVMoIlxuIik7CisKKwkvKiBp bnZva2UgdGhlIHBtaWMgZHJpdmVyICovCisJcmVnbWFwX3dyaXRlKHAtPnJlZ21hcCwgUE1JQ19Q QU5FTF9FTiwgMHgwMCk7CisKKwkvKiBEaXNhYmxlIGJhY2tsaWdodCBhcyB3ZWxsICovCisJcmVn bWFwX3dyaXRlKHAtPnJlZ21hcCwgUE1JQ19QV01fTEVWRUwsIDApOworCW1zbGVlcCgyMCk7CisJ cmVnbWFwX3dyaXRlKHAtPnJlZ21hcCwgUE1JQ19QV01fRU4sIDB4MDApOworCXJlZ21hcF93cml0 ZShwLT5yZWdtYXAsIFBNSUNfQktMX0VOLCAweDdGKTsKKworCXAtPmVuYWJsZWQgPSBmYWxzZTsK KworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNyeXN0YWxjb3ZlX3BhbmVsX3VucHJlcGFy ZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3QgY3J5c3RhbGNvdmVfcGFuZWwg KnAgPSB0b19jcnlzdGFsY292ZV9wYW5lbChwYW5lbCk7CisKKwlpZiAoIXAtPnByZXBhcmVkKQor CQlyZXR1cm4gMDsKKworCS8qIE5vdGhpbmcgbmVlZGVkICovCisJcC0+cHJlcGFyZWQgPSBmYWxz ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNyeXN0YWxjb3ZlX3BhbmVsX3ByZXBh cmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IGNyeXN0YWxjb3ZlX3BhbmVs ICpwID0gdG9fY3J5c3RhbGNvdmVfcGFuZWwocGFuZWwpOworCisJaWYgKHAtPnByZXBhcmVkKQor CQlyZXR1cm4gMDsKKworCS8qIE5vdGhpbmcgbmVlZGVkICovCisJcC0+cHJlcGFyZWQgPSB0cnVl OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3J5c3RhbGNvdmVfcGFuZWxfZW5hYmxl KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCBjcnlzdGFsY292ZV9wYW5lbCAq cCA9IHRvX2NyeXN0YWxjb3ZlX3BhbmVsKHBhbmVsKTsKKworCWlmIChwLT5lbmFibGVkKQorCQly ZXR1cm4gMDsKKworCURSTV9ERUJVR19LTVMoIlxuIik7CisKKwkvKiBpbnZva2UgdGhlIHBtaWMg ZHJpdmVyICovCisJcmVnbWFwX3dyaXRlKHAtPnJlZ21hcCwgUE1JQ19QQU5FTF9FTiwgMHgwMSk7 CisKKwkvKiBFbmFibGUgQktMIGFzIHdlbGwgKi8KKwlyZWdtYXBfd3JpdGUocC0+cmVnbWFwLCBQ TUlDX0JLTF9FTiwgMHhGRik7CisJcmVnbWFwX3dyaXRlKHAtPnJlZ21hcCwgUE1JQ19QV01fRU4s IDB4MDEpOworCW1zbGVlcCgyMCk7CisJcmVnbWFwX3dyaXRlKHAtPnJlZ21hcCwgUE1JQ19QV01f TEVWRUwsIDI1NSk7CisKKwlwLT5lbmFibGVkID0gdHJ1ZTsKKworCXJldHVybiAwOworfQorCitz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9wYW5lbF9mdW5jcyBjcnlzdGFsY292ZV9wYW5lbF9mdW5j cyA9IHsKKwkuZGlzYWJsZSA9IGNyeXN0YWxjb3ZlX3BhbmVsX2Rpc2FibGUsCisJLnVucHJlcGFy ZSA9IGNyeXN0YWxjb3ZlX3BhbmVsX3VucHJlcGFyZSwKKwkucHJlcGFyZSA9IGNyeXN0YWxjb3Zl X3BhbmVsX3ByZXBhcmUsCisJLmVuYWJsZSA9IGNyeXN0YWxjb3ZlX3BhbmVsX2VuYWJsZSwKK307 CisKK3N0YXRpYyBpbnQgY3J5c3RhbGNvdmVfcGFuZWxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgY3J5c3RhbGNvdmVfcGFuZWwgKnBhbmVsOworCWludCBy ZXR2YWw7CisJc3RydWN0IGRldmljZSAqZGV2ID0gcGRldi0+ZGV2LnBhcmVudDsKKwlzdHJ1Y3Qg aW50ZWxfc29jX3BtaWMgKnBtaWMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCXBhbmVsID0g ZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqcGFuZWwpLCBHRlBfS0VSTkVMKTsKKwlp ZiAoIXBhbmVsKQorCQlyZXR1cm4gLUVOT01FTTsKKworCURSTV9ERUJVR19LTVMoIlxuIik7CisK KwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBwYW5lbCk7CisKKwlzdHJjcHkocGFuZWwtPmJh c2UubmFtZSwgImNyeXN0YWxfY292ZV9wYW5lbCIpOworCXBhbmVsLT5yZWdtYXAgPSBwbWljLT5y ZWdtYXA7CisKKwlyZWdtYXBfcmVhZChwYW5lbC0+cmVnbWFwLCBQTUlDX1BBTkVMX0VOLCAmcmV0 dmFsKTsKKwlwYW5lbC0+ZW5hYmxlZCA9IHBhbmVsLT5wcmVwYXJlZCA9IHJldHZhbCA/IHRydWUg OiBmYWxzZTsKKworCWRybV9wYW5lbF9pbml0KCZwYW5lbC0+YmFzZSk7CisJcGFuZWwtPmJhc2Uu ZGV2ID0gZGV2OworCXBhbmVsLT5iYXNlLmZ1bmNzID0gJmNyeXN0YWxjb3ZlX3BhbmVsX2Z1bmNz OworCisJZHJtX3BhbmVsX2FkZCgmcGFuZWwtPmJhc2UpOworCisJcmV0dXJuIDA7Cit9CisKK3N0 YXRpYyBpbnQgY3J5c3RhbGNvdmVfcGFuZWxfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCit7CisJc3RydWN0IGNyeXN0YWxjb3ZlX3BhbmVsICpwYW5lbCA9IHBsYXRmb3JtX2dl dF9kcnZkYXRhKHBkZXYpOworCisJRFJNX0RFQlVHX0tNUygiXG4iKTsKKworCWRybV9wYW5lbF9k ZXRhY2goJnBhbmVsLT5iYXNlKTsKKwlkcm1fcGFuZWxfcmVtb3ZlKCZwYW5lbC0+YmFzZSk7CisK KwljcnlzdGFsY292ZV9wYW5lbF9kaXNhYmxlKCZwYW5lbC0+YmFzZSk7CisKKwlyZXR1cm4gMDsK K30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY3J5c3RhbGNvdmVfcGFuZWxfZHJp dmVyID0geworCS5wcm9iZSA9IGNyeXN0YWxjb3ZlX3BhbmVsX3Byb2JlLAorCS5yZW1vdmUgPSBj cnlzdGFsY292ZV9wYW5lbF9yZW1vdmUsCisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAiY3J5c3Rh bF9jb3ZlX3BhbmVsIiwKKwl9LAorfTsKKworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihjcnlzdGFs Y292ZV9wYW5lbF9kcml2ZXIpOworCitNT0RVTEVfQVVUSE9SKCJTaG9iaGl0IEt1bWFyIDxzaG9i aGl0Lmt1bWFyQGxpbnV4LmludGVsLmNvbSIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJJbnRlbCBD cnlzdGFsIENvdmUgUGFuZWwgRHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Ci0t IAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK