From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH v8 5/6] drm/i915: enable scrambling Date: Wed, 8 Mar 2017 19:07:48 +0530 Message-ID: <1488980269-13046-6-git-send-email-shashank.sharma@intel.com> References: <1488980269-13046-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: <1488980269-13046-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, ander.conselvan.de.oliveira@intel.com, ville.syrjala@linux.intel.com Cc: jose.abreu@synopsys.com, daniel.vetter@intel.com, treding@nvidia.com List-Id: dri-devel@lists.freedesktop.org IEdlbWluaWxha2UgcGxhdGZvcm0gc3BvcnRzIGEgbmF0aXZlIEhETUkgMi4wIGNvbnRyb2xsZXIs IGFuZCBpcwogY2FwYWJsZSBvZiBkcml2aW5nIHBpeGVsLWNsb2NrcyB1cHRvIDU5NE1oei4gSERN SSAyLjAgc3BlYwogbWVuZGF0ZXMgc2NyYW1ibGluZyBmb3IgdGhlc2UgaGlnaGVyIGNsb2Nrcywg Zm9yIHJlZHVjZWQgUkYgZm9vdHByaW50LgoKIFRoaXMgcGF0Y2ggY2hlY2tzIGlmIHRoZSBtb25p dG9yIHN1cHBvcnRzIHNjcmFtYmxpbmcsIGFuZCBpZiByZXF1aXJlZCwKIGVuYWJsZXMgaXQgZHVy aW5nIHRoZSBtb2Rlc2V0LgoKIFYyOiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gVmls bGU6CiAtIERvIG5vdCB0cmFjayBzY3JhbWJsaW5nIHN0YXR1cyBpbiBEUk0gbGF5ZXIsIHRyYWNr IHNvbWV3aGVyZSBpbgogICBkcml2ZXIgbGlrZSBpbiBpbnRlbF9jcnRjX3N0YXRlLgogLSBEb24n dCB0YWxrIHRvIG1vbml0b3IgYXQgc3VjaCBhIGxvdyBsYXllciwgc2V0IG1vbml0b3Igc2NyYW1i bGluZwogICBpbiBpbnRlbF9lbmFibGVfZGRpKCkgYmVmb3JlIGVuYWJsaW5nIHRoZSBwb3J0LgoK IFYzOiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gSmFuaQogLSBJbiBjb21tZW50cywg ZnVuY3Rpb24gbmFtZXMsIHVzZSAic2luayIgaW5zdGVhZCBvZiAibW9uaXRvciIsCiAgIHNvIHRo YXQgdGhlIGltcGxlbWVudGF0aW9uIGNvdWxkIGJlIGNsb3NlIHRvIHRoZSBsYW5ndWFnZSBvZgog ICBIRE1JIHNwZWMuCgpWNDogQWRkcmVzc2VkIHJldmlldyBjb21tZW50IGZyb20gTWFhcnRlbgog LSBzY3JhbWJsaW5nIC0+IGhkbWlfc2NyYW1ibGluZwogLSBoaWdoX3RtZHNfY2xvY2tfcmF0aW8g LT4gaGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW8KClY1OiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1l bnRzIGZyb20gVmlsbGUgYW5kIEFuZGVyCiAtIERvIG5vdCBtb2RpZml5IHRoZSBjcnRjX3N0YXRl IGFmdGVyIGNvbXB1dGVfY29uZmlnLiBNb3ZlIGFsbAogICBzY3JhbWJsaW5nIGFuZCB0bWRzX2Ns b2NrX3JhdGlvIGNhbGN1dGF0aW9ucyB0byBjb21wdXRlX2NvbmZpZy4KIC0gV2hpbGUgc2V0dGlu ZyBzY3JhbWJsaW5nIGZvciBzb3VyY2Uvc2luaywgZG8gbm90IGNoZWNrIHRoZQogICBjb25kaXRp b25zIGFnYWluLCBqdXN0IGdvIGJ5IHRoZSBjcnRjX3N0YXRlIGZsYWdzLiBUaGlzIHdpbGwKICAg c2ltcGx5ZnkgdGhlIGNvbmRpdGlvbiBjaGVja3MuCgpWNjogQWRkcmVzc2VkIHJldmlldyBjb21t ZW50cyBmcm9tIFZpbGxlCiAtIERvIG5vdCBhZGQgSVNfR0xLIGNoZWNrIGluIGRpc2FibGUvZW5h YmxlIGZ1bmN0aW9uLCBpbnN0ZWFkIGFkZCBpdAogICBpbiBjb21wdXRlX2NvbmZpZywgd2hpbGUg c2V0dGluZyBzdGF0ZSBmbGFncy4KIC0gUmVtb3ZlIHVubmVjZXNzYXJ5IHBhcmFudGhlc2lzLgog LSBTaW1wbHlmeSBoYW5kbGVfc2lua19zY3JhbWJsaW5nIGZ1bmN0aW9uIGFzIHN1Z2dlc3RlZC4K IC0gQWRkIHJlYWRvdXQgY29kZSBmb3Igc2NyYW1ibGluZyBzdGF0dXMgaW4gZ2V0X2RkaV9jb25m aWcgYW5kIGFkZCBhCiAgIGNoZWNrIGZvciB0aGUgc2FtZSBpbiBwaXBlX2NvbmZpZ19jb21wYXJl LgoKVjc6IEFkZHJlc3NlZCByZXZpZXcgY29tbWVudHMgZnJvbSBBbmRlci9WaWxsZQogLSBObyBz ZXBhcmF0ZSBmdW5jdGlvbiBmb3Igc291cmNlIHNjcmFtYmxpbmcsIG1ha2UgaXQgaW5saW5lCiAt IEFsaWduIHRoZSBsYXN0IGxpbmUgb2YgdGhlIG1hY3JvIFRSQU5TX0RESV9IRE1JX1NDUkFNQkxJ TkdfTUFTSwogLSBEbyBub3QgYWRkIHBsYXRmb3JtIGNoZWNrIHdoaWxlIHNldHRpbmcgc291cmNl IHNjcmFtYmxpbmcKIC0gVXNlIHBpcGVfY29uZmlnIGluc3RlYWQgb2YgY3J0Yy0+Y29uZmlnIHRv IHNldCBzaW5rIHNjcmFtYmxpbmcKIC0gVG8gcmVhZG91dCBzY3JhbWJsaW5nIHN0YXR1cywgQ29t cGFyZSB3aXRoIFNDUkFNQkxJTkdfTUFTSwogICBub3QgYW55IG9mIGl0cyBiaXRzCiAtIFJlbW92 ZSBwbGF0Zm9ybSBjaGVjayBpbiBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlIHdoaWxlIGNoZWNr aW5nCiAgIHNjcmFtYmxpbmcgc3RhdHVzCgpWODogRml4ZWQgbWVnZSBjb25mbGljdCwgQWRkcmVz c2VkIHJldmlldyBjb21tZW50cyBmcm9tIEFuZGVyCiAtIFJlbW92ZSB0aGUgZGVzY2lwdGlvbi9j b21tZW50IGFib3V0IHNjcmFtYmxpbmcgZm9tIHRoZSBjYWxsZXIsIG1vdmUKICAgaXQgdG8gdGhl IGZ1bmN0aW9uCiAtIE1vdmUgdGhlIElTX0dMSyBjaGVjayBpbnRvIHNjcmFtYmxpbmcgZnVuY3Rp b24KIC0gRml4IGFsaWdubWVudAoKU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFz aGFuay5zaGFybWFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmggICAgICB8ICA3ICsrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICB8 IDE5ICsrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAg MyArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgMTAgKysrKysrCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgfCA2MiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCBjYzg0M2Y5Li4yZDUwZmRjIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKQEAgLTc4MzAsNyArNzgzMCwxNCBAQCBlbnVtIHsKICNkZWZpbmUgIFRS QU5TX0RESV9FRFBfSU5QVVRfQl9PTk9GRgkoNTw8MTIpCiAjZGVmaW5lICBUUkFOU19ERElfRURQ X0lOUFVUX0NfT05PRkYJKDY8PDEyKQogI2RlZmluZSAgVFJBTlNfRERJX0RQX1ZDX1BBWUxPQURf QUxMT0MJKDE8PDgpCisjZGVmaW5lICBUUkFOU19ERElfSERNSV9TQ1JBTUJMRVJfQ1RTX0VOQUJM RSAoMTw8NykKKyNkZWZpbmUgIFRSQU5TX0RESV9IRE1JX1NDUkFNQkxFUl9SRVNFVF9GUkVRICgx PDw2KQogI2RlZmluZSAgVFJBTlNfRERJX0JGSV9FTkFCTEUJCSgxPDw0KQorI2RlZmluZSAgVFJB TlNfRERJX0hJR0hfVE1EU19DSEFSX1JBVEUJKDE8PDQpCisjZGVmaW5lICBUUkFOU19ERElfSERN SV9TQ1JBTUJMSU5HCSgxPDwwKQorI2RlZmluZSAgVFJBTlNfRERJX0hETUlfU0NSQU1CTElOR19N QVNLIChUUkFOU19ERElfSERNSV9TQ1JBTUJMRVJfQ1RTX0VOQUJMRSBcCisJCQkJCXwgVFJBTlNf RERJX0hETUlfU0NSQU1CTEVSX1JFU0VUX0ZSRVEgXAorCQkJCQl8IFRSQU5TX0RESV9IRE1JX1ND UkFNQkxJTkcpCiAKIC8qIERpc3BsYXlQb3J0IFRyYW5zcG9ydCBDb250cm9sICovCiAjZGVmaW5l IF9EUF9UUF9DVExfQQkJCTB4NjQwNDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKaW5kZXggMDQ2 NzY3Ni4uYjNlNGM0YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKQEAgLTEzMDksNiArMTMw OSwxMSBAQCB2b2lkIGludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCQkJdGVtcCB8PSBUUkFOU19ERElfTU9E RV9TRUxFQ1RfSERNSTsKIAkJZWxzZQogCQkJdGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1Rf RFZJOworCisJCWlmIChjcnRjX3N0YXRlLT5oZG1pX3NjcmFtYmxpbmcpCisJCQl0ZW1wIHw9IFRS QU5TX0RESV9IRE1JX1NDUkFNQkxJTkdfTUFTSzsKKwkJaWYgKGNydGNfc3RhdGUtPmhkbWlfaGln aF90bWRzX2Nsb2NrX3JhdGlvKQorCQkJdGVtcCB8PSBUUkFOU19ERElfSElHSF9UTURTX0NIQVJf UkFURTsKIAl9IGVsc2UgaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0FOQUxPRykgewogCQl0ZW1w IHw9IFRSQU5TX0RESV9NT0RFX1NFTEVDVF9GREk7CiAJCXRlbXAgfD0gKGNydGNfc3RhdGUtPmZk aV9sYW5lcyAtIDEpIDw8IDE7CkBAIC0xODgyLDYgKzE4ODcsOSBAQCBzdGF0aWMgdm9pZCBpbnRl bF9lbmFibGVfZGRpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAogCQlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9CiAJCQllbmNfdG9fZGlnX3Bv cnQoZW5jb2Rlcik7CiAKKwkJaW50ZWxfaGRtaV9oYW5kbGVfc2lua19zY3JhbWJsaW5nKGludGVs X2VuY29kZXIsCisJCQljb25uX3N0YXRlLT5jb25uZWN0b3IsIHBpcGVfY29uZmlnLCB0cnVlKTsK KwogCQkvKiBJbiBIRE1JL0RWSSBtb2RlLCB0aGUgcG9ydCB3aWR0aCwgYW5kIHN3aW5nL2VtcGhh c2lzIHZhbHVlcwogCQkgKiBhcmUgaWdub3JlZCBzbyBub3RoaW5nIHNwZWNpYWwgbmVlZHMgdG8g YmUgZG9uZSBiZXNpZGVzCiAJCSAqIGVuYWJsaW5nIHRoZSBwb3J0LgpAQCAtMTkxNCw2ICsxOTIy LDExIEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZGRpKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICppbnRlbF9lbmNvZGVyLAogCWlmIChvbGRfY3J0Y19zdGF0ZS0+aGFzX2F1ZGlvKQogCQlpbnRl bF9hdWRpb19jb2RlY19kaXNhYmxlKGludGVsX2VuY29kZXIpOwogCisJaWYgKHR5cGUgPT0gSU5U RUxfT1VUUFVUX0hETUkpIHsKKwkJaW50ZWxfaGRtaV9oYW5kbGVfc2lua19zY3JhbWJsaW5nKGlu dGVsX2VuY29kZXIsCisJCQlvbGRfY29ubl9zdGF0ZS0+Y29ubmVjdG9yLCBvbGRfY3J0Y19zdGF0 ZSwgZmFsc2UpOworCX0KKwogCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9FRFApIHsKIAkJc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsKIApAQCAt MjA0MCw2ICsyMDUzLDEyIEBAIHZvaWQgaW50ZWxfZGRpX2dldF9jb25maWcoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAKIAkJaWYgKGludGVsX2hkbWktPmluZm9mcmFtZV9lbmFibGVk KCZlbmNvZGVyLT5iYXNlLCBwaXBlX2NvbmZpZykpCiAJCQlwaXBlX2NvbmZpZy0+aGFzX2luZm9m cmFtZSA9IHRydWU7CisKKwkJaWYgKCh0ZW1wICYgVFJBTlNfRERJX0hETUlfU0NSQU1CTElOR19N QVNLKSA9PQorCQkJCVRSQU5TX0RESV9IRE1JX1NDUkFNQkxJTkdfTUFTSykKKwkJCXBpcGVfY29u ZmlnLT5oZG1pX3NjcmFtYmxpbmcgPSB0cnVlOworCQlpZiAodGVtcCAmIFRSQU5TX0RESV9ISUdI X1RNRFNfQ0hBUl9SQVRFKQorCQkJcGlwZV9jb25maWctPmhkbWlfaGlnaF90bWRzX2Nsb2NrX3Jh dGlvID0gdHJ1ZTsKIAkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSBUUkFOU19ERElfTU9ERV9T RUxFQ1RfRFZJOgogCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IDQ7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggZTc3Y2E3ZC4uZmI1ZTY3MCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTE3MDEsNiArMTE3MDEsOSBAQCBzdGF0aWMgdm9pZCBf X3ByaW50ZigzLCA0KQogCWlmICgoSU5URUxfR0VOKGRldl9wcml2KSA8IDggJiYgIUlTX0hBU1dF TEwoZGV2X3ByaXYpKSB8fAogCSAgICBJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVS UllWSUVXKGRldl9wcml2KSkKIAkJUElQRV9DT05GX0NIRUNLX0kobGltaXRlZF9jb2xvcl9yYW5n ZSk7CisKKwlQSVBFX0NPTkZfQ0hFQ0tfSShoZG1pX3NjcmFtYmxpbmcpOworCVBJUEVfQ09ORl9D SEVDS19JKGhkbWlfaGlnaF90bWRzX2Nsb2NrX3JhdGlvKTsKIAlQSVBFX0NPTkZfQ0hFQ0tfSSho YXNfaW5mb2ZyYW1lKTsKIAogCVBJUEVfQ09ORl9DSEVDS19JKGhhc19hdWRpbyk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCmluZGV4IDNhZjIwYzEuLjUwZDY4MGMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCkBAIC03MjksNiArNzI5LDEyIEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsK IAogCS8qIGJpdG1hc2sgb2YgdmlzaWJsZSBwbGFuZXMgKGVudW0gcGxhbmVfaWQpICovCiAJdTgg YWN0aXZlX3BsYW5lczsKKworCS8qIEhETUkgc2NyYW1ibGluZyBzdGF0dXMgKi8KKwlib29sIGhk bWlfc2NyYW1ibGluZzsKKworCS8qIEhETUkgSGlnaCBUTURTIGNoYXIgcmF0ZSByYXRpbyAqLwor CWJvb2wgaGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW87CiB9OwogCiBzdHJ1Y3QgaW50ZWxfY3J0 YyB7CkBAIC0xNjIzLDYgKzE2MjksMTAgQEAgdm9pZCBpbnRlbF9oZG1pX2luaXRfY29ubmVjdG9y KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogYm9vbCBpbnRlbF9o ZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAg ICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCSAgICAgICBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7Cit2b2lkIGludGVsX2hkbWlfaGFu ZGxlX3Npbmtfc2NyYW1ibGluZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwK KwkJCQkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNvbmZpZywKKwkJCQkJYm9vbCBlbmFibGUpOwogdm9pZCBpbnRlbF9kcF9k dWFsX21vZGVfc2V0X3RtZHNfb3V0cHV0KHN0cnVjdCBpbnRlbF9oZG1pICpoZG1pLCBib29sIGVu YWJsZSk7CiAKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCmluZGV4IGMyMTg0ZjcuLjQ1ODVh YTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs dWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4K ICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3NjZGNfaGVscGVy Lmg+CiAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+CiAj aW5jbHVkZSA8ZHJtL2ludGVsX2xwZV9hdWRpby5oPgpAQCAtMTMxNiw2ICsxMzE3LDcgQEAgYm9v bCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVu Y29kZXItPmJhc2UpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0IGRybV9z Y2RjICpzY2RjID0gJmNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhkbWkuc2Nk YzsKIAlpbnQgY2xvY2tfOGJwYyA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0 Y19jbG9jazsKIAlpbnQgY2xvY2tfMTJicGMgPSBjbG9ja184YnBjICogMyAvIDI7CiAJaW50IGRl c2lyZWRfYnBwOwpAQCAtMTM4NSw2ICsxMzg3LDE2IEBAIGJvb2wgaW50ZWxfaGRtaV9jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCXBpcGVfY29uZmlnLT5s YW5lX2NvdW50ID0gNDsKIAorCWlmIChzY2RjLT5zY3JhbWJsaW5nLnN1cHBvcnRlZCAmJiBJU19H RU1JTklMQUtFKGRldl9wcml2KSkgeworCQlpZiAoc2NkYy0+c2NyYW1ibGluZy5sb3dfcmF0ZXMp CisJCQlwaXBlX2NvbmZpZy0+aGRtaV9zY3JhbWJsaW5nID0gdHJ1ZTsKKworCQlpZiAocGlwZV9j b25maWctPnBvcnRfY2xvY2sgPiAzNDAwMDApIHsKKwkJCXBpcGVfY29uZmlnLT5oZG1pX3NjcmFt YmxpbmcgPSB0cnVlOworCQkJcGlwZV9jb25maWctPmhkbWlfaGlnaF90bWRzX2Nsb2NrX3JhdGlv ID0gdHJ1ZTsKKwkJfQorCX0KKwogCXJldHVybiB0cnVlOwogfQogCkBAIC0xNzk0LDYgKzE4MDYs NTYgQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCiAJaW50ZWxfaGRtaS0+YXNwZWN0X3JhdGlvID0gSERNSV9QSUNUVVJFX0FT UEVDVF9OT05FOwogfQogCisvKgorICogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHNjcmFtYmxpbmcg b24gSERNSSAyLjAgY2FwYWJsZSBzaW5rcy4KKyAqIElmIHJlcXVpcmVkIGNsb2NrIHJhdGUgaXMg PiAzNDAgTWh6ICYmIHNjcmFtYmxpbmcgaXMgc3VwcG9ydGVkIGJ5IHNpbmsKKyAqIGl0IGVuYWJs ZXMgc2NyYW1ibGluZy4gVGhpcyBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBlbmFibGluZyB0aGUg SERNSQorICogMi4wIHBvcnQsIGFzIHRoZSBzaW5rIGNhbiBjaG9vc2UgdG8gZGlzYWJsZSB0aGUg c2NyYW1ibGluZyBpZiBpdCBkb2Vzbid0CisgKiBkZXRlY3QgYSBzY3JhbWJsZWQgY2xvY2sgd2l0 aGluIDEwMCBtcy4KKyAqLwordm9pZCBpbnRlbF9oZG1pX2hhbmRsZV9zaW5rX3NjcmFtYmxpbmco c3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCisJCQkJICAgICAgIHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjb25maWcsCisJCQkJICAgICAgIGJvb2wgZW5hYmxlKQoreworCXN0cnVjdCBpbnRlbF9o ZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmludGVsX2VuY29kZXItPmJhc2Up OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNvbm5lY3Rvci0+ZGV2LT5k ZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX3NjcmFtYmxpbmcgKnNjcmFtYmxpbmcgPQorCQkJCSZj b25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZG1pLnNjZGMuc2NyYW1ibGluZzsKKwlzdHJ1Y3QgaTJj X2FkYXB0ZXIgKmFkcHRyID0gaW50ZWxfZ21idXNfZ2V0X2FkYXB0ZXIoZGV2X3ByaXYsCisJCQkJ CQkJICBpbnRlbF9oZG1pLT5kZGNfYnVzKTsKKwlib29sIHJldDsKKworCWlmICghc2NyYW1ibGlu Zy0+c3VwcG9ydGVkKQorCQlyZXR1cm47CisKKwlpZiAoIUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYp KQorCQlyZXR1cm47CisKKwlEUk1fREVCVUdfS01TKCJTZXR0aW5nIHNpbmsgc2NyYW1ibGluZyBm b3IgZW5jOiVzIGNvbm5lY3Rvcjolc1xuIiwKKwkJCWludGVsX2VuY29kZXItPmJhc2UubmFtZSwg Y29ubmVjdG9yLT5uYW1lKTsKKworCWlmIChjb25maWctPmhkbWlfaGlnaF90bWRzX2Nsb2NrX3Jh dGlvKSB7CisJCS8qIFNldCBUTURTIGJpdCBjbG9jayByYXRpbyB0byAxLzQwIG9yIDEvMTAgKi8K KwkJcmV0ID0gZHJtX3NjZGNfc2V0X2hpZ2hfdG1kc19jbG9ja19yYXRpbyhhZHB0ciwgZW5hYmxl KTsKKwkJaWYgKCFyZXQpIHsKKwkJCURSTV9FUlJPUigiU2V0IFRNRFMgcmF0aW8gZmFpbGVkXG4i KTsKKwkJCXJldHVybjsKKwkJfQorCX0KKworCWlmIChjb25maWctPmhkbWlfc2NyYW1ibGluZykg eworCQkvKiBFbmFibGUvZGlzYWJsZSBzaW5rIHNjcmFtYmxpbmcgKi8KKwkJcmV0ID0gZHJtX3Nj ZGNfc2V0X3NjcmFtYmxpbmcoYWRwdHIsIGVuYWJsZSk7CisJCWlmICghcmV0KSB7CisJCQlEUk1f RVJST1IoIlNldCBzaW5rIHNjcmFtYmxpbmcgZmFpbGVkXG4iKTsKKwkJCXJldHVybjsKKwkJfQor CX0KKworCURSTV9ERUJVR19LTVMoInNpbmsgc2NyYW1ibGluZyBoYW5kbGVkXG4iKTsKK30KKwog c3RhdGljIHU4IGludGVsX2hkbWlfZGRjX3BpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAJCQkgICAgIGVudW0gcG9ydCBwb3J0KQogewotLSAKMS45LjEKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=