From mboxrd@z Thu Jan 1 00:00:00 1970 From: Todd Previte Subject: [PATCH 05/12] drm: Add supporting structure for Displayport Link CTS test 4.2.2.6 Date: Wed, 15 Apr 2015 15:03:41 -0700 Message-ID: <1429135421-18192-1-git-send-email-tprevite@gmail.com> References: <1429112327-7695-6-git-send-email-tprevite@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1429112327-7695-6-git-send-email-tprevite@gmail.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 RGlzcGxheXBvcnQgY29tcGxpYW5jZSB0ZXN0IDQuMi4yLjYgcmVxdWlyZXMgdGhhdCBhIHNvdXJj ZSBkZXZpY2UgYmUgY2FwYWJsZSBvZgpkZXRlY3RpbmcgYSBjb3JydXB0IEVESUQuIFRoZSB0ZXN0 IHNwZWNpZmljYXRpb24gc3RhdGVzIHRoYXQgdGhlIHNpbmsgZGV2aWNlCnNldHMgdXAgdGhlIEVE SUQgd2l0aCBhbiBpbnZhbGlkIGNoZWNrc3VtLiBUbyBkbyB0aGlzLCB0aGUgc2luayBzZXRzIHVw IGFuCmludmFsaWQgRURJRCBoZWFkZXIsIGV4cGVjdGluZyB0aGUgc291cmNlIGRldmljZSB0byBn ZW5lcmF0ZSB0aGUgY2hlY2tzdW0gYW5kCmNvbXBhcmUgaXQgdG8gdGhlIHZhbHVlIHN0b3JlZCBp biB0aGUgbGFzdCBieXRlIG9mIHRoZSBibG9jayBkYXRhLgoKVW5mb3J0dW5hdGVseSwgdGhlIERS TSBFRElEIHJlYWRpbmcgYW5kIHBhcnNpbmcgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSB0b28gZ29v ZAppbiB0aGlzIGNhc2U7IHRoZSBoZWFkZXIgaXMgZml4ZWQgYmVmb3JlIHRoZSBjaGVja3N1bSBp cyBjb21wdXRlZCBhbmQgdGh1cyB0aGUKY29kZSBuZXZlciBzZWVzIHRoZSBpbnZhbGlkIGNoZWNr c3VtLiBUaGlzIHJlc3VsdHMgaW4gYSBmYWlsdXJlIHRvIHBhc3MgdGhlCmNvbXBsaWFuY2UgdGVz dC4KClRvIGNvcnJlY3QgdGhpcyBpc3N1ZSwgYSBjaGVja3N1bSBpcyBnZW5lcmF0ZWQgd2hlbiB0 aGUgRURJRCBoZWFkZXIgaXMgZGV0ZWN0ZWQKYXMgY29ycnVwdGVkLiBJZiB0aGUgY2hlY2tzdW0g aXMgaW52YWxpZCwgaXQgc2V0cyB0aGUgaGVhZGVyX2NvcnJ1cHQgZmxhZyBhbmQKbG9ncyB0aGUg ZXJyb3JzLiBJbiB0aGUgY2FzZSBvZiBhIG1vcmUgc2VyaW91c2x5IGRhbWFnZWQgaGVhZGVyIChm aXh1cCBzY29yZQpsZXNzIHRoYW4gdGhlIHRocmVzaG9sZCkgdGhlIGNvZGUgZG9lcyBub3QgZ2Vu ZXJhdGUgdGhlIGNoZWNrc3VtIGJ1dCBkb2VzIHNldAp0aGUgaGVhZGVyX2NvcnJ1cHQgZmxhZy4K ClYyOgotIFJlbW92ZWQgdGhlIHN0YXRpYyBib29sIGdsb2JhbAotIEFkZGVkIGEgYm9vbCB0byB0 aGUgZHJtX2Nvbm5lY3RvciBzdHJ1Y3QgdG8gcmVhcGxjZSB0aGUgc3RhdGljIG9uZSBmb3IKICBo b2xkaW5nIHRoZSBzdGF0dXMgb2YgcmF3IGVkaWQgaGVhZGVyIGNvcnJ1cHRpb24gZGV0ZWN0aW9u Ci0gTW9kaWZpZWQgdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZSBvZiB0aGUgaXNfdmFsaWQgZnVuY3Rp b24gdG8gdGFrZSBhbgogIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHRvIHN0b3JlIHRoZSBjb3JydXB0 aW9uIGRldGVjdGVkIHZhbHVlCi0gRml4ZWQgdGhlIG90aGVyIGNhbGxlcnMgb2YgdGhlIGFib3Zl IGlzX3ZhbGlkIGZ1bmN0aW9uClYzOgotIFVwZGF0ZWQgdGhlIGNvbW1pdCBtZXNzYWdlIHRvIGJl IG1vcmUgY2xlYXIgYWJvdXQgd2hhdCBhbmQgd2h5IHRoaXMKICBwYXRjaCBkb2VzIHdoYXQgaXQg ZG9lcy4KLSBBZGRlZCBjb21tZW50IGluIGNvZGUgdG8gY2xhcmlmeSB0aGUgb3BlcmF0aW9ucyB0 aGVyZQotIFJlbW92ZWQgY29tcGxpYW5jZSB2YXJpYWJsZSBhbmQgY2hlY2tfbGlua19zdGF0dXMg dXBkYXRlOyB0aG9zZQogIGhhdmUgYmVlbiBtb3ZlZCB0byBhIGxhdGVyIHBhdGNoCi0gUmVtb3Zl ZCB2YXJpYWJsZSBhc3NpZ25tZW50IGZyb20gdGhlIGJvdHRvbSBvZiB0aGUgdGVzdCBoYW5kbGVy ClY0OgotIFJlbW92ZWQgaTkxNSB0YWcgZnJvbSBzdWJqZWN0IGxpbmUgYXMgdGhlIHBhdGNoIGlz IG5vdCBpOTE1LXNwZWNpZmljClY1OgotIE1vdmVkIGNvZGUgY2F1c2luZyBhIGNvbXBpbGF0aW9u IGVycm9yIHRvIHRoaXMgcGF0Y2ggd2hlcmUgdGhlIHZhcmlhYmxlCiAgaXMgYWN0dWFsbHkgZGVj bGFyZWQKLSBNYWludGFpbmVkIGJsYW5rIGxpbmVzIC8gc3BhY2luZyBzbyBhcyB0byBub3QgY29u dGFtaW5hdGUgdGhlIHBhdGNoClY2OgotIFJlbW92ZWQgZXh0cmEgZGVidWcgbWVzc2FnZXMKLSBB ZGRlZCBkb2N1bWVudGF0aW9uIHRvIGZvciB0aGUgYWRkZWQgcGFyYW1ldGVyIG9uIGRybV9lZGlk X2Jsb2NrX3ZhbGlkCi0gRml4ZWQgbW9yZSB3aGl0ZXNwYWNlIGlzc3VlcyBpbiBjaGVja19saW5r X3N0YXR1cwotIEFkZGVkIGEgY2xlYXIgb2YgdGhlIGhlYWRlcl9jb3JydXB0IGZsYWcgdG8gdGhl IGVuZCBvZiB0aGUgdGVzdCBoYW5kbGVyCiAgaW4gaW50ZWxfZHAuYwotIENoYW5nZWQgdGhlIHVz YWdlIG9mIHRoZSBuZXcgZnVuY3Rpb24gcHJvdG90eXBlIGluIHNldmVyYWwgcGxhY2VzIHRvIHVz ZQogIE5VTEwgd2hlcmUgaXQgaXMgbm90IG5lZWRlZCBieSBjb21wbGlhbmNlIHRlc3RpbmcKVjc6 Ci0gVXBkYXRlZCB0byBhY2NvdW50IGZvciBsb25nX3B1bHNlIGZsYWcgcHJvcGFnYXRpb24KVjg6 Ci0gUmVtb3ZlZCBjbGVhcmluZyBvZiBoZWFkZXJfY29ycnVwdCBmbGFnIGZyb20gdGhlIHRlc3Qg aGFuZGxlciBpbiBpbnRlbF9kcC5jCi0gQWRkZWQgY2xlYXJpbmcgb2YgaGVhZGVyX2NvcnJ1cHQg ZmxhZyBpbiB0aGUgZHJtX2VkaWRfYmxvY2tfdmFsaWQgZnVuY3Rpb24KClNpZ25lZC1vZmYtYnk6 IFRvZGQgUHJldml0ZSA8dHByZXZpdGVAZ21haWwuY29tPgpDYzogZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jICAgICAgfCAzNSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9l ZGlkX2xvYWQuYyB8ICA3ICsrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMg fCAgMiArLQogaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAgICAgICAgICB8ICA4ICsrKysrKystCiA0 IGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9l ZGlkLmMKaW5kZXggNTNiYzdhNi4uNmQwMzdmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9lZGlkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKQEAgLTEwNDEsMTMg KzEwNDEsMTUgQEAgc3RhdGljIGJvb2wgZHJtX2VkaWRfaXNfemVybyhjb25zdCB1OCAqaW5fZWRp ZCwgaW50IGxlbmd0aCkKICAqIEByYXdfZWRpZDogcG9pbnRlciB0byByYXcgRURJRCBibG9jawog ICogQGJsb2NrOiB0eXBlIG9mIGJsb2NrIHRvIHZhbGlkYXRlICgwIGZvciBiYXNlLCBleHRlbnNp b24gb3RoZXJ3aXNlKQogICogQHByaW50X2JhZF9lZGlkOiBpZiB0cnVlLCBkdW1wIGJhZCBFRElE IGJsb2NrcyB0byB0aGUgY29uc29sZQorICogQGhlYWRlcl9jb3JydXB0OiBpZiB0cnVlLCB0aGUg aGVhZGVyIG9yIGNoZWNrc3VtIGlzIGludmFsaWQKICAqCiAgKiBWYWxpZGF0ZSBhIGJhc2Ugb3Ig ZXh0ZW5zaW9uIEVESUQgYmxvY2sgYW5kIG9wdGlvbmFsbHkgZHVtcCBiYWQgYmxvY2tzIHRvCiAg KiB0aGUgY29uc29sZS4KICAqCiAgKiBSZXR1cm46IFRydWUgaWYgdGhlIGJsb2NrIGlzIHZhbGlk LCBmYWxzZSBvdGhlcndpc2UuCiAgKi8KLWJvb2wgZHJtX2VkaWRfYmxvY2tfdmFsaWQodTggKnJh d19lZGlkLCBpbnQgYmxvY2ssIGJvb2wgcHJpbnRfYmFkX2VkaWQpCitib29sIGRybV9lZGlkX2Js b2NrX3ZhbGlkKHU4ICpyYXdfZWRpZCwgaW50IGJsb2NrLCBib29sIHByaW50X2JhZF9lZGlkLAor CQkJICBib29sICpoZWFkZXJfY29ycnVwdCkKIHsKIAl1OCBjc3VtOwogCXN0cnVjdCBlZGlkICpl ZGlkID0gKHN0cnVjdCBlZGlkICopcmF3X2VkaWQ7CkBAIC0xMDYwLDExICsxMDYyLDI4IEBAIGJv b2wgZHJtX2VkaWRfYmxvY2tfdmFsaWQodTggKnJhd19lZGlkLCBpbnQgYmxvY2ssIGJvb2wgcHJp bnRfYmFkX2VkaWQpCiAKIAlpZiAoYmxvY2sgPT0gMCkgewogCQlpbnQgc2NvcmUgPSBkcm1fZWRp ZF9oZWFkZXJfaXNfdmFsaWQocmF3X2VkaWQpOwotCQlpZiAoc2NvcmUgPT0gOCkgOwotCQllbHNl IGlmIChzY29yZSA+PSBlZGlkX2ZpeHVwKSB7CisJCWlmIChzY29yZSA9PSA4KSB7CisJCQlpZiAo aGVhZGVyX2NvcnJ1cHQpCisJCQkJKmhlYWRlcl9jb3JydXB0ID0gMDsKKwkJfSBlbHNlIGlmIChz Y29yZSA+PSBlZGlkX2ZpeHVwKSB7CisJCQkvKiBEaXNwbGF5cG9ydCBMaW5rIENUUyBDb3JlIDEu MiByZXYxLjEgdGVzdCA0LjIuMi42CisJCQkgKiBJbiBvcmRlciB0byBwcm9wZXJseSBnZW5lcmF0 ZSB0aGUgaW52YWxpZCBjaGVja3N1bQorCQkJICogcmVxdWlyZWQgZm9yIHRoaXMgdGVzdCwgaXQg bXVzdCBiZSBnZW5lcmF0ZWQgdXNpbmcKKwkJCSAqIHRoZSByYXcgRURJRCBkYXRhLiBPdGhlcndp c2UsIHRoZSBmaXgtdXAgY29kZSBoZXJlCisJCQkgKiB3aWxsIGNvcnJlY3QgdGhlIHByb2JsZW0s IHRoZSBjaGVja3N1bSBpcyBjb3JyZWN0CisJCQkgKiBhbmQgdGhlIHRlc3QgZmFpbHMKKwkJCSAq LworCQkJY3N1bSA9IGRybV9lZGlkX2Jsb2NrX2NoZWNrc3VtKHJhd19lZGlkKTsKKwkJCWlmIChj c3VtKSB7CisJCQkJaWYgKGhlYWRlcl9jb3JydXB0KQorCQkJCQkqaGVhZGVyX2NvcnJ1cHQgPSAx OworCQkJfQogCQkJRFJNX0RFQlVHKCJGaXhpbmcgRURJRCBoZWFkZXIsIHlvdXIgaGFyZHdhcmUg bWF5IGJlIGZhaWxpbmdcbiIpOwogCQkJbWVtY3B5KHJhd19lZGlkLCBlZGlkX2hlYWRlciwgc2l6 ZW9mKGVkaWRfaGVhZGVyKSk7CiAJCX0gZWxzZSB7CisJCQlpZiAoaGVhZGVyX2NvcnJ1cHQpIHsK KwkJCQkqaGVhZGVyX2NvcnJ1cHQgPSAxOworCQkJfQogCQkJZ290byBiYWQ7CiAJCX0KIAl9CkBA IC0xMTI5LDcgKzExNDgsNyBAQCBib29sIGRybV9lZGlkX2lzX3ZhbGlkKHN0cnVjdCBlZGlkICpl ZGlkKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlmb3IgKGkgPSAwOyBpIDw9IGVkaWQtPmV4dGVuc2lv bnM7IGkrKykKLQkJaWYgKCFkcm1fZWRpZF9ibG9ja192YWxpZChyYXcgKyBpICogRURJRF9MRU5H VEgsIGksIHRydWUpKQorCQlpZiAoIWRybV9lZGlkX2Jsb2NrX3ZhbGlkKHJhdyArIGkgKiBFRElE X0xFTkdUSCwgaSwgdHJ1ZSwgTlVMTCkpCiAJCQlyZXR1cm4gZmFsc2U7CiAKIAlyZXR1cm4gdHJ1 ZTsKQEAgLTEyMzIsNyArMTI1MSw4IEBAIHN0cnVjdCBlZGlkICpkcm1fZG9fZ2V0X2VkaWQoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7 CiAJCWlmIChnZXRfZWRpZF9ibG9jayhkYXRhLCBibG9jaywgMCwgRURJRF9MRU5HVEgpKQogCQkJ Z290byBvdXQ7Ci0JCWlmIChkcm1fZWRpZF9ibG9ja192YWxpZChibG9jaywgMCwgcHJpbnRfYmFk X2VkaWQpKQorCQlpZiAoZHJtX2VkaWRfYmxvY2tfdmFsaWQoYmxvY2ssIDAsIHByaW50X2JhZF9l ZGlkLAorCQkJCQkgJmNvbm5lY3Rvci0+ZWRpZF9oZWFkZXJfY29ycnVwdCkpCiAJCQlicmVhazsK IAkJaWYgKGkgPT0gMCAmJiBkcm1fZWRpZF9pc196ZXJvKGJsb2NrLCBFRElEX0xFTkdUSCkpIHsK IAkJCWNvbm5lY3Rvci0+bnVsbF9lZGlkX2NvdW50ZXIrKzsKQEAgLTEyNTcsNyArMTI3NywxMCBA QCBzdHJ1Y3QgZWRpZCAqZHJtX2RvX2dldF9lZGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCiAJCQkJICBibG9jayArICh2YWxpZF9leHRlbnNpb25zICsgMSkgKiBFRElEX0xFTkdU SCwKIAkJCQkgIGosIEVESURfTEVOR1RIKSkKIAkJCQlnb3RvIG91dDsKLQkJCWlmIChkcm1fZWRp ZF9ibG9ja192YWxpZChibG9jayArICh2YWxpZF9leHRlbnNpb25zICsgMSkgKiBFRElEX0xFTkdU SCwgaiwgcHJpbnRfYmFkX2VkaWQpKSB7CisJCQlpZiAoZHJtX2VkaWRfYmxvY2tfdmFsaWQoYmxv Y2sgKyAodmFsaWRfZXh0ZW5zaW9ucyArIDEpCisJCQkJCQkgKiBFRElEX0xFTkdUSCwgaiwKKwkJ CQkJCSBwcmludF9iYWRfZWRpZCwKKwkJCQkJCSBOVUxMKSkgewogCQkJCXZhbGlkX2V4dGVuc2lv bnMrKzsKIAkJCQlicmVhazsKIAkJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZWRpZF9sb2FkLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWRfbG9hZC5jCmluZGV4IDRjMGFh OTcuLjQ4YjQ4ZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZF9sb2FkLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkX2xvYWQuYwpAQCAtMjE2LDcgKzIxNiw4IEBA IHN0YXRpYyB2b2lkICplZGlkX2xvYWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwg Y29uc3QgY2hhciAqbmFtZSwKIAkJZ290byBvdXQ7CiAJfQogCi0JaWYgKCFkcm1fZWRpZF9ibG9j a192YWxpZChlZGlkLCAwLCBwcmludF9iYWRfZWRpZCkpIHsKKwlpZiAoIWRybV9lZGlkX2Jsb2Nr X3ZhbGlkKGVkaWQsIDAsIHByaW50X2JhZF9lZGlkLAorCQkJCSAgJmNvbm5lY3Rvci0+ZWRpZF9o ZWFkZXJfY29ycnVwdCkpIHsKIAkJY29ubmVjdG9yLT5iYWRfZWRpZF9jb3VudGVyKys7CiAJCURS TV9FUlJPUigiQmFzZSBibG9jayBvZiBFRElEIGZpcm13YXJlIFwiJXNcIiBpcyBpbnZhbGlkICIs CiAJCSAgICBuYW1lKTsKQEAgLTIyOSw3ICsyMzAsOSBAQCBzdGF0aWMgdm9pZCAqZWRpZF9sb2Fk KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCWlm IChpICE9IHZhbGlkX2V4dGVuc2lvbnMgKyAxKQogCQkJbWVtY3B5KGVkaWQgKyAodmFsaWRfZXh0 ZW5zaW9ucyArIDEpICogRURJRF9MRU5HVEgsCiAJCQkgICAgZWRpZCArIGkgKiBFRElEX0xFTkdU SCwgRURJRF9MRU5HVEgpOwotCQlpZiAoZHJtX2VkaWRfYmxvY2tfdmFsaWQoZWRpZCArIGkgKiBF RElEX0xFTkdUSCwgaSwgcHJpbnRfYmFkX2VkaWQpKQorCQlpZiAoZHJtX2VkaWRfYmxvY2tfdmFs aWQoZWRpZCArIGkgKiBFRElEX0xFTkdUSCwgaSwKKwkJCQkJIHByaW50X2JhZF9lZGlkLAorCQkJ CQkgTlVMTCkpCiAJCQl2YWxpZF9leHRlbnNpb25zKys7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYwppbmRleCA3Y2EwZTE4Li45NzIyNGZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKQEAg LTQxMzksNyArNDEzOSw3IEBAIGludGVsX2RwX2NoZWNrX2xpbmtfc3RhdHVzKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsIGJvb2wgbG9uZ19ocGQpCiAJICovCiAJaWYgKGxvbmdfaHBkKSB7CiAJ CWVkaWRfcmVhZCA9IGRybV9nZXRfZWRpZChjb25uZWN0b3IsIGFkYXB0ZXIpOwotCQlpZiAoIWVk aWRfcmVhZCkgeworCQlpZiAoIWVkaWRfcmVhZCB8fCBjb25uZWN0b3ItPmVkaWRfaGVhZGVyX2Nv cnJ1cHQgPT0gMSkgewogCQkJRFJNX0RFQlVHX0RSSVZFUigiSW52YWxpZCBFRElEIGRldGVjdGVk XG4iKTsKIAkJfSBlbHNlIHsKIAkJCWtmcmVlKGVkaWRfcmVhZCk7CmRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS9kcm1fY3J0Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAppbmRleCBkNGU0Yjgy Li5mN2E0YTkyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCisrKyBiL2luY2x1 ZGUvZHJtL2RybV9jcnRjLmgKQEAgLTcxOSw2ICs3MTksMTEgQEAgc3RydWN0IGRybV9jb25uZWN0 b3IgewogCWludCBudWxsX2VkaWRfY291bnRlcjsgLyogbmVlZGVkIHRvIHdvcmthcm91bmQgc29t ZSBIVyBidWdzIHdoZXJlIHdlIGdldCBhbGwgMHMgKi8KIAl1bnNpZ25lZCBiYWRfZWRpZF9jb3Vu dGVyOwogCisJLyogRmxhZyBmb3IgcmF3IEVESUQgaGVhZGVyIGNvcnJ1cHRpb24gLSB1c2VkIGlu IERpc3BsYXlwb3J0CisJICogY29tcGxpYW5jZSB0ZXN0aW5nIC0gKiBEaXNwbGF5cG9ydCBMaW5r IENUUyBDb3JlIDEuMiByZXYxLjEgNC4yLjIuNgorCSAqLworCWJvb2wgZWRpZF9oZWFkZXJfY29y cnVwdDsKKwogCXN0cnVjdCBkZW50cnkgKmRlYnVnZnNfZW50cnk7CiAKIAlzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqc3RhdGU7CkBAIC0xNDQzLDcgKzE0NDgsOCBAQCBleHRlcm4gdm9pZCBk cm1fc2V0X3ByZWZlcnJlZF9tb2RlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJ CQkJICAgaW50IGhwcmVmLCBpbnQgdnByZWYpOwogCiBleHRlcm4gaW50IGRybV9lZGlkX2hlYWRl cl9pc192YWxpZChjb25zdCB1OCAqcmF3X2VkaWQpOwotZXh0ZXJuIGJvb2wgZHJtX2VkaWRfYmxv Y2tfdmFsaWQodTggKnJhd19lZGlkLCBpbnQgYmxvY2ssIGJvb2wgcHJpbnRfYmFkX2VkaWQpOwor ZXh0ZXJuIGJvb2wgZHJtX2VkaWRfYmxvY2tfdmFsaWQodTggKnJhd19lZGlkLCBpbnQgYmxvY2ss IGJvb2wgcHJpbnRfYmFkX2VkaWQsCisJCQkJIGJvb2wgKmhlYWRlcl9jb3JydXB0KTsKIGV4dGVy biBib29sIGRybV9lZGlkX2lzX3ZhbGlkKHN0cnVjdCBlZGlkICplZGlkKTsKIAogZXh0ZXJuIHN0 cnVjdCBkcm1fdGlsZV9ncm91cCAqZHJtX21vZGVfY3JlYXRlX3RpbGVfZ3JvdXAoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=