From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH v5 5/6] drm/i915: enable scrambling Date: Tue, 28 Feb 2017 14:09:09 +0530 Message-ID: <1488271150-7423-6-git-send-email-shashank.sharma@intel.com> References: <1488271150-7423-1-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1488271150-7423-1-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, ville.syrjala@linux.intel.com, ander.conselvan.de.oliveira@intel.com Cc: jose.abreu@synopsys.com, daniel.vetter@intel.com, treding@nvidia.com List-Id: intel-gfx@lists.freedesktop.org R2VtaW5pbGFrZSBwbGF0Zm9ybSBzcG9ydHMgYSBuYXRpdmUgSERNSSAyLjAgY29udHJvbGxlciwg YW5kIGlzCmNhcGFibGUgb2YgZHJpdmluZyBwaXhlbC1jbG9ja3MgdXB0byA1OTRNaHouIEhETUkg Mi4wIHNwZWMKbWVuZGF0ZXMgc2NyYW1ibGluZyBmb3IgdGhlc2UgaGlnaGVyIGNsb2NrcywgZm9y IHJlZHVjZWQgUkYgZm9vdHByaW50LgoKVGhpcyBwYXRjaCBjaGVja3MgaWYgdGhlIG1vbml0b3Ig c3VwcG9ydHMgc2NyYW1ibGluZywgYW5kIGlmIHJlcXVpcmVkLAplbmFibGVzIGl0IGR1cmluZyB0 aGUgbW9kZXNldC4KClYyOiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gVmlsbGU6Ci0g RG8gbm90IHRyYWNrIHNjcmFtYmxpbmcgc3RhdHVzIGluIERSTSBsYXllciwgdHJhY2sgc29tZXdo ZXJlIGluCiAgZHJpdmVyIGxpa2UgaW4gaW50ZWxfY3J0Y19zdGF0ZS4KLSBEb24ndCB0YWxrIHRv IG1vbml0b3IgYXQgc3VjaCBhIGxvdyBsYXllciwgc2V0IG1vbml0b3Igc2NyYW1ibGluZwogIGlu IGludGVsX2VuYWJsZV9kZGkoKSBiZWZvcmUgZW5hYmxpbmcgdGhlIHBvcnQuCgpWMzogQWRkcmVz c2VkIHJldmlldyBjb21tZW50cyBmcm9tIEphbmkKIC0gSW4gY29tbWVudHMsIGZ1bmN0aW9uIG5h bWVzLCB1c2UgInNpbmsiIGluc3RlYWQgb2YgIm1vbml0b3IiLAogICBzbyB0aGF0IHRoZSBpbXBs ZW1lbnRhdGlvbiBjb3VsZCBiZSBjbG9zZSB0byB0aGUgbGFuZ3VhZ2Ugb2YKICAgSERNSSBzcGVj LgoKVjQ6IEFkZHJlc3NlZCByZXZpZXcgY29tbWVudCBmcm9tIE1hYXJ0ZW4KIC0gc2NyYW1ibGlu ZyAtPiBoZG1pX3NjcmFtYmxpbmcKICAgaGlnaF90bWRzX2Nsb2NrX3JhdGlvIC0+IGhkbWlfaGln aF90bWRzX2Nsb2NrX3JhdGlvCgpWNTogQWRkcmVzc2VkIHJldmlldyBjb21tZW50cyBmcm9tIFZp bGxlIGFuZCBBbmRlcgogLSBEbyBub3QgbW9kaWZpeSB0aGUgY3J0Y19zdGF0ZSBhZnRlciBjb21w dXRlX2NvbmZpZy4gTW92ZSBhbGwKICAgc2NyYW1ibGluZyBhbmQgdG1kc19jbG9ja19yYXRpbyBj YWxjdXRhdGlvbnMgdG8gY29tcHV0ZV9jb25maWcuCiAtIFdoaWxlIHNldHRpbmcgc2NyYW1ibGlu ZyBmb3Igc291cmNlL3NpbmssIGRvIG5vdCBjaGVjayB0aGUKICAgY29uZGl0aW9ucyBhZ2Fpbiwg anVzdCBnbyBieSB0aGUgY3J0Y19zdGF0ZSBmbGFncy4gVGhpcyB3aWxsCiAgIHNpbXBseWZ5IHRo ZSBjb25kaXRpb24gY2hlY2tzLgoKU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFz aGFuay5zaGFybWFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmggICB8ICA0ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgfCAyOSArKysr KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICB8IDE0ICsrKysrKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIHwgOTggKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggY2U2ZjA5Ni4uMTc1OWI2NCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oCkBAIC03ODI0LDcgKzc4MjQsMTEgQEAgZW51bSB7CiAjZGVmaW5lICBU UkFOU19ERElfRURQX0lOUFVUX0JfT05PRkYJKDU8PDEyKQogI2RlZmluZSAgVFJBTlNfRERJX0VE UF9JTlBVVF9DX09OT0ZGCSg2PDwxMikKICNkZWZpbmUgIFRSQU5TX0RESV9EUF9WQ19QQVlMT0FE X0FMTE9DCSgxPDw4KQorI2RlZmluZSAgVFJBTlNfRERJX0hETUlfU0NSQU1CTEVSX0NUU19FTkFC TEUgKDE8PDcpCisjZGVmaW5lICBUUkFOU19ERElfSERNSV9TQ1JBTUJMRVJfUkVTRVRfRlJFUSAo MTw8NikKICNkZWZpbmUgIFRSQU5TX0RESV9CRklfRU5BQkxFCQkoMTw8NCkKKyNkZWZpbmUgIFRS QU5TX0RESV9ISUdIX1RNRFNfQ0hBUl9SQVRFCSgxPDw0KQorI2RlZmluZSAgVFJBTlNfRERJX0hE TUlfU0NSQU1CTElORwkoMTw8MCkKIAogLyogRGlzcGxheVBvcnQgVHJhbnNwb3J0IENvbnRyb2wg Ki8KICNkZWZpbmUgX0RQX1RQX0NUTF9BCQkJMHg2NDA0MApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGku YwppbmRleCBhN2MwOGQ3Li4yNGJjM2E4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwpAQCAt MTMxMSw2ICsxMzExLDExIEBAIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMo c3RydWN0IGRybV9jcnRjICpjcnRjKQogCQkJdGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1Rf SERNSTsKIAkJZWxzZQogCQkJdGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFZJOworCisJ CWlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSkKKwkJCXRlbXAgPSBpbnRlbF9oZG1pX2hhbmRs ZV9zb3VyY2Vfc2NyYW1ibGluZygKKwkJCQlpbnRlbF9lbmNvZGVyLAorCQkJCWludGVsX2NydGMt PmNvbmZpZywgdGVtcCk7CiAJfSBlbHNlIGlmICh0eXBlID09IElOVEVMX09VVFBVVF9BTkFMT0cp IHsKIAkJdGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRkRJOwogCQl0ZW1wIHw9IChpbnRl bF9jcnRjLT5jb25maWctPmZkaV9sYW5lcyAtIDEpIDw8IDE7CkBAIC0xODg1LDYgKzE4OTAsMjEg QEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2RkaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50 ZWxfZW5jb2RlciwKIAkJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQg PQogCQkJZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwogCisJCWlmIChJU19HRU1JTklMQUtFKGRl dl9wcml2KSkgeworCQkJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVu Y29kZXItPmNydGMpOworCQkJLyoKKwkJCSAqIEdMSyBzcG9ydHMgYSBuYXRpdmUgSERNSSAyLjAg Y29udHJvbGxlci4gSWYgcmVxdWlyZWQKKwkJCSAqIGNsb2NrIHJhdGUgaXMgPiAzNDAgTWh6ICYm IHNjcmFtYmxpbmcgaXMgc3VwcG9ydGVkCisJCQkgKiBieSBzaW5rLCBlbmFibGUgc2NyYW1ibGlu ZyBiZWZvcmUgZW5hYmxpbmcgdGhlCisJCQkgKiBIRE1JIDIuMCBwb3J0LiBUaGUgc2luayBjYW4g Y2hvb3NlIHRvIGRpc2FibGUgdGhlCisJCQkgKiBzY3JhbWJsaW5nIGlmIGl0IGRvZXNuJ3QgZGV0 ZWN0IGEgc2NyYW1ibGVkIHdpdGhpbgorCQkJICogMTAwIG1zLgorCQkJICovCisJCQlpbnRlbF9o ZG1pX2hhbmRsZV9zaW5rX3NjcmFtYmxpbmcoaW50ZWxfZW5jb2RlciwKKwkJCQkJCWNvbm5fc3Rh dGUtPmNvbm5lY3RvciwKKwkJCQkJCWNydGMtPmNvbmZpZywgdHJ1ZSk7CisJCX0KKwogCQkvKiBJ biBIRE1JL0RWSSBtb2RlLCB0aGUgcG9ydCB3aWR0aCwgYW5kIHN3aW5nL2VtcGhhc2lzIHZhbHVl cwogCQkgKiBhcmUgaWdub3JlZCBzbyBub3RoaW5nIHNwZWNpYWwgbmVlZHMgdG8gYmUgZG9uZSBi ZXNpZGVzCiAJCSAqIGVuYWJsaW5nIHRoZSBwb3J0LgpAQCAtMTkxMiwxMSArMTkzMiwyMCBAQCBz dGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxf ZW5jb2RlciwKIAkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9z dGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZW5jb2Rlci0+ YmFzZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmNvZGVyLT5kZXYt PmRldl9wcml2YXRlOwogCWludCB0eXBlID0gaW50ZWxfZW5jb2Rlci0+dHlwZTsKIAogCWlmIChv bGRfY3J0Y19zdGF0ZS0+aGFzX2F1ZGlvKQogCQlpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKGlu dGVsX2VuY29kZXIpOwogCisJaWYgKCh0eXBlID09IElOVEVMX09VVFBVVF9IRE1JKSAmJiBJU19H RU1JTklMQUtFKGRldl9wcml2KSkgeworCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7CisKKwkJaW50ZWxfaGRtaV9oYW5kbGVfc2lu a19zY3JhbWJsaW5nKGludGVsX2VuY29kZXIsCisJCQkJCW9sZF9jb25uX3N0YXRlLT5jb25uZWN0 b3IsCisJCQkJCWludGVsX2NydGMtPmNvbmZpZywgZmFsc2UpOworCX0KKwogCWlmICh0eXBlID09 IElOVEVMX09VVFBVVF9FRFApIHsKIAkJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190 b19pbnRlbF9kcChlbmNvZGVyKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA5MDdm YjAwLi4wZTUzZmNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtNjk1LDYgKzY5NSwx MiBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7CiAKIAkvKiBHYW1tYSBtb2RlIHByb2dyYW1t ZWQgb24gdGhlIHBpcGUgKi8KIAl1aW50MzJfdCBnYW1tYV9tb2RlOworCisJLyogSERNSSBzY3Jh bWJsaW5nIHN0YXR1cyAoc2luaykgKi8KKwlib29sIGhkbWlfc2NyYW1ibGluZzsKKworCS8qIEhE TUkgSGlnaCBUTURTIGNoYXIgcmF0ZSByYXRpbyAoc2luaykgKi8KKwlib29sIGhkbWlfaGlnaF90 bWRzX2Nsb2NrX3JhdGlvOwogfTsKIAogc3RydWN0IHZsdl93bV9zdGF0ZSB7CkBAIC0xNjI2LDYg KzE2MzIsMTQgQEAgdm9pZCBpbnRlbF9oZG1pX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqY29ubl9zdGF0ZSk7Cit1aW50MzJfdAoraW50ZWxfaGRtaV9oYW5kbGVfc291cmNl X3NjcmFtYmxpbmcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCisJCQkJCXN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcsCisJCQkJCXVpbnQzMl90IGhkbWlfY29uZmln KTsKK3ZvaWQgaW50ZWxfaGRtaV9oYW5kbGVfc2lua19zY3JhbWJsaW5nKHN0cnVjdCBpbnRlbF9l bmNvZGVyICppbnRlbF9lbmNvZGVyLAorCQkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAorCQkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnLAorCQkJCQlib29sIGVu YWJsZSk7CiB2b2lkIGludGVsX2RwX2R1YWxfbW9kZV9zZXRfdG1kc19vdXRwdXQoc3RydWN0IGlu dGVsX2hkbWkgKmhkbWksIGJvb2wgZW5hYmxlKTsKIAogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1p LmMKaW5kZXggYzIxODRmNy4uZmRiZWVmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaGRtaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwpA QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2lu Y2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgorI2luY2x1 ZGUgPGRybS9kcm1fc2NkY19oZWxwZXIuaD4KICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKICNpbmNs dWRlIDxkcm0vaTkxNV9kcm0uaD4KICNpbmNsdWRlIDxkcm0vaW50ZWxfbHBlX2F1ZGlvLmg+CkBA IC0xMzE2LDYgKzEzMTcsNyBAQCBib29sIGludGVsX2hkbWlfY29tcHV0ZV9jb25maWcoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkg PSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0 ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX3NjZGMgKnNjZGMgPSAmY29ubl9zdGF0ZS0+Y29ubmVjdG9y LT5kaXNwbGF5X2luZm8uaGRtaS5zY2RjOwogCWludCBjbG9ja184YnBjID0gcGlwZV9jb25maWct PmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwogCWludCBjbG9ja18xMmJwYyA9IGNsb2Nr XzhicGMgKiAzIC8gMjsKIAlpbnQgZGVzaXJlZF9icHA7CkBAIC0xMzg1LDYgKzEzODcsMTYgQEAg Ym9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCiAJcGlwZV9jb25maWctPmxhbmVfY291bnQgPSA0OwogCisJaWYgKHNjZGMtPnNjcmFt Ymxpbmcuc3VwcG9ydGVkKSB7CisJCWlmIChzY2RjLT5zY3JhbWJsaW5nLmxvd19yYXRlcykKKwkJ CXBpcGVfY29uZmlnLT5oZG1pX3NjcmFtYmxpbmcgPSB0cnVlOworCisJCWlmIChwaXBlX2NvbmZp Zy0+cG9ydF9jbG9jayA+IDM0MDAwMCkgeworCQkJcGlwZV9jb25maWctPmhkbWlfc2NyYW1ibGlu ZyA9IHRydWU7CisJCQlwaXBlX2NvbmZpZy0+aGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW8gPSB0 cnVlOworCQl9CisJfQorCiAJcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE3OTQsNiArMTgwNiw5MiBA QCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcikKIAlpbnRlbF9oZG1pLT5hc3BlY3RfcmF0aW8gPSBIRE1JX1BJQ1RVUkVfQVNQRUNU X05PTkU7CiB9CiAKK3ZvaWQgaW50ZWxfaGRtaV9oYW5kbGVfc2lua19zY3JhbWJsaW5nKHN0cnVj dCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAorCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y29uZmlnLAorCQkJCSAgICAgICBib29sIGVuYWJsZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfaGRtaSAq aW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZpbnRlbF9lbmNvZGVyLT5iYXNlKTsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjb25uZWN0b3ItPmRldi0+ZGV2X3By aXZhdGU7CisJc3RydWN0IGRybV9zY3JhbWJsaW5nICpzY3JhbWJsaW5nID0KKwkJCQkmY29ubmVj dG9yLT5kaXNwbGF5X2luZm8uaGRtaS5zY2RjLnNjcmFtYmxpbmc7CisJc3RydWN0IGkyY19hZGFw dGVyICphZHB0ciA9IGludGVsX2dtYnVzX2dldF9hZGFwdGVyKGRldl9wcml2LAorCQkJCQkJCSAg aW50ZWxfaGRtaS0+ZGRjX2J1cyk7CisJYm9vbCByZXQ7CisKKwlpZiAoIXNjcmFtYmxpbmctPnN1 cHBvcnRlZCkKKwkJcmV0dXJuOworCisJRFJNX0RFQlVHX0tNUygiU2V0dGluZyBzaW5rIHNjcmFt YmxpbmcgZm9yIGVuYzolcyBjb25uZWN0b3I6JXNcbiIsCisJCQlpbnRlbF9lbmNvZGVyLT5iYXNl Lm5hbWUsIGNvbm5lY3Rvci0+bmFtZSk7CisKKwlpZiAoZW5hYmxlKSB7CisKKwkJaWYgKGNvbmZp Zy0+aGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW8pIHsKKwkJCS8qIFNldCBUTURTIGJpdCBjbG9j ayByYXRpbyB0byAxLzQwICovCisJCQlyZXQgPSBkcm1fc2NkY19zZXRfaGlnaF90bWRzX2Nsb2Nr X3JhdGlvKGFkcHRyLCB0cnVlKTsKKwkJCWlmICghcmV0KSB7CisJCQkJRFJNX0VSUk9SKCJTZXQg aGlnaCBUTURTIHJhdGlvIGZhaWxlZFxuIik7CisJCQkJcmV0dXJuOworCQkJfQorCQl9CisKKwkJ aWYgKGNvbmZpZy0+aGRtaV9zY3JhbWJsaW5nKSB7CisJCQkvKiBFbmFibGUgc2luayBzY3JhbWJs aW5nICovCisJCQlyZXQgPSBkcm1fc2NkY19zZXRfc2NyYW1ibGluZyhhZHB0ciwgdHJ1ZSk7CisJ CQlpZiAoIXJldCkgeworCQkJCURSTV9FUlJPUigiQ2FuJ3QgZW5hYmxlIHNpbmsgc2NyYW1ibGlu Z1xuIik7CisJCQkJcmV0dXJuOworCQkJfQorCQl9CisKKwkJRFJNX0RFQlVHX0tNUygic2luayBz Y3JhbWJsaW5nIGVuYWJsZWRcbiIpOworCQlyZXR1cm47CisJfQorCisJaWYgKGNvbmZpZy0+aGRt aV9oaWdoX3RtZHNfY2xvY2tfcmF0aW8pIHsKKwkJLyogU2V0IFRNRFMgYml0IGNsb2NrIHJhdGlv IGJhY2sgdG8gMS8xMCAqLworCQlyZXQgPSAhKGRybV9zY2RjX3NldF9oaWdoX3RtZHNfY2xvY2tf cmF0aW8oYWRwdHIsIGZhbHNlKSk7CisJCWlmIChyZXQpCisJCQlEUk1fRVJST1IoIlJlc2V0IGhp Z2ggVE1EUyByYXRpbyBmYWlsZWRcbiIpOworCX0KKworCWlmIChjb25maWctPmhkbWlfc2NyYW1i bGluZykgeworCQkvKiBEaXNhYmxlIHNpbmsgc2NyYW1ibGluZyAqLworCQlyZXQgPSAhKGRybV9z Y2RjX3NldF9zY3JhbWJsaW5nKGFkcHRyLCBmYWxzZSkpOworCQlpZiAocmV0KQorCQkJRFJNX0VS Uk9SKCJEaXNhYmxlIHNpbmsgc2NyYW1ibGluZyBmYWlsZWRcbiIpOworCX0KKworCURSTV9ERUJV R19LTVMoInNpbmsgc2NyYW1ibGluZyBkaXNhYmxlZFxuIik7Cit9CisKK3VpbnQzMl90CitpbnRl bF9oZG1pX2hhbmRsZV9zb3VyY2Vfc2NyYW1ibGluZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50 ZWxfZW5jb2RlciwKKwkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcsIHVpbnQzMl90 IGhkbWlfY29uZmlnKQoreworCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3Rv X2ludGVsX2hkbWkoJmludGVsX2VuY29kZXItPmJhc2UpOworCXN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IgPSAmaW50ZWxfaGRtaS0+YXR0YWNoZWRfY29ubmVjdG9yLT5iYXNlOworCisJ RFJNX0RFQlVHX0tNUygiU2V0dGluZyBzY3JhbWJsaW5nIGZvciBlbmM6JXMgY29ubmVjdG9yOiVz XG4iLAorCQkJaW50ZWxfZW5jb2Rlci0+YmFzZS5uYW1lLCBjb25uZWN0b3ItPm5hbWUpOworCisJ aGRtaV9jb25maWcgJj0gfihUUkFOU19ERElfSERNSV9TQ1JBTUJMSU5HIHwKKwkJVFJBTlNfRERJ X0hJR0hfVE1EU19DSEFSX1JBVEUgfAorCQlUUkFOU19ERElfSERNSV9TQ1JBTUJMRVJfUkVTRVRf RlJFUSB8CisJCVRSQU5TX0RESV9IRE1JX1NDUkFNQkxFUl9DVFNfRU5BQkxFKTsKKworCWlmIChj b25maWctPmhkbWlfc2NyYW1ibGluZykKKwkJaGRtaV9jb25maWcgfD0gKFRSQU5TX0RESV9IRE1J X1NDUkFNQkxJTkcgfAorCQkJVFJBTlNfRERJX0hETUlfU0NSQU1CTEVSX1JFU0VUX0ZSRVEgfAor CQkJVFJBTlNfRERJX0hETUlfU0NSQU1CTEVSX0NUU19FTkFCTEUpOworCisJaWYgKGNvbmZpZy0+ aGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW8pCisJCWhkbWlfY29uZmlnIHw9IFRSQU5TX0RESV9I SUdIX1RNRFNfQ0hBUl9SQVRFOworCisJcmV0dXJuIGhkbWlfY29uZmlnOworfQorCiBzdGF0aWMg dTggaW50ZWxfaGRtaV9kZGNfcGluKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAkJCSAgICAgZW51bSBwb3J0IHBvcnQpCiB7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==