From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3 11/13] drm/i915: Convert intel_hdmi connector properties to atomic Date: Mon, 10 Apr 2017 11:07:17 +0200 Message-ID: <1491815239-10685-12-git-send-email-maarten.lankhorst@linux.intel.com> References: <1491815239-10685-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id AD47E6E2A4 for ; Mon, 10 Apr 2017 09:07:25 +0000 (UTC) In-Reply-To: <1491815239-10685-1-git-send-email-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 List-Id: intel-gfx@lists.freedesktop.org aW50ZWxfaGRtaSBzdXBwb3J0cyAzIHByb3BlcnRpZXMsIGZvcmNlX2F1ZGlvLCBicm9hZGNhc3Qg cmdiIGFuZApzY2FsaW5nIG1vZGUuIFRoZSBsYXN0IG9uZSBpcyBvbmx5IGNyZWF0ZWQgZm9yIGVE UCwgc28gdGhlIGlzX2VEUAppbiBzZXRfcHJvcGVydHkgaXMgbm90IHJlcXVpcmVkLgoKcGFuZWwg Zml0dGluZyBhbmQgYnJvYWRjYXN0IHJnYiBhcmUgc3RyYWlnaHRmb3J3YXJkIGFuZCBvbmx5IHJl cXVpcmVzCmNoYW5naW5nIGNvbXB1dGVfY29uZmlnLgoKZm9yY2VfYXVkaW8gaXMgYWxzbyB1c2Vk IHRvIGZvcmNlIERWSSBtb2RlLCB3aGljaCBtZWFucyBjaGFuZ2VzIHRvCmNvbXB1dGVfY29uZmln IGFuZCBtb2RlX3ZhbGlkLiBtb2RlX3ZhbGlkIGlzIGNhbGxlZCB3aXRoCmNvbm5lY3Rpb25fbXV0 ZXggaGVsZCwgc28gaXQgY2FuIHNhZmVseSBkZXJlZmVyZW5jZSBjb25uZWN0b3ItPnN0YXRlLgoK U2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4 LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgfCAgIDQg LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIHwgMTY0ICsrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMo KyksIDEzNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IGFmZGEw M2UwYmIwMi4uM2QwODNmYjU0ZWM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtODc3 LDEzICs4NzcsOSBAQCBzdHJ1Y3QgaW50ZWxfaGRtaSB7CiAJCWVudW0gZHJtX2RwX2R1YWxfbW9k ZV90eXBlIHR5cGU7CiAJCWludCBtYXhfdG1kc19jbG9jazsKIAl9IGRwX2R1YWxfbW9kZTsKLQli b29sIGxpbWl0ZWRfY29sb3JfcmFuZ2U7Ci0JYm9vbCBjb2xvcl9yYW5nZV9hdXRvOwogCWJvb2wg aGFzX2hkbWlfc2luazsKIAlib29sIGhhc19hdWRpbzsKLQllbnVtIGhkbWlfZm9yY2VfYXVkaW8g Zm9yY2VfYXVkaW87CiAJYm9vbCByZ2JfcXVhbnRfcmFuZ2Vfc2VsZWN0YWJsZTsKLQllbnVtIGhk bWlfcGljdHVyZV9hc3BlY3QgYXNwZWN0X3JhdGlvOwogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmF0dGFjaGVkX2Nvbm5lY3RvcjsKIAl2b2lkICgqd3JpdGVfaW5mb2ZyYW1lKShzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsCiAJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggNmVmYzNjYjhjNDcxLi40 MTljOGFhNTJiMGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKQEAgLTEyMTgsNyArMTIx OCw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfaGRtaV9zb3VyY2VfbWF4X3RtZHNfY2xvY2soc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogfQogCiBzdGF0aWMgaW50IGhkbWlfcG9ydF9j bG9ja19saW1pdChzdHJ1Y3QgaW50ZWxfaGRtaSAqaGRtaSwKLQkJCQkgYm9vbCByZXNwZWN0X2Rv d25zdHJlYW1fbGltaXRzKQorCQkJCSBib29sIHJlc3BlY3RfZG93bnN0cmVhbV9saW1pdHMsCisJ CQkJIGJvb2wgZm9yY2VfZHZpKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9o ZG1pX3RvX2RldihoZG1pKTsKIAlpbnQgbWF4X3RtZHNfY2xvY2sgPSBpbnRlbF9oZG1pX3NvdXJj ZV9tYXhfdG1kc19jbG9jayh0b19pOTE1KGRldikpOwpAQCAtMTIzNCw3ICsxMjM1LDcgQEAgc3Rh dGljIGludCBoZG1pX3BvcnRfY2xvY2tfbGltaXQoc3RydWN0IGludGVsX2hkbWkgKmhkbWksCiAJ CWlmIChpbmZvLT5tYXhfdG1kc19jbG9jaykKIAkJCW1heF90bWRzX2Nsb2NrID0gbWluKG1heF90 bWRzX2Nsb2NrLAogCQkJCQkgICAgIGluZm8tPm1heF90bWRzX2Nsb2NrKTsKLQkJZWxzZSBpZiAo IWhkbWktPmhhc19oZG1pX3NpbmspCisJCWVsc2UgaWYgKCFoZG1pLT5oYXNfaGRtaV9zaW5rIHx8 IGZvcmNlX2R2aSkKIAkJCW1heF90bWRzX2Nsb2NrID0gbWluKG1heF90bWRzX2Nsb2NrLCAxNjUw MDApOwogCX0KIApAQCAtMTI0MywxMyArMTI0NCwxNCBAQCBzdGF0aWMgaW50IGhkbWlfcG9ydF9j bG9ja19saW1pdChzdHJ1Y3QgaW50ZWxfaGRtaSAqaGRtaSwKIAogc3RhdGljIGVudW0gZHJtX21v ZGVfc3RhdHVzCiBoZG1pX3BvcnRfY2xvY2tfdmFsaWQoc3RydWN0IGludGVsX2hkbWkgKmhkbWks Ci0JCSAgICAgIGludCBjbG9jaywgYm9vbCByZXNwZWN0X2Rvd25zdHJlYW1fbGltaXRzKQorCQkg ICAgICBpbnQgY2xvY2ssIGJvb2wgcmVzcGVjdF9kb3duc3RyZWFtX2xpbWl0cywKKwkJICAgICAg Ym9vbCBmb3JjZV9kdmkpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShpbnRlbF9oZG1pX3RvX2RldihoZG1pKSk7CiAKIAlpZiAoY2xvY2sgPCAyNTAwMCkK IAkJcmV0dXJuIE1PREVfQ0xPQ0tfTE9XOwotCWlmIChjbG9jayA+IGhkbWlfcG9ydF9jbG9ja19s aW1pdChoZG1pLCByZXNwZWN0X2Rvd25zdHJlYW1fbGltaXRzKSkKKwlpZiAoY2xvY2sgPiBoZG1p X3BvcnRfY2xvY2tfbGltaXQoaGRtaSwgcmVzcGVjdF9kb3duc3RyZWFtX2xpbWl0cywgZm9yY2Vf ZHZpKSkKIAkJcmV0dXJuIE1PREVfQ0xPQ0tfSElHSDsKIAogCS8qIEJYVCBEUExMIGNhbid0IGdl bmVyYXRlIDIyMy0yNDAgTUh6ICovCkBAIC0xMjczLDYgKzEyNzUsOCBAQCBpbnRlbF9oZG1pX21v ZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAllbnVtIGRybV9tb2Rl X3N0YXR1cyBzdGF0dXM7CiAJaW50IGNsb2NrOwogCWludCBtYXhfZG90Y2xrID0gdG9faTkxNShj b25uZWN0b3ItPmRldiktPm1heF9kb3RjbGtfZnJlcTsKKwlib29sIGZvcmNlX2R2aSA9CisJCVJF QURfT05DRSh0b19pbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZShjb25uZWN0b3ItPnN0YXRl KS0+Zm9yY2VfYXVkaW8pID09IEhETUlfQVVESU9fT0ZGX0RWSTsKIAogCWlmIChtb2RlLT5mbGFn cyAmIERSTV9NT0RFX0ZMQUdfREJMU0NBTikKIAkJcmV0dXJuIE1PREVfTk9fREJMRVNDQU47CkBA IC0xMjg5LDExICsxMjkzLDExIEBAIGludGVsX2hkbWlfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAogCQljbG9jayAqPSAyOwogCiAJLyogY2hlY2sgaWYgd2UgY2Fu IGRvIDhicGMgKi8KLQlzdGF0dXMgPSBoZG1pX3BvcnRfY2xvY2tfdmFsaWQoaGRtaSwgY2xvY2ss IHRydWUpOworCXN0YXR1cyA9IGhkbWlfcG9ydF9jbG9ja192YWxpZChoZG1pLCBjbG9jaywgdHJ1 ZSwgZm9yY2VfZHZpKTsKIAogCS8qIGlmIHdlIGNhbid0IGRvIDhicGMgd2UgbWF5IHN0aWxsIGJl IGFibGUgdG8gZG8gMTJicGMgKi8KLQlpZiAoIUhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpICYm IHN0YXR1cyAhPSBNT0RFX09LKQotCQlzdGF0dXMgPSBoZG1pX3BvcnRfY2xvY2tfdmFsaWQoaGRt aSwgY2xvY2sgKiAzIC8gMiwgdHJ1ZSk7CisJaWYgKCFIQVNfR01DSF9ESVNQTEFZKGRldl9wcml2 KSAmJiBzdGF0dXMgIT0gTU9ERV9PSyAmJiBoZG1pLT5oYXNfaGRtaV9zaW5rICYmICFmb3JjZV9k dmkpCisJCXN0YXR1cyA9IGhkbWlfcG9ydF9jbG9ja192YWxpZChoZG1pLCBjbG9jayAqIDMgLyAy LCB0cnVlLCBmb3JjZV9kdmkpOwogCiAJcmV0dXJuIHN0YXR1czsKIH0KQEAgLTEzMzgsMTYgKzEz NDIsMTkgQEAgYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CiAJc3RydWN0IGRybV9z Y2RjICpzY2RjID0gJmNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhkbWkuc2Nk YzsKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgKmludGVsX2Nvbm5fc3Rh dGUgPQorCQl0b19pbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKIAlp bnQgY2xvY2tfOGJwYyA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9j azsKIAlpbnQgY2xvY2tfMTJicGMgPSBjbG9ja184YnBjICogMyAvIDI7CiAJaW50IGRlc2lyZWRf YnBwOworCWJvb2wgZm9yY2VfZHZpID0gaW50ZWxfY29ubl9zdGF0ZS0+Zm9yY2VfYXVkaW8gPT0g SERNSV9BVURJT19PRkZfRFZJOwogCi0JcGlwZV9jb25maWctPmhhc19oZG1pX3NpbmsgPSBpbnRl bF9oZG1pLT5oYXNfaGRtaV9zaW5rOworCXBpcGVfY29uZmlnLT5oYXNfaGRtaV9zaW5rID0gIWZv cmNlX2R2aSAmJiBpbnRlbF9oZG1pLT5oYXNfaGRtaV9zaW5rOwogCiAJaWYgKHBpcGVfY29uZmln LT5oYXNfaGRtaV9zaW5rKQogCQlwaXBlX2NvbmZpZy0+aGFzX2luZm9mcmFtZSA9IHRydWU7CiAK LQlpZiAoaW50ZWxfaGRtaS0+Y29sb3JfcmFuZ2VfYXV0bykgeworCWlmIChpbnRlbF9jb25uX3N0 YXRlLT5icm9hZGNhc3RfcmdiID09IElOVEVMX0JST0FEQ0FTVF9SR0JfQVVUTykgewogCQkvKiBT ZWUgQ0VBLTg2MS1FIC0gNS4xIERlZmF1bHQgRW5jb2RpbmcgUGFyYW1ldGVycyAqLwogCQlwaXBl X2NvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSA9CiAJCQlwaXBlX2NvbmZpZy0+aGFzX2hkbWlf c2luayAmJgpAQCAtMTM1NSw3ICsxMzYyLDcgQEAgYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJSERNSV9RVUFOVElaQVRJT05f UkFOR0VfTElNSVRFRDsKIAl9IGVsc2UgewogCQlwaXBlX2NvbmZpZy0+bGltaXRlZF9jb2xvcl9y YW5nZSA9Ci0JCQlpbnRlbF9oZG1pLT5saW1pdGVkX2NvbG9yX3JhbmdlOworCQkJaW50ZWxfY29u bl9zdGF0ZS0+YnJvYWRjYXN0X3JnYiA9PSBJTlRFTF9CUk9BRENBU1RfUkdCX0xJTUlURUQ7CiAJ fQogCiAJaWYgKGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxDTEspIHsK QEAgLTEzNjcsOCArMTM3NCwxMyBAQCBib29sIGludGVsX2hkbWlfY29tcHV0ZV9jb25maWcoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYp ICYmICFIQVNfRERJKGRldl9wcml2KSkKIAkJcGlwZV9jb25maWctPmhhc19wY2hfZW5jb2RlciA9 IHRydWU7CiAKLQlpZiAocGlwZV9jb25maWctPmhhc19oZG1pX3NpbmsgJiYgaW50ZWxfaGRtaS0+ aGFzX2F1ZGlvKQotCQlwaXBlX2NvbmZpZy0+aGFzX2F1ZGlvID0gdHJ1ZTsKKwlpZiAocGlwZV9j b25maWctPmhhc19oZG1pX3NpbmspIHsKKwkJaWYgKGludGVsX2Nvbm5fc3RhdGUtPmZvcmNlX2F1 ZGlvID09IEhETUlfQVVESU9fQVVUTykKKwkJCXBpcGVfY29uZmlnLT5oYXNfYXVkaW8gPSBpbnRl bF9oZG1pLT5oYXNfYXVkaW87CisJCWVsc2UKKwkJCXBpcGVfY29uZmlnLT5oYXNfYXVkaW8gPQor CQkJCWludGVsX2Nvbm5fc3RhdGUtPmZvcmNlX2F1ZGlvID09IEhETUlfQVVESU9fT047CisJfQog CiAJLyoKIAkgKiBIRE1JIGlzIGVpdGhlciAxMiBvciA4LCBzbyBpZiB0aGUgZGlzcGxheSBsZXRz IDEwYnBjIHNuZWFrCkBAIC0xMzc2LDggKzEzODgsOCBAQCBib29sIGludGVsX2hkbWlfY29tcHV0 ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJICogb3V0cHV0cy4gV2Ug YWxzbyBuZWVkIHRvIGNoZWNrIHRoYXQgdGhlIGhpZ2hlciBjbG9jayBzdGlsbCBmaXRzCiAJICog d2l0aGluIGxpbWl0cy4KIAkgKi8KLQlpZiAocGlwZV9jb25maWctPnBpcGVfYnBwID4gOCozICYm IHBpcGVfY29uZmlnLT5oYXNfaGRtaV9zaW5rICYmCi0JICAgIGhkbWlfcG9ydF9jbG9ja192YWxp ZChpbnRlbF9oZG1pLCBjbG9ja18xMmJwYywgdHJ1ZSkgPT0gTU9ERV9PSyAmJgorCWlmIChwaXBl X2NvbmZpZy0+cGlwZV9icHAgPiA4KjMgJiYgcGlwZV9jb25maWctPmhhc19oZG1pX3NpbmsgJiYg IWZvcmNlX2R2aSAmJgorCSAgICBoZG1pX3BvcnRfY2xvY2tfdmFsaWQoaW50ZWxfaGRtaSwgY2xv Y2tfMTJicGMsIHRydWUsIGZvcmNlX2R2aSkgPT0gTU9ERV9PSyAmJgogCSAgICBoZG1pXzEyYnBj X3Bvc3NpYmxlKHBpcGVfY29uZmlnKSkgewogCQlEUk1fREVCVUdfS01TKCJwaWNraW5nIGJwYyB0 byAxMiBmb3IgSERNSSBvdXRwdXRcbiIpOwogCQlkZXNpcmVkX2JwcCA9IDEyKjM7CkBAIC0xMzk3 LDEzICsxNDA5LDEzIEBAIGJvb2wgaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAl9CiAKIAlpZiAoaGRtaV9wb3J0X2Nsb2NrX3ZhbGlkKGlu dGVsX2hkbWksIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAotCQkJCSAgZmFsc2UpICE9IE1PREVf T0spIHsKKwkJCQkgIGZhbHNlLCBmb3JjZV9kdmkpICE9IE1PREVfT0spIHsKIAkJRFJNX0RFQlVH X0tNUygidW5zdXBwb3J0ZWQgSERNSSBjbG9jaywgcmVqZWN0aW5nIG1vZGVcbiIpOwogCQlyZXR1 cm4gZmFsc2U7CiAJfQogCiAJLyogU2V0IHVzZXIgc2VsZWN0ZWQgUEFSIHRvIGluY29taW5nIG1v ZGUncyBtZW1iZXIgKi8KLQlhZGp1c3RlZF9tb2RlLT5waWN0dXJlX2FzcGVjdF9yYXRpbyA9IGlu dGVsX2hkbWktPmFzcGVjdF9yYXRpbzsKKwlhZGp1c3RlZF9tb2RlLT5waWN0dXJlX2FzcGVjdF9y YXRpbyA9IGludGVsX2Nvbm5fc3RhdGUtPmFzcGVjdF9yYXRpbzsKIAogCXBpcGVfY29uZmlnLT5s YW5lX2NvdW50ID0gNDsKIApAQCAtMTUwNCwxMyArMTUxNiw3IEBAIGludGVsX2hkbWlfc2V0X2Vk aWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkJCWRybV9yZ2JfcXVhbnRfcmFu Z2Vfc2VsZWN0YWJsZShlZGlkKTsKIAogCQlpbnRlbF9oZG1pLT5oYXNfYXVkaW8gPSBkcm1fZGV0 ZWN0X21vbml0b3JfYXVkaW8oZWRpZCk7Ci0JCWlmIChpbnRlbF9oZG1pLT5mb3JjZV9hdWRpbyAh PSBIRE1JX0FVRElPX0FVVE8pCi0JCQlpbnRlbF9oZG1pLT5oYXNfYXVkaW8gPQotCQkJCWludGVs X2hkbWktPmZvcmNlX2F1ZGlvID09IEhETUlfQVVESU9fT047Ci0KLQkJaWYgKGludGVsX2hkbWkt PmZvcmNlX2F1ZGlvICE9IEhETUlfQVVESU9fT0ZGX0RWSSkKLQkJCWludGVsX2hkbWktPmhhc19o ZG1pX3NpbmsgPQotCQkJCWRybV9kZXRlY3RfaGRtaV9tb25pdG9yKGVkaWQpOworCQlpbnRlbF9o ZG1pLT5oYXNfaGRtaV9zaW5rID0gZHJtX2RldGVjdF9oZG1pX21vbml0b3IoZWRpZCk7CiAKIAkJ Y29ubmVjdGVkID0gdHJ1ZTsKIAl9CkBAIC0xNTcyLDEwOCArMTU3OCw2IEBAIHN0YXRpYyBpbnQg aW50ZWxfaGRtaV9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAly ZXR1cm4gaW50ZWxfY29ubmVjdG9yX3VwZGF0ZV9tb2Rlcyhjb25uZWN0b3IsIGVkaWQpOwogfQog Ci1zdGF0aWMgYm9vbAotaW50ZWxfaGRtaV9kZXRlY3RfYXVkaW8oc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcikKLXsKLQlib29sIGhhc19hdWRpbyA9IGZhbHNlOwotCXN0cnVjdCBlZGlk ICplZGlkOwotCi0JZWRpZCA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpLT5kZXRlY3Rf ZWRpZDsKLQlpZiAoZWRpZCAmJiBlZGlkLT5pbnB1dCAmIERSTV9FRElEX0lOUFVUX0RJR0lUQUwp Ci0JCWhhc19hdWRpbyA9IGRybV9kZXRlY3RfbW9uaXRvcl9hdWRpbyhlZGlkKTsKLQotCXJldHVy biBoYXNfYXVkaW87Ci19Ci0KLXN0YXRpYyBpbnQKLWludGVsX2hkbWlfc2V0X3Byb3BlcnR5KHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCi0JCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpw cm9wZXJ0eSwKLQkJCXVpbnQ2NF90IHZhbCkKLXsKLQlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxf aGRtaSA9IGludGVsX2F0dGFjaGVkX2hkbWkoY29ubmVjdG9yKTsKLQlzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9Ci0JCWhkbWlfdG9fZGlnX3BvcnQoaW50ZWxfaGRt aSk7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0 b3ItPmRldik7Ci0JaW50IHJldDsKLQotCXJldCA9IGRybV9vYmplY3RfcHJvcGVydHlfc2V0X3Zh bHVlKCZjb25uZWN0b3ItPmJhc2UsIHByb3BlcnR5LCB2YWwpOwotCWlmIChyZXQpCi0JCXJldHVy biByZXQ7Ci0KLQlpZiAocHJvcGVydHkgPT0gZGV2X3ByaXYtPmZvcmNlX2F1ZGlvX3Byb3BlcnR5 KSB7Ci0JCWVudW0gaGRtaV9mb3JjZV9hdWRpbyBpID0gdmFsOwotCQlib29sIGhhc19hdWRpbzsK LQotCQlpZiAoaSA9PSBpbnRlbF9oZG1pLT5mb3JjZV9hdWRpbykKLQkJCXJldHVybiAwOwotCi0J CWludGVsX2hkbWktPmZvcmNlX2F1ZGlvID0gaTsKLQotCQlpZiAoaSA9PSBIRE1JX0FVRElPX0FV VE8pCi0JCQloYXNfYXVkaW8gPSBpbnRlbF9oZG1pX2RldGVjdF9hdWRpbyhjb25uZWN0b3IpOwot CQllbHNlCi0JCQloYXNfYXVkaW8gPSAoaSA9PSBIRE1JX0FVRElPX09OKTsKLQotCQlpZiAoaSA9 PSBIRE1JX0FVRElPX09GRl9EVkkpCi0JCQlpbnRlbF9oZG1pLT5oYXNfaGRtaV9zaW5rID0gMDsK LQotCQlpbnRlbF9oZG1pLT5oYXNfYXVkaW8gPSBoYXNfYXVkaW87Ci0JCWdvdG8gZG9uZTsKLQl9 Ci0KLQlpZiAocHJvcGVydHkgPT0gZGV2X3ByaXYtPmJyb2FkY2FzdF9yZ2JfcHJvcGVydHkpIHsK LQkJYm9vbCBvbGRfYXV0byA9IGludGVsX2hkbWktPmNvbG9yX3JhbmdlX2F1dG87Ci0JCWJvb2wg b2xkX3JhbmdlID0gaW50ZWxfaGRtaS0+bGltaXRlZF9jb2xvcl9yYW5nZTsKLQotCQlzd2l0Y2gg KHZhbCkgewotCQljYXNlIElOVEVMX0JST0FEQ0FTVF9SR0JfQVVUTzoKLQkJCWludGVsX2hkbWkt PmNvbG9yX3JhbmdlX2F1dG8gPSB0cnVlOwotCQkJYnJlYWs7Ci0JCWNhc2UgSU5URUxfQlJPQURD QVNUX1JHQl9GVUxMOgotCQkJaW50ZWxfaGRtaS0+Y29sb3JfcmFuZ2VfYXV0byA9IGZhbHNlOwot CQkJaW50ZWxfaGRtaS0+bGltaXRlZF9jb2xvcl9yYW5nZSA9IGZhbHNlOwotCQkJYnJlYWs7Ci0J CWNhc2UgSU5URUxfQlJPQURDQVNUX1JHQl9MSU1JVEVEOgotCQkJaW50ZWxfaGRtaS0+Y29sb3Jf cmFuZ2VfYXV0byA9IGZhbHNlOwotCQkJaW50ZWxfaGRtaS0+bGltaXRlZF9jb2xvcl9yYW5nZSA9 IHRydWU7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0K LQkJaWYgKG9sZF9hdXRvID09IGludGVsX2hkbWktPmNvbG9yX3JhbmdlX2F1dG8gJiYKLQkJICAg IG9sZF9yYW5nZSA9PSBpbnRlbF9oZG1pLT5saW1pdGVkX2NvbG9yX3JhbmdlKQotCQkJcmV0dXJu IDA7Ci0KLQkJZ290byBkb25lOwotCX0KLQotCWlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPmRl di0+bW9kZV9jb25maWcuYXNwZWN0X3JhdGlvX3Byb3BlcnR5KSB7Ci0JCXN3aXRjaCAodmFsKSB7 Ci0JCWNhc2UgRFJNX01PREVfUElDVFVSRV9BU1BFQ1RfTk9ORToKLQkJCWludGVsX2hkbWktPmFz cGVjdF9yYXRpbyA9IEhETUlfUElDVFVSRV9BU1BFQ1RfTk9ORTsKLQkJCWJyZWFrOwotCQljYXNl IERSTV9NT0RFX1BJQ1RVUkVfQVNQRUNUXzRfMzoKLQkJCWludGVsX2hkbWktPmFzcGVjdF9yYXRp byA9IEhETUlfUElDVFVSRV9BU1BFQ1RfNF8zOwotCQkJYnJlYWs7Ci0JCWNhc2UgRFJNX01PREVf UElDVFVSRV9BU1BFQ1RfMTZfOToKLQkJCWludGVsX2hkbWktPmFzcGVjdF9yYXRpbyA9IEhETUlf UElDVFVSRV9BU1BFQ1RfMTZfOTsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJcmV0dXJuIC1F SU5WQUw7Ci0JCX0KLQkJZ290byBkb25lOwotCX0KLQotCXJldHVybiAtRUlOVkFMOwotCi1kb25l OgotCWlmIChpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmNydGMpCi0JCWludGVsX2NydGNfcmVz dG9yZV9tb2RlKGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuY3J0Yyk7Ci0KLQlyZXR1cm4gMDsK LX0KLQogc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln LAogCQkJCSAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCkBAIC0xNzk4 LDE4ICsxNzAyLDIwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBp bnRlbF9oZG1pX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKIAkuZGV0ZWN0ID0gaW50ZWxfaGRtaV9kZXRl Y3QsCiAJLmZvcmNlID0gaW50ZWxfaGRtaV9mb3JjZSwKIAkuZmlsbF9tb2RlcyA9IGRybV9oZWxw ZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKLQkuc2V0X3Byb3BlcnR5ID0gaW50ZWxf aGRtaV9zZXRfcHJvcGVydHksCi0JLmF0b21pY19nZXRfcHJvcGVydHkgPSBpbnRlbF9jb25uZWN0 b3JfYXRvbWljX2dldF9wcm9wZXJ0eSwKKwkuc2V0X3Byb3BlcnR5ID0gZHJtX2F0b21pY19oZWxw ZXJfY29ubmVjdG9yX3NldF9wcm9wZXJ0eSwKKwkuYXRvbWljX2dldF9wcm9wZXJ0eSA9IGludGVs X2RpZ2l0YWxfY29ubmVjdG9yX2F0b21pY19nZXRfcHJvcGVydHksCisJLmF0b21pY19zZXRfcHJv cGVydHkgPSBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9hdG9taWNfc2V0X3Byb3BlcnR5LAogCS5s YXRlX3JlZ2lzdGVyID0gaW50ZWxfY29ubmVjdG9yX3JlZ2lzdGVyLAogCS5lYXJseV91bnJlZ2lz dGVyID0gaW50ZWxfY29ubmVjdG9yX3VucmVnaXN0ZXIsCiAJLmRlc3Ryb3kgPSBpbnRlbF9oZG1p X2Rlc3Ryb3ksCiAJLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29u bmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCi0JLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRv bWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlLAorCS5hdG9taWNfZHVwbGljYXRl X3N0YXRlID0gaW50ZWxfZGlnaXRhbF9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlLAogfTsKIAog c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBpbnRlbF9oZG1p X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7CiAJLmdldF9tb2RlcyA9IGludGVsX2hkbWlfZ2V0 X21vZGVzLAogCS5tb2RlX3ZhbGlkID0gaW50ZWxfaGRtaV9tb2RlX3ZhbGlkLAorCS5hdG9taWNf Y2hlY2sgPSBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2ssCiB9OwogCiBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGludGVsX2hkbWlfZW5jX2Z1bmNzID0g ewpAQCAtMTgyMSw5ICsxNzI3LDcgQEAgaW50ZWxfaGRtaV9hZGRfcHJvcGVydGllcyhzdHJ1Y3Qg aW50ZWxfaGRtaSAqaW50ZWxfaGRtaSwgc3RydWN0IGRybV9jb25uZWN0b3IgKmMKIHsKIAlpbnRl bF9hdHRhY2hfZm9yY2VfYXVkaW9fcHJvcGVydHkoY29ubmVjdG9yKTsKIAlpbnRlbF9hdHRhY2hf YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eShjb25uZWN0b3IpOwotCWludGVsX2hkbWktPmNvbG9yX3Jh bmdlX2F1dG8gPSB0cnVlOwogCWludGVsX2F0dGFjaF9hc3BlY3RfcmF0aW9fcHJvcGVydHkoY29u bmVjdG9yKTsKLQlpbnRlbF9oZG1pLT5hc3BlY3RfcmF0aW8gPSBIRE1JX1BJQ1RVUkVfQVNQRUNU X05PTkU7CiB9CiAKIC8qCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==