From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yetunde Adebisi Subject: [PATCH 3/3] drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) Date: Tue, 5 Apr 2016 15:10:52 +0100 Message-ID: <1459865452-9138-4-git-send-email-yetundex.adebisi@intel.com> References: <1459865452-9138-1-git-send-email-yetundex.adebisi@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 3E0D66E23E for ; Tue, 5 Apr 2016 14:14:06 +0000 (UTC) In-Reply-To: <1459865452-9138-1-git-send-email-yetundex.adebisi@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 Cc: Jani Nikula List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGVEUCBiYWNrbGlnaHQgY29udHJvbCB1c2luZyBE UENEIHJlZ2lzdGVycyB0bwpiYWNrbGlnaHQgaG9va3MgaW4gaW50ZWxfcGFuZWwuCgpJdCBjaGVj a3MgZm9yIGJhY2tsaWdodCBjb250cm9sIG92ZXIgQVVYIGNoYW5uZWwgY2FwYWJpbGl0eSBhbmQg c2V0cyB1cApmdW5jdGlvbiBwb2ludGVycyB0byBnZXQgYW5kIHNldCB0aGUgYmFja2xpZ2h0IGJy aWdodG5lc3MgbGV2ZWwgaWYKc3VwcG9ydGVkLgoKdjI6IE1vdmVkIGJhY2tsaWdodCBmdW5jdGlv bnMgZnJvbSBpbnRlbF9kcC5jIGludG8gYSBuZXcgZmlsZQppbnRlbF9kcF9hdXhfYmFja2xpZ2h0 LmMuIEFsc28gbW92ZWQgcmVhZGluZyBvZiBlRFAgZGlzcGxheSBjb250cm9sCnJlZ2lzdGVycyB0 byBpbnRlbF9kcF9nZXRfZHBjZAoKdjM6IENvcnJlY3Qgc29tZSBmb3JtYXR0aW5nIG1pc3Rha2Vz Cgp2NDogVXBkYXRlZCB0byB1c2UgQVVYIGJhY2tsaWdodCBjb250cm9sIGlmIFBXTSBjb250cm9s IGlzIG5vdCBwb3NzaWJsZQoJKEphbmkpCnY1OiBNb3ZlZCBjYWxsIHRvIGluaXRpYWxpemUgYmFj a2xpZ2h0IHJlZ2lzdGVycyB0byBkcF9hdXhfc2V0dXBfYmFja2xpZ2h0CnY2OiBDaGVjayBEUF9F RFBfQkFDS0xJR0hUX1BJTl9FTkFCTEVfQ0FQIGlzIGRpc2FibGVkIGJlZm9yZSBzZXR0aW5nIHVw IEFVWApiYWNrbGlnaHQgY29udHJvbC4gVG8gZml4IEJMTV9QV01fRU5BQkxFIGlndCB0ZXN0IHdh cm5pbmdzIG9uIGJkd191bHRyYQp2NzogQWRkIGVuYWJsZV9kcGNkX2JhY2tsaWdodCBtb2R1bGUg cGFyYW1ldGVyLgp2ODogUmViYXNlIG9udG8gbGF0ZXN0IGRybS1pbnRlbC1uaWdodGx5IGJyYW5j aAp2OTogUmVtb3ZlIGNoYW5nZXMgdG8gaW50ZWxfZHBfZHBjZF9yZWFkX3dha2UKICAgIFNwbGl0 IGFkZGl0aW9uIGVkcF9kcGNkIHZhcmlhYmxlIGludG8gYSBzZXBhcmF0ZSBwYXRjaAoKQ2M6IEJv YiBQYWF1d2UgPGJvYi5qLnBhYXV3ZUBpbnRlbC5jb20+CkNjOiBKYW5pIE5pa3VsYSA8amFuaS5u aWt1bGFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBZZXR1bmRlIEFkZWJpc2kgPHlldHVuZGV4 LmFkZWJpc2lAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAg ICAgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5j ICAgICAgICAgICAgfCAgIDQgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaCAg ICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNr bGlnaHQuYyB8IDE3MyArKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICAgICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BhbmVsLmMgICAgICAgICAgICB8ICAgNCArCiA2IGZpbGVzIGNoYW5nZWQsIDE4 NiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCA3ZmZiNTFi Li4xMWNjM2U2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtNzksNiArNzksNyBAQCBpOTE1LXkg Kz0gZHZvX2NoNzAxNy5vIFwKIAkgIGR2b190ZnA0MTAubyBcCiAJICBpbnRlbF9jcnQubyBcCiAJ ICBpbnRlbF9kZGkubyBcCisJICBpbnRlbF9kcF9hdXhfYmFja2xpZ2h0Lm8gXAogCSAgaW50ZWxf ZHBfbGlua190cmFpbmluZy5vIFwKIAkgIGludGVsX2RwX21zdC5vIFwKIAkgIGludGVsX2RwLm8g XApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMKaW5kZXggMTc3OWYwMi4uMzgzYzA3NiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jCkBAIC01OCw2ICs1OCw3IEBAIHN0cnVjdCBpOTE1 X3BhcmFtcyBpOTE1IF9fcmVhZF9tb3N0bHkgPSB7CiAJLmd1Y19sb2dfbGV2ZWwgPSAtMSwKIAku ZW5hYmxlX2RwX21zdCA9IHRydWUsCiAJLmluamVjdF9sb2FkX2ZhaWx1cmUgPSAwLAorCS5lbmFi bGVfZHBjZF9iYWNrbGlnaHQgPSBmYWxzZSwKIH07CiAKIG1vZHVsZV9wYXJhbV9uYW1lZChtb2Rl c2V0LCBpOTE1Lm1vZGVzZXQsIGludCwgMDQwMCk7CkBAIC0yMTAsMyArMjExLDYgQEAgTU9EVUxF X1BBUk1fREVTQyhlbmFibGVfZHBfbXN0LAogbW9kdWxlX3BhcmFtX25hbWVkX3Vuc2FmZShpbmpl Y3RfbG9hZF9mYWlsdXJlLCBpOTE1LmluamVjdF9sb2FkX2ZhaWx1cmUsIHVpbnQsIDA0MDApOwog TU9EVUxFX1BBUk1fREVTQyhpbmplY3RfbG9hZF9mYWlsdXJlLAogCSJGb3JjZSBhbiBlcnJvciBh ZnRlciBhIG51bWJlciBvZiBmYWlsdXJlIGNoZWNrIHBvaW50cyAoMDpkaXNhYmxlZCAoZGVmYXVs dCksIE46Zm9yY2UgZmFpbHVyZSBhdCB0aGUgTnRoIGZhaWx1cmUgY2hlY2sgcG9pbnQpIik7Citt b2R1bGVfcGFyYW1fbmFtZWQoZW5hYmxlX2RwY2RfYmFja2xpZ2h0LCBpOTE1LmVuYWJsZV9kcGNk X2JhY2tsaWdodCwgYm9vbCwgMDYwMCk7CitNT0RVTEVfUEFSTV9ERVNDKGVuYWJsZV9kcGNkX2Jh Y2tsaWdodCwKKwkiRW5hYmxlIHN1cHBvcnQgZm9yIERQQ0QgYmFja2xpZ2h0IGNvbnRyb2wgKGRl ZmF1bHQ6ZmFsc2UpIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bh cmFtcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaAppbmRleCAwMmJjMjc4 Li42NWU3M2RkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmgKQEAgLTYxLDYgKzYxLDcg QEAgc3RydWN0IGk5MTVfcGFyYW1zIHsKIAlib29sIHZlcmJvc2Vfc3RhdGVfY2hlY2tzOwogCWJv b2wgbnVjbGVhcl9wYWdlZmxpcDsKIAlib29sIGVuYWJsZV9kcF9tc3Q7CisJYm9vbCBlbmFibGVf ZHBjZF9iYWNrbGlnaHQ7CiB9OwogCiBleHRlcm4gc3RydWN0IGk5MTVfcGFyYW1zIGk5MTUgX19y ZWFkX21vc3RseTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2F1 eF9iYWNrbGlnaHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNrbGln aHQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODRmYjBkCi0tLSAvZGV2 L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5j CkBAIC0wLDAgKzEsMTczIEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTUgSW50ZWwgQ29ycG9y YXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRv IGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo b3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl LCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVz IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBT b2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBj b25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl cm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwg YmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUK KyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F TlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERF UlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElU WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB UklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS RSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgor ICovCisKKyNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKworc3RhdGljIHZvaWQgc2V0X2F1eF9iYWNr bGlnaHRfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGJvb2wgZW5hYmxlKQorewor CXVpbnQ4X3QgcmVnX3ZhbCA9IDA7CisKKwlpZiAoZHJtX2RwX2RwY2RfcmVhZGIoJmludGVsX2Rw LT5hdXgsIERQX0VEUF9ESVNQTEFZX0NPTlRST0xfUkVHSVNURVIsCisJCQkmcmVnX3ZhbCkgPCAw KSB7CisJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byByZWFkIERQQ0QgcmVnaXN0ZXIgMHgleFxu IiwKKwkJCQlEUF9FRFBfRElTUExBWV9DT05UUk9MX1JFR0lTVEVSKTsKKwkJcmV0dXJuOworCX0K KwlpZiAoZW5hYmxlKQorCQlyZWdfdmFsIHw9IERQX0VEUF9CQUNLTElHSFRfRU5BQkxFOworCWVs c2UKKwkJcmVnX3ZhbCAmPSB+KERQX0VEUF9CQUNLTElHSFRfRU5BQkxFKTsKKworCWlmIChkcm1f ZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5hdXgsIERQX0VEUF9ESVNQTEFZX0NPTlRST0xfUkVH SVNURVIsCisJCQlyZWdfdmFsKSAhPSAxKSB7CisJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byAl cyBhdXggYmFja2xpZ2h0XG4iLAorCQkJCWVuYWJsZSA/ICJlbmFibGUiIDogImRpc2FibGUiKTsK Kwl9Cit9CisKKy8qCisgKiBSZWFkIHRoZSBjdXJyZW50IGJhY2tsaWdodCB2YWx1ZSBmcm9tIERQ Q0QgcmVnaXN0ZXIocykgYmFzZWQKKyAqIG9uIGlmIDgtYml0KE1TQikgb3IgMTYtYml0KE1TQiBh bmQgTFNCKSB2YWx1ZXMgYXJlIHN1cHBvcnRlZAorICovCitzdGF0aWMgdWludDMyX3QgaW50ZWxf ZHBfYXV4X2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQor eworCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rv ci0+ZW5jb2Rlci0+YmFzZSk7CisJdWludDhfdCByZWFkX3ZhbFsyXSA9IHsgMHgwIH07CisJdWlu dDE2X3QgbGV2ZWwgPSAwOworCisJaWYgKGRybV9kcF9kcGNkX3JlYWQoJmludGVsX2RwLT5hdXgs IERQX0VEUF9CQUNLTElHSFRfQlJJR0hUTkVTU19NU0IsCisJCQkmcmVhZF92YWwsIHNpemVvZihy ZWFkX3ZhbCkpIDwgMCkgeworCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gcmVhZCBEUENEIHJl Z2lzdGVyIDB4JXhcbiIsCisJCQkJRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX01TQik7CisJ CXJldHVybiAwOworCX0KKwlsZXZlbCA9IHJlYWRfdmFsWzBdOworCWlmIChpbnRlbF9kcC0+ZWRw X2RwY2RbMl0gJiBEUF9FRFBfQkFDS0xJR0hUX0JSSUdIVE5FU1NfQllURV9DT1VOVCkKKwkJbGV2 ZWwgPSAocmVhZF92YWxbMF0gPDwgOCB8IHJlYWRfdmFsWzFdKTsKKworCXJldHVybiBsZXZlbDsK K30KKworLyoKKyAqIFNlbmRzIHRoZSBjdXJyZW50IGJhY2tsaWdodCBsZXZlbCBvdmVyIHRoZSBh dXggY2hhbm5lbCwgY2hlY2tpbmcgaWYgaXRzIHVzaW5nCisgKiA4LWJpdCBvciAxNiBiaXQgdmFs dWUgKE1TQiBhbmQgTFNCKQorICovCitzdGF0aWMgdm9pZAoraW50ZWxfZHBfYXV4X3NldF9iYWNr bGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCit7CisJ c3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmY29ubmVjdG9yLT5l bmNvZGVyLT5iYXNlKTsKKwl1aW50OF90IHZhbHNbMl0gPSB7IDB4MCB9OworCisJdmFsc1swXSA9 IGxldmVsOworCisJLyogV3JpdGUgdGhlIE1TQiBhbmQvb3IgTFNCICovCisJIGlmIChpbnRlbF9k cC0+ZWRwX2RwY2RbMl0gJiBEUF9FRFBfQkFDS0xJR0hUX0JSSUdIVE5FU1NfQllURV9DT1VOVCkg eworCQl2YWxzWzBdID0gKGxldmVsICYgMHhGRjAwKSA+PiA4OworCQl2YWxzWzFdID0gKGxldmVs ICYgMHhGRik7CisJfQorCWlmIChkcm1fZHBfZHBjZF93cml0ZSgmaW50ZWxfZHAtPmF1eCwgRFBf RURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX01TQiwKKwkJCXZhbHMsIHNpemVvZih2YWxzKSkgPCAw KSB7CisJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byB3cml0ZSBhdXggYmFja2xpZ2h0IGxldmVs XG4iKTsKKwkJcmV0dXJuOworCX0KK30KKworc3RhdGljIHZvaWQgaW50ZWxfZHBfYXV4X2VuYWJs ZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5jb2Rl ci0+YmFzZSk7CisJdWludDhfdCBkcGNkX2J1ZiA9IDA7CisKKwlzZXRfYXV4X2JhY2tsaWdodF9l bmFibGUoaW50ZWxfZHAsIHRydWUpOworCisJaWYgKChkcm1fZHBfZHBjZF9yZWFkYigmaW50ZWxf ZHAtPmF1eCwKKwkJCURQX0VEUF9CQUNLTElHSFRfTU9ERV9TRVRfUkVHSVNURVIsICZkcGNkX2J1 ZikgPT0gMSkgJiYKKwkJCSgoZHBjZF9idWYgJiBEUF9FRFBfQkFDS0xJR0hUX0NPTlRST0xfTU9E RV9NQVNLKSA9PQorCQkJCQlEUF9FRFBfQkFDS0xJR0hUX0NPTlRST0xfTU9ERV9QUkVTRVQpKQor CQlkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5hdXgsIERQX0VEUF9CQUNLTElHSFRfTU9E RV9TRVRfUkVHSVNURVIsCisJCQkJKGRwY2RfYnVmIHwgRFBfRURQX0JBQ0tMSUdIVF9DT05UUk9M X01PREVfRFBDRCkpOworfQorCitzdGF0aWMgdm9pZCBpbnRlbF9kcF9hdXhfZGlzYWJsZV9iYWNr bGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXNldF9hdXhfYmFj a2xpZ2h0X2VuYWJsZShlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSks IGZhbHNlKTsKK30KKworc3RhdGljIGludCBpbnRlbF9kcF9hdXhfc2V0dXBfYmFja2xpZ2h0KHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCWVudW0gcGlwZSBwaXBlKQorewor CXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ ZW5jb2Rlci0+YmFzZSk7CisJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3It PnBhbmVsOworCisJaW50ZWxfZHBfYXV4X2VuYWJsZV9iYWNrbGlnaHQoY29ubmVjdG9yKTsKKwor CWlmIChpbnRlbF9kcC0+ZWRwX2RwY2RbMl0gJiBEUF9FRFBfQkFDS0xJR0hUX0JSSUdIVE5FU1Nf QllURV9DT1VOVCkKKwkJcGFuZWwtPmJhY2tsaWdodC5tYXggPSAweEZGRkY7CisJZWxzZQorCQlw YW5lbC0+YmFja2xpZ2h0Lm1heCA9IDB4RkY7CisKKwlwYW5lbC0+YmFja2xpZ2h0Lm1pbiA9IDA7 CisJcGFuZWwtPmJhY2tsaWdodC5sZXZlbCA9IGludGVsX2RwX2F1eF9nZXRfYmFja2xpZ2h0KGNv bm5lY3Rvcik7CisKKwlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZWQgPSBwYW5lbC0+YmFja2xpZ2h0 LmxldmVsICE9IDA7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGJvb2wKK2ludGVsX2RwX2F1 eF9kaXNwbGF5X2NvbnRyb2xfY2FwYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IpCit7CisJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmY29u bmVjdG9yLT5lbmNvZGVyLT5iYXNlKTsKKworCS8qIENoZWNrIHRoZSAgZURQIERpc3BsYXkgY29u dHJvbCBjYXBhYmlsaXRpZXMgcmVnaXN0ZXJzIHRvIGRldGVybWluZSBpZgorCSAqIHRoZSBwYW5l bCBjYW4gc3VwcG9ydCBiYWNrbGlnaHQgY29udHJvbCBvdmVyIHRoZSBhdXggY2hhbm5lbAorCSAq LworCWlmIChpbnRlbF9kcC0+ZWRwX2RwY2RbMV0gJiBEUF9FRFBfVENPTl9CQUNLTElHSFRfQURK VVNUTUVOVF9DQVAgJiYKKwkJCShpbnRlbF9kcC0+ZWRwX2RwY2RbMV0gJiBEUF9FRFBfQkFDS0xJ R0hUX0FVWF9FTkFCTEVfQ0FQKSAmJgorCQkJISgoaW50ZWxfZHAtPmVkcF9kcGNkWzFdICYgRFBf RURQX0JBQ0tMSUdIVF9QSU5fRU5BQkxFX0NBUCkgfHwKKwkJCQkJKGludGVsX2RwLT5lZHBfZHBj ZFsyXSAmIERQX0VEUF9CQUNLTElHSFRfQlJJR0hUTkVTU19QV01fUElOX0NBUCkpKSB7CisKKwkJ RFJNX0RFQlVHX0tNUygiQVVYIEJhY2tsaWdodCBDb250cm9sIFN1cHBvcnRlZCFcbiIpOworCQly ZXR1cm4gdHJ1ZTsKKwl9CisJcmV0dXJuIGZhbHNlOworfQorCitpbnQgaW50ZWxfZHBfYXV4X2lu aXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3Rv cikKK3sKKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmludGVsX2Nvbm5lY3Rvci0+cGFu ZWw7CisKKwlpZighaTkxNS5lbmFibGVfZHBjZF9iYWNrbGlnaHQpCisJCXJldHVybiAtRU5PREVW OworCisJaWYgKCFpbnRlbF9kcF9hdXhfZGlzcGxheV9jb250cm9sX2NhcGFibGUoaW50ZWxfY29u bmVjdG9yKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlwYW5lbC0+YmFja2xpZ2h0LnNldHVwID0g aW50ZWxfZHBfYXV4X3NldHVwX2JhY2tsaWdodDsKKwlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZSA9 IGludGVsX2RwX2F1eF9lbmFibGVfYmFja2xpZ2h0OworCXBhbmVsLT5iYWNrbGlnaHQuZGlzYWJs ZSA9IGludGVsX2RwX2F1eF9kaXNhYmxlX2JhY2tsaWdodDsKKwlwYW5lbC0+YmFja2xpZ2h0LnNl dCA9IGludGVsX2RwX2F1eF9zZXRfYmFja2xpZ2h0OworCXBhbmVsLT5iYWNrbGlnaHQuZ2V0ID0g aW50ZWxfZHBfYXV4X2dldF9iYWNrbGlnaHQ7CisKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKaW5kZXggYjE0ZTUxNS4uY2VmZGI2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKQEAgLTEzMjIsNiArMTMyMiw5IEBAIGJvb2wgaW50ZWxfZHBfc291cmNlX3N1cHBvcnRz X2hicjIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7CiBib29sCiBpbnRlbF9kcF9nZXRfbGlu a19zdGF0dXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdWludDhfdCBsaW5rX3N0YXR1c1tE UF9MSU5LX1NUQVRVU19TSVpFXSk7CiAKKy8qIGludGVsX2RwX2F1eF9iYWNrbGlnaHQuYyAqLwor aW50IGludGVsX2RwX2F1eF9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICppbnRlbF9jb25uZWN0b3IpOworCiAvKiBpbnRlbF9kcF9tc3QuYyAqLwogaW50IGludGVs X2RwX21zdF9lbmNvZGVyX2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQsIGludCBjb25uX2lkKTsKIHZvaWQgaW50ZWxfZHBfbXN0X2VuY29kZXJfY2xlYW51cChz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcGFuZWwuYwppbmRleCA4Yzg5OTZmLi5hYWI1MTUzIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BhbmVsLmMKQEAgLTE3MTgsNiArMTcxOCwxMCBAQCBpbnRlbF9wYW5lbF9pbml0X2JhY2ts aWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsKQogCQljb250YWluZXJfb2YocGFu ZWwsIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IsIHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCisJaWYgKGNv bm5lY3Rvci0+YmFzZS5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfZURQICYm CisJCQlpbnRlbF9kcF9hdXhfaW5pdF9iYWNrbGlnaHRfZnVuY3MoY29ubmVjdG9yKSA9PSAwKQor CQlyZXR1cm47CisKIAlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKIAkJcGFuZWwtPmJhY2ts aWdodC5zZXR1cCA9IGJ4dF9zZXR1cF9iYWNrbGlnaHQ7CiAJCXBhbmVsLT5iYWNrbGlnaHQuZW5h YmxlID0gYnh0X2VuYWJsZV9iYWNrbGlnaHQ7Ci0tIAoxLjkuMwoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==