From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v4 7/9] drm/i915: Convert intel_hdmi connector properties to atomic Date: Wed, 12 Apr 2017 12:50:05 +0200 Message-ID: <1491994207-25965-8-git-send-email-maarten.lankhorst@linux.intel.com> References: <1491994207-25965-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 BBA216E6CC for ; Wed, 12 Apr 2017 10:50:38 +0000 (UTC) In-Reply-To: <1491994207-25965-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 bnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDlmMGY4 MDIwMzQ3Mi4uZDFiYmE0NzkwZWFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtODcy LDEzICs4NzIsOSBAQCBzdHJ1Y3QgaW50ZWxfaGRtaSB7CiAJCWVudW0gZHJtX2RwX2R1YWxfbW9k ZV90eXBlIHR5cGU7CiAJCWludCBtYXhfdG1kc19jbG9jazsKIAl9IGRwX2R1YWxfbW9kZTsKLQli b29sIGxpbWl0ZWRfY29sb3JfcmFuZ2U7Ci0JYm9vbCBjb2xvcl9yYW5nZV9hdXRvOwogCWJvb2wg aGFzX2hkbWlfc2luazsKIAlib29sIGhhc19hdWRpbzsKLQllbnVtIGhkbWlfZm9yY2VfYXVkaW8g Zm9yY2VfYXVkaW87CiAJYm9vbCByZ2JfcXVhbnRfcmFuZ2Vfc2VsZWN0YWJsZTsKLQllbnVtIGhk bWlfcGljdHVyZV9hc3BlY3QgYXNwZWN0X3JhdGlvOwogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmF0dGFjaGVkX2Nvbm5lY3RvcjsKIAl2b2lkICgqd3JpdGVfaW5mb2ZyYW1lKShzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsCiAJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggNmVmYzNjYjhjNDcxLi4y MDM2OGRjZDQ3MWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWku 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 YXRpbyA9IGNvbm5fc3RhdGUtPnBpY3R1cmVfYXNwZWN0X3JhdGlvOwogCiAJcGlwZV9jb25maWct PmxhbmVfY291bnQgPSA0OwogCkBAIC0xNTA0LDEzICsxNTE2LDcgQEAgaW50ZWxfaGRtaV9zZXRf ZWRpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQkJZHJtX3JnYl9xdWFudF9y YW5nZV9zZWxlY3RhYmxlKGVkaWQpOwogCiAJCWludGVsX2hkbWktPmhhc19hdWRpbyA9IGRybV9k ZXRlY3RfbW9uaXRvcl9hdWRpbyhlZGlkKTsKLQkJaWYgKGludGVsX2hkbWktPmZvcmNlX2F1ZGlv ICE9IEhETUlfQVVESU9fQVVUTykKLQkJCWludGVsX2hkbWktPmhhc19hdWRpbyA9Ci0JCQkJaW50 ZWxfaGRtaS0+Zm9yY2VfYXVkaW8gPT0gSERNSV9BVURJT19PTjsKLQotCQlpZiAoaW50ZWxfaGRt aS0+Zm9yY2VfYXVkaW8gIT0gSERNSV9BVURJT19PRkZfRFZJKQotCQkJaW50ZWxfaGRtaS0+aGFz X2hkbWlfc2luayA9Ci0JCQkJZHJtX2RldGVjdF9oZG1pX21vbml0b3IoZWRpZCk7CisJCWludGVs X2hkbWktPmhhc19oZG1pX3NpbmsgPSBkcm1fZGV0ZWN0X2hkbWlfbW9uaXRvcihlZGlkKTsKIAog CQljb25uZWN0ZWQgPSB0cnVlOwogCX0KQEAgLTE1NzIsMTA4ICsxNTc4LDYgQEAgc3RhdGljIGlu dCBpbnRlbF9oZG1pX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQog CXJldHVybiBpbnRlbF9jb25uZWN0b3JfdXBkYXRlX21vZGVzKGNvbm5lY3RvciwgZWRpZCk7CiB9 CiAKLXN0YXRpYyBib29sCi1pbnRlbF9oZG1pX2RldGVjdF9hdWRpbyhzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQotewotCWJvb2wgaGFzX2F1ZGlvID0gZmFsc2U7Ci0Jc3RydWN0IGVk aWQgKmVkaWQ7Ci0KLQllZGlkID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3RvciktPmRldGVj dF9lZGlkOwotCWlmIChlZGlkICYmIGVkaWQtPmlucHV0ICYgRFJNX0VESURfSU5QVVRfRElHSVRB TCkKLQkJaGFzX2F1ZGlvID0gZHJtX2RldGVjdF9tb25pdG9yX2F1ZGlvKGVkaWQpOwotCi0JcmV0 dXJuIGhhc19hdWRpbzsKLX0KLQotc3RhdGljIGludAotaW50ZWxfaGRtaV9zZXRfcHJvcGVydHko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKLQkJCXN0cnVjdCBkcm1fcHJvcGVydHkg KnByb3BlcnR5LAotCQkJdWludDY0X3QgdmFsKQotewotCXN0cnVjdCBpbnRlbF9oZG1pICppbnRl bF9oZG1pID0gaW50ZWxfYXR0YWNoZWRfaGRtaShjb25uZWN0b3IpOwotCXN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0KLQkJaGRtaV90b19kaWdfcG9ydChpbnRlbF9o ZG1pKTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5l Y3Rvci0+ZGV2KTsKLQlpbnQgcmV0OwotCi0JcmV0ID0gZHJtX29iamVjdF9wcm9wZXJ0eV9zZXRf dmFsdWUoJmNvbm5lY3Rvci0+YmFzZSwgcHJvcGVydHksIHZhbCk7Ci0JaWYgKHJldCkKLQkJcmV0 dXJuIHJldDsKLQotCWlmIChwcm9wZXJ0eSA9PSBkZXZfcHJpdi0+Zm9yY2VfYXVkaW9fcHJvcGVy dHkpIHsKLQkJZW51bSBoZG1pX2ZvcmNlX2F1ZGlvIGkgPSB2YWw7Ci0JCWJvb2wgaGFzX2F1ZGlv OwotCi0JCWlmIChpID09IGludGVsX2hkbWktPmZvcmNlX2F1ZGlvKQotCQkJcmV0dXJuIDA7Ci0K LQkJaW50ZWxfaGRtaS0+Zm9yY2VfYXVkaW8gPSBpOwotCi0JCWlmIChpID09IEhETUlfQVVESU9f QVVUTykKLQkJCWhhc19hdWRpbyA9IGludGVsX2hkbWlfZGV0ZWN0X2F1ZGlvKGNvbm5lY3Rvcik7 Ci0JCWVsc2UKLQkJCWhhc19hdWRpbyA9IChpID09IEhETUlfQVVESU9fT04pOwotCi0JCWlmIChp ID09IEhETUlfQVVESU9fT0ZGX0RWSSkKLQkJCWludGVsX2hkbWktPmhhc19oZG1pX3NpbmsgPSAw OwotCi0JCWludGVsX2hkbWktPmhhc19hdWRpbyA9IGhhc19hdWRpbzsKLQkJZ290byBkb25lOwot CX0KLQotCWlmIChwcm9wZXJ0eSA9PSBkZXZfcHJpdi0+YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSkg ewotCQlib29sIG9sZF9hdXRvID0gaW50ZWxfaGRtaS0+Y29sb3JfcmFuZ2VfYXV0bzsKLQkJYm9v bCBvbGRfcmFuZ2UgPSBpbnRlbF9oZG1pLT5saW1pdGVkX2NvbG9yX3JhbmdlOwotCi0JCXN3aXRj aCAodmFsKSB7Ci0JCWNhc2UgSU5URUxfQlJPQURDQVNUX1JHQl9BVVRPOgotCQkJaW50ZWxfaGRt aS0+Y29sb3JfcmFuZ2VfYXV0byA9IHRydWU7Ci0JCQlicmVhazsKLQkJY2FzZSBJTlRFTF9CUk9B RENBU1RfUkdCX0ZVTEw6Ci0JCQlpbnRlbF9oZG1pLT5jb2xvcl9yYW5nZV9hdXRvID0gZmFsc2U7 Ci0JCQlpbnRlbF9oZG1pLT5saW1pdGVkX2NvbG9yX3JhbmdlID0gZmFsc2U7Ci0JCQlicmVhazsK LQkJY2FzZSBJTlRFTF9CUk9BRENBU1RfUkdCX0xJTUlURUQ6Ci0JCQlpbnRlbF9oZG1pLT5jb2xv cl9yYW5nZV9hdXRvID0gZmFsc2U7Ci0JCQlpbnRlbF9oZG1pLT5saW1pdGVkX2NvbG9yX3Jhbmdl ID0gdHJ1ZTsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0K LQotCQlpZiAob2xkX2F1dG8gPT0gaW50ZWxfaGRtaS0+Y29sb3JfcmFuZ2VfYXV0byAmJgotCQkg ICAgb2xkX3JhbmdlID09IGludGVsX2hkbWktPmxpbWl0ZWRfY29sb3JfcmFuZ2UpCi0JCQlyZXR1 cm4gMDsKLQotCQlnb3RvIGRvbmU7Ci0JfQotCi0JaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+ ZGV2LT5tb2RlX2NvbmZpZy5hc3BlY3RfcmF0aW9fcHJvcGVydHkpIHsKLQkJc3dpdGNoICh2YWwp IHsKLQkJY2FzZSBEUk1fTU9ERV9QSUNUVVJFX0FTUEVDVF9OT05FOgotCQkJaW50ZWxfaGRtaS0+ YXNwZWN0X3JhdGlvID0gSERNSV9QSUNUVVJFX0FTUEVDVF9OT05FOwotCQkJYnJlYWs7Ci0JCWNh c2UgRFJNX01PREVfUElDVFVSRV9BU1BFQ1RfNF8zOgotCQkJaW50ZWxfaGRtaS0+YXNwZWN0X3Jh dGlvID0gSERNSV9QSUNUVVJFX0FTUEVDVF80XzM7Ci0JCQlicmVhazsKLQkJY2FzZSBEUk1fTU9E RV9QSUNUVVJFX0FTUEVDVF8xNl85OgotCQkJaW50ZWxfaGRtaS0+YXNwZWN0X3JhdGlvID0gSERN SV9QSUNUVVJFX0FTUEVDVF8xNl85OwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQlyZXR1cm4g LUVJTlZBTDsKLQkJfQotCQlnb3RvIGRvbmU7Ci0JfQotCi0JcmV0dXJuIC1FSU5WQUw7Ci0KLWRv bmU6Ci0JaWYgKGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuY3J0YykKLQkJaW50ZWxfY3J0Y19y ZXN0b3JlX21vZGUoaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5jcnRjKTsKLQotCXJldHVybiAw OwotfQotCiBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcsCiAJCQkJICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKQEAgLTE3 OTgsMTggKzE3MDIsMjAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNz IGludGVsX2hkbWlfY29ubmVjdG9yX2Z1bmNzID0gewogCS5kZXRlY3QgPSBpbnRlbF9oZG1pX2Rl dGVjdCwKIAkuZm9yY2UgPSBpbnRlbF9oZG1pX2ZvcmNlLAogCS5maWxsX21vZGVzID0gZHJtX2hl bHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAotCS5zZXRfcHJvcGVydHkgPSBpbnRl bF9oZG1pX3NldF9wcm9wZXJ0eSwKLQkuYXRvbWljX2dldF9wcm9wZXJ0eSA9IGludGVsX2Nvbm5l Y3Rvcl9hdG9taWNfZ2V0X3Byb3BlcnR5LAorCS5zZXRfcHJvcGVydHkgPSBkcm1fYXRvbWljX2hl bHBlcl9jb25uZWN0b3Jfc2V0X3Byb3BlcnR5LAorCS5hdG9taWNfZ2V0X3Byb3BlcnR5ID0gaW50 ZWxfZGlnaXRhbF9jb25uZWN0b3JfYXRvbWljX2dldF9wcm9wZXJ0eSwKKwkuYXRvbWljX3NldF9w cm9wZXJ0eSA9IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX2F0b21pY19zZXRfcHJvcGVydHksCiAJ LmxhdGVfcmVnaXN0ZXIgPSBpbnRlbF9jb25uZWN0b3JfcmVnaXN0ZXIsCiAJLmVhcmx5X3VucmVn aXN0ZXIgPSBpbnRlbF9jb25uZWN0b3JfdW5yZWdpc3RlciwKIAkuZGVzdHJveSA9IGludGVsX2hk bWlfZGVzdHJveSwKIAkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9j b25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKLQkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9h dG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUsCisJLmF0b21pY19kdXBsaWNh dGVfc3RhdGUgPSBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUsCiB9Owog CiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIGludGVsX2hk bWlfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyA9IHsKIAkuZ2V0X21vZGVzID0gaW50ZWxfaGRtaV9n ZXRfbW9kZXMsCiAJLm1vZGVfdmFsaWQgPSBpbnRlbF9oZG1pX21vZGVfdmFsaWQsCisJLmF0b21p Y19jaGVjayA9IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX2F0b21pY19jaGVjaywKIH07CiAKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVuY3MgaW50ZWxfaGRtaV9lbmNfZnVuY3Mg PSB7CkBAIC0xODIxLDkgKzE3MjcsNyBAQCBpbnRlbF9oZG1pX2FkZF9wcm9wZXJ0aWVzKHN0cnVj dCBpbnRlbF9oZG1pICppbnRlbF9oZG1pLCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqYwogewogCWlu dGVsX2F0dGFjaF9mb3JjZV9hdWRpb19wcm9wZXJ0eShjb25uZWN0b3IpOwogCWludGVsX2F0dGFj aF9icm9hZGNhc3RfcmdiX3Byb3BlcnR5KGNvbm5lY3Rvcik7Ci0JaW50ZWxfaGRtaS0+Y29sb3Jf cmFuZ2VfYXV0byA9IHRydWU7CiAJaW50ZWxfYXR0YWNoX2FzcGVjdF9yYXRpb19wcm9wZXJ0eShj b25uZWN0b3IpOwotCWludGVsX2hkbWktPmFzcGVjdF9yYXRpbyA9IEhETUlfUElDVFVSRV9BU1BF Q1RfTk9ORTsKIH0KIAogLyoKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK