From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yetunde Adebisi Subject: [PATCH 2/2] drm/i915: Add Backlight Control using DPCD for eDP connectors (v6) Date: Fri, 5 Feb 2016 12:18:53 +0000 Message-ID: <1454674733-7279-3-git-send-email-yetundex.adebisi@intel.com> References: <1454674733-7279-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 217B06E8D9 for ; Fri, 5 Feb 2016 04:19:11 -0800 (PST) In-Reply-To: <1454674733-7279-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: Yetunde Adebisi , Jani Nikula List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGVEUCBiYWNrbGlnaHQgY29udHJvbCB1c2luZyBE UENEIHJlZ2lzdGVycyB0bwpiYWNrbGlnaHQgaG9va3MgaW4gaW50ZWxfcGFuZWwuCgpJdCBjaGVj a3MgZm9yIGJhY2tsaWdodCBjb250cm9sIG92ZXIgQVVYIGNoYW5uZWwgY2FwYWJpbGl0eSBhbmQg c2V0cyB1cApmdW5jdGlvbiBwb2ludGVycyB0byBnZXQgYW5kIHNldCB0aGUgYmFja2xpZ2h0IGJy aWdodG5lc3MgbGV2ZWwgaWYKc3VwcG9ydGVkLgoKdjI6IE1vdmVkIGJhY2tsaWdodCBmdW5jdGlv bnMgZnJvbSBpbnRlbF9kcC5jIGludG8gYSBuZXcgZmlsZQppbnRlbF9kcF9hdXhfYmFja2xpZ2h0 LmMuIEFsc28gbW92ZWQgcmVhZGluZyBvZiBlRFAgZGlzcGxheSBjb250cm9sCnJlZ2lzdGVycyB0 byBpbnRlbF9kcF9nZXRfZHBjZAoKdjM6IENvcnJlY3Qgc29tZSBmb3JtYXR0aW5nIG1pc3Rha2Vz Cgp2NDogVXBkYXRlZCB0byB1c2UgQVVYIGJhY2tsaWdodCBjb250cm9sIGlmIFBXTSBjb250cm9s IGlzIG5vdCBwb3NzaWJsZQoJKEphbmkpCnY1OiBNb3ZlZCBjYWxsIHRvIGluaXRpYWxpemUgYmFj a2xpZ2h0IHJlZ2lzdGVycyB0byBkcF9hdXhfc2V0dXBfYmFja2xpZ2h0CnY2OiBDaGVjayBEUF9F RFBfQkFDS0xJR0hUX1BJTl9FTkFCTEVfQ0FQIGlzIGRpc2FibGVkIGJlZm9yZSBzZXR0aW5nIHVw IEFVWApiYWNrbGlnaHQgY29udHJvbC4gVG8gZml4IEJMTV9QV01fRU5BQkxFIGlndCB0ZXN0IHdh cm5pbmdzIG9uIGJkd191bHRyYQoKVGhpcyBwYXRjaCBkZXBlbmRzIG9uIGh0dHA6Ly9wYXRjaHdv cmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzY0MjUzLwoKQ2M6IEJvYiBQYWF1d2UgPGJvYi5qLnBh YXV3ZUBpbnRlbC5jb20+CkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgpB Y2tlZC1ieTogSmVzc2UgQmFybmVzIDxqYmFybmVzQHZpcnR1b3VzZ2Vlay5vcmc+ClNpZ25lZC1v ZmYtYnk6IFlldHVuZGUgQWRlYmlzaSA8eWV0dW5kZXguYWRlYmlzaUBpbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAgICAgICAgICB8ICAxNyArKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQuYyB8IDE3MCArKysrKysr KysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAg ICAgICAgICAgIHwgICA2ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICAg ICAgICAgICB8ICAgNCArCiA1IGZpbGVzIGNoYW5nZWQsIDE5MiBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwX2F1eF9iYWNrbGlnaHQuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01h a2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKaW5kZXggMDg1MWRlMDcuLjQx MjUwY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCkBAIC03Nyw2ICs3Nyw3IEBAIGk5MTUteSArPSBk dm9fY2g3MDE3Lm8gXAogCSAgZHZvX3RmcDQxMC5vIFwKIAkgIGludGVsX2NydC5vIFwKIAkgIGlu dGVsX2RkaS5vIFwKKwkgIGludGVsX2RwX2F1eF9iYWNrbGlnaHQubyBcCiAJICBpbnRlbF9kcF9s aW5rX3RyYWluaW5nLm8gXAogCSAgaW50ZWxfZHBfbXN0Lm8gXAogCSAgaW50ZWxfZHAubyBcCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYwppbmRleCBhMDczZjA0Li45Zjg2NzJlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKQEAgLTMxODMsNyArMzE4Myw3IEBAIHN0YXRpYyB2b2lkIGNodl9kcF9wb3N0 X3BsbF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogICogU2lua3MgYXJl ICpzdXBwb3NlZCogdG8gY29tZSB1cCB3aXRoaW4gMW1zIGZyb20gYW4gb2ZmIHN0YXRlLCBidXQg d2UncmUgYWxzbwogICogc3VwcG9zZWQgdG8gcmV0cnkgMyB0aW1lcyBwZXIgdGhlIHNwZWMuCiAg Ki8KLXN0YXRpYyBzc2l6ZV90Citzc2l6ZV90CiBpbnRlbF9kcF9kcGNkX3JlYWRfd2FrZShzdHJ1 Y3QgZHJtX2RwX2F1eCAqYXV4LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogCQkJdm9pZCAqYnVmZmVy LCBzaXplX3Qgc2l6ZSkKIHsKQEAgLTM4NTAsNyArMzg1MCw2IEBAIGludGVsX2RwX2dldF9kcGNk KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq ZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7CiAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JdWludDhfdCByZXY7CiAKIAlpZiAoaW50 ZWxfZHBfZHBjZF9yZWFkX3dha2UoJmludGVsX2RwLT5hdXgsIDB4MDAwLCBpbnRlbF9kcC0+ZHBj ZCwKIAkJCQkgICAgc2l6ZW9mKGludGVsX2RwLT5kcGNkKSkgPCAwKQpAQCAtMzg4Niw2ICszODg1 LDE1IEBAIGludGVsX2RwX2dldF9kcGNkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJCQlE Uk1fREVCVUdfS01TKCJQU1IyICVzIG9uIHNpbmsiLAogCQkJCWRldl9wcml2LT5wc3IucHNyMl9z dXBwb3J0ID8gInN1cHBvcnRlZCIgOiAibm90IHN1cHBvcnRlZCIpOwogCQl9CisKKwkJLyogUmVh ZCB0aGUgZURQIERpc3BsYXkgY29udHJvbCBjYXBhYmlsaXRpZXMgcmVnaXN0ZXJzICovCisJCW1l bXNldChpbnRlbF9kcC0+ZWRwX2RwY2QsIDAsIHNpemVvZihpbnRlbF9kcC0+ZWRwX2RwY2QpKTsK KwkJaWYgKChpbnRlbF9kcC0+ZHBjZFtEUF9FRFBfQ09ORklHVVJBVElPTl9DQVBdICYgRFBfRFBD RF9ESVNQTEFZX0NPTlRST0xfQ0FQQUJMRSkgJiYKKwkJCQkoaW50ZWxfZHBfZHBjZF9yZWFkX3dh a2UoJmludGVsX2RwLT5hdXgsIERQX0VEUF9EUENEX1JFViwKKwkJCQkJCWludGVsX2RwLT5lZHBf ZHBjZCwgc2l6ZW9mKGludGVsX2RwLT5lZHBfZHBjZCkpID09CisJCQkJCQkJCXNpemVvZihpbnRl bF9kcC0+ZWRwX2RwY2QpKSkKKwkJCURSTV9ERUJVR19LTVMoIkVEUCBEUENEIDogJSpwaFxuIiwg KGludCkgc2l6ZW9mKGludGVsX2RwLT5lZHBfZHBjZCksCisJCQkJCWludGVsX2RwLT5lZHBfZHBj ZCk7CiAJfQogCiAJRFJNX0RFQlVHX0tNUygiRGlzcGxheSBQb3J0IFRQUzMgc3VwcG9ydDogc291 cmNlICVzLCBzaW5rICVzXG4iLApAQCAtMzg5MywxMCArMzkwMSw3IEBAIGludGVsX2RwX2dldF9k cGNkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJCSAgICAgIHllc25vKGRybV9kcF90cHMz X3N1cHBvcnRlZChpbnRlbF9kcC0+ZHBjZCkpKTsKIAogCS8qIEludGVybWVkaWF0ZSBmcmVxdWVu Y3kgc3VwcG9ydCAqLwotCWlmIChpc19lZHAoaW50ZWxfZHApICYmCi0JICAgIChpbnRlbF9kcC0+ ZHBjZFtEUF9FRFBfQ09ORklHVVJBVElPTl9DQVBdICYJRFBfRFBDRF9ESVNQTEFZX0NPTlRST0xf Q0FQQUJMRSkgJiYKLQkgICAgKGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4 LCBEUF9FRFBfRFBDRF9SRVYsICZyZXYsIDEpID09IDEpICYmCi0JICAgIChyZXYgPj0gMHgwMykp IHsgLyogZURwIHYxLjQgb3IgaGlnaGVyICovCisJaWYgKGlzX2VkcChpbnRlbF9kcCkgJiYgKGlu dGVsX2RwLT5lZHBfZHBjZFswXSA+PSAweDAzKSkgeyAvKiBlRHAgdjEuNCBvciBoaWdoZXIgKi8K IAkJX19sZTE2IHNpbmtfcmF0ZXNbRFBfTUFYX1NVUFBPUlRFRF9SQVRFU107CiAJCWludCBpOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUzNjFkNgotLS0gL2Rldi9udWxsCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQuYwpAQCAtMCwwICsx LDE3MCBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE1IEludGVsIENvcnBvcmF0aW9uCisgKgor ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw ZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRo ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0 aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwg ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29m dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMg ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK KyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v dGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVk IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2Fy ZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS QU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8g RVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICog RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworCisjaW5j bHVkZSAiaW50ZWxfZHJ2LmgiCisKK3N0YXRpYyB2b2lkIHNldF9hdXhfYmFja2xpZ2h0X2VuYWJs ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBib29sIGVuYWJsZSkKK3sKKwl1aW50OF90IHJl Z192YWwgPSAwOworCisJaWYgKGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4 LCBEUF9FRFBfRElTUExBWV9DT05UUk9MX1JFR0lTVEVSLAorCQkJJnJlZ192YWwsIHNpemVvZihy ZWdfdmFsKSkgPCAwKSB7CisJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byByZWFkIERQQ0QgcmVn aXN0ZXIgMHgleFxuIiwKKwkJCQlEUF9FRFBfRElTUExBWV9DT05UUk9MX1JFR0lTVEVSKTsKKwkJ cmV0dXJuOworCX0KKwlpZiAoZW5hYmxlKQorCQlyZWdfdmFsIHw9IERQX0VEUF9CQUNLTElHSFRf RU5BQkxFOworCWVsc2UKKwkJcmVnX3ZhbCAmPSB+KERQX0VEUF9CQUNLTElHSFRfRU5BQkxFKTsK KworCWlmIChkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5hdXgsIERQX0VEUF9ESVNQTEFZ X0NPTlRST0xfUkVHSVNURVIsCisJCQlyZWdfdmFsKSA8IDApIHsKKwkJRFJNX0RFQlVHX0tNUygi RmFpbGVkIHRvICVzIGF1eCBiYWNrbGlnaHRcbiIsCisJCQkJZW5hYmxlID8gImVuYWJsZSIgOiAi ZGlzYWJsZSIpOworCX0KK30KKworLyoKKyAqIFJlYWQgdGhlIGN1cnJlbnQgYmFja2xpZ2h0IHZh bHVlIGZyb20gRFBDRCByZWdpc3RlcihzKSBiYXNlZAorICogb24gaWYgOC1iaXQoTVNCKSBvciAx Ni1iaXQoTVNCIGFuZCBMU0IpIHZhbHVlcyBhcmUgc3VwcG9ydGVkCisgKi8KK3N0YXRpYyB1aW50 MzJfdCBpbnRlbF9kcF9hdXhfZ2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IpCit7CisJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9k cCgmY29ubmVjdG9yLT5lbmNvZGVyLT5iYXNlKTsKKwl1aW50OF90IHJlYWRfdmFsWzJdID0geyAw eDAgfTsKKwl1aW50MTZfdCBsZXZlbCA9IDA7CisKKwlpZiAoaW50ZWxfZHBfZHBjZF9yZWFkX3dh a2UoJmludGVsX2RwLT5hdXgsIERQX0VEUF9CQUNLTElHSFRfQlJJR0hUTkVTU19NU0IsCisJCQkm cmVhZF92YWwsIHNpemVvZihyZWFkX3ZhbCkpIDwgMCkgeworCQlEUk1fREVCVUdfS01TKCJGYWls ZWQgdG8gcmVhZCBEUENEIHJlZ2lzdGVyIDB4JXhcbiIsCisJCQkJRFBfRURQX0JBQ0tMSUdIVF9C UklHSFRORVNTX01TQik7CisJCXJldHVybiAwOworCX0KKwlsZXZlbCA9IHJlYWRfdmFsWzBdOwor CWlmIChpbnRlbF9kcC0+ZWRwX2RwY2RbMl0gJiBEUF9FRFBfQkFDS0xJR0hUX0JSSUdIVE5FU1Nf QllURV9DT1VOVCkKKwkJbGV2ZWwgPSAocmVhZF92YWxbMF0gPDwgOCB8IHJlYWRfdmFsWzFdKTsK KworCXJldHVybiBsZXZlbDsKK30KKworLyoKKyAqIFNlbmRzIHRoZSBjdXJyZW50IGJhY2tsaWdo dCBsZXZlbCBvdmVyIHRoZSBhdXggY2hhbm5lbCwgY2hlY2tpbmcgaWYgaXRzIHVzaW5nCisgKiA4 LWJpdCBvciAxNiBiaXQgdmFsdWUgKE1TQiBhbmQgTFNCKQorICovCitzdGF0aWMgdm9pZAoraW50 ZWxfZHBfYXV4X3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y LCB1MzIgbGV2ZWwpCit7CisJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRl bF9kcCgmY29ubmVjdG9yLT5lbmNvZGVyLT5iYXNlKTsKKwl1aW50OF90IHZhbHNbMl0gPSB7IDB4 MCB9OworCisJdmFsc1swXSA9IGxldmVsOworCisJLyogV3JpdGUgdGhlIE1TQiBhbmQvb3IgTFNC ICovCisJIGlmIChpbnRlbF9kcC0+ZWRwX2RwY2RbMl0gJiBEUF9FRFBfQkFDS0xJR0hUX0JSSUdI VE5FU1NfQllURV9DT1VOVCkgeworCQl2YWxzWzBdID0gKGxldmVsICYgMHhGRjAwKSA+PiA4Owor CQl2YWxzWzFdID0gKGxldmVsICYgMHhGRik7CisJfQorCWlmIChkcm1fZHBfZHBjZF93cml0ZSgm aW50ZWxfZHAtPmF1eCwgRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX01TQiwKKwkJCXZhbHMs IHNpemVvZih2YWxzKSkgPCAwKSB7CisJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byB3cml0ZSBh dXggYmFja2xpZ2h0IGxldmVsXG4iKTsKKwkJcmV0dXJuOworCX0KK30KKworc3RhdGljIHZvaWQg aW50ZWxfZHBfYXV4X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAo JmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSk7CisJdWludDhfdCBkcGNkX2J1ZiA9IDA7CisKKwlz ZXRfYXV4X2JhY2tsaWdodF9lbmFibGUoaW50ZWxfZHAsIHRydWUpOworCisJaWYgKChpbnRlbF9k cF9kcGNkX3JlYWRfd2FrZSgmaW50ZWxfZHAtPmF1eCwKKwkJCURQX0VEUF9CQUNLTElHSFRfTU9E RV9TRVRfUkVHSVNURVIsICZkcGNkX2J1ZiwgMSkgPT0gMSkgJiYKKwkJCSgoZHBjZF9idWYgJiBE UF9FRFBfQkFDS0xJR0hUX0NPTlRST0xfTU9ERV9NQVNLKSA9PQorCQkJCQlEUF9FRFBfQkFDS0xJ R0hUX0NPTlRST0xfTU9ERV9QUkVTRVQpKQorCQlkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2Rw LT5hdXgsIERQX0VEUF9CQUNLTElHSFRfTU9ERV9TRVRfUkVHSVNURVIsCisJCQkJKGRwY2RfYnVm IHwgRFBfRURQX0JBQ0tMSUdIVF9DT05UUk9MX01PREVfRFBDRCkpOworfQorCitzdGF0aWMgdm9p ZCBpbnRlbF9kcF9hdXhfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQoreworCXNldF9hdXhfYmFja2xpZ2h0X2VuYWJsZShlbmNfdG9faW50ZWxfZHAo JmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSksIGZhbHNlKTsKK30KKworc3RhdGljIGludCBpbnRl bF9kcF9hdXhfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKKwkJCWVudW0gcGlwZSBwaXBlKQoreworCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBl bmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSk7CisJc3RydWN0IGludGVs X3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOworCisJaW50ZWxfZHBfYXV4X2VuYWJs ZV9iYWNrbGlnaHQoY29ubmVjdG9yKTsKKworCWlmIChpbnRlbF9kcC0+ZWRwX2RwY2RbMl0gJiBE UF9FRFBfQkFDS0xJR0hUX0JSSUdIVE5FU1NfQllURV9DT1VOVCkKKwkJcGFuZWwtPmJhY2tsaWdo dC5tYXggPSAweEZGRkY7CisJZWxzZQorCQlwYW5lbC0+YmFja2xpZ2h0Lm1heCA9IDB4RkY7CisK KwlwYW5lbC0+YmFja2xpZ2h0Lm1pbiA9IDA7CisJcGFuZWwtPmJhY2tsaWdodC5sZXZlbCA9IGlu dGVsX2RwX2F1eF9nZXRfYmFja2xpZ2h0KGNvbm5lY3Rvcik7CisKKwlwYW5lbC0+YmFja2xpZ2h0 LmVuYWJsZWQgPSBwYW5lbC0+YmFja2xpZ2h0LmxldmVsICE9IDA7CisKKwlyZXR1cm4gMDsKK30K Kworc3RhdGljIGJvb2wKK2ludGVsX2RwX2F1eF9kaXNwbGF5X2NvbnRyb2xfY2FwYWJsZShzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0IGludGVsX2RwICppbnRl bF9kcCA9IGVuY190b19pbnRlbF9kcCgmY29ubmVjdG9yLT5lbmNvZGVyLT5iYXNlKTsKKworCS8q IENoZWNrIHRoZSAgZURQIERpc3BsYXkgY29udHJvbCBjYXBhYmlsaXRpZXMgcmVnaXN0ZXJzIHRv IGRldGVybWluZSBpZgorCSAqIHRoZSBwYW5lbCBjYW4gc3VwcG9ydCBiYWNrbGlnaHQgY29udHJv bCBvdmVyIHRoZSBhdXggY2hhbm5lbAorCSAqLworCWlmIChpbnRlbF9kcC0+ZWRwX2RwY2RbMV0g JiBEUF9FRFBfVENPTl9CQUNLTElHSFRfQURKVVNUTUVOVF9DQVAgJiYKKwkJCShpbnRlbF9kcC0+ ZWRwX2RwY2RbMV0gJiBEUF9FRFBfQkFDS0xJR0hUX0FVWF9FTkFCTEVfQ0FQKSAmJgorCQkJISgo aW50ZWxfZHAtPmVkcF9kcGNkWzFdICYgRFBfRURQX0JBQ0tMSUdIVF9QSU5fRU5BQkxFX0NBUCkg fHwKKwkJCQkJKGludGVsX2RwLT5lZHBfZHBjZFsyXSAmIERQX0VEUF9CQUNLTElHSFRfQlJJR0hU TkVTU19QV01fUElOX0NBUCkpKSB7CisKKwkJRFJNX0RFQlVHX0tNUygiQVVYIEJhY2tsaWdodCBD b250cm9sIFN1cHBvcnRlZCFcbiIpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisJcmV0dXJuIGZhbHNl OworfQorCitpbnQgaW50ZWxfZHBfYXV4X2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBh bmVsID0gJmludGVsX2Nvbm5lY3Rvci0+cGFuZWw7CisKKwlpZiAoIWludGVsX2RwX2F1eF9kaXNw bGF5X2NvbnRyb2xfY2FwYWJsZShpbnRlbF9jb25uZWN0b3IpKQorCQlyZXR1cm4gLUVOT0RFVjsK KworCXBhbmVsLT5iYWNrbGlnaHQuc2V0dXAgPSBpbnRlbF9kcF9hdXhfc2V0dXBfYmFja2xpZ2h0 OworCXBhbmVsLT5iYWNrbGlnaHQuZW5hYmxlID0gaW50ZWxfZHBfYXV4X2VuYWJsZV9iYWNrbGln aHQ7CisJcGFuZWwtPmJhY2tsaWdodC5kaXNhYmxlID0gaW50ZWxfZHBfYXV4X2Rpc2FibGVfYmFj a2xpZ2h0OworCXBhbmVsLT5iYWNrbGlnaHQuc2V0ID0gaW50ZWxfZHBfYXV4X3NldF9iYWNrbGln aHQ7CisJcGFuZWwtPmJhY2tsaWdodC5nZXQgPSBpbnRlbF9kcF9hdXhfZ2V0X2JhY2tsaWdodDsK KworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA5M2JhMTRhLi5l MTllZTIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtNzYxLDYgKzc2MSw3IEBAIHN0 cnVjdCBpbnRlbF9kcCB7CiAJdWludDhfdCBkcGNkW0RQX1JFQ0VJVkVSX0NBUF9TSVpFXTsKIAl1 aW50OF90IHBzcl9kcGNkW0VEUF9QU1JfUkVDRUlWRVJfQ0FQX1NJWkVdOwogCXVpbnQ4X3QgZG93 bnN0cmVhbV9wb3J0c1tEUF9NQVhfRE9XTlNUUkVBTV9QT1JUU107CisJdWludDhfdCBlZHBfZHBj ZFtFRFBfRElTUExBWV9DVExfQ0FQX1NJWkVdOwogCS8qIHNpbmsgcmF0ZXMgYXMgcmVwb3J0ZWQg YnkgRFBfU1VQUE9SVEVEX0xJTktfUkFURVMgKi8KIAl1aW50OF90IG51bV9zaW5rX3JhdGVzOwog CWludCBzaW5rX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdOwpAQCAtMTI4Nyw2ICsxMjg4 LDExIEBAIHZvaWQgaW50ZWxfZHBfY29tcHV0ZV9yYXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsIGludCBwb3J0X2Nsb2NrLAogYm9vbCBpbnRlbF9kcF9zb3VyY2Vfc3VwcG9ydHNfaGJyMihz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKIGJvb2wKIGludGVsX2RwX2dldF9saW5rX3N0YXR1 cyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1aW50OF90IGxpbmtfc3RhdHVzW0RQX0xJTktf U1RBVFVTX1NJWkVdKTsKK3NzaXplX3QgaW50ZWxfZHBfZHBjZF9yZWFkX3dha2Uoc3RydWN0IGRy bV9kcF9hdXggKmF1eCwgdW5zaWduZWQgaW50IG9mZnNldCwKKwkJdm9pZCAqYnVmZmVyLCBzaXpl X3Qgc2l6ZSk7CisKKy8qIGludGVsX2RwX2F1eF9iYWNrbGlnaHQuYyAqLworaW50IGludGVsX2Rw X2F1eF9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9j b25uZWN0b3IpOwogCiAvKiBpbnRlbF9kcF9tc3QuYyAqLwogaW50IGludGVsX2RwX21zdF9lbmNv ZGVyX2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsIGludCBj b25uX2lkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCmluZGV4IDIxZWU2NDcuLjk0MWM2 ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwpAQCAtMTcyMCw2ICsxNzIwLDEwIEBA IGludGVsX3BhbmVsX2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9wYW5lbCAqcGFu ZWwpCiAJCWNvbnRhaW5lcl9vZihwYW5lbCwgc3RydWN0IGludGVsX2Nvbm5lY3RvciwgcGFuZWwp OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9y LT5iYXNlLmRldik7CiAKKwlpZiAoY29ubmVjdG9yLT5iYXNlLmNvbm5lY3Rvcl90eXBlID09IERS TV9NT0RFX0NPTk5FQ1RPUl9lRFAgJiYKKwkJCWludGVsX2RwX2F1eF9pbml0X2JhY2tsaWdodF9m dW5jcyhjb25uZWN0b3IpID09IDApCisJCXJldHVybjsKKwogCWlmIChJU19CUk9YVE9OKGRldl9w cml2KSkgewogCQlwYW5lbC0+YmFja2xpZ2h0LnNldHVwID0gYnh0X3NldHVwX2JhY2tsaWdodDsK IAkJcGFuZWwtPmJhY2tsaWdodC5lbmFibGUgPSBieHRfZW5hYmxlX2JhY2tsaWdodDsKLS0gCjEu OS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=