From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH i-g-t 1/4] lib/igt_kms: Add igt_display_reset function. Date: Thu, 16 Nov 2017 13:45:19 +0100 Message-ID: <20171116124522.4673-1-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 0DECA6E7BC for ; Thu, 16 Nov 2017 12:45:28 +0000 (UTC) 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 QSBsb3Qgb2YgY29kZSBkdXBsaWNhdGVzIHRoaXMsIGJ1dCBpdCBzaG91bGQgYmUgaGFuZGxlZCBp biB0aGUgY29yZS4KQWRkIGl0IGFuZCB1c2UgaXQgYWZ0ZXIgaWd0X2Rpc3BsYXlfaW5pdCgpLCB0 aGUgdGVzdHMgaGF2ZSB0byBiZQpjb252ZXJ0ZWQgb25lIGJ5IG9uZS4KClNpZ25lZC1vZmYtYnk6 IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Ci0t LQogbGliL2lndF9rbXMuYyB8IDE2MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaWIvaWd0X2ttcy5oIHwgICAxICsKIDIgZmlsZXMg Y2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDU5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2xpYi9pZ3Rfa21zLmMgYi9saWIvaWd0X2ttcy5jCmluZGV4IDFkMjZiOGRkYmY0My4uMjM5ZjRm MTdkMjJlIDEwMDY0NAotLS0gYS9saWIvaWd0X2ttcy5jCisrKyBiL2xpYi9pZ3Rfa21zLmMKQEAg LTE1NDksMjkgKzE1NDksMTQgQEAgc3RhdGljIHZvaWQgaWd0X291dHB1dF9yZWZyZXNoKGlndF9v dXRwdXRfdCAqb3V0cHV0KQogCQkJICAgICAgIC0xKTsKIAl9CiAKLQlpZiAob3V0cHV0LT5jb25m aWcuY29ubmVjdG9yKSB7CisJaWYgKG91dHB1dC0+Y29uZmlnLmNvbm5lY3RvcikKIAkJaWd0X2F0 b21pY19maWxsX2Nvbm5lY3Rvcl9wcm9wcyhkaXNwbGF5LCBvdXRwdXQsCiAJCQlJR1RfTlVNX0NP Tk5FQ1RPUl9QUk9QUywgaWd0X2Nvbm5lY3Rvcl9wcm9wX25hbWVzKTsKIAotCQlpZiAob3V0cHV0 LT5wcm9wc1tJR1RfQ09OTkVDVE9SX0JST0FEQ0FTVF9SR0JdKQotCQkJaWd0X291dHB1dF9zZXRf cHJvcF92YWx1ZShvdXRwdXQsCi0JCQkJCQkgIElHVF9DT05ORUNUT1JfQlJPQURDQVNUX1JHQiwK LQkJCQkJCSAgQlJPQURDQVNUX1JHQl9GVUxMKTsKLQl9Ci0KIAlMT0coZGlzcGxheSwgIiVzOiBT ZWxlY3RpbmcgcGlwZSAlc1xuIiwgb3V0cHV0LT5uYW1lLAogCSAgICBrbXN0ZXN0X3BpcGVfbmFt ZShvdXRwdXQtPnBlbmRpbmdfcGlwZSkpOwogfQogCi1zdGF0aWMgYm9vbAotZ2V0X3BsYW5lX3By b3BlcnR5KGludCBkcm1fZmQsIHVpbnQzMl90IHBsYW5lX2lkLCBjb25zdCBjaGFyICpuYW1lLAot CQkgICB1aW50MzJfdCAqcHJvcF9pZCAvKiBvdXQgKi8sIHVpbnQ2NF90ICp2YWx1ZSAvKiBvdXQg Ki8sCi0JCSAgIGRybU1vZGVQcm9wZXJ0eVB0ciAqcHJvcCAvKiBvdXQgKi8pCi17Ci0JcmV0dXJu IGttc3Rlc3RfZ2V0X3Byb3BlcnR5KGRybV9mZCwgcGxhbmVfaWQsIERSTV9NT0RFX09CSkVDVF9Q TEFORSwKLQkJCQkgICAgbmFtZSwgcHJvcF9pZCwgdmFsdWUsIHByb3ApOwotfQotCiBzdGF0aWMg aW50CiBpZ3RfcGxhbmVfc2V0X3Byb3BlcnR5KGlndF9wbGFuZV90ICpwbGFuZSwgdWludDMyX3Qg cHJvcF9pZCwgdWludDY0X3QgdmFsdWUpCiB7CkBAIC0xNTgyLDE1ICsxNTY3LDYgQEAgaWd0X3Bs YW5lX3NldF9wcm9wZXJ0eShpZ3RfcGxhbmVfdCAqcGxhbmUsIHVpbnQzMl90IHByb3BfaWQsIHVp bnQ2NF90IHZhbHVlKQogCQkJCSBEUk1fTU9ERV9PQkpFQ1RfUExBTkUsIHByb3BfaWQsIHZhbHVl KTsKIH0KIAotc3RhdGljIGJvb2wKLWdldF9jcnRjX3Byb3BlcnR5KGludCBkcm1fZmQsIHVpbnQz Ml90IGNydGNfaWQsIGNvbnN0IGNoYXIgKm5hbWUsCi0JCSAgIHVpbnQzMl90ICpwcm9wX2lkIC8q IG91dCAqLywgdWludDY0X3QgKnZhbHVlIC8qIG91dCAqLywKLQkJICAgZHJtTW9kZVByb3BlcnR5 UHRyICpwcm9wIC8qIG91dCAqLykKLXsKLQlyZXR1cm4ga21zdGVzdF9nZXRfcHJvcGVydHkoZHJt X2ZkLCBjcnRjX2lkLCBEUk1fTU9ERV9PQkpFQ1RfQ1JUQywKLQkJCQkgICAgbmFtZSwgcHJvcF9p ZCwgdmFsdWUsIHByb3ApOwotfQotCiAvKgogICogV2FsayBhIHBsYW5lJ3MgcHJvcGVydHkgbGlz dCB0byBkZXRlcm1pbmUgaXRzIHR5cGUuICBJZiB3ZSBkb24ndAogICogZmluZCBhIHR5cGUgcHJv cGVydHksIHRoZW4gdGhlIGtlcm5lbCBkb2Vzbid0IHN1cHBvcnQgdW5pdmVyc2FsCkBAIC0xNjAx LDE0ICsxNTc3LDExMCBAQCBzdGF0aWMgaW50IGdldF9kcm1fcGxhbmVfdHlwZShpbnQgZHJtX2Zk LCB1aW50MzJfdCBwbGFuZV9pZCkKIAl1aW50NjRfdCB2YWx1ZTsKIAlib29sIGhhc19wcm9wOwog Ci0JaGFzX3Byb3AgPSBnZXRfcGxhbmVfcHJvcGVydHkoZHJtX2ZkLCBwbGFuZV9pZCwgInR5cGUi LAotCQkJCSAgICAgIE5VTEwgLyogcHJvcF9pZCAqLywgJnZhbHVlLCBOVUxMKTsKKwloYXNfcHJv cCA9IGttc3Rlc3RfZ2V0X3Byb3BlcnR5KGRybV9mZCwgcGxhbmVfaWQsIERSTV9NT0RFX09CSkVD VF9QTEFORSwKKwkJCQkJInR5cGUiLCBOVUxMLCAmdmFsdWUsIE5VTEwpOwogCWlmIChoYXNfcHJv cCkKIAkJcmV0dXJuIChpbnQpdmFsdWU7CiAKIAlyZXR1cm4gRFJNX1BMQU5FX1RZUEVfT1ZFUkxB WTsKIH0KIAorc3RhdGljIHZvaWQgaWd0X3BsYW5lX3Jlc2V0KGlndF9wbGFuZV90ICpwbGFuZSkK K3sKKwkvKiBSZXNldCBzcmMgY29vcmRpbmF0ZXMuICovCisJaWd0X3BsYW5lX3NldF9wcm9wX3Zh bHVlKHBsYW5lLCBJR1RfUExBTkVfU1JDX1gsIDApOworCWlndF9wbGFuZV9zZXRfcHJvcF92YWx1 ZShwbGFuZSwgSUdUX1BMQU5FX1NSQ19ZLCAwKTsKKwlpZ3RfcGxhbmVfc2V0X3Byb3BfdmFsdWUo cGxhbmUsIElHVF9QTEFORV9TUkNfVywgMCk7CisJaWd0X3BsYW5lX3NldF9wcm9wX3ZhbHVlKHBs YW5lLCBJR1RfUExBTkVfU1JDX0gsIDApOworCisJLyogUmVzZXQgY3J0YyBjb29yZGluYXRlcy4g Ki8KKwlpZ3RfcGxhbmVfc2V0X3Byb3BfdmFsdWUocGxhbmUsIElHVF9QTEFORV9DUlRDX1gsIDAp OworCWlndF9wbGFuZV9zZXRfcHJvcF92YWx1ZShwbGFuZSwgSUdUX1BMQU5FX0NSVENfWSwgMCk7 CisJaWd0X3BsYW5lX3NldF9wcm9wX3ZhbHVlKHBsYW5lLCBJR1RfUExBTkVfQ1JUQ19XLCAwKTsK KwlpZ3RfcGxhbmVfc2V0X3Byb3BfdmFsdWUocGxhbmUsIElHVF9QTEFORV9DUlRDX0gsIDApOwor CisJLyogUmVzZXQgYmluZGluZyB0byBmYiBhbmQgY3J0Yy4gKi8KKwlpZ3RfcGxhbmVfc2V0X3By b3BfdmFsdWUocGxhbmUsIElHVF9QTEFORV9GQl9JRCwgMCk7CisJaWd0X3BsYW5lX3NldF9wcm9w X3ZhbHVlKHBsYW5lLCBJR1RfUExBTkVfQ1JUQ19JRCwgMCk7CisKKwkvKiBVc2UgZGVmYXVsdCBy b3RhdGlvbiAqLworCWlmIChpZ3RfcGxhbmVfaGFzX3Byb3AocGxhbmUsIElHVF9QTEFORV9ST1RB VElPTikpCisJCWlndF9wbGFuZV9zZXRfcHJvcF92YWx1ZShwbGFuZSwgSUdUX1BMQU5FX1JPVEFU SU9OLAorCQkJCQkgSUdUX1JPVEFUSU9OXzApOworCisJaWd0X3BsYW5lX2NsZWFyX3Byb3BfY2hh bmdlZChwbGFuZSwgSUdUX1BMQU5FX0lOX0ZFTkNFX0ZEKTsKKwlwbGFuZS0+dmFsdWVzW0lHVF9Q TEFORV9JTl9GRU5DRV9GRF0gPSB+MFVMTDsKK30KKworc3RhdGljIHZvaWQgaWd0X3BpcGVfcmVz ZXQoaWd0X3BpcGVfdCAqcGlwZSkKK3sKKwlpZ3RfcGlwZV9vYmpfc2V0X3Byb3BfdmFsdWUocGlw ZSwgSUdUX0NSVENfTU9ERV9JRCwgMCk7CisJaWd0X3BpcGVfb2JqX3NldF9wcm9wX3ZhbHVlKHBp cGUsIElHVF9DUlRDX0FDVElWRSwgMCk7CisJaWd0X3BpcGVfb2JqX2NsZWFyX3Byb3BfY2hhbmdl ZChwaXBlLCBJR1RfQ1JUQ19PVVRfRkVOQ0VfUFRSKTsKKworCXBpcGUtPm91dF9mZW5jZV9mZCA9 IC0xOworfQorCitzdGF0aWMgdm9pZCBpZ3Rfb3V0cHV0X3Jlc2V0KGlndF9vdXRwdXRfdCAqb3V0 cHV0KQoreworCW91dHB1dC0+cGVuZGluZ19waXBlID0gUElQRV9OT05FOworCW91dHB1dC0+dXNl X292ZXJyaWRlX21vZGUgPSBmYWxzZTsKKwltZW1zZXQoJm91dHB1dC0+b3ZlcnJpZGVfbW9kZSwg MCwgc2l6ZW9mKG91dHB1dC0+b3ZlcnJpZGVfbW9kZSkpOworCisJaWd0X291dHB1dF9zZXRfcHJv cF92YWx1ZShvdXRwdXQsIElHVF9DT05ORUNUT1JfQ1JUQ19JRCwgMCk7CisKKwlpZiAoaWd0X291 dHB1dF9oYXNfcHJvcChvdXRwdXQsIElHVF9DT05ORUNUT1JfQlJPQURDQVNUX1JHQikpCisJCWln dF9vdXRwdXRfc2V0X3Byb3BfdmFsdWUob3V0cHV0LCBJR1RfQ09OTkVDVE9SX0JST0FEQ0FTVF9S R0IsCisJCQkJCSAgQlJPQURDQVNUX1JHQl9GVUxMKTsKK30KKworLyoqCisgKiBpZ3RfZGlzcGxh eV9yZXNldDoKKyAqIEBkaXNwbGF5OiBhIHBvaW50ZXIgdG8gYW4gI2lndF9kaXNwbGF5X3Qgc3Ry dWN0dXJlCisgKgorICogUmVzZXQgYmFzaWMgcGlwZXMsIGNvbm5lY3RvcnMgYW5kIHBsYW5lcyBv biBAZGlzcGxheSBiYWNrIHRvIGRlZmF1bHQgdmFsdWVzLgorICogSW4gcGFydGljdWxhciwgdGhl IGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdpbGwgYmUgcmVzZXQ6CisgKgorICogRm9yIG91dHB1dHM6 CisgKiAtICVJR1RfQ09OTkVDVE9SX0NSVENfSUQKKyAqIC0gJUlHVF9DT05ORUNUT1JfQlJPQURD QVNUX1JHQiAoaWYgYXBwbGljYWJsZSkKKyAqIC0gaWd0X291dHB1dF9vdmVycmlkZV9tb2RlKCkg dG8gZGVmYXVsdC4KKyAqCisgKiBGb3IgcGlwZXM6CisgKiAtICVJR1RfQ1JUQ19NT0RFX0lEIChs ZWFrZWQpCisgKiAtICVJR1RfQ1JUQ19BQ1RJVkUKKyAqIC0gJUlHVF9DUlRDX09VVF9GRU5DRV9Q VFIKKyAqCisgKiBGb3IgcGxhbmVzOgorICogLSAlSUdUX1BMQU5FX1NSQ18qCisgKiAtICVJR1Rf UExBTkVfQ1JUQ18qCisgKiAtICVJR1RfUExBTkVfRkJfSUQKKyAqIC0gJUlHVF9QTEFORV9DUlRD X0lECisgKiAtICVJR1RfUExBTkVfUk9UQVRJT04KKyAqIC0gJUlHVF9QTEFORV9JTl9GRU5DRV9G RAorICovCit2b2lkIGlndF9kaXNwbGF5X3Jlc2V0KGlndF9kaXNwbGF5X3QgKmRpc3BsYXkpCit7 CisJZW51bSBwaXBlIHBpcGU7CisJaW50IGk7CisKKwlmb3JfZWFjaF9waXBlKGRpc3BsYXksIHBp cGUpIHsKKwkJaWd0X3BpcGVfdCAqcGlwZV9vYmogPSAmZGlzcGxheS0+cGlwZXNbcGlwZV07CisJ CWlndF9wbGFuZV90ICpwbGFuZTsKKworCQlmb3JfZWFjaF9wbGFuZV9vbl9waXBlKGRpc3BsYXks IHBpcGUsIHBsYW5lKQorCQkJaWd0X3BsYW5lX3Jlc2V0KHBsYW5lKTsKKworCQlpZ3RfcGlwZV9y ZXNldChwaXBlX29iaik7CisJfQorCisJZm9yIChpID0gMDsgaSA8IGRpc3BsYXktPm5fb3V0cHV0 czsgaSsrKSB7CisJCWlndF9vdXRwdXRfdCAqb3V0cHV0ID0gJmRpc3BsYXktPm91dHB1dHNbaV07 CisKKwkJaWd0X291dHB1dF9yZXNldChvdXRwdXQpOworCX0KK30KKwogLyoqCiAgKiBpZ3RfZGlz cGxheV9pbml0OgogICogQGRpc3BsYXk6IGEgcG9pbnRlciB0byBhbiAjaWd0X2Rpc3BsYXlfdCBz dHJ1Y3R1cmUKQEAgLTE2NDgsNyArMTcyMCw3IEBAIHZvaWQgaWd0X2Rpc3BsYXlfaW5pdChpZ3Rf ZGlzcGxheV90ICpkaXNwbGF5LCBpbnQgZHJtX2ZkKQogCXBsYW5lX3Jlc291cmNlcyA9IGRybU1v ZGVHZXRQbGFuZVJlc291cmNlcyhkaXNwbGF5LT5kcm1fZmQpOwogCWlndF9hc3NlcnQocGxhbmVf cmVzb3VyY2VzKTsKIAotCWZvciAoaSA9IDA7IGkgPCBkaXNwbGF5LT5uX3BpcGVzOyBpKyspIHsK Kwlmb3JfZWFjaF9waXBlKGRpc3BsYXksIGkpIHsKIAkJaWd0X3BpcGVfdCAqcGlwZSA9ICZkaXNw bGF5LT5waXBlc1tpXTsKIAkJaWd0X3BsYW5lX3QgKnBsYW5lOwogCQlpbnQgcCA9IDE7CkBAIC0x NjYxLDE5ICsxNzMzLDkgQEAgdm9pZCBpZ3RfZGlzcGxheV9pbml0KGlndF9kaXNwbGF5X3QgKmRp c3BsYXksIGludCBkcm1fZmQpCiAJCXBpcGUtPnBsYW5lX2N1cnNvciA9IC0xOwogCQlwaXBlLT5w bGFuZV9wcmltYXJ5ID0gLTE7CiAJCXBpcGUtPnBsYW5lcyA9IE5VTEw7Ci0JCXBpcGUtPm91dF9m ZW5jZV9mZCA9IC0xOwogCiAJCWlndF9maWxsX3BpcGVfcHJvcHMoZGlzcGxheSwgcGlwZSwgSUdU X05VTV9DUlRDX1BST1BTLCBpZ3RfY3J0Y19wcm9wX25hbWVzKTsKIAotCQkvKiBGb3JjZSBtb2Rl c2V0IGRpc2FibGUgb24gZmlyc3QgY29tbWl0ICovCi0JCWlndF9waXBlX29ial9zZXRfcHJvcF9j aGFuZ2VkKHBpcGUsIElHVF9DUlRDX01PREVfSUQpOwotCQlpZ3RfcGlwZV9vYmpfc2V0X3Byb3Bf Y2hhbmdlZChwaXBlLCBJR1RfQ1JUQ19BQ1RJVkUpOwotCi0JCWdldF9jcnRjX3Byb3BlcnR5KGRp c3BsYXktPmRybV9mZCwgcGlwZS0+Y3J0Y19pZCwKLQkJCQkgICAgImJhY2tncm91bmRfY29sb3Ii LCBOVUxMLAotCQkJCSAgICAmcGlwZS0+dmFsdWVzW0lHVF9DUlRDX0JBQ0tHUk9VTkRdLAotCQkJ CSAgICBOVUxMKTsKLQogCQkvKiBjb3VudCBudW1iZXIgb2YgdmFsaWQgcGxhbmVzICovCiAJCWZv ciAoaiA9IDA7IGogPCBwbGFuZV9yZXNvdXJjZXMtPmNvdW50X3BsYW5lczsgaisrKSB7CiAJCQlk cm1Nb2RlUGxhbmUgKmRybV9wbGFuZTsKQEAgLTE3MzAsMjQgKzE3OTIsNiBAQCB2b2lkIGlndF9k aXNwbGF5X2luaXQoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgaW50IGRybV9mZCkKIAkJCXBsYW5l LT52YWx1ZXNbSUdUX1BMQU5FX0lOX0ZFTkNFX0ZEXSA9IH4wVUxMOwogCiAJCQlpZ3RfZmlsbF9w bGFuZV9wcm9wcyhkaXNwbGF5LCBwbGFuZSwgSUdUX05VTV9QTEFORV9QUk9QUywgaWd0X3BsYW5l X3Byb3BfbmFtZXMpOwotCi0JCQlnZXRfcGxhbmVfcHJvcGVydHkoZGlzcGxheS0+ZHJtX2ZkLCBk cm1fcGxhbmUtPnBsYW5lX2lkLAotCQkJCQkgICAicm90YXRpb24iLAotCQkJCQkgICAmcGxhbmUt PnByb3BzW0lHVF9QTEFORV9ST1RBVElPTl0sCi0JCQkJCSAgICZwbGFuZS0+dmFsdWVzW0lHVF9Q TEFORV9ST1RBVElPTl0sCi0JCQkJCSAgIE5VTEwpOwotCi0JCQkvKiBDbGVhciBhbnkgcmVzaWR1 YWwgZnJhbWVidWZmZXIgaW5mbyBvbiBmaXJzdCBjb21taXQuICovCi0JCQlpZ3RfcGxhbmVfc2V0 X3Byb3BfY2hhbmdlZChwbGFuZSwgSUdUX1BMQU5FX0ZCX0lEKTsKLQkJCWlndF9wbGFuZV9zZXRf cHJvcF9jaGFuZ2VkKHBsYW5lLCBJR1RfUExBTkVfQ1JUQ19JRCk7Ci0KLQkJCS8qCi0JCQkgKiBD UlRDX1gvWSBhcmUgbm90IGNoYW5nZWQgaW4gaWd0X3BsYW5lX3NldF9mYiwgc28KLQkJCSAqIGZv cmNlIHRoZW0gdG8gYmUgc2FuaXRpemVkIGluIGNhc2UgdGhleSBjb250YWluCi0JCQkgKiBnYXJi YWdlLgotCQkJICovCi0JCQlpZ3RfcGxhbmVfc2V0X3Byb3BfY2hhbmdlZChwbGFuZSwgSUdUX1BM QU5FX0NSVENfWCk7Ci0JCQlpZ3RfcGxhbmVfc2V0X3Byb3BfY2hhbmdlZChwbGFuZSwgSUdUX1BM QU5FX0NSVENfWSk7CiAJCX0KIAogCQkvKgpAQCAtMTc4MiwxOCArMTgyNiwxOCBAQCB2b2lkIGln dF9kaXNwbGF5X2luaXQoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgaW50IGRybV9mZCkKIAkJICog YSBwaXBlIGlzIHNldCB3aXRoIGlndF9vdXRwdXRfc2V0X3BpcGUoKS4KIAkJICovCiAJCW91dHB1 dC0+Zm9yY2VfcmVwcm9iZSA9IHRydWU7Ci0JCW91dHB1dC0+cGVuZGluZ19waXBlID0gUElQRV9O T05FOwogCQlvdXRwdXQtPmlkID0gcmVzb3VyY2VzLT5jb25uZWN0b3JzW2ldOwogCQlvdXRwdXQt PmRpc3BsYXkgPSBkaXNwbGF5OwogCiAJCWlndF9vdXRwdXRfcmVmcmVzaChvdXRwdXQpOwotCi0J CWlndF9vdXRwdXRfc2V0X3Byb3BfY2hhbmdlZChvdXRwdXQsIElHVF9DT05ORUNUT1JfQ1JUQ19J RCk7CiAJfQogCiAJZHJtTW9kZUZyZWVQbGFuZVJlc291cmNlcyhwbGFuZV9yZXNvdXJjZXMpOwog CWRybU1vZGVGcmVlUmVzb3VyY2VzKHJlc291cmNlcyk7CiAKKwkvKiBTZXQgcmVhc29uYWJsZSBk ZWZhdWx0IHZhbHVlcyBmb3IgZXZlcnkgb2JqZWN0IGluIHRoZSBkaXNwbGF5LiAqLworCWlndF9k aXNwbGF5X3Jlc2V0KGRpc3BsYXkpOworCiAJTE9HX1VOSU5ERU5UKGRpc3BsYXkpOwogfQogCmRp ZmYgLS1naXQgYS9saWIvaWd0X2ttcy5oIGIvbGliL2lndF9rbXMuaAppbmRleCBhY2M4MjkxM2Uw YjcuLmUxODgzYmYxYjhhMyAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMuaAorKysgYi9saWIvaWd0 X2ttcy5oCkBAIC0zNTMsNiArMzUzLDcgQEAgc3RydWN0IGlndF9kaXNwbGF5IHsKIAogdm9pZCBp Z3RfZGlzcGxheV9pbml0KGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGludCBkcm1fZmQpOwogdm9p ZCBpZ3RfZGlzcGxheV9maW5pKGlndF9kaXNwbGF5X3QgKmRpc3BsYXkpOwordm9pZCBpZ3RfZGlz cGxheV9yZXNldChpZ3RfZGlzcGxheV90ICpkaXNwbGF5KTsKIGludCAgaWd0X2Rpc3BsYXlfY29t bWl0MihpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBlbnVtIGlndF9jb21taXRfc3R5bGUgcyk7CiBp bnQgIGlndF9kaXNwbGF5X2NvbW1pdChpZ3RfZGlzcGxheV90ICpkaXNwbGF5KTsKIGludCAgaWd0 X2Rpc3BsYXlfdHJ5X2NvbW1pdF9hdG9taWMoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgdWludDMy X3QgZmxhZ3MsIHZvaWQgKnVzZXJfZGF0YSk7Ci0tIAoyLjE1LjAKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=