From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak M Subject: [MIPI SEQ PARSING v1 PATCH 6/9] drm/i915: GPIO for CHT generic MIPI Date: Tue, 28 Jul 2015 15:31:07 +0530 Message-ID: <1438077670-12953-7-git-send-email-m.deepak@intel.com> References: <1438077670-12953-1-git-send-email-m.deepak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 14FB772067 for ; Tue, 28 Jul 2015 02:56:46 -0700 (PDT) In-Reply-To: <1438077670-12953-1-git-send-email-m.deepak@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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogWW9nZXNoIE1vaGFuIE1hcmltdXRodSA8eW9nZXNoLm1vaGFuLm1hcmltdXRodUBpbnRl bC5jb20+CgpUaGUgR1BJTyBjb25maWd1cmF0aW9uIGFuZCByZWdpc3RlciBvZmZzZXRzIGFyZSBk aWZmZXJlbnQgZnJvbQpiYXl0cmFpbCBmb3IgY2hlcnJ5dHJhaWwuIFBvcnQgdGhlIGdwaW8gcHJv Z3JhbW1pbmcgYWNjb3JkaW5nbHkKZm9yIGNoZXJyeXRyYWlsIGluIHRoaXMgcGF0Y2guCgpTaWdu ZWQtb2ZmLWJ5OiBZb2dlc2ggTW9oYW4gTWFyaW11dGh1IDx5b2dlc2gubW9oYW4ubWFyaW11dGh1 QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAg ICAgfCAgIDIzICsrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BhbmVsX3Zi dC5jIHwgIDExNiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDEyMSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAppbmRleCAzZWZlYTBlLi4yZDEzZTM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTU1 NCwxMSArNTU0LDIxIEBACiAjZGVmaW5lICAgSU9TRl9QT1JUX0RQSU8JCQkweDEyCiAjZGVmaW5l ICAgSU9TRl9QT1JUX0RQSU9fMgkJCTB4MWEKICNkZWZpbmUgICBJT1NGX1BPUlRfR1BJT19OQwkJ CTB4MTMKKyNkZWZpbmUgICBDSFZfSU9TRl9QT1JUX0dQSU9fTgkJCTB4MTMKICNkZWZpbmUgICBJ T1NGX1BPUlRfR1BJT19TQwkJCTB4NDgKKyNkZWZpbmUgICBDSFZfSU9TRl9QT1JUX0dQSU9fU0UJ CQkweDQ4CisjZGVmaW5lICAgQ0hWX0lPU0ZfUE9SVF9HUElPX1NXCQkJMHhCMgogI2RlZmluZSAg IElPU0ZfUE9SVF9HUElPX1NVUwkJCTB4QTgKKyNkZWZpbmUgICBDSFZfSU9TRl9QT1JUX0dQSU9f RQkJCTB4QTgKICNkZWZpbmUgICBNQVhfR1BJT19OVU1fTkMJCQkyNgogI2RlZmluZSAgIE1BWF9H UElPX05VTV9TQwkJCTEyOAogI2RlZmluZSAgIE1BWF9HUElPX05VTQkJCQkxNzIKKyNkZWZpbmUg ICBDSFZfTUFYX0dQSU9fTlVNX04JCQk3MgorI2RlZmluZSAgIENIVl9NQVhfR1BJT19OVU1fU0UJ CQk5OQorI2RlZmluZSAgIENIVl9NQVhfR1BJT19OVU1fU1cJCQkxOTcKKyNkZWZpbmUgICBDSFZf TUlOX0dQSU9fTlVNX1NFCQkJNzMKKyNkZWZpbmUgICBDSFZfTUlOX0dQSU9fTlVNX1NXCQkJMTAw CisjZGVmaW5lICAgQ0hWX01JTl9HUElPX05VTV9FCQkJMTk4CiAjZGVmaW5lICAgSU9TRl9QT1JU X0NDSwkJCQkweDE0CiAjZGVmaW5lICAgSU9TRl9QT1JUX0NDVQkJCQkweEE5CiAjZGVmaW5lICAg SU9TRl9QT1JUX0dQU19DT1JFCQkJMHg0OApAQCAtNTY2LDYgKzU3NiwxOSBAQAogI2RlZmluZSBW TFZfSU9TRl9EQVRBCQkJCShWTFZfRElTUExBWV9CQVNFICsgMHgyMTA0KQogI2RlZmluZSBWTFZf SU9TRl9BRERSCQkJCShWTFZfRElTUExBWV9CQVNFICsgMHgyMTA4KQogCisjZGVmaW5lIFZMVl9H UElPX0NGRwkJCQkweDIwMDBDQzAwCisjZGVmaW5lIFZMVl9HUElPX0lOUFVUX0RJUwkJCTB4MDQK KworI2RlZmluZSBDSFZfUEFEX0ZNTFlfQkFTRQkJCTB4NDQwMAorI2RlZmluZSBDSFZfUEFEX0ZN TFlfU0laRQkJCTB4NDAwCisjZGVmaW5lIENIVl9QQURfQ0ZHXzBfMV9SRUdfU0laRQkJMHg4Cisj ZGVmaW5lIENIVl9QQURfQ0ZHX1JFR19TSVpFCQkJMHg0CisjZGVmaW5lIENIVl9WQlRfTUFYX1BJ TlNfUEVSX0ZNTFkJCTE1CisKKyNkZWZpbmUgQ0hWX0dQSU9fQ0ZHX1VOTE9DSwkJCTB4MDAwMDAw MDAKKyNkZWZpbmUgQ0hWX0dQSU9fQ0ZHX0hpWgkJCTB4MDAwMDgxMDAKKyNkZWZpbmUgQ0hWX0dQ SU9fQ0ZHX1RYX1NUQVRFX1NISUZUCQkxCisKIC8qIFNlZSBjb25maWdkYiBidW5pdCBTQiBhZGRy IG1hcCAqLwogI2RlZmluZSBCVU5JVF9SRUdfQklTT0MJCQkJMHgxMQogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGFuZWxfdmJ0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2lfcGFuZWxfdmJ0LmMKaW5kZXggZjJlYTg3NS4uMDYwMzA1ZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BhbmVsX3ZidC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYwpAQCAtNDE2LDE3ICs0 MTYsNzUgQEAgc3RhdGljIGNvbnN0IHU4ICptaXBpX2V4ZWNfZGVsYXkoc3RydWN0IGludGVsX2Rz aSAqaW50ZWxfZHNpLCBjb25zdCB1OCAqZGF0YSkKIAogCXJldHVybiBkYXRhOwogfQotCi1zdGF0 aWMgY29uc3QgdTggKm1pcGlfZXhlY19ncGlvKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwg Y29uc3QgdTggKmRhdGEpCitzdGF0aWMgaW50IGNodl9wcm9ncmFtX2dwaW8oc3RydWN0IGludGVs X2RzaSAqaW50ZWxfZHNpLAorCQkJCWNvbnN0IHU4ICpkYXRhLCBjb25zdCB1OCAqKmN1cl9kYXRh KQogeworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2UuYmFzZS5kZXY7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK IAl1OCBncGlvLCBhY3Rpb247CisJdTE2IGZhbWlseV9udW07CiAJdTE2IGZ1bmN0aW9uLCBwYWQ7 Ci0JdTMyIHZhbDsKIAl1OCBibG9jazsKKworCS8qCisJICogU2tpcHBpbmcgdGhlIGZpcnN0IGJ5 dGUgYXMgaXQgaXMgb2Ygbm8KKwkgKiBpbnRlcmVzdCBmb3IgbGludXgga2VybmVsIGluIG5ldyBW QlQgdmVyc2lvbgorCSAqLworCWlmIChkZXZfcHJpdi0+dmJ0LmRzaS5zZXFfdmVyc2lvbiA+PSAz KQorCQlkYXRhKys7CisKKwlncGlvID0gKmRhdGErKzsKKworCS8qIHB1bGwgdXAvZG93biAqLwor CWFjdGlvbiA9ICpkYXRhKys7CisKKwlpZiAoZGV2X3ByaXYtPnZidC5kc2kuc2VxX3ZlcnNpb24g Pj0gMykgeworCQlpZiAoZ3BpbyA8PSBDSFZfTUFYX0dQSU9fTlVNX04pIHsKKwkJCWJsb2NrID0g Q0hWX0lPU0ZfUE9SVF9HUElPX047CisJCQlEUk1fREVCVUdfRFJJVkVSKCJHUElPIGlzIGluIHRo ZSBub3J0aCBCbG9ja1xuIik7CisJCX0gZWxzZSBpZiAoZ3BpbyA8PSBDSFZfTUFYX0dQSU9fTlVN X1NFKSB7CisJCQlibG9jayA9IENIVl9JT1NGX1BPUlRfR1BJT19TRTsKKwkJCWdwaW8gPSBncGlv IC0gQ0hWX01JTl9HUElPX05VTV9TRTsKKwkJCURSTV9ERUJVR19EUklWRVIoIkdQSU8gaXMgaW4g dGhlIHNvdXRoIGVhc3QgQmxvY2tcbiIpOworCQl9IGVsc2UgaWYgKGdwaW8gPD0gQ0hWX01BWF9H UElPX05VTV9TVykgeworCQkJYmxvY2sgPSBDSFZfSU9TRl9QT1JUX0dQSU9fU1c7CisJCQlncGlv ID0gZ3BpbyAtIENIVl9NSU5fR1BJT19OVU1fU1c7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJHUElP IGlzIGluIHRoZSBzb3V0aCB3ZXN0IEJsb2NrXG4iKTsKKwkJfSBlbHNlIHsKKwkJCWJsb2NrID0g Q0hWX0lPU0ZfUE9SVF9HUElPX0U7CisJCQlncGlvID0gZ3BpbyAtIENIVl9NSU5fR1BJT19OVU1f RTsKKwkJCURSTV9ERUJVR19EUklWRVIoIkdQSU8gaXMgaW4gdGhlIGVhc3QgQmxvY2tcbiIpOwor CQl9CisJfSBlbHNlCisJCWJsb2NrID0gSU9TRl9QT1JUX0dQSU9fTkM7CisKKwlmYW1pbHlfbnVt ID0gIGdwaW8gLyBDSFZfVkJUX01BWF9QSU5TX1BFUl9GTUxZOworCWdwaW8gPSBncGlvIC0gKGZh bWlseV9udW0gKiBDSFZfVkJUX01BWF9QSU5TX1BFUl9GTUxZKTsKKwlwYWQgPSBDSFZfUEFEX0ZN TFlfQkFTRSArIChmYW1pbHlfbnVtICogQ0hWX1BBRF9GTUxZX1NJWkUpICsKKwkJCSgoKHUxNiln cGlvKSAqIENIVl9QQURfQ0ZHXzBfMV9SRUdfU0laRSk7CisJZnVuY3Rpb24gPSBwYWQgKyBDSFZf UEFEX0NGR19SRUdfU0laRTsKKworCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKKwl2 bHZfZ3Bpb193cml0ZShkZXZfcHJpdiwgYmxvY2ssIGZ1bmN0aW9uLAorCQkJCQlDSFZfR1BJT19D RkdfVU5MT0NLKTsKKwl2bHZfZ3Bpb193cml0ZShkZXZfcHJpdiwgYmxvY2ssIHBhZCwgQ0hWX0dQ SU9fQ0ZHX0hpWiB8CisJCQkoYWN0aW9uIDw8IENIVl9HUElPX0NGR19UWF9TVEFURV9TSElGVCkp OworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnNiX2xvY2spOworCisJKmN1cl9kYXRhID0gZGF0 YTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZsdl9wcm9ncmFtX2dwaW8oc3RydWN0 IGludGVsX2RzaSAqaW50ZWxfZHNpLAorCQkJCWNvbnN0IHU4ICpkYXRhLCBjb25zdCB1OCAqKmN1 cl9kYXRhKQorewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2UuYmFz ZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKLQotCURSTV9ERUJVR19EUklWRVIoIk1JUEk6IGV4ZWN1dGluZyBncGlvIGVsZW1lbnRc biIpOworCXU4IGdwaW8sIGFjdGlvbjsKKwl1MTYgZnVuY3Rpb24sIHBhZDsKKwl1MzIgdmFsOwor CXU4IGJsb2NrOwogCiAJLyoKIAkgKiBTa2lwcGluZyB0aGUgZmlyc3QgYnl0ZSBhcyBpdCBpcyBv ZiBubwpAQCAtNDQyLDQyICs1MDAsNjQgQEAgc3RhdGljIGNvbnN0IHU4ICptaXBpX2V4ZWNfZ3Bp byhzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksIGNvbnN0IHU4ICpkYXRhKQogCiAJaWYgKGRl dl9wcml2LT52YnQuZHNpLnNlcV92ZXJzaW9uID49IDMpIHsKIAkJaWYgKGdwaW8gPD0gTUFYX0dQ SU9fTlVNX05DKSB7Ci0JCQlEUk1fREVCVUdfRFJJVkVSKCJHUElPIGlzIGluIHRoZSBub3J0aCBC bG9ja1xuIik7CiAJCQlibG9jayA9IElPU0ZfUE9SVF9HUElPX05DOworCQkJRFJNX0RFQlVHX0RS SVZFUigiR1BJTyBpcyBpbiB0aGUgbm9ydGggQmxvY2tcbiIpOwogCQl9IGVsc2UgaWYgKGdwaW8g PiBNQVhfR1BJT19OVU1fTkMgJiYgZ3BpbyA8PSBNQVhfR1BJT19OVU1fU0MpIHsKLQkJCURSTV9E RUJVR19EUklWRVIoIkdQSU8gaXMgaW4gdGhlIHNvdXRoIEJsb2NrXG4iKTsKIAkJCWJsb2NrID0g SU9TRl9QT1JUX0dQSU9fU0M7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJHUElPIGlzIGluIHRoZSBz b3V0aCBCbG9ja1xuIik7CiAJCX0gZWxzZSBpZiAoZ3BpbyA+IE1BWF9HUElPX05VTV9TQyAmJiBn cGlvIDw9IE1BWF9HUElPX05VTSkgewotCQkJRFJNX0RFQlVHX0RSSVZFUigiR1BJTyBpcyBpbiB0 aGUgU1VTIEJsb2NrXG4iKTsKIAkJCWJsb2NrID0gSU9TRl9QT1JUX0dQSU9fU1VTOworCQkJRFJN X0RFQlVHX0RSSVZFUigiR1BJTyBpcyBpbiB0aGUgU1VTIEJsb2NrXG4iKTsKIAkJfSBlbHNlIHsK IAkJCURSTV9FUlJPUigiR1BJTyBudW1iZXIgaXMgbm90IHByZXNlbnQgaW4gdGhlIHRhYmxlXG4i KTsKLQkJCXJldHVybiBOVUxMOworCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KLQl9IGVsc2Ugewor CX0gZWxzZQogCQlibG9jayA9IElPU0ZfUE9SVF9HUElPX05DOwotCX0KIAogCWZ1bmN0aW9uID0g Z3RhYmxlW2dwaW9dLmZ1bmN0aW9uX3JlZzsKIAlwYWQgPSBndGFibGVbZ3Bpb10ucGFkX3JlZzsK IAogCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKKwogCWlmICghZ3RhYmxlW2dwaW9d LmluaXQpIHsKLQkJLyogcHJvZ3JhbSB0aGUgZnVuY3Rpb24gKi8KLQkJLyogRklYTUU6IHJlbW92 ZSBjb25zdGFudCBiZWxvdyAqLwotCQl2bHZfZ3Bpb193cml0ZShkZXZfcHJpdiwgYmxvY2ssIGZ1 bmN0aW9uLCAweDIwMDBDQzAwKTsKLQkJZ3RhYmxlW2dwaW9dLmluaXQgPSAxOworCQl2bHZfZ3Bp b193cml0ZShkZXZfcHJpdiwgYmxvY2ssIGZ1bmN0aW9uLAorCQkJCQkJVkxWX0dQSU9fQ0ZHKTsK KwkJZ3RhYmxlW2dwaW9dLmluaXQgPSB0cnVlOwogCX0KLQotCXZhbCA9IDB4NCB8IGFjdGlvbjsK Kwl2YWwgPSBWTFZfR1BJT19JTlBVVF9ESVMgfCBhY3Rpb247CiAKIAkvKiBwdWxsIHVwL2Rvd24g Ki8KIAl2bHZfZ3Bpb193cml0ZShkZXZfcHJpdiwgYmxvY2ssIHBhZCwgdmFsKTsKKwogCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPnNiX2xvY2spOwogCi0JcmV0dXJuIGRhdGE7CisJKmN1cl9kYXRh ID0gZGF0YTsKKworCXJldHVybiAwOwogfQogCitzdGF0aWMgY29uc3QgdTggKm1pcGlfZXhlY19n cGlvKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgY29uc3QgdTggKmRhdGEpCit7CisJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RzaS0+YmFzZS5iYXNlLmRldjsKKwlpbnQgcmV0 OworCisJRFJNX0RFQlVHX0RSSVZFUigiTUlQSTogZXhlY3V0aW5nIGdwaW8gZWxlbWVudFxuIik7 CisKKwlyZXQgPSAtRUlOVkFMOworCisJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKKwkJcmV0ID0g Y2h2X3Byb2dyYW1fZ3BpbyhpbnRlbF9kc2ksIGRhdGEsICZkYXRhKTsKKwllbHNlIGlmIChJU19W QUxMRVlWSUVXKGRldikpCisJCXJldCA9IHZsdl9wcm9ncmFtX2dwaW8oaW50ZWxfZHNpLCBkYXRh LCAmZGF0YSk7CisJZWxzZQorCQlEUk1fRVJST1IoIkdQSU8gcHJvZ3JhbW1pbmcgbWlzc2luZyBm b3IgdGhpcyBwbGF0Zm9ybS5cbiIpOworCisJaWYgKHJldCkKKwkJcmV0dXJuIE5VTEw7CisKKwly ZXR1cm4gZGF0YTsKK30KIHR5cGVkZWYgY29uc3QgdTggKiAoKmZuX21pcGlfZWxlbV9leGVjKShz dHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksCiAJCQkJCWNvbnN0IHU4ICpkYXRhKTsKIHN0YXRp YyBjb25zdCBmbl9taXBpX2VsZW1fZXhlYyBleGVjX2VsZW1bXSA9IHsKLS0gCjEuNy45LjUKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==