From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH v2 2/4] drm/i915: Add lspcon support for I915 driver Date: Tue, 21 Jun 2016 20:30:57 +0530 Message-ID: <1466521259-9309-3-git-send-email-shashank.sharma@intel.com> References: <1466521259-9309-1-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 90E6E6E729 for ; Tue, 21 Jun 2016 14:51:35 +0000 (UTC) In-Reply-To: <1466521259-9309-1-git-send-email-shashank.sharma@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@lists.freedesktop.org, ville.syrjala@linux.intel.com Cc: paulo.r.zanoni@intel.com List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIGEgbmV3IGZpbGUsIHRvIGFjY29tbW9kYXRlIGxzcGNvbiBzdXBwb3J0 CmZvciBJOTE1IGRyaXZlci4gVGhlc2UgZnVuY3Rpb25zIHByb2JlLCBkZXRlY3QsIGluaXRpYWxp emUKYW5kIGNvbmZpZ3VyZSBhbiBvbi1ib2FyZCBsc3Bjb24gZGV2aWNlIGR1cmluZyB0aGUgZHJp dmVyCmluaXQgdGltZS4KCkFsc28sIHRoaXMgcGF0Y2ggYWRkcyBhIHNtYWxsIHN0cnVjdHVyZSBm b3IgbHNwY29uIGRldmljZSwKd2hpY2ggd2lsbCBwcm92aWRlIHRoZSBydW50aW1lIHN0YXR1cyBv ZiB0aGUgZGV2aWNlLgoKVjI6IGFkZHJlc3NlZCB2aWxsZSdzIHJldmlldyBjb21tZW50cwotIENs ZWFuIHRoZSBsZWZ0b3ZlciBtYWNyb3MgZnJvbSBwcmV2aW91cyBwYXRjaCBzZXQKClNpZ25lZC1v ZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KU2lnbmVk LW9mZi1ieTogQWthc2hkZWVwIFNoYXJtYSA8YWthc2hkZWVwLnNoYXJtYUBpbnRlbC5jb20+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgfCAgIDEgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgfCAgMTMgKysrLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHNwY29uLmMgfCAxNDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiAzIGZpbGVzIGNoYW5nZWQsIDE1OCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L01ha2VmaWxlCmluZGV4IDI3NmFiZjEuLmQ0MGZmN2QgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2Vm aWxlCkBAIC05Myw2ICs5Myw3IEBAIGk5MTUteSArPSBkdm9fY2g3MDE3Lm8gXAogCSAgaW50ZWxf ZHZvLm8gXAogCSAgaW50ZWxfaGRtaS5vIFwKIAkgIGludGVsX2kyYy5vIFwKKwkgIGludGVsX2xz cGNvbi5vIFwKIAkgIGludGVsX2x2ZHMubyBcCiAJICBpbnRlbF9wYW5lbC5vIFwKIAkgIGludGVs X3Nkdm8ubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDdkMGUwNzEuLjRlNDljMTYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC04OTQsMTIgKzg5NCwxOSBAQCBzdHJ1Y3Qg aW50ZWxfZHAgewogCWJvb2wgY29tcGxpYW5jZV90ZXN0X2FjdGl2ZTsKIH07CiAKK3N0cnVjdCBp bnRlbF9sc3Bjb24geworCWJvb2wgYWN0aXZlOworCWVudW0gZHJtX2xzcGNvbl9tb2RlIG1vZGVf b2Zfb3A7CisJc3RydWN0IGRybV9kcF9hdXggKmF1eDsKK307CisKIHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgewogCXN0cnVjdCBpbnRlbF9lbmNvZGVyIGJhc2U7CiAJZW51bSBwb3J0IHBvcnQ7 CiAJdTMyIHNhdmVkX3BvcnRfYml0czsKIAlzdHJ1Y3QgaW50ZWxfZHAgZHA7CiAJc3RydWN0IGlu dGVsX2hkbWkgaGRtaTsKKwlzdHJ1Y3QgaW50ZWxfbHNwY29uIGxzcGNvbjsKIAllbnVtIGlycXJl dHVybiAoKmhwZF9wdWxzZSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqLCBib29sKTsKIAli b29sIHJlbGVhc2VfY2wyX292ZXJyaWRlOwogCXVpbnQ4X3QgbWF4X2xhbmVzOwpAQCAtMTQ1MCw3 ICsxNDU3LDYgQEAgYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZyk7CiB2b2lkIGludGVsX2RwX2R1YWxfbW9kZV9zZXRfdG1kc19vdXRwdXQoc3RydWN0 IGludGVsX2hkbWkgKmhkbWksIGJvb2wgZW5hYmxlKTsKIAotCiAvKiBpbnRlbF9sdmRzLmMgKi8K IHZvaWQgaW50ZWxfbHZkc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogYm9vbCBpbnRl bF9pc19kdWFsX2xpbmtfbHZkcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKQEAgLTE3NDUsNCAr MTc1MSw5IEBAIGludCBpbnRlbF9jb2xvcl9jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpOwogdm9pZCBpbnRlbF9jb2xvcl9zZXRfY3NjKHN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiB2b2lkIGludGVsX2NvbG9yX2xvYWRf bHV0cyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwogCisvKiBpbnRlbF9sc3Bj b24uYyAqLworYm9vbCBsc3Bjb25faW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRl bF9kaWdfcG9ydCk7CitlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCitsc3Bjb25fbHNfbW9kZV9k ZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSk7Citib29s IGlzX2xzcGNvbl9hY3RpdmUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwog I2VuZGlmIC8qIF9fSU5URUxfRFJWX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHNwY29uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24u YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGVmZjcxCi0tLSAvZGV2L251 bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKQEAgLTAsMCArMSwx NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNiBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAq IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy c29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQg ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUg U29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlv bgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRp c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3 YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1 cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cisg KgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp Y2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBp biBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUu CisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVW RU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUg Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKgorICovCisjaW5j bHVkZSA8ZHJtL2RybV9lZGlkLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+ CisjaW5jbHVkZSA8ZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmg+CisjaW5jbHVkZSAiaW50 ZWxfZHJ2LmgiCisKK2Jvb2wgaXNfbHNwY29uX2FjdGl2ZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICpkaWdfcG9ydCkKK3sKKwlyZXR1cm4gZGlnX3BvcnQtPmxzcGNvbi5hY3RpdmU7Cit9CisK K2VudW0gZHJtX2xzcGNvbl9tb2RlIGxzcGNvbl9nZXRfY3VycmVudF9tb2RlKHN0cnVjdCBpbnRl bF9sc3Bjb24gKmxzcGNvbikKK3sKKwllbnVtIGRybV9sc3Bjb25fbW9kZSBjdXJyZW50X21vZGUg PSBEUk1fTFNQQ09OX01PREVfSU5WQUxJRDsKKwlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIg PSAmbHNwY29uLT5hdXgtPmRkYzsKKworCWlmIChkcm1fbHNwY29uX2dldF9tb2RlKGFkYXB0ZXIs ICZjdXJyZW50X21vZGUpKQorCQlEUk1fRVJST1IoIkVycm9yIHJlYWRpbmcgTFNQQ09OIG1vZGVc biIpOworCWVsc2UKKwkJRFJNX0RFQlVHX0tNUygiQ3VycmVudCBMU1BDT04gbW9kZSAlc1xuIiwK KwkJCWN1cnJlbnRfbW9kZSA9PSBEUk1fTFNQQ09OX01PREVfUENPTiA/ICJQQ09OIiA6ICJMUyIp OworCXJldHVybiBjdXJyZW50X21vZGU7Cit9CisKK2ludCBsc3Bjb25fY2hhbmdlX21vZGUoc3Ry dWN0IGludGVsX2xzcGNvbiAqbHNwY29uLAorCWVudW0gZHJtX2xzcGNvbl9tb2RlIG1vZGUsIGJv b2wgZm9yY2UpCit7CisJaW50IGVycjsKKwllbnVtIGRybV9sc3Bjb25fbW9kZSBjdXJyZW50X21v ZGU7CisJc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyID0gJmxzcGNvbi0+YXV4LT5kZGM7CisK KwllcnIgPSBkcm1fbHNwY29uX2dldF9tb2RlKGFkYXB0ZXIsICZjdXJyZW50X21vZGUpOworCWlm IChlcnIpIHsKKwkJRFJNX0VSUk9SKCJFcnJvciByZWFkaW5nIExTUENPTiBtb2RlXG4iKTsKKwkJ cmV0dXJuIGVycjsKKwl9CisKKwlpZiAoY3VycmVudF9tb2RlID09IG1vZGUgJiYgIWZvcmNlKSB7 CisJCURSTV9ERUJVR19LTVMoIkN1cnJlbnQgbW9kZSA9IGRlc2lyZWQgTFNQQ09OIG1vZGVcbiIp OworCQlyZXR1cm4gMDsKKwl9CisKKwllcnIgPSBkcm1fbHNwY29uX3NldF9tb2RlKGFkYXB0ZXIs IG1vZGUpOworCWlmIChlcnIgPCAwKSB7CisJCURSTV9FUlJPUigiTFNQQ09OIG1vZGUgY2hhbmdl IGZhaWxlZFxuIik7CisJCXJldHVybiBlcnI7CisJfQorCisJbHNwY29uLT5tb2RlX29mX29wID0g bW9kZTsKKwlEUk1fREVCVUdfS01TKCJMU1BDT04gbW9kZSBjaGFuZ2VkIGRvbmVcbiIpOworCXJl dHVybiAwOworfQorCitib29sIGxzcGNvbl9kZXRlY3RfaWRlbnRpZmllcihzdHJ1Y3QgaW50ZWxf bHNwY29uICpsc3Bjb24pCit7CisJZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgYWRhcHRvcl90 eXBlOworCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciA9ICZsc3Bjb24tPmF1eC0+ZGRjOwor CisJLyogTGV0cyBwcm9iZSB0aGUgYWRhcHRvciBhbmQgY2hlY2sgaXRzIHR5cGUgKi8KKwlhZGFw dG9yX3R5cGUgPSBkcm1fZHBfZHVhbF9tb2RlX2RldGVjdChhZGFwdGVyKTsKKwlpZiAoYWRhcHRv cl90eXBlICE9IERSTV9EUF9EVUFMX01PREVfTFNQQ09OKSB7CisJCURSTV9ERUJVR19LTVMoIk5v IExTUENPTiBkZXRlY3RlZCwgZm91bmQgJXNcbiIsCisJCQlkcm1fZHBfZ2V0X2R1YWxfbW9kZV90 eXBlX25hbWUoYWRhcHRvcl90eXBlKSk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKiBZYXkg Li4uIGdvdCBhIExTUENPTiBkZXZpY2UgKi8KKwlEUk1fREVCVUdfS01TKCJMU1BDT04gZGV0ZWN0 ZWRcbiIpOworCXJldHVybiB0cnVlOworfQorCitlbnVtIGRybV9sc3Bjb25fbW9kZSBsc3Bjb25f cHJvYmUoc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uKQoreworCisJLyogRGV0ZWN0IGEgdmFs aWQgbHNwY29uIGFkYXB0b3IgKi8KKwlpZiAoIWxzcGNvbl9kZXRlY3RfaWRlbnRpZmllcihsc3Bj b24pKSB7CisJCURSTV9ERUJVR19LTVMoIk5vIExTUENPTiBpZGVudGlmaWVyIGZvdW5kXG4iKTsK KwkJcmV0dXJuIGZhbHNlOworCX0KKworCS8qIEdldCBMU1BDT04ncyBtb2RlIG9mIG9wZXJhdGlv biAqLworCWxzcGNvbi0+bW9kZV9vZl9vcCA9IGxzcGNvbl9nZXRfY3VycmVudF9tb2RlKGxzcGNv bik7CisJbHNwY29uLT5hY3RpdmUgPSB0cnVlOworCXJldHVybiB0cnVlOworfQorCitib29sIGxz cGNvbl9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQorewor CXN0cnVjdCBpbnRlbF9kcCAqZHAgPSAmaW50ZWxfZGlnX3BvcnQtPmRwOworCXN0cnVjdCBpbnRl bF9sc3Bjb24gKmxzcGNvbiA9ICZpbnRlbF9kaWdfcG9ydC0+bHNwY29uOworCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKKworCWlmICghSVNf R0VOOShkZXYpKSB7CisJCURSTV9FUlJPUigiTFNQQ09OIGlzIHN1cHBvcnRlZCBvbiBHRU45IG9u bHlcbiIpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJbHNwY29uLT5hY3RpdmUgPSBmYWxzZTsK Kwlsc3Bjb24tPm1vZGVfb2Zfb3AgPSBEUk1fTFNQQ09OX01PREVfSU5WQUxJRDsKKwlsc3Bjb24t PmF1eCA9ICZkcC0+YXV4OworCisJaWYgKCFsc3Bjb25fcHJvYmUobHNwY29uKSkgeworCQlEUk1f RVJST1IoIkZhaWxlZCB0byBwcm9iZSBsc3Bjb25cbiIpOworCQlyZXR1cm4gZmFsc2U7CisJfQor CisJLyoKKwkqIEluIHRoZSBTVyBzdGF0ZSBtYWNoaW5lLCBsZXRzIFB1dCBMU1BDT04gaW4gUENP TiBtb2RlIG9ubHkuCisJKiBJbiB0aGlzIHdheSwgaXQgd2lsbCB3b3JrIHdpdGggYm90aCBIRE1J IDEuNCBzaW5rcyBhcyB3ZWxsIGFzIEhETUkKKwkqIDIuMCBzaW5rcy4KKwkqLworCWlmIChsc3Bj b24tPmFjdGl2ZSAmJiBsc3Bjb24tPm1vZGVfb2Zfb3AgIT0gRFJNX0xTUENPTl9NT0RFX1BDT04p IHsKKwkJaWYgKGxzcGNvbl9jaGFuZ2VfbW9kZShsc3Bjb24sIERSTV9MU1BDT05fTU9ERV9QQ09O LAorCQkJdHJ1ZSkgPCAwKSB7CisJCQlEUk1fRVJST1IoIkxTUENPTiBtb2RlIGNoYW5nZSB0byBQ Q09OIGZhaWxlZFxuIik7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9CisKKwlEUk1fREVCVUdf S01TKCJTdWNjZXNzOiBMU1BDT04gaW5pdFxuIik7CisJcmV0dXJuIHRydWU7Cit9Ci0tIAoxLjku MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==