From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH 6/7] drm/i915: Add lspcon core functions Date: Tue, 22 Mar 2016 19:55:07 +0530 Message-ID: <1458656708-31228-7-git-send-email-shashank.sharma@intel.com> References: <1458656708-31228-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 1A6BB6E7AB for ; Tue, 22 Mar 2016 14:20:09 +0000 (UTC) In-Reply-To: <1458656708-31228-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, daniel.vetter@intel.com Cc: akashdeep.sharma@inte.com List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIGxzcGNvbidzIGludGVybmFsIGZ1bmN0aW9ucywgd2hpY2ggd29yawpv biB0aGUgcHJvYmUgbGF5ZXIsIGFuZCBpbmRpY2F0ZSB0aGUgd29ya2luZyBzdGF0dXMgb2YKbHNw Y29uLCB3aGljaCBhcmUgbW9zdGx5OgoKcHJvYmU6IEEgbHNwY29uIGRldmljZSBpcyBwcm9iZWQg b25seSBvbmNlLCBkdXJpbmcgYm9vdAp0aW1lLCBhcyBpdHMgYWx3YXlzIHByZXNlbnQgd2l0aCB0 aGUgZGV2aWNlLCBuZXh0IHRvIHBvcnQuClNvIHRoZSBpMmNfb3Zlcl9hdXggY2hhbm5lbCBpcyBh bHd5YXMgcmVhZC93cml0ZWFibGUgaWYgREMgaXMKcG93ZXJlZCBvbi4gSWYgVkJUIHNheXMgdGhh dCB0aGlzIHBvcnQgY29udGFpbnMgbHNwY29uLCB3ZQpjaGVjayBhbmQgcHJvYmUgdGhlIEhXIHRv IHZlcmlmeSBhbmQgaW5pdGlhbGl6ZSBpdC4KCmdldF9tb2RlOiBUaGlzIGZ1bmN0aW9uIGluZGlj YXRlcyB0aGUgY3VycmVudCBtb2RlIG9mIG9wZXJhdGlvbgpvZiBsc3Bjb24gKGxzIG9yIHBjb24g bW9kZSkKCmNoYW5nZV9tb2RlOiBUaGlzIGZ1bmN0aW9uIGNhbiBjaGFuZ2UgdGhlIGxzcGNvbidz IG1vZGUgb2YKb3BlcmF0aW9uIHRvIGRlc2lyZWQgbW9kZS4KClNpZ25lZC1vZmYtYnk6IFNoYXNo YW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQWth c2hkZWVwIFNoYXJtYSA8QWthc2hkZWVwLnNoYXJtYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMgfCAxNjUgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTY1IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xzcGNvbi5jCmluZGV4IGU2NGFiZDMuLjZlZjMyMGIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xzcGNvbi5jCkBAIC0xMjAsNiArMTIwLDE2NCBAQCBpbnQgbHNwY29uX2lv YV93cml0ZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHU4ICpidWZmZXIsCiAJcmV0dXJu IGVycjsKIH0KIAorZW51bSBsc3Bjb25fbW9kZSBsc3Bjb25fZ2V0X2N1cnJlbnRfbW9kZShzdHJ1 Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24pCit7CisJdTggZGF0YTsKKwlpbnQgZXJyID0gMDsKKwlz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGxzcGNvbl90b19kaWdfcG9ydChs c3Bjb24pOworCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciA9ICZkaWdfcG9ydC0+ZHAuYXV4 LmRkYzsKKworCS8qIFJlYWQgU3RhdHVzOiBpMmMgb3ZlciBhdXggKi8KKwllcnIgPSBsc3Bjb25f aW9hX3JlYWQoYWRhcHRlciwgJmRhdGEsIExTUENPTl9JMkNfQUREUkVTUywKKwkJCUxTUENPTl9N T0RFX0NIRUNLX09GRlNFVCwgMSk7CisJaWYgKGVyciA8IDApIHsKKwkJRFJNX0VSUk9SKCJMU1BD T04gcmVhZCBtb2RlIGlvYSAoMHg4MCwgMHg0MSkgZmFpbGVkXG4iKTsKKwkJcmV0dXJuIGxzcGNv bl9tb2RlX2ludmFsaWQ7CisJfQorCisJRFJNX0RFQlVHX0RSSVZFUigiTFNQQ09OIG1vZGUgKDB4 ODAsIDB4NDEpID0gJXhcbiIsICh1bnNpZ25lZCBpbnQpZGF0YSk7CisJcmV0dXJuIGRhdGEgJiBM U1BDT05fTU9ERV9NQVNLID8gbHNwY29uX21vZGVfcGNvbiA6IGxzcGNvbl9tb2RlX2xzOworfQor CitpbnQgbHNwY29uX2NoYW5nZV9tb2RlKHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbiwKKwll bnVtIGxzcGNvbl9tb2RlIG1vZGUsIGJvb2wgZm9yY2UpCit7CisJdTggZGF0YTsKKwlpbnQgZXJy OworCWludCB0aW1lX291dCA9IDIwMDsKKwllbnVtIGxzcGNvbl9tb2RlIGN1cnJlbnRfbW9kZTsK KwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGxzcGNvbl90b19kaWdfcG9y dChsc3Bjb24pOworCisJY3VycmVudF9tb2RlID0gbHNwY29uX2dldF9jdXJyZW50X21vZGUobHNw Y29uKTsKKwlpZiAoY3VycmVudF9tb2RlID09IGxzcGNvbl9tb2RlX2ludmFsaWQpIHsKKwkJRFJN X0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgTFNQQ09OIG1vZGVcbiIpOworCQlyZXR1cm4g LUVGQVVMVDsKKwl9CisKKwlpZiAoY3VycmVudF9tb2RlID09IG1vZGUgJiYgIWZvcmNlKSB7CisJ CURSTV9ERUJVR19EUklWRVIoIkN1cnJlbnQgbW9kZSA9IGRlc2lyZWQgTFNQQ09OIG1vZGVcbiIp OworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAobW9kZSA9PSBsc3Bjb25fbW9kZV9scykKKwkJZGF0 YSA9IH5MU1BDT05fTU9ERV9NQVNLOworCWVsc2UKKwkJZGF0YSA9IExTUENPTl9NT0RFX01BU0s7 CisKKwkvKiBDaGFuZ2UgbW9kZSAqLworCWVyciA9IGxzcGNvbl9pb2Ffd3JpdGUoJmRpZ19wb3J0 LT5kcC5hdXguZGRjLCAmZGF0YSwgTFNQQ09OX0kyQ19BRERSRVNTLAorCQkJTFNQQ09OX01PREVf Q0hBTkdFX09GRlNFVCwgMSk7CisJaWYgKGVyciA8IDApIHsKKwkJRFJNX0VSUk9SKCJMU1BDT04g bW9kZSBjaGFuZ2UgZmFpbGVkXG4iKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwkvKgorCSogQ29u ZmlybSBtb2RlIGNoYW5nZSBieSByZWFkaW5nIHRoZSBzdGF0dXMgYml0LgorCSogU29tZXRpbWVz LCBpdCB0YWtlcyBhIHdoaWxlIHRvIGNoYW5nZSB0aGUgbW9kZSwKKwkqIHNvIHdhaXQgYW5kIHJl dHJ5IHVudGlsIHRpbWUgb3V0IG9yIGRvbmUuCisJKi8KKwl3aGlsZSAodGltZV9vdXQpIHsKKwkJ Y3VycmVudF9tb2RlID0gbHNwY29uX2dldF9jdXJyZW50X21vZGUobHNwY29uKTsKKwkJaWYgKGN1 cnJlbnRfbW9kZSAhPSBtb2RlKSB7CisJCQltZGVsYXkoMTApOworCQkJdGltZV9vdXQgLT0gMTA7 CisJCX0gZWxzZSB7CisJCQlsc3Bjb24tPm1vZGVfb2Zfb3AgPSBtb2RlOworCQkJRFJNX0RFQlVH X0RSSVZFUigiTFNQQ09OIG1vZGUgY2hhbmdlZCB0byAlc1xuIiwKKwkJCQltb2RlID09IGxzcGNv bl9tb2RlX2xzID8gIkxTIiA6ICJQQ09OIik7CisJCQlyZXR1cm4gMDsKKwkJfQorCX0KKworCURS TV9FUlJPUigiTFNQQ09OIG1vZGUgY2hhbmdlIHRpbWVkIG91dFxuIik7CisJcmV0dXJuIC1FRkFV TFQ7Cit9CisKK2Jvb2wgbHNwY29uX2RldGVjdF9pZGVudGlmaWVyKHN0cnVjdCBpbnRlbF9sc3Bj b24gKmxzcGNvbikKK3sKKwlpbnQgZXJyID0gMDsKKwl1OCBzaWduW0xTUENPTl9JREVOVElGSUVS X0xFTkdUSCArIDFdID0geydcMCcsIH07CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGln X3BvcnQgPSBsc3Bjb25fdG9fZGlnX3BvcnQobHNwY29uKTsKKwlzdHJ1Y3QgaTJjX2FkYXB0ZXIg KmFkYXB0ZXIgPSAmZGlnX3BvcnQtPmRwLmF1eC5kZGM7CisKKwkvKgorCSAqIElkZW50aWZpZXI6 IEZpcnN0IDE1IGJ5dGVzIGFyZSBhc2NpaSBmb3IgIkRQLUhETUkgQURBUFRPUiIuIFRoZSAxNnRo CisJICogYnl0ZSBkZWZpbmVzIGlmIHRoYXRzIGEgTFNQQ09OIG9yIGFueSBvdGhlciBkb25nbGUu IElmIGJ5dGUgMTYgPTB4YTgKKwkgKiBpdHMgTFNQQ09OCisJICovCisKKwkvKiBSZWFkIDE2IGJ5 dGVzIGZyb20gSTJDIHJlZyAweDgwLCBvZmZzZXQgMHgwIEkyQy1vdmVyLWF1eCAqLworCWVyciA9 IGxzcGNvbl9pb2FfcmVhZChhZGFwdGVyLCBzaWduLCBMU1BDT05fSTJDX0FERFJFU1MsCisJCQlM U1BDT05fQURBUFRFUl9TSUdOX09GRlNFVCwgTFNQQ09OX0lERU5USUZJRVJfTEVOR1RIKTsKKwlp ZiAoZXJyIDwgMCkgeworCQlEUk1fRVJST1IoIkVycm9yIHJlYWRpbmcgbHNwY29uIHNpZ24gKDB4 ODAsIDB4MClcbiIpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyogQ2hlY2sgc2lnbiAqLwor CWlmIChzdHJuY21wKCh2b2lkICopc2lnbiwgIkRQLUhETUkgQURBUFRPUiIsCisJCUxTUENPTl9J REVOVElGSUVSX0xFTkdUSCAtIDEpKSB7CisJCURSTV9FUlJPUigiQ2FudCBkZXRlY3QgYWRhcHRv ciBzaWduLCBpdHMgJXNcbiIsIHNpZ24pOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyogSWRl bnRpZnkgTFNQQ09OICovCisJaWYgKHNpZ25bTFNQQ09OX0lERU5USUZJRVJfT0ZGU0VUXSAhPSBM U1BDT05fQURBUFRFUikgeworCQlEUk1fRVJST1IoIkZvdW5kIG5vbiBMU1BDT04gYWRhcHRvclxu Iik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKiB5YXkgLi4uIGZvdW5kIGEgTFNQQ09OICov CisJRFJNX0RFQlVHX0RSSVZFUigiTFNQQ09OIGFkYXB0b3IgZGV0ZWN0ZWRcbiIpOworCXJldHVy biB0cnVlOworfQorCitlbnVtIGxzcGNvbl9tb2RlIGxzcGNvbl9wcm9iZShzdHJ1Y3QgaW50ZWxf bHNwY29uICpsc3Bjb24pCit7CisJZW51bSBsc3Bjb25fbW9kZSBjdXJyZW50X21vZGU7CisKKwkv KiBEZXRlY3QgYSB2YWxpZCBsc3Bjb24gKi8KKwlpZiAoIWxzcGNvbl9kZXRlY3RfaWRlbnRpZmll cihsc3Bjb24pKSB7CisJCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byBmaW5kIExTUENPTiBp ZGVudGlmaWVyXG4iKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCS8qIExTUENPTidzIG1vZGUg b2Ygb3BlcmF0aW9uICovCisJY3VycmVudF9tb2RlID0gbHNwY29uX2dldF9jdXJyZW50X21vZGUo bHNwY29uKTsKKwlpZiAoY3VycmVudF9tb2RlID09IGxzcGNvbl9tb2RlX2ludmFsaWQpIHsKKwkJ RFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVhZCBMU1BDT04gbW9kZVxuIik7CisJCXJldHVybiBmYWxz ZTsKKwl9CisKKwkvKiBBbGwgaXMgd2VsbCAqLworCWxzcGNvbi0+bW9kZV9vZl9vcCA9IGN1cnJl bnRfbW9kZTsKKwlsc3Bjb24tPmFjdGl2ZSA9IHRydWU7CisJcmV0dXJuIGN1cnJlbnRfbW9kZTsK K30KKworYm9vbCBsc3Bjb25fZGV2aWNlX2luaXQoc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29u KQoreworCisJLyogTGV0cyBjaGVjayBMU1BDT04gbm93LCBwcm9iZSB0aGUgSFcgc3RhdHVzICov CisJbHNwY29uLT5hY3RpdmUgPSBmYWxzZTsKKwlsc3Bjb24tPm1vZGVfb2Zfb3AgPSBsc3Bjb25f bW9kZV9pbnZhbGlkOworCWlmICghbHNwY29uX3Byb2JlKGxzcGNvbikpIHsKKwkJRFJNX0VSUk9S KCJGYWlsZWQgdG8gcHJvYmUgbHNwY29uIik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKiBX ZSB3aXNoIHRvIGtlZXAgTFNQQ09OIGluIExTIG1vZGUgKi8KKwlpZiAobHNwY29uLT5hY3RpdmUg JiYgbHNwY29uLT5tb2RlX29mX29wICE9IGxzcGNvbl9tb2RlX2xzKSB7CisJCWlmIChsc3Bjb25f Y2hhbmdlX21vZGUobHNwY29uLCBsc3Bjb25fbW9kZV9scywgdHJ1ZSkgPCAwKSB7CisJCQlEUk1f RVJST1IoIkxTUENPTiBtb2RlIGNoYW5nZSB0byBMUyBmYWlsZWRcbiIpOworCQkJcmV0dXJuIGZh bHNlOworCQl9CisJfQorCURSTV9ERUJVR19EUklWRVIoIkxTUENPTiBpbml0IHN1Y2Nlc3NcbiIp OworCXJldHVybiB0cnVlOworfQorCiBzdGF0aWMgaW50IGxzcGNvbl9nZXRfZWRpZF9vdmVyX2F1 eCh2b2lkICpkYXRhLAogCXU4ICpidWYsIHVuc2lnbmVkIGludCBibG9jaywgc2l6ZV90IGxlbikK IHsKQEAgLTMzMyw2ICs0OTEsNyBAQCB2b2lkIGludGVsX2xzcGNvbl9pbml0X2Nvbm5lY3Rvcihz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKIAlzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9ICZpbnRlbF9kaWdfcG9ydC0+YmFzZTsKIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZW5jb2Rlci0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxf bHNwY29uICpsc3Bjb24gPSAmaW50ZWxfZGlnX3BvcnQtPmxzcGNvbjsKIAlzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICppbnRlbF9jb25uZWN0b3I7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcjsKIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0OwpAQCAtNDExLDYg KzU3MCwxMiBAQCB2b2lkIGludGVsX2xzcGNvbl9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKIAkJSTkxNV9XUklURShQRUdfQkFORF9HQVBf REFUQSwgKHRlbXAgJiB+MHhmKSB8IDB4ZCk7CiAJfQogCisJLyogTm93IGluaXRpYWxpemUgdGhl IExTUENPTiBkZXZpY2UgKi8KKwlpZiAoIWxzcGNvbl9kZXZpY2VfaW5pdChsc3Bjb24pKSB7CisJ CURSTV9FUlJPUigiTFNQQ09OIGRldmljZSBpbml0IGZhaWxlZFxuIik7CisJCWdvdG8gZmFpbDsK Kwl9CisKIAlEUk1fREVCVUdfRFJJVkVSKCJMU1BDT04gY29ubmVjdG9yIGluaXQgZG9uZVxuIik7 CiAJcmV0dXJuOwogCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==