From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alastair Bridgewater Subject: [PATCH 1/6] drm/nouveau: Extend NVKM HDMI power control method to set InfoFrames Date: Tue, 17 Jan 2017 17:41:59 -0500 Message-ID: <20170117224204.27516-2-alastair.bridgewater@gmail.com> References: <20170117224204.27516-1-alastair.bridgewater@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170117224204.27516-1-alastair.bridgewater-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org VGhlIG5vdXZlYXUgZHJpdmVyLCBpbiB0aGUgTGludXggMy43IGRheXMsIHVzZWQgdG8gdHJ5IGFu ZCBzZXQgdGhlCkFWSSBJbmZvRnJhbWUgYmFzZWQgb24gdGhlIHNlbGVjdGVkIGRpc3BsYXkgbW9k ZS4gIFRoZXNlIGRheXMsIGl0CnVzZXMgYSBmaXhlZCBzZXQgb2YgSW5mb0ZyYW1lcy4gIFN0YXJ0 IHRvIGNvcnJlY3QgdGhhdCwgYnkKcHJvdmlkaW5nIGEgbWVjaGFuaXNtIHdoZXJlYnkgSW5mb0Zy YW1lIGRhdGEgbWF5IGJlIHBhc3NlZCB0byB0aGUKTlZLTSBmdW5jdGlvbnMgdGhhdCBkbyB0aGUg YWN0dWFsIGNvbmZpZ3VyYXRpb24uCgpBdCB0aGlzIHBvaW50LCBvbmx5IGVzdGFibGlzaCB0aGUg bmV3IHBhcmFtZXRlcnMgYW5kIHRoZWlyIHBhcnNpbmcsCmRvbid0IGFjdHVhbGx5IHVzZSB0aGUg ZGF0YSBhbnl3aGVyZSB5ZXQgKHNpbmNlIGl0J3Mgbm90IHN1cHBsaWVkCmFueXdoZXJlKS4KClNp Z25lZC1vZmYtYnk6IEFsYXN0YWlyIEJyaWRnZXdhdGVyIDxhbGFzdGFpci5icmlkZ2V3YXRlckBn bWFpbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmlmL2NsNTA3 MC5oICAgICAgfCAxNiArKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9l bmdpbmUvZGlzcC9oZG1pZzg0LmMgfCAzMiArKysrKysrKysrKysrKysrKysrKystCiAuLi4vZ3B1 L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2Rpc3AvaGRtaWdmMTE5LmMgICB8IDMyICsrKysrKysr KysrKysrKysrKysrKy0KIC4uLi9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZGlzcC9oZG1p Z2sxMDQuYyAgIHwgMzIgKysrKysrKysrKysrKysrKysrKysrLQogLi4uL2dwdS9kcm0vbm91dmVh dS9udmttL2VuZ2luZS9kaXNwL2hkbWlndDIxNS5jICAgfCAzMiArKysrKysrKysrKysrKysrKysr KystCiA1IGZpbGVzIGNoYW5nZWQsIDEzOSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2luY2x1ZGUvbnZpZi9jbDUwNzAu aCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2luY2x1ZGUvbnZpZi9jbDUwNzAuaAppbmRleCBh ZTQ5ZGZkLi5hM2NlM2JmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNs dWRlL252aWYvY2w1MDcwLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9u dmlmL2NsNTA3MC5oCkBAIC03Niw3ICs3NiwyMSBAQCBzdHJ1Y3QgbnY1MF9kaXNwX3Nvcl9oZG1p X3B3cl92MCB7CiAJX191OCAgc3RhdGU7CiAJX191OCAgbWF4X2FjX3BhY2tldDsKIAlfX3U4ICBy ZWtleTsKLQlfX3U4ICBwYWQwNFs0XTsKKwlfX3U4ICBmbGFnczsKKyNkZWZpbmUgTlY1MF9ESVNQ X01USERfVjFfU09SX0hETUlfUFdSX0ZMQUdfQVVESU9fSU5GT0ZSQU1FICAgICAweDAxCisjZGVm aW5lIE5WNTBfRElTUF9NVEhEX1YxX1NPUl9IRE1JX1BXUl9GTEFHX0FWSV9JTkZPRlJBTUUgICAg ICAgMHgwMgorI2RlZmluZSBOVjUwX0RJU1BfTVRIRF9WMV9TT1JfSERNSV9QV1JfRkxBR19WRU5E T1JfSU5GT0ZSQU1FICAgIDB4MDQKKwlfX3U4ICBwYWQwNVszXTsKK307CisKK3N0cnVjdCBudjUw X2Rpc3Bfc29yX2hkbWlfcHdyX3YwX2luZm9mcmFtZSB7CisJX191OCAgdmVyc2lvbjsKKwlfX3U4 ICBwYWQwMVszXTsKKwlfX3UzMiBoZWFkZXI7CisJX191MzIgc3VicGFjazBfbG93OworCV9fdTMy IHN1YnBhY2swX2hpZ2g7CisJX191MzIgc3VicGFjazFfbG93OworCV9fdTMyIHN1YnBhY2sxX2hp Z2g7CiB9OwogCiBzdHJ1Y3QgbnY1MF9kaXNwX3Nvcl9sdmRzX3NjcmlwdF92MCB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9kaXNwL2hkbWlnODQuYyBi L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2Rpc3AvaGRtaWc4NC5jCmluZGV4 IDFjNDI1NmUuLmY3Njc1ODggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252 a20vZW5naW5lL2Rpc3AvaGRtaWc4NC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252 a20vZW5naW5lL2Rpc3AvaGRtaWc4NC5jCkBAIC0zNiwxMSArMzYsMTQgQEAgZzg0X2hkbWlfY3Ry bChOVjUwX0RJU1BfTVRIRF9WMSkKIAl1bmlvbiB7CiAJCXN0cnVjdCBudjUwX2Rpc3Bfc29yX2hk bWlfcHdyX3YwIHYwOwogCX0gKmFyZ3MgPSBkYXRhOworCXN0cnVjdCBudjUwX2Rpc3Bfc29yX2hk bWlfcHdyX3YwX2luZm9mcmFtZSAqYXVkaW9faW5mb2ZyYW1lID0gTlVMTDsKKwlzdHJ1Y3QgbnY1 MF9kaXNwX3Nvcl9oZG1pX3B3cl92MF9pbmZvZnJhbWUgKmF2aV9pbmZvZnJhbWUgPSBOVUxMOwor CXN0cnVjdCBudjUwX2Rpc3Bfc29yX2hkbWlfcHdyX3YwX2luZm9mcmFtZSAqdmVuZG9yX2luZm9m cmFtZSA9IE5VTEw7CiAJdTMyIGN0cmw7CiAJaW50IHJldCA9IC1FTk9TWVM7CiAKIAludmlmX2lv Y3RsKG9iamVjdCwgImRpc3Agc29yIGhkbWkgY3RybCBzaXplICVkXG4iLCBzaXplKTsKLQlpZiAo IShyZXQgPSBudmlmX3VucGFjayhyZXQsICZkYXRhLCAmc2l6ZSwgYXJncy0+djAsIDAsIDAsIGZh bHNlKSkpIHsKKwlpZiAoIShyZXQgPSBudmlmX3VucGFjayhyZXQsICZkYXRhLCAmc2l6ZSwgYXJn cy0+djAsIDAsIDAsIHRydWUpKSkgewogCQludmlmX2lvY3RsKG9iamVjdCwgImRpc3Agc29yIGhk bWkgY3RybCB2ZXJzICVkIHN0YXRlICVkICIKIAkJCQkgICAibWF4X2FjX3BhY2tldCAlZCByZWtl eSAlZFxuIiwKIAkJCSAgIGFyZ3MtPnYwLnZlcnNpb24sIGFyZ3MtPnYwLnN0YXRlLApAQCAtNTQs NiArNTcsMzMgQEAgZzg0X2hkbWlfY3RybChOVjUwX0RJU1BfTVRIRF9WMSkKIAl9IGVsc2UKIAkJ cmV0dXJuIHJldDsKIAorCWlmIChhcmdzLT52MC5mbGFncyAmCisJICAgIE5WNTBfRElTUF9NVEhE X1YxX1NPUl9IRE1JX1BXUl9GTEFHX0FVRElPX0lORk9GUkFNRSkgeworCQlhdWRpb19pbmZvZnJh bWUgPSBkYXRhOworCQlpZiAoKHJldCA9IG52aWZfdW5wYWNrKC1FTk9TWVMsICZkYXRhLCAmc2l6 ZSwKKwkJCQkgICAgICAgKmF1ZGlvX2luZm9mcmFtZSwgMCwgMCwgdHJ1ZSkpKQorCQkJcmV0dXJu IHJldDsKKwl9CisKKwlpZiAoYXJncy0+djAuZmxhZ3MgJgorCSAgICBOVjUwX0RJU1BfTVRIRF9W MV9TT1JfSERNSV9QV1JfRkxBR19BVklfSU5GT0ZSQU1FKSB7CisJCWF2aV9pbmZvZnJhbWUgPSBk YXRhOworCQlpZiAoKHJldCA9IG52aWZfdW5wYWNrKC1FTk9TWVMsICZkYXRhLCAmc2l6ZSwKKwkJ CQkgICAgICAgKmF2aV9pbmZvZnJhbWUsIDAsIDAsIHRydWUpKSkKKwkJCXJldHVybiByZXQ7CisJ fQorCisJaWYgKGFyZ3MtPnYwLmZsYWdzICYKKwkgICAgTlY1MF9ESVNQX01USERfVjFfU09SX0hE TUlfUFdSX0ZMQUdfVkVORE9SX0lORk9GUkFNRSkgeworCQl2ZW5kb3JfaW5mb2ZyYW1lID0gZGF0 YTsKKwkJaWYgKChyZXQgPSBudmlmX3VucGFjaygtRU5PU1lTLCAmZGF0YSwgJnNpemUsCisJCQkJ ICAgICAgICp2ZW5kb3JfaW5mb2ZyYW1lLCAwLCAwLCB0cnVlKSkpCisJCQlyZXR1cm4gcmV0Owor CX0KKworCWlmIChzaXplKQorCQlyZXR1cm4gLUUyQklHOworCiAJaWYgKCEoY3RybCAmIDB4NDAw MDAwMDApKSB7CiAJCW52a21fbWFzayhkZXZpY2UsIDB4NjE2NWE0ICsgaG9mZiwgMHg0MDAwMDAw MCwgMHgwMDAwMDAwMCk7CiAJCW52a21fbWFzayhkZXZpY2UsIDB4NjE2NTIwICsgaG9mZiwgMHgw MDAwMDAwMSwgMHgwMDAwMDAwMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9udmttL2VuZ2luZS9kaXNwL2hkbWlnZjExOS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bnZrbS9lbmdpbmUvZGlzcC9oZG1pZ2YxMTkuYwppbmRleCA2MzJmMDJkLi5jNDkyY2Q3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9kaXNwL2hkbWlnZjEx OS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2Rpc3AvaGRtaWdm MTE5LmMKQEAgLTM2LDExICszNiwxNCBAQCBnZjExOV9oZG1pX2N0cmwoTlY1MF9ESVNQX01USERf VjEpCiAJdW5pb24gewogCQlzdHJ1Y3QgbnY1MF9kaXNwX3Nvcl9oZG1pX3B3cl92MCB2MDsKIAl9 ICphcmdzID0gZGF0YTsKKwlzdHJ1Y3QgbnY1MF9kaXNwX3Nvcl9oZG1pX3B3cl92MF9pbmZvZnJh bWUgKmF1ZGlvX2luZm9mcmFtZSA9IE5VTEw7CisJc3RydWN0IG52NTBfZGlzcF9zb3JfaGRtaV9w d3JfdjBfaW5mb2ZyYW1lICphdmlfaW5mb2ZyYW1lID0gTlVMTDsKKwlzdHJ1Y3QgbnY1MF9kaXNw X3Nvcl9oZG1pX3B3cl92MF9pbmZvZnJhbWUgKnZlbmRvcl9pbmZvZnJhbWUgPSBOVUxMOwogCXUz MiBjdHJsOwogCWludCByZXQgPSAtRU5PU1lTOwogCiAJbnZpZl9pb2N0bChvYmplY3QsICJkaXNw IHNvciBoZG1pIGN0cmwgc2l6ZSAlZFxuIiwgc2l6ZSk7Ci0JaWYgKCEocmV0ID0gbnZpZl91bnBh Y2socmV0LCAmZGF0YSwgJnNpemUsIGFyZ3MtPnYwLCAwLCAwLCBmYWxzZSkpKSB7CisJaWYgKCEo cmV0ID0gbnZpZl91bnBhY2socmV0LCAmZGF0YSwgJnNpemUsIGFyZ3MtPnYwLCAwLCAwLCB0cnVl KSkpIHsKIAkJbnZpZl9pb2N0bChvYmplY3QsICJkaXNwIHNvciBoZG1pIGN0cmwgdmVycyAlZCBz dGF0ZSAlZCAiCiAJCQkJICAgIm1heF9hY19wYWNrZXQgJWQgcmVrZXkgJWRcbiIsCiAJCQkgICBh cmdzLT52MC52ZXJzaW9uLCBhcmdzLT52MC5zdGF0ZSwKQEAgLTUzLDYgKzU2LDMzIEBAIGdmMTE5 X2hkbWlfY3RybChOVjUwX0RJU1BfTVRIRF9WMSkKIAl9IGVsc2UKIAkJcmV0dXJuIHJldDsKIAor CWlmIChhcmdzLT52MC5mbGFncyAmCisJICAgIE5WNTBfRElTUF9NVEhEX1YxX1NPUl9IRE1JX1BX Ul9GTEFHX0FVRElPX0lORk9GUkFNRSkgeworCQlhdWRpb19pbmZvZnJhbWUgPSBkYXRhOworCQlp ZiAoKHJldCA9IG52aWZfdW5wYWNrKC1FTk9TWVMsICZkYXRhLCAmc2l6ZSwKKwkJCQkgICAgICAg KmF1ZGlvX2luZm9mcmFtZSwgMCwgMCwgdHJ1ZSkpKQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlp ZiAoYXJncy0+djAuZmxhZ3MgJgorCSAgICBOVjUwX0RJU1BfTVRIRF9WMV9TT1JfSERNSV9QV1Jf RkxBR19BVklfSU5GT0ZSQU1FKSB7CisJCWF2aV9pbmZvZnJhbWUgPSBkYXRhOworCQlpZiAoKHJl dCA9IG52aWZfdW5wYWNrKC1FTk9TWVMsICZkYXRhLCAmc2l6ZSwKKwkJCQkgICAgICAgKmF2aV9p bmZvZnJhbWUsIDAsIDAsIHRydWUpKSkKKwkJCXJldHVybiByZXQ7CisJfQorCisJaWYgKGFyZ3Mt PnYwLmZsYWdzICYKKwkgICAgTlY1MF9ESVNQX01USERfVjFfU09SX0hETUlfUFdSX0ZMQUdfVkVO RE9SX0lORk9GUkFNRSkgeworCQl2ZW5kb3JfaW5mb2ZyYW1lID0gZGF0YTsKKwkJaWYgKChyZXQg PSBudmlmX3VucGFjaygtRU5PU1lTLCAmZGF0YSwgJnNpemUsCisJCQkJICAgICAgICp2ZW5kb3Jf aW5mb2ZyYW1lLCAwLCAwLCB0cnVlKSkpCisJCQlyZXR1cm4gcmV0OworCX0KKworCWlmIChzaXpl KQorCQlyZXR1cm4gLUUyQklHOworCiAJaWYgKCEoY3RybCAmIDB4NDAwMDAwMDApKSB7CiAJCW52 a21fbWFzayhkZXZpY2UsIDB4NjE2Nzk4ICsgaG9mZiwgMHg0MDAwMDAwMCwgMHgwMDAwMDAwMCk7 CiAJCW52a21fbWFzayhkZXZpY2UsIDB4NjE2N2E0ICsgaG9mZiwgMHgwMDAwMDAwMSwgMHgwMDAw MDAwMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9k aXNwL2hkbWlnazEwNC5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZGlz cC9oZG1pZ2sxMDQuYwppbmRleCA0ZTgwNjdkLi42YzM4ZDZkIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9kaXNwL2hkbWlnazEwNC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2Rpc3AvaGRtaWdrMTA0LmMKQEAgLTM3LDEx ICszNywxNCBAQCBnazEwNF9oZG1pX2N0cmwoTlY1MF9ESVNQX01USERfVjEpCiAJdW5pb24gewog CQlzdHJ1Y3QgbnY1MF9kaXNwX3Nvcl9oZG1pX3B3cl92MCB2MDsKIAl9ICphcmdzID0gZGF0YTsK KwlzdHJ1Y3QgbnY1MF9kaXNwX3Nvcl9oZG1pX3B3cl92MF9pbmZvZnJhbWUgKmF1ZGlvX2luZm9m cmFtZSA9IE5VTEw7CisJc3RydWN0IG52NTBfZGlzcF9zb3JfaGRtaV9wd3JfdjBfaW5mb2ZyYW1l ICphdmlfaW5mb2ZyYW1lID0gTlVMTDsKKwlzdHJ1Y3QgbnY1MF9kaXNwX3Nvcl9oZG1pX3B3cl92 MF9pbmZvZnJhbWUgKnZlbmRvcl9pbmZvZnJhbWUgPSBOVUxMOwogCXUzMiBjdHJsOwogCWludCBy ZXQgPSAtRU5PU1lTOwogCiAJbnZpZl9pb2N0bChvYmplY3QsICJkaXNwIHNvciBoZG1pIGN0cmwg c2l6ZSAlZFxuIiwgc2l6ZSk7Ci0JaWYgKCEocmV0ID0gbnZpZl91bnBhY2socmV0LCAmZGF0YSwg JnNpemUsIGFyZ3MtPnYwLCAwLCAwLCBmYWxzZSkpKSB7CisJaWYgKCEocmV0ID0gbnZpZl91bnBh Y2socmV0LCAmZGF0YSwgJnNpemUsIGFyZ3MtPnYwLCAwLCAwLCB0cnVlKSkpIHsKIAkJbnZpZl9p b2N0bChvYmplY3QsICJkaXNwIHNvciBoZG1pIGN0cmwgdmVycyAlZCBzdGF0ZSAlZCAiCiAJCQkJ ICAgIm1heF9hY19wYWNrZXQgJWQgcmVrZXkgJWRcbiIsCiAJCQkgICBhcmdzLT52MC52ZXJzaW9u LCBhcmdzLT52MC5zdGF0ZSwKQEAgLTU0LDYgKzU3LDMzIEBAIGdrMTA0X2hkbWlfY3RybChOVjUw X0RJU1BfTVRIRF9WMSkKIAl9IGVsc2UKIAkJcmV0dXJuIHJldDsKIAorCWlmIChhcmdzLT52MC5m bGFncyAmCisJICAgIE5WNTBfRElTUF9NVEhEX1YxX1NPUl9IRE1JX1BXUl9GTEFHX0FVRElPX0lO Rk9GUkFNRSkgeworCQlhdWRpb19pbmZvZnJhbWUgPSBkYXRhOworCQlpZiAoKHJldCA9IG52aWZf dW5wYWNrKC1FTk9TWVMsICZkYXRhLCAmc2l6ZSwKKwkJCQkgICAgICAgKmF1ZGlvX2luZm9mcmFt ZSwgMCwgMCwgdHJ1ZSkpKQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlpZiAoYXJncy0+djAuZmxh Z3MgJgorCSAgICBOVjUwX0RJU1BfTVRIRF9WMV9TT1JfSERNSV9QV1JfRkxBR19BVklfSU5GT0ZS QU1FKSB7CisJCWF2aV9pbmZvZnJhbWUgPSBkYXRhOworCQlpZiAoKHJldCA9IG52aWZfdW5wYWNr KC1FTk9TWVMsICZkYXRhLCAmc2l6ZSwKKwkJCQkgICAgICAgKmF2aV9pbmZvZnJhbWUsIDAsIDAs IHRydWUpKSkKKwkJCXJldHVybiByZXQ7CisJfQorCisJaWYgKGFyZ3MtPnYwLmZsYWdzICYKKwkg ICAgTlY1MF9ESVNQX01USERfVjFfU09SX0hETUlfUFdSX0ZMQUdfVkVORE9SX0lORk9GUkFNRSkg eworCQl2ZW5kb3JfaW5mb2ZyYW1lID0gZGF0YTsKKwkJaWYgKChyZXQgPSBudmlmX3VucGFjaygt RU5PU1lTLCAmZGF0YSwgJnNpemUsCisJCQkJICAgICAgICp2ZW5kb3JfaW5mb2ZyYW1lLCAwLCAw LCB0cnVlKSkpCisJCQlyZXR1cm4gcmV0OworCX0KKworCWlmIChzaXplKQorCQlyZXR1cm4gLUUy QklHOworCiAJaWYgKCEoY3RybCAmIDB4NDAwMDAwMDApKSB7CiAJCW52a21fbWFzayhkZXZpY2Us IDB4NjE2Nzk4ICsgaG9mZiwgMHg0MDAwMDAwMCwgMHgwMDAwMDAwMCk7CiAJCW52a21fbWFzayhk ZXZpY2UsIDB4NjkwMGMwICsgaGRtaSwgMHgwMDAwMDAwMSwgMHgwMDAwMDAwMCk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9kaXNwL2hkbWlndDIxNS5j IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZGlzcC9oZG1pZ3QyMTUuYwpp bmRleCBmMWFmYzE2Li5lMmZiZTRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9udmttL2VuZ2luZS9kaXNwL2hkbWlndDIxNS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L252a20vZW5naW5lL2Rpc3AvaGRtaWd0MjE1LmMKQEAgLTM3LDExICszNywxNCBAQCBndDIx NV9oZG1pX2N0cmwoTlY1MF9ESVNQX01USERfVjEpCiAJdW5pb24gewogCQlzdHJ1Y3QgbnY1MF9k aXNwX3Nvcl9oZG1pX3B3cl92MCB2MDsKIAl9ICphcmdzID0gZGF0YTsKKwlzdHJ1Y3QgbnY1MF9k aXNwX3Nvcl9oZG1pX3B3cl92MF9pbmZvZnJhbWUgKmF1ZGlvX2luZm9mcmFtZSA9IE5VTEw7CisJ c3RydWN0IG52NTBfZGlzcF9zb3JfaGRtaV9wd3JfdjBfaW5mb2ZyYW1lICphdmlfaW5mb2ZyYW1l ID0gTlVMTDsKKwlzdHJ1Y3QgbnY1MF9kaXNwX3Nvcl9oZG1pX3B3cl92MF9pbmZvZnJhbWUgKnZl bmRvcl9pbmZvZnJhbWUgPSBOVUxMOwogCXUzMiBjdHJsOwogCWludCByZXQgPSAtRU5PU1lTOwog CiAJbnZpZl9pb2N0bChvYmplY3QsICJkaXNwIHNvciBoZG1pIGN0cmwgc2l6ZSAlZFxuIiwgc2l6 ZSk7Ci0JaWYgKCEocmV0ID0gbnZpZl91bnBhY2socmV0LCAmZGF0YSwgJnNpemUsIGFyZ3MtPnYw LCAwLCAwLCBmYWxzZSkpKSB7CisJaWYgKCEocmV0ID0gbnZpZl91bnBhY2socmV0LCAmZGF0YSwg JnNpemUsIGFyZ3MtPnYwLCAwLCAwLCB0cnVlKSkpIHsKIAkJbnZpZl9pb2N0bChvYmplY3QsICJk aXNwIHNvciBoZG1pIGN0cmwgdmVycyAlZCBzdGF0ZSAlZCAiCiAJCQkJICAgIm1heF9hY19wYWNr ZXQgJWQgcmVrZXkgJWRcbiIsCiAJCQkgICBhcmdzLT52MC52ZXJzaW9uLCBhcmdzLT52MC5zdGF0 ZSwKQEAgLTU1LDYgKzU4LDMzIEBAIGd0MjE1X2hkbWlfY3RybChOVjUwX0RJU1BfTVRIRF9WMSkK IAl9IGVsc2UKIAkJcmV0dXJuIHJldDsKIAorCWlmIChhcmdzLT52MC5mbGFncyAmCisJICAgIE5W NTBfRElTUF9NVEhEX1YxX1NPUl9IRE1JX1BXUl9GTEFHX0FVRElPX0lORk9GUkFNRSkgeworCQlh dWRpb19pbmZvZnJhbWUgPSBkYXRhOworCQlpZiAoKHJldCA9IG52aWZfdW5wYWNrKC1FTk9TWVMs ICZkYXRhLCAmc2l6ZSwKKwkJCQkgICAgICAgKmF1ZGlvX2luZm9mcmFtZSwgMCwgMCwgdHJ1ZSkp KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlpZiAoYXJncy0+djAuZmxhZ3MgJgorCSAgICBOVjUw X0RJU1BfTVRIRF9WMV9TT1JfSERNSV9QV1JfRkxBR19BVklfSU5GT0ZSQU1FKSB7CisJCWF2aV9p bmZvZnJhbWUgPSBkYXRhOworCQlpZiAoKHJldCA9IG52aWZfdW5wYWNrKC1FTk9TWVMsICZkYXRh LCAmc2l6ZSwKKwkJCQkgICAgICAgKmF2aV9pbmZvZnJhbWUsIDAsIDAsIHRydWUpKSkKKwkJCXJl dHVybiByZXQ7CisJfQorCisJaWYgKGFyZ3MtPnYwLmZsYWdzICYKKwkgICAgTlY1MF9ESVNQX01U SERfVjFfU09SX0hETUlfUFdSX0ZMQUdfVkVORE9SX0lORk9GUkFNRSkgeworCQl2ZW5kb3JfaW5m b2ZyYW1lID0gZGF0YTsKKwkJaWYgKChyZXQgPSBudmlmX3VucGFjaygtRU5PU1lTLCAmZGF0YSwg JnNpemUsCisJCQkJICAgICAgICp2ZW5kb3JfaW5mb2ZyYW1lLCAwLCAwLCB0cnVlKSkpCisJCQly ZXR1cm4gcmV0OworCX0KKworCWlmIChzaXplKQorCQlyZXR1cm4gLUUyQklHOworCiAJaWYgKCEo Y3RybCAmIDB4NDAwMDAwMDApKSB7CiAJCW52a21fbWFzayhkZXZpY2UsIDB4NjFjNWE0ICsgc29m ZiwgMHg0MDAwMDAwMCwgMHgwMDAwMDAwMCk7CiAJCW52a21fbWFzayhkZXZpY2UsIDB4NjFjNTIw ICsgc29mZiwgMHgwMDAwMDAwMSwgMHgwMDAwMDAwMCk7Ci0tIAoyLjEwLjIKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5vdXZlYXUgbWFpbGluZyBsaXN0 Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vbm91dmVhdQo=