From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v6 10/12] drm/i915: Convert intel_hdmi connector properties to atomic Date: Mon, 1 May 2017 15:38:02 +0200 Message-ID: <20170501133804.8116-11-maarten.lankhorst@linux.intel.com> References: <20170501133804.8116-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170501133804.8116-1-maarten.lankhorst@linux.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: dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org aW50ZWxfaGRtaSBzdXBwb3J0cyAzIHByb3BlcnRpZXMsIGZvcmNlX2F1ZGlvLCBicm9hZGNhc3Qg cmdiIGFuZApzY2FsaW5nIG1vZGUuIFRoZSBsYXN0IG9uZSBpcyBvbmx5IGNyZWF0ZWQgZm9yIGVE UCwgc28gdGhlIGlzX2VEUAppbiBzZXRfcHJvcGVydHkgaXMgbm90IHJlcXVpcmVkLgoKcGFuZWwg Zml0dGluZyBhbmQgYnJvYWRjYXN0IHJnYiBhcmUgc3RyYWlnaHRmb3J3YXJkIGFuZCBvbmx5IHJl cXVpcmVzCmNoYW5naW5nIGNvbXB1dGVfY29uZmlnLgoKZm9yY2VfYXVkaW8gaXMgYWxzbyB1c2Vk IHRvIGZvcmNlIERWSSBtb2RlLCB3aGljaCBtZWFucyBjaGFuZ2VzIHRvCmNvbXB1dGVfY29uZmln IGFuZCBtb2RlX3ZhbGlkLiBtb2RlX3ZhbGlkIGlzIGNhbGxlZCB3aXRoCmNvbm5lY3Rpb25fbXV0 ZXggaGVsZCwgc28gaXQgY2FuIHNhZmVseSBkZXJlZmVyZW5jZSBjb25uZWN0b3ItPnN0YXRlLgoK U2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4 LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3 bGwuY2g+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggIHwgICAzIC0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyB8IDE0OSArKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAx MTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCBhYWNmYTg0OTQ0 OTEuLjk1MDczNjRkNDc3MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTg3OSwxMSAr ODc5LDggQEAgc3RydWN0IGludGVsX2hkbWkgewogCQllbnVtIGRybV9kcF9kdWFsX21vZGVfdHlw ZSB0eXBlOwogCQlpbnQgbWF4X3RtZHNfY2xvY2s7CiAJfSBkcF9kdWFsX21vZGU7Ci0JYm9vbCBs aW1pdGVkX2NvbG9yX3JhbmdlOwotCWJvb2wgY29sb3JfcmFuZ2VfYXV0bzsKIAlib29sIGhhc19o ZG1pX3Npbms7CiAJYm9vbCBoYXNfYXVkaW87Ci0JZW51bSBoZG1pX2ZvcmNlX2F1ZGlvIGZvcmNl X2F1ZGlvOwogCWJvb2wgcmdiX3F1YW50X3JhbmdlX3NlbGVjdGFibGU7CiAJc3RydWN0IGludGVs X2Nvbm5lY3RvciAqYXR0YWNoZWRfY29ubmVjdG9yOwogCXZvaWQgKCp3cml0ZV9pbmZvZnJhbWUp KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwpp bmRleCA1OGQ2OTAzOTNiMjkuLjQxMjY3ZmZiMzYyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaGRtaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk bWkuYwpAQCAtMTIxOCw3ICsxMjE4LDggQEAgc3RhdGljIGludCBpbnRlbF9oZG1pX3NvdXJjZV9t YXhfdG1kc19jbG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB9CiAKIHN0 YXRpYyBpbnQgaGRtaV9wb3J0X2Nsb2NrX2xpbWl0KHN0cnVjdCBpbnRlbF9oZG1pICpoZG1pLAot CQkJCSBib29sIHJlc3BlY3RfZG93bnN0cmVhbV9saW1pdHMpCisJCQkJIGJvb2wgcmVzcGVjdF9k b3duc3RyZWFtX2xpbWl0cywKKwkJCQkgYm9vbCBmb3JjZV9kdmkpCiB7CiAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGludGVsX2hkbWlfdG9fZGV2KGhkbWkpOwogCWludCBtYXhfdG1kc19jbG9j ayA9IGludGVsX2hkbWlfc291cmNlX21heF90bWRzX2Nsb2NrKHRvX2k5MTUoZGV2KSk7CkBAIC0x MjM0LDcgKzEyMzUsNyBAQCBzdGF0aWMgaW50IGhkbWlfcG9ydF9jbG9ja19saW1pdChzdHJ1Y3Qg aW50ZWxfaGRtaSAqaGRtaSwKIAkJaWYgKGluZm8tPm1heF90bWRzX2Nsb2NrKQogCQkJbWF4X3Rt ZHNfY2xvY2sgPSBtaW4obWF4X3RtZHNfY2xvY2ssCiAJCQkJCSAgICAgaW5mby0+bWF4X3RtZHNf Y2xvY2spOwotCQllbHNlIGlmICghaGRtaS0+aGFzX2hkbWlfc2luaykKKwkJZWxzZSBpZiAoIWhk bWktPmhhc19oZG1pX3NpbmsgfHwgZm9yY2VfZHZpKQogCQkJbWF4X3RtZHNfY2xvY2sgPSBtaW4o bWF4X3RtZHNfY2xvY2ssIDE2NTAwMCk7CiAJfQogCkBAIC0xMjQzLDEzICsxMjQ0LDE0IEBAIHN0 YXRpYyBpbnQgaGRtaV9wb3J0X2Nsb2NrX2xpbWl0KHN0cnVjdCBpbnRlbF9oZG1pICpoZG1pLAog CiBzdGF0aWMgZW51bSBkcm1fbW9kZV9zdGF0dXMKIGhkbWlfcG9ydF9jbG9ja192YWxpZChzdHJ1 Y3QgaW50ZWxfaGRtaSAqaGRtaSwKLQkJICAgICAgaW50IGNsb2NrLCBib29sIHJlc3BlY3RfZG93 bnN0cmVhbV9saW1pdHMpCisJCSAgICAgIGludCBjbG9jaywgYm9vbCByZXNwZWN0X2Rvd25zdHJl YW1fbGltaXRzLAorCQkgICAgICBib29sIGZvcmNlX2R2aSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2hkbWlfdG9fZGV2KGhkbWkpKTsKIAog CWlmIChjbG9jayA8IDI1MDAwKQogCQlyZXR1cm4gTU9ERV9DTE9DS19MT1c7Ci0JaWYgKGNsb2Nr ID4gaGRtaV9wb3J0X2Nsb2NrX2xpbWl0KGhkbWksIHJlc3BlY3RfZG93bnN0cmVhbV9saW1pdHMp KQorCWlmIChjbG9jayA+IGhkbWlfcG9ydF9jbG9ja19saW1pdChoZG1pLCByZXNwZWN0X2Rvd25z dHJlYW1fbGltaXRzLCBmb3JjZV9kdmkpKQogCQlyZXR1cm4gTU9ERV9DTE9DS19ISUdIOwogCiAJ LyogQlhUIERQTEwgY2FuJ3QgZ2VuZXJhdGUgMjIzLTI0MCBNSHogKi8KQEAgLTEyNzMsNiArMTI3 NSw4IEBAIGludGVsX2hkbWlfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAogCWVudW0gZHJtX21vZGVfc3RhdHVzIHN0YXR1czsKIAlpbnQgY2xvY2s7CiAJaW50IG1h eF9kb3RjbGsgPSB0b19pOTE1KGNvbm5lY3Rvci0+ZGV2KS0+bWF4X2RvdGNsa19mcmVxOworCWJv b2wgZm9yY2VfZHZpID0KKwkJUkVBRF9PTkNFKHRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0 YXRlKGNvbm5lY3Rvci0+c3RhdGUpLT5mb3JjZV9hdWRpbykgPT0gSERNSV9BVURJT19PRkZfRFZJ OwogCiAJaWYgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxTQ0FOKQogCQlyZXR1cm4g TU9ERV9OT19EQkxFU0NBTjsKQEAgLTEyODksMTEgKzEyOTMsMTEgQEAgaW50ZWxfaGRtaV9tb2Rl X3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCWNsb2NrICo9IDI7CiAK IAkvKiBjaGVjayBpZiB3ZSBjYW4gZG8gOGJwYyAqLwotCXN0YXR1cyA9IGhkbWlfcG9ydF9jbG9j a192YWxpZChoZG1pLCBjbG9jaywgdHJ1ZSk7CisJc3RhdHVzID0gaGRtaV9wb3J0X2Nsb2NrX3Zh bGlkKGhkbWksIGNsb2NrLCB0cnVlLCBmb3JjZV9kdmkpOwogCiAJLyogaWYgd2UgY2FuJ3QgZG8g OGJwYyB3ZSBtYXkgc3RpbGwgYmUgYWJsZSB0byBkbyAxMmJwYyAqLwotCWlmICghSEFTX0dNQ0hf RElTUExBWShkZXZfcHJpdikgJiYgc3RhdHVzICE9IE1PREVfT0spCi0JCXN0YXR1cyA9IGhkbWlf cG9ydF9jbG9ja192YWxpZChoZG1pLCBjbG9jayAqIDMgLyAyLCB0cnVlKTsKKwlpZiAoIUhBU19H TUNIX0RJU1BMQVkoZGV2X3ByaXYpICYmIHN0YXR1cyAhPSBNT0RFX09LICYmIGhkbWktPmhhc19o ZG1pX3NpbmsgJiYgIWZvcmNlX2R2aSkKKwkJc3RhdHVzID0gaGRtaV9wb3J0X2Nsb2NrX3ZhbGlk KGhkbWksIGNsb2NrICogMyAvIDIsIHRydWUsIGZvcmNlX2R2aSk7CiAKIAlyZXR1cm4gc3RhdHVz OwogfQpAQCAtMTM0MywxNiArMTM0NywxOSBAQCBib29sIGludGVsX2hkbWlfY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRf bW9kZTsKIAlzdHJ1Y3QgZHJtX3NjZGMgKnNjZGMgPSAmY29ubl9zdGF0ZS0+Y29ubmVjdG9yLT5k aXNwbGF5X2luZm8uaGRtaS5zY2RjOworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9z dGF0ZSAqaW50ZWxfY29ubl9zdGF0ZSA9CisJCXRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0 YXRlKGNvbm5fc3RhdGUpOwogCWludCBjbG9ja184YnBjID0gcGlwZV9jb25maWctPmJhc2UuYWRq dXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwogCWludCBjbG9ja18xMmJwYyA9IGNsb2NrXzhicGMgKiAz IC8gMjsKIAlpbnQgZGVzaXJlZF9icHA7CisJYm9vbCBmb3JjZV9kdmkgPSBpbnRlbF9jb25uX3N0 YXRlLT5mb3JjZV9hdWRpbyA9PSBIRE1JX0FVRElPX09GRl9EVkk7CiAKLQlwaXBlX2NvbmZpZy0+ aGFzX2hkbWlfc2luayA9IGludGVsX2hkbWktPmhhc19oZG1pX3Npbms7CisJcGlwZV9jb25maWct Pmhhc19oZG1pX3NpbmsgPSAhZm9yY2VfZHZpICYmIGludGVsX2hkbWktPmhhc19oZG1pX3Npbms7 CiAKIAlpZiAocGlwZV9jb25maWctPmhhc19oZG1pX3NpbmspCiAJCXBpcGVfY29uZmlnLT5oYXNf aW5mb2ZyYW1lID0gdHJ1ZTsKIAotCWlmIChpbnRlbF9oZG1pLT5jb2xvcl9yYW5nZV9hdXRvKSB7 CisJaWYgKGludGVsX2Nvbm5fc3RhdGUtPmJyb2FkY2FzdF9yZ2IgPT0gSU5URUxfQlJPQURDQVNU X1JHQl9BVVRPKSB7CiAJCS8qIFNlZSBDRUEtODYxLUUgLSA1LjEgRGVmYXVsdCBFbmNvZGluZyBQ YXJhbWV0ZXJzICovCiAJCXBpcGVfY29uZmlnLT5saW1pdGVkX2NvbG9yX3JhbmdlID0KIAkJCXBp cGVfY29uZmlnLT5oYXNfaGRtaV9zaW5rICYmCkBAIC0xMzYwLDcgKzEzNjcsNyBAQCBib29sIGlu dGVsX2hkbWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJ CQlIRE1JX1FVQU5USVpBVElPTl9SQU5HRV9MSU1JVEVEOwogCX0gZWxzZSB7CiAJCXBpcGVfY29u ZmlnLT5saW1pdGVkX2NvbG9yX3JhbmdlID0KLQkJCWludGVsX2hkbWktPmxpbWl0ZWRfY29sb3Jf cmFuZ2U7CisJCQlpbnRlbF9jb25uX3N0YXRlLT5icm9hZGNhc3RfcmdiID09IElOVEVMX0JST0FE Q0FTVF9SR0JfTElNSVRFRDsKIAl9CiAKIAlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1f TU9ERV9GTEFHX0RCTENMSykgewpAQCAtMTM3Miw4ICsxMzc5LDEzIEBAIGJvb2wgaW50ZWxfaGRt aV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlpZiAoSEFT X1BDSF9TUExJVChkZXZfcHJpdikgJiYgIUhBU19EREkoZGV2X3ByaXYpKQogCQlwaXBlX2NvbmZp Zy0+aGFzX3BjaF9lbmNvZGVyID0gdHJ1ZTsKIAotCWlmIChwaXBlX2NvbmZpZy0+aGFzX2hkbWlf c2luayAmJiBpbnRlbF9oZG1pLT5oYXNfYXVkaW8pCi0JCXBpcGVfY29uZmlnLT5oYXNfYXVkaW8g PSB0cnVlOworCWlmIChwaXBlX2NvbmZpZy0+aGFzX2hkbWlfc2luaykgeworCQlpZiAoaW50ZWxf Y29ubl9zdGF0ZS0+Zm9yY2VfYXVkaW8gPT0gSERNSV9BVURJT19BVVRPKQorCQkJcGlwZV9jb25m aWctPmhhc19hdWRpbyA9IGludGVsX2hkbWktPmhhc19hdWRpbzsKKwkJZWxzZQorCQkJcGlwZV9j b25maWctPmhhc19hdWRpbyA9CisJCQkJaW50ZWxfY29ubl9zdGF0ZS0+Zm9yY2VfYXVkaW8gPT0g SERNSV9BVURJT19PTjsKKwl9CiAKIAkvKgogCSAqIEhETUkgaXMgZWl0aGVyIDEyIG9yIDgsIHNv IGlmIHRoZSBkaXNwbGF5IGxldHMgMTBicGMgc25lYWsKQEAgLTEzODEsOCArMTM5Myw4IEBAIGJv b2wgaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAkgKiBvdXRwdXRzLiBXZSBhbHNvIG5lZWQgdG8gY2hlY2sgdGhhdCB0aGUgaGlnaGVyIGNs b2NrIHN0aWxsIGZpdHMKIAkgKiB3aXRoaW4gbGltaXRzLgogCSAqLwotCWlmIChwaXBlX2NvbmZp Zy0+cGlwZV9icHAgPiA4KjMgJiYgcGlwZV9jb25maWctPmhhc19oZG1pX3NpbmsgJiYKLQkgICAg aGRtaV9wb3J0X2Nsb2NrX3ZhbGlkKGludGVsX2hkbWksIGNsb2NrXzEyYnBjLCB0cnVlKSA9PSBN T0RFX09LICYmCisJaWYgKHBpcGVfY29uZmlnLT5waXBlX2JwcCA+IDgqMyAmJiBwaXBlX2NvbmZp Zy0+aGFzX2hkbWlfc2luayAmJiAhZm9yY2VfZHZpICYmCisJICAgIGhkbWlfcG9ydF9jbG9ja192 YWxpZChpbnRlbF9oZG1pLCBjbG9ja18xMmJwYywgdHJ1ZSwgZm9yY2VfZHZpKSA9PSBNT0RFX09L ICYmCiAJICAgIGhkbWlfMTJicGNfcG9zc2libGUocGlwZV9jb25maWcpKSB7CiAJCURSTV9ERUJV R19LTVMoInBpY2tpbmcgYnBjIHRvIDEyIGZvciBIRE1JIG91dHB1dFxuIik7CiAJCWRlc2lyZWRf YnBwID0gMTIqMzsKQEAgLTE0MDIsNyArMTQxNCw3IEBAIGJvb2wgaW50ZWxfaGRtaV9jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAl9CiAKIAlpZiAoaGRtaV9w b3J0X2Nsb2NrX3ZhbGlkKGludGVsX2hkbWksIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAotCQkJ CSAgZmFsc2UpICE9IE1PREVfT0spIHsKKwkJCQkgIGZhbHNlLCBmb3JjZV9kdmkpICE9IE1PREVf T0spIHsKIAkJRFJNX0RFQlVHX0tNUygidW5zdXBwb3J0ZWQgSERNSSBjbG9jaywgcmVqZWN0aW5n IG1vZGVcbiIpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQpAQCAtMTUwOSwxMyArMTUyMSw3IEBAIGlu dGVsX2hkbWlfc2V0X2VkaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkJCWRy bV9yZ2JfcXVhbnRfcmFuZ2Vfc2VsZWN0YWJsZShlZGlkKTsKIAogCQlpbnRlbF9oZG1pLT5oYXNf YXVkaW8gPSBkcm1fZGV0ZWN0X21vbml0b3JfYXVkaW8oZWRpZCk7Ci0JCWlmIChpbnRlbF9oZG1p LT5mb3JjZV9hdWRpbyAhPSBIRE1JX0FVRElPX0FVVE8pCi0JCQlpbnRlbF9oZG1pLT5oYXNfYXVk aW8gPQotCQkJCWludGVsX2hkbWktPmZvcmNlX2F1ZGlvID09IEhETUlfQVVESU9fT047Ci0KLQkJ aWYgKGludGVsX2hkbWktPmZvcmNlX2F1ZGlvICE9IEhETUlfQVVESU9fT0ZGX0RWSSkKLQkJCWlu dGVsX2hkbWktPmhhc19oZG1pX3NpbmsgPQotCQkJCWRybV9kZXRlY3RfaGRtaV9tb25pdG9yKGVk aWQpOworCQlpbnRlbF9oZG1pLT5oYXNfaGRtaV9zaW5rID0gZHJtX2RldGVjdF9oZG1pX21vbml0 b3IoZWRpZCk7CiAKIAkJY29ubmVjdGVkID0gdHJ1ZTsKIAl9CkBAIC0xNTc3LDk2ICsxNTgzLDYg QEAgc3RhdGljIGludCBpbnRlbF9oZG1pX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQogCXJldHVybiBpbnRlbF9jb25uZWN0b3JfdXBkYXRlX21vZGVzKGNvbm5lY3Rv ciwgZWRpZCk7CiB9CiAKLXN0YXRpYyBib29sCi1pbnRlbF9oZG1pX2RldGVjdF9hdWRpbyhzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQotewotCWJvb2wgaGFzX2F1ZGlvID0gZmFsc2U7 Ci0Jc3RydWN0IGVkaWQgKmVkaWQ7Ci0KLQllZGlkID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5l Y3RvciktPmRldGVjdF9lZGlkOwotCWlmIChlZGlkICYmIGVkaWQtPmlucHV0ICYgRFJNX0VESURf SU5QVVRfRElHSVRBTCkKLQkJaGFzX2F1ZGlvID0gZHJtX2RldGVjdF9tb25pdG9yX2F1ZGlvKGVk aWQpOwotCi0JcmV0dXJuIGhhc19hdWRpbzsKLX0KLQotc3RhdGljIGludAotaW50ZWxfaGRtaV9z ZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKLQkJCXN0cnVjdCBk cm1fcHJvcGVydHkgKnByb3BlcnR5LAotCQkJdWludDY0X3QgdmFsKQotewotCXN0cnVjdCBpbnRl bF9oZG1pICppbnRlbF9oZG1pID0gaW50ZWxfYXR0YWNoZWRfaGRtaShjb25uZWN0b3IpOwotCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0KLQkJaGRtaV90b19kaWdf cG9ydChpbnRlbF9oZG1pKTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNvbm5lY3Rvci0+ZGV2KTsKLQlpbnQgcmV0OwotCi0JcmV0ID0gZHJtX29iamVjdF9w cm9wZXJ0eV9zZXRfdmFsdWUoJmNvbm5lY3Rvci0+YmFzZSwgcHJvcGVydHksIHZhbCk7Ci0JaWYg KHJldCkKLQkJcmV0dXJuIHJldDsKLQotCWlmIChwcm9wZXJ0eSA9PSBkZXZfcHJpdi0+Zm9yY2Vf YXVkaW9fcHJvcGVydHkpIHsKLQkJZW51bSBoZG1pX2ZvcmNlX2F1ZGlvIGkgPSB2YWw7Ci0JCWJv b2wgaGFzX2F1ZGlvOwotCi0JCWlmIChpID09IGludGVsX2hkbWktPmZvcmNlX2F1ZGlvKQotCQkJ cmV0dXJuIDA7Ci0KLQkJaW50ZWxfaGRtaS0+Zm9yY2VfYXVkaW8gPSBpOwotCi0JCWlmIChpID09 IEhETUlfQVVESU9fQVVUTykKLQkJCWhhc19hdWRpbyA9IGludGVsX2hkbWlfZGV0ZWN0X2F1ZGlv KGNvbm5lY3Rvcik7Ci0JCWVsc2UKLQkJCWhhc19hdWRpbyA9IChpID09IEhETUlfQVVESU9fT04p OwotCi0JCWlmIChpID09IEhETUlfQVVESU9fT0ZGX0RWSSkKLQkJCWludGVsX2hkbWktPmhhc19o ZG1pX3NpbmsgPSAwOwotCi0JCWludGVsX2hkbWktPmhhc19hdWRpbyA9IGhhc19hdWRpbzsKLQkJ Z290byBkb25lOwotCX0KLQotCWlmIChwcm9wZXJ0eSA9PSBkZXZfcHJpdi0+YnJvYWRjYXN0X3Jn Yl9wcm9wZXJ0eSkgewotCQlib29sIG9sZF9hdXRvID0gaW50ZWxfaGRtaS0+Y29sb3JfcmFuZ2Vf YXV0bzsKLQkJYm9vbCBvbGRfcmFuZ2UgPSBpbnRlbF9oZG1pLT5saW1pdGVkX2NvbG9yX3Jhbmdl OwotCi0JCXN3aXRjaCAodmFsKSB7Ci0JCWNhc2UgSU5URUxfQlJPQURDQVNUX1JHQl9BVVRPOgot CQkJaW50ZWxfaGRtaS0+Y29sb3JfcmFuZ2VfYXV0byA9IHRydWU7Ci0JCQlicmVhazsKLQkJY2Fz ZSBJTlRFTF9CUk9BRENBU1RfUkdCX0ZVTEw6Ci0JCQlpbnRlbF9oZG1pLT5jb2xvcl9yYW5nZV9h dXRvID0gZmFsc2U7Ci0JCQlpbnRlbF9oZG1pLT5saW1pdGVkX2NvbG9yX3JhbmdlID0gZmFsc2U7 Ci0JCQlicmVhazsKLQkJY2FzZSBJTlRFTF9CUk9BRENBU1RfUkdCX0xJTUlURUQ6Ci0JCQlpbnRl bF9oZG1pLT5jb2xvcl9yYW5nZV9hdXRvID0gZmFsc2U7Ci0JCQlpbnRlbF9oZG1pLT5saW1pdGVk X2NvbG9yX3JhbmdlID0gdHJ1ZTsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJcmV0dXJuIC1F SU5WQUw7Ci0JCX0KLQotCQlpZiAob2xkX2F1dG8gPT0gaW50ZWxfaGRtaS0+Y29sb3JfcmFuZ2Vf YXV0byAmJgotCQkgICAgb2xkX3JhbmdlID09IGludGVsX2hkbWktPmxpbWl0ZWRfY29sb3JfcmFu Z2UpCi0JCQlyZXR1cm4gMDsKLQotCQlnb3RvIGRvbmU7Ci0JfQotCi0JaWYgKHByb3BlcnR5ID09 IGNvbm5lY3Rvci0+ZGV2LT5tb2RlX2NvbmZpZy5hc3BlY3RfcmF0aW9fcHJvcGVydHkpIHsKLQkJ Y29ubmVjdG9yLT5zdGF0ZS0+cGljdHVyZV9hc3BlY3RfcmF0aW8gPSB2YWw7Ci0JCWdvdG8gZG9u ZTsKLQl9Ci0KLQlyZXR1cm4gLUVJTlZBTDsKLQotZG9uZToKLQlpZiAoaW50ZWxfZGlnX3BvcnQt PmJhc2UuYmFzZS5jcnRjKQotCQlpbnRlbF9jcnRjX3Jlc3RvcmVfbW9kZShpbnRlbF9kaWdfcG9y dC0+YmFzZS5iYXNlLmNydGMpOwotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyB2b2lkIGludGVs X2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCQkgIHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQpAQCAtMTc5MSwxOCArMTcwNywyMCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgaW50ZWxfaGRtaV9jb25uZWN0b3JfZnVu Y3MgPSB7CiAJLmRldGVjdCA9IGludGVsX2hkbWlfZGV0ZWN0LAogCS5mb3JjZSA9IGludGVsX2hk bWlfZm9yY2UsCiAJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0 b3JfbW9kZXMsCi0JLnNldF9wcm9wZXJ0eSA9IGludGVsX2hkbWlfc2V0X3Byb3BlcnR5LAotCS5h dG9taWNfZ2V0X3Byb3BlcnR5ID0gaW50ZWxfY29ubmVjdG9yX2F0b21pY19nZXRfcHJvcGVydHks CisJLnNldF9wcm9wZXJ0eSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9zZXRfcHJvcGVy dHksCisJLmF0b21pY19nZXRfcHJvcGVydHkgPSBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9hdG9t aWNfZ2V0X3Byb3BlcnR5LAorCS5hdG9taWNfc2V0X3Byb3BlcnR5ID0gaW50ZWxfZGlnaXRhbF9j b25uZWN0b3JfYXRvbWljX3NldF9wcm9wZXJ0eSwKIAkubGF0ZV9yZWdpc3RlciA9IGludGVsX2Nv bm5lY3Rvcl9yZWdpc3RlciwKIAkuZWFybHlfdW5yZWdpc3RlciA9IGludGVsX2Nvbm5lY3Rvcl91 bnJlZ2lzdGVyLAogCS5kZXN0cm95ID0gaW50ZWxfaGRtaV9kZXN0cm95LAogCS5hdG9taWNfZGVz dHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAot CS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1 cGxpY2F0ZV9zdGF0ZSwKKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGludGVsX2RpZ2l0YWxf Y29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgaW50ZWxfaGRtaV9jb25uZWN0b3JfaGVscGVyX2Z1bmNz ID0gewogCS5nZXRfbW9kZXMgPSBpbnRlbF9oZG1pX2dldF9tb2RlcywKIAkubW9kZV92YWxpZCA9 IGludGVsX2hkbWlfbW9kZV92YWxpZCwKKwkuYXRvbWljX2NoZWNrID0gaW50ZWxfZGlnaXRhbF9j b25uZWN0b3JfYXRvbWljX2NoZWNrLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5j b2Rlcl9mdW5jcyBpbnRlbF9oZG1pX2VuY19mdW5jcyA9IHsKQEAgLTE4MTQsNyArMTczMiw2IEBA IGludGVsX2hkbWlfYWRkX3Byb3BlcnRpZXMoc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWks IHN0cnVjdCBkcm1fY29ubmVjdG9yICpjCiB7CiAJaW50ZWxfYXR0YWNoX2ZvcmNlX2F1ZGlvX3By b3BlcnR5KGNvbm5lY3Rvcik7CiAJaW50ZWxfYXR0YWNoX2Jyb2FkY2FzdF9yZ2JfcHJvcGVydHko Y29ubmVjdG9yKTsKLQlpbnRlbF9oZG1pLT5jb2xvcl9yYW5nZV9hdXRvID0gdHJ1ZTsKIAlpbnRl bF9hdHRhY2hfYXNwZWN0X3JhdGlvX3Byb3BlcnR5KGNvbm5lY3Rvcik7CiAJY29ubmVjdG9yLT5z dGF0ZS0+cGljdHVyZV9hc3BlY3RfcmF0aW8gPSBIRE1JX1BJQ1RVUkVfQVNQRUNUX05PTkU7CiB9 Ci0tIAoyLjkuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==