From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v2 15/15] staging/mgakms: Update matroxfb driver code for DRM Date: Mon, 14 Oct 2019 16:04:16 +0200 Message-ID: <20191014140416.28517-16-tzimmermann@suse.de> References: <20191014140416.28517-1-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3752C6E520 for ; Mon, 14 Oct 2019 14:04:28 +0000 (UTC) In-Reply-To: <20191014140416.28517-1-tzimmermann@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: airlied@linux.ie, daniel@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, sean@poorly.run, b.zolnierkie@samsung.com, ajax@redhat.com, ville.syrjala@linux.intel.com, malat@debian.org, michel@daenzer.net Cc: gregkh@linuxfoundation.org, linux-fbdev@vger.kernel.org, Thomas Zimmermann , dri-devel@lists.freedesktop.org, corbet@lwn.net List-Id: dri-devel@lists.freedesktop.org V2l0aCB0aGUgdXBkYXRlLCBhbGwgZHJpdmVyIGNvZGUgY29taW5nIGZyb20gbWF0cm94ZmIgaXMg YnVpbGQKdW5jb25kaXRpb25hbGx5LiBUaGUgZHJpdmVyIHJlZ2lzdGVycyBpdHNlbGYgd2l0aCB0 aGUgbWdha21zIGRyaXZlciwKaW5zdGVhZCBvZiB0aGUgZmJkZXYgY29yZS4KClNpZ25lZC1vZmYt Ynk6IFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPgotLS0KIGRyaXZlcnMv c3RhZ2luZy9tZ2FrbXMvS2NvbmZpZyAgICAgICAgICAgIHwgIDUgKysKIGRyaXZlcnMvc3RhZ2lu Zy9tZ2FrbXMvTWFrZWZpbGUgICAgICAgICAgIHwgMTEgKysrKwogZHJpdmVycy9zdGFnaW5nL21n YWttcy9tYXRyb3hmYl9EQUMxMDY0LmMgfCA3NyArKysrKysrLS0tLS0tLS0tLS0tLS0tLQogZHJp dmVycy9zdGFnaW5nL21nYWttcy9tYXRyb3hmYl9EQUMxMDY0LmggfCAgNiAtLQogZHJpdmVycy9z dGFnaW5nL21nYWttcy9tYXRyb3hmYl9UaTMwMjYuYyAgfCAgMiAtCiBkcml2ZXJzL3N0YWdpbmcv bWdha21zL21hdHJveGZiX1RpMzAyNi5oICB8ICAyIC0KIGRyaXZlcnMvc3RhZ2luZy9tZ2FrbXMv bWF0cm94ZmJfYmFzZS5jICAgIHwgMjkgKysrLS0tLS0tCiBkcml2ZXJzL3N0YWdpbmcvbWdha21z L21hdHJveGZiX2Jhc2UuaCAgICB8IDIwICsrLS0tLQogZHJpdmVycy9zdGFnaW5nL21nYWttcy9t YXRyb3hmYl9nNDUwLmggICAgfCAgNSAtLQogOSBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25z KCspLCAxMDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21nYWtt cy9LY29uZmlnIGIvZHJpdmVycy9zdGFnaW5nL21nYWttcy9LY29uZmlnCmluZGV4IGRlMjNlNzYz MTdiZC4uNjZjNWIzYjg2NjlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWdha21zL0tj b25maWcKKysrIGIvZHJpdmVycy9zdGFnaW5nL21nYWttcy9LY29uZmlnCkBAIC00LDYgKzQsMTEg QEAgY29uZmlnIERSTV9NR0FLTVMKIAlzZWxlY3QgRFJNX0ZCQ09OVl9IRUxQRVIKIAlzZWxlY3Qg RFJNX0dFTV9TSE1FTV9IRUxQRVIKIAlzZWxlY3QgRFJNX0tNU19IRUxQRVIKKwlzZWxlY3QgRkJf Q0ZCX0NPUFlBUkVBCisJc2VsZWN0IEZCX0NGQl9GSUxMUkVDVAorCXNlbGVjdCBGQl9DRkJfSU1B R0VCTElUCisJc2VsZWN0IEZCX01BQ01PREVTIGlmIFBQQ19QTUFDCisJc2VsZWN0IEZCX1RJTEVC TElUVElORwogCWhlbHAKIAkgIENob29zZSB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBhIE1hdHJv eCBNaWxsZW5uaXVtLAogCSAgTWF0cm94IE1pbGxlbm5pdW0gSUksIE1hdHJveCBNeXN0aXF1ZSwg TWF0cm94IE15c3RpcXVlIDIyMCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZ2FrbXMv TWFrZWZpbGUgYi9kcml2ZXJzL3N0YWdpbmcvbWdha21zL01ha2VmaWxlCmluZGV4IDY1Njk1ZjA0 ZWI3Zi4uYjM2OGY4YTVlMzhhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWdha21zL01h a2VmaWxlCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZ2FrbXMvTWFrZWZpbGUKQEAgLTMsNCArMywx NSBAQAogbWdha21zLXkJOj0gbWdhX2RldmljZS5vIFwKIAkJICAgbWdhX2Rydi5vCiAKKyMgT2xk IG1hdHJveGZiIGRyaXZlciBjb2RlLiBLZWVwIHRoaXMgc2VwYXJhdGUgYW5kCisjIHJlbW92ZSBp dCBhZnRlciBjb252ZXJzaW9uLgorbWdha21zLXkJKz0gZzQ1MF9wbGwubyBcCisJCSAgIGkyYy1t YXRyb3hmYi5vIFwKKwkJICAgbWF0cm94ZmJfYWNjZWwubyBcCisJCSAgIG1hdHJveGZiX2Jhc2Uu byBcCisJCSAgIG1hdHJveGZiX0RBQzEwNjQubyBcCisJCSAgIG1hdHJveGZiX2c0NTAubyBcCisJ CSAgIG1hdHJveGZiX21pc2MubyBcCisJCSAgIG1hdHJveGZiX1RpMzAyNi5vCisKIG9iai0kKENP TkZJR19EUk1fTUdBS01TKQkrPSBtZ2FrbXMubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5n L21nYWttcy9tYXRyb3hmYl9EQUMxMDY0LmMgYi9kcml2ZXJzL3N0YWdpbmcvbWdha21zL21hdHJv eGZiX0RBQzEwNjQuYwppbmRleCBiMzgwYTM5M2NiYzMuLjZiYjIxNGM1NDhhZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9zdGFnaW5nL21nYWttcy9tYXRyb3hmYl9EQUMxMDY0LmMKKysrIGIvZHJpdmVy cy9zdGFnaW5nL21nYWttcy9tYXRyb3hmYl9EQUMxMDY0LmMKQEAgLTE5LDcgKzE5LDYgQEAKICNp bmNsdWRlICJnNDUwX3BsbC5oIgogI2luY2x1ZGUgPGxpbnV4L21hdHJveGZiLmg+CiAKLSNpZmRl ZiBORUVEX0RBQzEwNjQKICNkZWZpbmUgb3V0REFDMTA2NCBtYXRyb3hmYl9EQUNfb3V0CiAjZGVm aW5lIGluREFDMTA2NCBtYXRyb3hmYl9EQUNfaW4KIApAQCAtNDIsMTEgKzQxLDExIEBAIHN0YXRp YyB2b2lkIERBQzEwNjRfY2FsY2Nsb2NrKGNvbnN0IHN0cnVjdCBtYXRyb3hfZmJfaW5mbyAqbWlu Zm8sCiAJdW5zaWduZWQgaW50IHA7CiAKIAlEQkcoX19mdW5jX18pCi0JCisKIAkvKiBvbmx5IGZv ciBkZXZpY2VzIG9sZGVyIHRoYW4gRzQ1MCAqLwogCiAJZnZjbyA9IFBMTF9jYWxjY2xvY2sobWlu Zm8sIGZyZXEsIGZtYXgsIGluLCBmZWVkLCAmcCk7Ci0JCisKIAlwID0gKDEgPDwgcCkgLSAxOwog CWlmIChmdmNvIDw9IDEwMDAwMCkKIAkJOwpAQCAtMTYwLDcgKzE1OSw2IEBAIHN0YXRpYyB2b2lk IERBQzEwNjRfc2V0bWNsayhzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvLCBpbnQgb3NjaW5m bywKIAlody0+TVhvcHRpb25SZWcgPSBteDsKIH0KIAotI2lmZGVmIENPTkZJR19GQl9NQVRST1hf Rwogc3RhdGljIHZvaWQgZzQ1MF9zZXRfcGxscyhzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZv KQogewogCXVfaW50MzJfdCBjMl9jdGw7CkBAIC0xNjgsNyArMTY2LDcgQEAgc3RhdGljIHZvaWQg ZzQ1MF9zZXRfcGxscyhzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvKQogCXN0cnVjdCBtYXRy b3hfaHdfc3RhdGUgKmh3ID0gJm1pbmZvLT5odzsKIAlpbnQgcGl4ZWxtbnA7CiAJaW50IHZpZGVv bW5wOwotCQorCiAJYzJfY3RsID0gaHctPmNydGMyLmN0bCAmIH4weDQwMDc7CS8qIENsZWFyIFBM TCArIGVuYWJsZSBmb3IgQ1JUQzIgKi8KIAljMl9jdGwgfD0gMHgwMDAxOwkJCS8qIEVuYWJsZSBD UlRDMiAqLwogCWh3LT5EQUNyZWdbUE9TMTA2NF9YUFdSQ1RSTF0gJj0gfjB4MDI7CS8qIFN0b3Ag VklERU8gUExMICovCkBAIC0xOTEsNyArMTg5LDcgQEAgc3RhdGljIHZvaWQgZzQ1MF9zZXRfcGxs cyhzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvKQogCQl9CiAJCWMyX2N0bCB8PSAgMHgwMDA2 OwkvKiBVc2UgdmlkZW8gUExMICovCiAJCWh3LT5EQUNyZWdbUE9TMTA2NF9YUFdSQ1RSTF0gfD0g MHgwMjsKLQkJCisKIAkJb3V0REFDMTA2NChtaW5mbywgTTEwNjRfWFBXUkNUUkwsIGh3LT5EQUNy ZWdbUE9TMTA2NF9YUFdSQ1RSTF0pOwogCQltYXRyb3hmYl9nNDUwX3NldHBsbF9jb25kKG1pbmZv LCB2aWRlb21ucCwgTV9WSURFT19QTEwpOwogCX0KQEAgLTE5OSw3ICsxOTcsNyBAQCBzdGF0aWMg dm9pZCBnNDUwX3NldF9wbGxzKHN0cnVjdCBtYXRyb3hfZmJfaW5mbyAqbWluZm8pCiAJaHctPkRB Q3JlZ1tQT1MxMDY0X1hQSVhDTEtDVFJMXSAmPSB+TTEwNjRfWFBJWENMS0NUUkxfUExMX1VQOwog CWlmIChwaXhlbG1ucCA+PSAwKSB7CiAJCWh3LT5EQUNyZWdbUE9TMTA2NF9YUElYQ0xLQ1RSTF0g fD0gTTEwNjRfWFBJWENMS0NUUkxfUExMX1VQOwotCQkKKwogCQlvdXREQUMxMDY0KG1pbmZvLCBN MTA2NF9YUElYQ0xLQ1RSTCwgaHctPkRBQ3JlZ1tQT1MxMDY0X1hQSVhDTEtDVFJMXSk7CiAJCW1h dHJveGZiX2c0NTBfc2V0cGxsX2NvbmQobWluZm8sIHBpeGVsbW5wLCBNX1BJWEVMX1BMTF9DKTsK IAl9CkBAIC0yNTEsNyArMjQ5LDYgQEAgc3RhdGljIHZvaWQgZzQ1MF9zZXRfcGxscyhzdHJ1Y3Qg bWF0cm94X2ZiX2luZm8gKm1pbmZvKQogCQl9CiAJfQogfQotI2VuZGlmCiAKIHZvaWQgREFDMTA2 NF9nbG9iYWxfaW5pdChzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvKQogewpAQCAtMjYwLDcg KzI1Nyw2IEBAIHZvaWQgREFDMTA2NF9nbG9iYWxfaW5pdChzdHJ1Y3QgbWF0cm94X2ZiX2luZm8g Km1pbmZvKQogCWh3LT5EQUNyZWdbUE9TMTA2NF9YTUlTQ0NUUkxdICY9IE0xMDY0X1hNSVNDQ1RS TF9EQUNfV0lEVEhNQVNLOwogCWh3LT5EQUNyZWdbUE9TMTA2NF9YTUlTQ0NUUkxdIHw9IE0xMDY0 X1hNSVNDQ1RSTF9MVVRfRU47CiAJaHctPkRBQ3JlZ1tQT1MxMDY0X1hQSVhDTEtDVFJMXSA9IE0x MDY0X1hQSVhDTEtDVFJMX1BMTF9VUCB8IE0xMDY0X1hQSVhDTEtDVFJMX0VOIHwgTTEwNjRfWFBJ WENMS0NUUkxfU1JDX1BMTDsKLSNpZmRlZiBDT05GSUdfRkJfTUFUUk9YX0cKIAlpZiAobWluZm8t PmRldmZsYWdzLmc0NTBkYWMpIHsKIAkJaHctPkRBQ3JlZ1tQT1MxMDY0X1hQV1JDVFJMXSA9IDB4 MUY7CS8qIHBvd2VydXAgZXZlcnl0aGluZyAqLwogCQlody0+REFDcmVnW1BPUzEwNjRfWE9VVFBV VENPTk5dID0gMHgwMDsJLyogZGlzYWJsZSBvdXRwdXRzICovCkBAIC0zMDIsMTUgKzI5OCwxNCBA QCB2b2lkIERBQzEwNjRfZ2xvYmFsX2luaXQoc3RydWN0IG1hdHJveF9mYl9pbmZvICptaW5mbykK IAkJCQkgICBwb3dlcm9mZiBUTURTLiBCdXQgaWYgd2UgYm9vdCB3aXRoIERGUCBjb25uZWN0ZWQs CiAJCQkJICAgVE1EUyBnZW5lcmF0ZWQgY2xvY2tzIGFyZSB1c2VkIGluc3RlYWQgb2YgQUxMIHBp eGNsb2NrcwogCQkJCSAgIGF2YWlsYWJsZS4uLiBJZiBzb21lb25lIGtub3dzIHdoaWNoIHJlZ2lz dGVyCi0JCQkJICAgaGFuZGxlcyBpdCwgcGxlYXNlIHJldmVhbCB0aGlzIHNlY3JldCB0byBtZS4u LiAqLwkJCQorCQkJCSAgIGhhbmRsZXMgaXQsIHBsZWFzZSByZXZlYWwgdGhpcyBzZWNyZXQgdG8g bWUuLi4gKi8KIAkJCQlody0+REFDcmVnW1BPUzEwNjRfWFBXUkNUUkxdICY9IH4weDA0OwkJLyog UG93ZXJvZmYgVE1EUyAqLwotI2VuZGlmCQkJCQorI2VuZGlmCiAJCQkJYnJlYWs7CiAJCX0KIAkJ LyogTm93IHNldCB0aW1taW5nIHJlbGF0ZWQgdmFyaWFibGVzLi4uICovCiAJCWc0NTBfc2V0X3Bs bHMobWluZm8pOwogCX0gZWxzZQotI2VuZGlmCiAJewogCQlpZiAobWluZm8tPm91dHB1dHNbMV0u c3JjID09IE1BVFJPWEZCX1NSQ19DUlRDMSkgewogCQkJaHctPkRBQ3JlZ1tQT1MxMDY0X1hQSVhD TEtDVFJMXSA9IE0xMDY0X1hQSVhDTEtDVFJMX1BMTF9VUCB8IE0xMDY0X1hQSVhDTEtDVFJMX0VO IHwgTTEwNjRfWFBJWENMS0NUUkxfU1JDX0VYVDsKQEAgLTUxMCw3ICs1MDUsNiBAQCBzdGF0aWMg c3RydWN0IG1hdHJveF9hbHRvdXQgbTEwNjQgPSB7CiAJLmNvbXB1dGUgPSBtMTA2NF9jb21wdXRl LAogfTsKIAotI2lmZGVmIENPTkZJR19GQl9NQVRST1hfRwogc3RhdGljIGludCBnNDUwX2NvbXB1 dGUodm9pZCogb3V0LCBzdHJ1Y3QgbXlfdGltbWluZyogbSkgewogI2RlZmluZSBtaW5mbyAoKHN0 cnVjdCBtYXRyb3hfZmJfaW5mbyopb3V0KQogCWlmIChtLT5tbnAgPCAwKSB7CkBAIC01MjcsMTEg KzUyMSw3IEBAIHN0YXRpYyBzdHJ1Y3QgbWF0cm94X2FsdG91dCBnNDUwb3V0ID0gewogCS5uYW1l CSA9ICJQcmltYXJ5IG91dHB1dCIsCiAJLmNvbXB1dGUgPSBnNDUwX2NvbXB1dGUsCiB9OwotI2Vu ZGlmCiAKLSNlbmRpZiAvKiBORUVEX0RBQzEwNjQgKi8KLQotI2lmZGVmIENPTkZJR19GQl9NQVRS T1hfTVlTVElRVUUKIHN0YXRpYyBpbnQgTUdBMTA2NF9pbml0KHN0cnVjdCBtYXRyb3hfZmJfaW5m byAqbWluZm8sIHN0cnVjdCBteV90aW1taW5nICptKQogewogCXN0cnVjdCBtYXRyb3hfaHdfc3Rh dGUgKmh3ID0gJm1pbmZvLT5odzsKQEAgLTU1Miw5ICs1NDIsNyBAQCBzdGF0aWMgaW50IE1HQTEw NjRfaW5pdChzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvLCBzdHJ1Y3QgbXlfdGltbWluZyAq bSkKIAlpZiAoREFDMTA2NF9pbml0XzIobWluZm8sIG0pKSByZXR1cm4gMTsKIAlyZXR1cm4gMDsK IH0KLSNlbmRpZgogCi0jaWZkZWYgQ09ORklHX0ZCX01BVFJPWF9HCiBzdGF0aWMgaW50IE1HQUcx MDBfaW5pdChzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvLCBzdHJ1Y3QgbXlfdGltbWluZyAq bSkKIHsKIAlzdHJ1Y3QgbWF0cm94X2h3X3N0YXRlICpodyA9ICZtaW5mby0+aHc7CkBAIC01NzYs OSArNTY0LDcgQEAgc3RhdGljIGludCBNR0FHMTAwX2luaXQoc3RydWN0IG1hdHJveF9mYl9pbmZv ICptaW5mbywgc3RydWN0IG15X3RpbW1pbmcgKm0pCiAJaWYgKERBQzEwNjRfaW5pdF8yKG1pbmZv LCBtKSkgcmV0dXJuIDE7CiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYJLyogRyAqLwogCi0jaWZkZWYg Q09ORklHX0ZCX01BVFJPWF9NWVNUSVFVRQogc3RhdGljIHZvaWQgTUdBMTA2NF9yYW1kYWNfaW5p dChzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvKQogewogCkBAIC01OTYsOSArNTgyLDcgQEAg c3RhdGljIHZvaWQgTUdBMTA2NF9yYW1kYWNfaW5pdChzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1p bmZvKQogCS8qIG1heWJlIGNtZGxpbmUgTUNMSz0gPywgZG9jIHNheXMgZ2Nsaz00NE1IeiwgbWNs az02Nk1Iei4uLiBpdCB3YXMgNTUvODMgd2l0aCBvbGQgdmFsdWVzICovCiAJREFDMTA2NF9zZXRt Y2xrKG1pbmZvLCBEQUMxMDY0X09QVF9NRElWMiB8IERBQzEwNjRfT1BUX0dESVYzIHwgREFDMTA2 NF9PUFRfU0NMS19QTEwsIDEzMzMzMyk7CiB9Ci0jZW5kaWYKIAotI2lmZGVmIENPTkZJR19GQl9N QVRST1hfRwogLyogQklPUyBlbnZpcm9uICovCiBzdGF0aWMgaW50IHg3QUY0ID0gMHgxMDsJLyog ZmxhZ3MsIG1heWJlIDB4MTAgPSBTRFJBTSwgMHgwMCA9IFNHUkFNPz8/ICovCiAJCQkJLyogRzEw MCB3YW50cyAweDEwLCBHMjAwIFNHUkFNIGRvZXMgbm90IGNhcmUuLi4gKi8KQEAgLTY2Miw5ICs2 NDYsNyBAQCBzdGF0aWMgdm9pZCBNR0FHMTAwX3NldFBpeENsb2NrKGNvbnN0IHN0cnVjdCBtYXRy b3hfZmJfaW5mbyAqbWluZm8sIGludCBmbGFncywKIAlEQUMxMDY0X2NhbGNjbG9jayhtaW5mbywg ZnJlcSwgbWluZm8tPm1heF9waXhlbF9jbG9jaywgJm0sICZuLCAmcCk7CiAJTUdBRzEwMF9wcm9n UGl4Q2xvY2sobWluZm8sIGZsYWdzLCBtLCBuLCBwKTsKIH0KLSNlbmRpZgogCi0jaWZkZWYgQ09O RklHX0ZCX01BVFJPWF9NWVNUSVFVRQogc3RhdGljIGludCBNR0ExMDY0X3ByZWluaXQoc3RydWN0 IG1hdHJveF9mYl9pbmZvICptaW5mbykKIHsKIAlzdGF0aWMgY29uc3QgaW50IHZ4cmVzX215c3Rp cXVlW10gPSB7IDUxMiwgICAgICAgIDY0MCwgNzY4LCAgODAwLCAgODMyLCAgOTYwLApAQCAtNzEw LDkgKzY5Miw3IEBAIHN0YXRpYyB2b2lkIE1HQTEwNjRfcmVzZXQoc3RydWN0IG1hdHJveF9mYl9p bmZvICptaW5mbykKIAogCU1HQTEwNjRfcmFtZGFjX2luaXQobWluZm8pOwogfQotI2VuZGlmCiAK LSNpZmRlZiBDT05GSUdfRkJfTUFUUk9YX0cKIHN0YXRpYyB2b2lkIGc0NTBfbWNsa19pbml0KHN0 cnVjdCBtYXRyb3hfZmJfaW5mbyAqbWluZm8pCiB7CiAJLyogc3dpdGNoIGFsbCBjbG9ja3MgdG8g UENJIHNvdXJjZSAqLwpAQCAtNzI3LDE0ICs3MDcsMTQgQEAgc3RhdGljIHZvaWQgZzQ1MF9tY2xr X2luaXQoc3RydWN0IG1hdHJveF9mYl9pbmZvICptaW5mbykKIAl9IGVsc2UgewogCQl1bnNpZ25l ZCBsb25nIGZsYWdzOwogCQl1bnNpZ25lZCBpbnQgcHdyOwotCQkKKwogCQltYXRyb3hmYl9EQUNf bG9ja19pcnFzYXZlKGZsYWdzKTsKIAkJcHdyID0gaW5EQUMxMDY0KG1pbmZvLCBNMTA2NF9YUFdS Q1RSTCkgJiB+MHgwMjsKIAkJb3V0REFDMTA2NChtaW5mbywgTTEwNjRfWFBXUkNUUkwsIHB3cik7 CiAJCW1hdHJveGZiX0RBQ191bmxvY2tfaXJxcmVzdG9yZShmbGFncyk7CiAJfQogCW1hdHJveGZi X2c0NTBfc2V0Y2xrKG1pbmZvLCBtaW5mby0+dmFsdWVzLnBsbC5zeXN0ZW0sIE1fU1lTVEVNX1BM TCk7Ci0JCisKIAkvKiBzd2l0Y2ggY2xvY2tzIHRvIHRoZWlyIHJlYWwgUExMIHNvdXJjZShzKSAq LwogCXBjaV93cml0ZV9jb25maWdfZHdvcmQobWluZm8tPnBjaWRldiwgUENJX09QVElPTl9SRUcs IG1pbmZvLT5ody5NWG9wdGlvblJlZyB8IDQpOwogCXBjaV93cml0ZV9jb25maWdfZHdvcmQobWlu Zm8tPnBjaWRldiwgUENJX09QVElPTjNfUkVHLCBtaW5mby0+dmFsdWVzLnJlZy5vcHQzKTsKQEAg LTc0NywxNSArNzI3LDE1IEBAIHN0YXRpYyB2b2lkIGc0NTBfbWVtb3J5X2luaXQoc3RydWN0IG1h dHJveF9mYl9pbmZvICptaW5mbykKIAkvKiBkaXNhYmxlIG1lbW9yeSByZWZyZXNoICovCiAJbWlu Zm8tPmh3Lk1Yb3B0aW9uUmVnICY9IH4weDAwMUY4MDAwOwogCXBjaV93cml0ZV9jb25maWdfZHdv cmQobWluZm8tPnBjaWRldiwgUENJX09QVElPTl9SRUcsIG1pbmZvLT5ody5NWG9wdGlvblJlZyk7 Ci0JCisKIAkvKiBzZXQgbWVtb3J5IGludGVyZmFjZSBwYXJhbWV0ZXJzICovCiAJbWluZm8tPmh3 Lk1Yb3B0aW9uUmVnICY9IH4weDAwMjA3RTAwOwogCW1pbmZvLT5ody5NWG9wdGlvblJlZyB8PSAw eDAwMjA3RTAwICYgbWluZm8tPnZhbHVlcy5yZWcub3B0OwogCXBjaV93cml0ZV9jb25maWdfZHdv cmQobWluZm8tPnBjaWRldiwgUENJX09QVElPTl9SRUcsIG1pbmZvLT5ody5NWG9wdGlvblJlZyk7 CiAJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChtaW5mby0+cGNpZGV2LCBQQ0lfT1BUSU9OMl9SRUcs IG1pbmZvLT52YWx1ZXMucmVnLm9wdDIpOwotCQorCiAJbWdhX291dGwoTV9DVExXVFNULCBtaW5m by0+dmFsdWVzLnJlZy5tY3Rsd3RzdCk7Ci0JCisKIAkvKiBmaXJzdCBzZXQgdXAgbWVtb3J5IGlu dGVyZmFjZSB3aXRoIGRpc2FibGVkIG1lbW9yeSBpbnRlcmZhY2UgY2xvY2tzICovCiAJcGNpX3dy aXRlX2NvbmZpZ19kd29yZChtaW5mby0+cGNpZGV2LCBQQ0lfTUVNTUlTQ19SRUcsIG1pbmZvLT52 YWx1ZXMucmVnLm1lbW1pc2MgJiB+MHg4MDAwMDAwMFUpOwogCW1nYV9vdXRsKE1fTUVNUkRCSywg bWluZm8tPnZhbHVlcy5yZWcubWVtcmRiayk7CkBAIC03NjQsMjUgKzc0NCwyNSBAQCBzdGF0aWMg dm9pZCBnNDUwX21lbW9yeV9pbml0KHN0cnVjdCBtYXRyb3hfZmJfaW5mbyAqbWluZm8pCiAJcGNp X3dyaXRlX2NvbmZpZ19kd29yZChtaW5mby0+cGNpZGV2LCBQQ0lfTUVNTUlTQ19SRUcsIG1pbmZv LT52YWx1ZXMucmVnLm1lbW1pc2MgfCAweDgwMDAwMDAwVSk7CiAKIAl1ZGVsYXkoMjAwKTsKLQkK KwogCWlmIChtaW5mby0+dmFsdWVzLm1lbW9yeS5kZHIgJiYgKCFtaW5mby0+dmFsdWVzLm1lbW9y eS5lbXJzd2VuIHx8ICFtaW5mby0+dmFsdWVzLm1lbW9yeS5kbGwpKSB7CiAJCW1nYV9vdXRsKE1f TUVNUkRCSywgbWluZm8tPnZhbHVlcy5yZWcubWVtcmRiayAmIH4weDEwMDApOwogCX0KIAltZ2Ff b3V0bChNX01BQ0NFU1MsIG1pbmZvLT52YWx1ZXMucmVnLm1hY2Nlc3MgfCAweDgwMDApOwotCQor CiAJdWRlbGF5KDIwMCk7Ci0JCisKIAltaW5mby0+aHcuTVhvcHRpb25SZWcgfD0gMHgwMDFGODAw MCAmIG1pbmZvLT52YWx1ZXMucmVnLm9wdDsKIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKG1pbmZv LT5wY2lkZXYsIFBDSV9PUFRJT05fUkVHLCBtaW5mby0+aHcuTVhvcHRpb25SZWcpOwotCQorCiAJ LyogdmFsdWUgaXMgd3JpdHRlbiB0byBtZW1vcnkgY2hpcHMgb25seSBpZiBvbGQgIT0gbmV3ICov CiAJbWdhX291dGwoTV9QTE5XVCwgMCk7CiAJbWdhX291dGwoTV9QTE5XVCwgfjApOwotCQorCiAJ aWYgKG1pbmZvLT52YWx1ZXMucmVnLm1jdGx3dHN0ICE9IG1pbmZvLT52YWx1ZXMucmVnLm1jdGx3 dHN0X2NvcmUpIHsKIAkJbWdhX291dGwoTV9DVExXVFNULCBtaW5mby0+dmFsdWVzLnJlZy5tY3Rs d3RzdF9jb3JlKTsKIAl9Ci0JCisKIH0KIAogc3RhdGljIHZvaWQgZzQ1MF9wcmVpbml0KHN0cnVj dCBtYXRyb3hfZmJfaW5mbyAqbWluZm8pCkBAIC03OTAsNyArNzcwLDcgQEAgc3RhdGljIHZvaWQg ZzQ1MF9wcmVpbml0KHN0cnVjdCBtYXRyb3hfZmJfaW5mbyAqbWluZm8pCiAJdV9pbnQzMl90IGMy Y3RsOwogCXVfaW50OF90IGN1cmN0bDsKIAl1X2ludDhfdCBjMWN0bDsKLQkKKwogCS8qIG1pbmZv LT5ody5NWG9wdGlvblJlZyA9IG1pbmZvLT52YWx1ZXMucmVnLm9wdDsgKi8KIAltaW5mby0+aHcu TVhvcHRpb25SZWcgJj0gMHhDMDAwMDEwMDsKIAltaW5mby0+aHcuTVhvcHRpb25SZWcgfD0gMHgw MDAwMDAyMDsKQEAgLTgwNCw3ICs3ODQsNyBAQCBzdGF0aWMgdm9pZCBnNDUwX3ByZWluaXQoc3Ry dWN0IG1hdHJveF9mYl9pbmZvICptaW5mbykKIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKG1pbmZv LT5wY2lkZXYsIFBDSV9PUFRJT05fUkVHLCBtaW5mby0+aHcuTVhvcHRpb25SZWcpOwogCiAJLyog SW5pdCBzeXN0ZW0gY2xvY2tzICovCi0JCQorCiAJLyogc3RvcCBjcnRjMiAqLwogCWMyY3RsID0g bWdhX2lubChNX0MyQ1RMKTsKIAltZ2Ffb3V0bChNX0MyQ1RMLCBjMmN0bCAmIH4xKTsKQEAgLTgx NywyMCArNzk3LDIwIEBAIHN0YXRpYyB2b2lkIGc0NTBfcHJlaW5pdChzdHJ1Y3QgbWF0cm94X2Zi X2luZm8gKm1pbmZvKQogCiAJZzQ1MF9tY2xrX2luaXQobWluZm8pOwogCWc0NTBfbWVtb3J5X2lu aXQobWluZm8pOwotCQorCiAJLyogc2V0IGxlZ2FjeSBWR0EgY2xvY2sgc291cmNlcyBmb3IgRE9T RW11IG9yIFZNd2FyZS4uLiAqLwogCW1hdHJveGZiX2c0NTBfc2V0Y2xrKG1pbmZvLCAyNTE3NSwg TV9QSVhFTF9QTExfQSk7CiAJbWF0cm94ZmJfZzQ1MF9zZXRjbGsobWluZm8sIDI4MzIyLCBNX1BJ WEVMX1BMTF9CKTsKIAogCS8qIHJlc3RvcmUgY3J0YzEgKi8KIAltZ2Ffc2V0cihNX1NFUV9JTkRF WCwgMSwgYzFjdGwpOwotCQorCiAJLyogcmVzdG9yZSBjdXJzb3IgKi8KIAlvdXREQUMxMDY0KG1p bmZvLCBNMTA2NF9YQ1VSQ1RSTCwgY3VyY3RsKTsKIAogCS8qIHJlc3RvcmUgY3J0YzIgKi8KIAlt Z2Ffb3V0bChNX0MyQ1RMLCBjMmN0bCk7Ci0JCisKIAlyZXR1cm47CiB9CiAKQEAgLTEwMzEsOSAr MTAxMSw3IEBAIHN0YXRpYyB2b2lkIE1HQUcxMDBfcmVzZXQoc3RydWN0IG1hdHJveF9mYl9pbmZv ICptaW5mbykKIAkJfQogCX0KIH0KLSNlbmRpZgogCi0jaWZkZWYgQ09ORklHX0ZCX01BVFJPWF9N WVNUSVFVRQogc3RhdGljIHZvaWQgTUdBMTA2NF9yZXN0b3JlKHN0cnVjdCBtYXRyb3hfZmJfaW5m byAqbWluZm8pCiB7CiAJaW50IGk7CkBAIC0xMDU4LDkgKzEwMzYsNyBAQCBzdGF0aWMgdm9pZCBN R0ExMDY0X3Jlc3RvcmUoc3RydWN0IG1hdHJveF9mYl9pbmZvICptaW5mbykKIAkJbWdhX3NldHIo TV9FWFRWR0FfSU5ERVgsIGksIGh3LT5DUlRDRVhUW2ldKTsKIAlEQUMxMDY0X3Jlc3RvcmVfMiht aW5mbyk7CiB9Ci0jZW5kaWYKIAotI2lmZGVmIENPTkZJR19GQl9NQVRST1hfRwogc3RhdGljIHZv aWQgTUdBRzEwMF9yZXN0b3JlKHN0cnVjdCBtYXRyb3hfZmJfaW5mbyAqbWluZm8pCiB7CiAJaW50 IGk7CkBAIC0xMDg0LDkgKzEwNjAsNyBAQCBzdGF0aWMgdm9pZCBNR0FHMTAwX3Jlc3RvcmUoc3Ry dWN0IG1hdHJveF9mYl9pbmZvICptaW5mbykKIAkJbWdhX3NldHIoTV9FWFRWR0FfSU5ERVgsIGks IGh3LT5DUlRDRVhUW2ldKTsKIAlEQUMxMDY0X3Jlc3RvcmVfMihtaW5mbyk7CiB9Ci0jZW5kaWYK IAotI2lmZGVmIENPTkZJR19GQl9NQVRST1hfTVlTVElRVUUKIHN0cnVjdCBtYXRyb3hfc3dpdGNo IG1hdHJveF9teXN0aXF1ZSA9IHsKIAkucHJlaW5pdAk9IE1HQTEwNjRfcHJlaW5pdCwKIAkucmVz ZXQJCT0gTUdBMTA2NF9yZXNldCwKQEAgLTEwOTQsOSArMTA2OCw3IEBAIHN0cnVjdCBtYXRyb3hf c3dpdGNoIG1hdHJveF9teXN0aXF1ZSA9IHsKIAkucmVzdG9yZQk9IE1HQTEwNjRfcmVzdG9yZSwK IH07CiBFWFBPUlRfU1lNQk9MKG1hdHJveF9teXN0aXF1ZSk7Ci0jZW5kaWYKIAotI2lmZGVmIENP TkZJR19GQl9NQVRST1hfRwogc3RydWN0IG1hdHJveF9zd2l0Y2ggbWF0cm94X0cxMDAgPSB7CiAJ LnByZWluaXQJPSBNR0FHMTAwX3ByZWluaXQsCiAJLnJlc2V0CQk9IE1HQUcxMDBfcmVzZXQsCkBA IC0xMTA0LDEwICsxMDc2LDcgQEAgc3RydWN0IG1hdHJveF9zd2l0Y2ggbWF0cm94X0cxMDAgPSB7 CiAJLnJlc3RvcmUJPSBNR0FHMTAwX3Jlc3RvcmUsCiB9OwogRVhQT1JUX1NZTUJPTChtYXRyb3hf RzEwMCk7Ci0jZW5kaWYKIAotI2lmZGVmIE5FRURfREFDMTA2NAogRVhQT1JUX1NZTUJPTChEQUMx MDY0X2dsb2JhbF9pbml0KTsKIEVYUE9SVF9TWU1CT0woREFDMTA2NF9nbG9iYWxfcmVzdG9yZSk7 Ci0jZW5kaWYKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3Rh Z2luZy9tZ2FrbXMvbWF0cm94ZmJfREFDMTA2NC5oIGIvZHJpdmVycy9zdGFnaW5nL21nYWttcy9t YXRyb3hmYl9EQUMxMDY0LmgKaW5kZXggM2IyYTZmZDM1ZmZmLi4zZDM4ODk0MWI1MWQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZ2FrbXMvbWF0cm94ZmJfREFDMTA2NC5oCisrKyBiL2Ry aXZlcnMvc3RhZ2luZy9tZ2FrbXMvbWF0cm94ZmJfREFDMTA2NC5oCkBAIC01LDE2ICs1LDEwIEBA CiAKICNpbmNsdWRlICJtYXRyb3hmYl9iYXNlLmgiCiAKLSNpZmRlZiBDT05GSUdfRkJfTUFUUk9Y X01ZU1RJUVVFCiBleHRlcm4gc3RydWN0IG1hdHJveF9zd2l0Y2ggbWF0cm94X215c3RpcXVlOwot I2VuZGlmCi0jaWZkZWYgQ09ORklHX0ZCX01BVFJPWF9HCiBleHRlcm4gc3RydWN0IG1hdHJveF9z d2l0Y2ggbWF0cm94X0cxMDA7Ci0jZW5kaWYKLSNpZmRlZiBORUVEX0RBQzEwNjQKIHZvaWQgREFD MTA2NF9nbG9iYWxfaW5pdChzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvKTsKIHZvaWQgREFD MTA2NF9nbG9iYWxfcmVzdG9yZShzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvKTsKLSNlbmRp ZgogCiAjZGVmaW5lIE0xMDY0X0lOREVYCTB4MDAKICNkZWZpbmUgTTEwNjRfUEFMV1JBREQJMHgw MApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21nYWttcy9tYXRyb3hmYl9UaTMwMjYuYyBi L2RyaXZlcnMvc3RhZ2luZy9tZ2FrbXMvbWF0cm94ZmJfVGkzMDI2LmMKaW5kZXggOWZmOWJlODU3 NTllLi5lODJlMmEzY2Y3NmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZ2FrbXMvbWF0 cm94ZmJfVGkzMDI2LmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL21nYWttcy9tYXRyb3hmYl9UaTMw MjYuYwpAQCAtODQsNyArODQsNiBAQAogI2luY2x1ZGUgIm1hdHJveGZiX2FjY2VsLmgiCiAjaW5j bHVkZSA8bGludXgvbWF0cm94ZmIuaD4KIAotI2lmZGVmIENPTkZJR19GQl9NQVRST1hfTUlMTEVO SVVNCiAjZGVmaW5lIG91dFRpMzAyNiBtYXRyb3hmYl9EQUNfb3V0CiAjZGVmaW5lIGluVGkzMDI2 IG1hdHJveGZiX0RBQ19pbgogCkBAIC03NDQsNSArNzQzLDQgQEAgc3RydWN0IG1hdHJveF9zd2l0 Y2ggbWF0cm94X21pbGxlbm5pdW0gPSB7CiAJLnJlc3RvcmUJPSBUaTMwMjZfcmVzdG9yZQogfTsK IEVYUE9SVF9TWU1CT0wobWF0cm94X21pbGxlbm5pdW0pOwotI2VuZGlmCiBNT0RVTEVfTElDRU5T RSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWdha21zL21hdHJveGZiX1Rp MzAyNi5oIGIvZHJpdmVycy9zdGFnaW5nL21nYWttcy9tYXRyb3hmYl9UaTMwMjYuaAppbmRleCBm YWVlMTQ5ZDBiYTAuLjJmZGEzYjMwYjllNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL21n YWttcy9tYXRyb3hmYl9UaTMwMjYuaAorKysgYi9kcml2ZXJzL3N0YWdpbmcvbWdha21zL21hdHJv eGZiX1RpMzAyNi5oCkBAIC01LDggKzUsNiBAQAogCiAjaW5jbHVkZSAibWF0cm94ZmJfYmFzZS5o IgogCi0jaWZkZWYgQ09ORklHX0ZCX01BVFJPWF9NSUxMRU5JVU0KIGV4dGVybiBzdHJ1Y3QgbWF0 cm94X3N3aXRjaCBtYXRyb3hfbWlsbGVubml1bTsKLSNlbmRpZgogCiAjZW5kaWYJLyogX19NQVRS T1hGQl9USTMwMjZfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWdha21zL21h dHJveGZiX2Jhc2UuYyBiL2RyaXZlcnMvc3RhZ2luZy9tZ2FrbXMvbWF0cm94ZmJfYmFzZS5jCmlu ZGV4IGQxMWI1ZTYyMTBlZC4uN2VlMGVhMDQ2YTVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdp bmcvbWdha21zL21hdHJveGZiX2Jhc2UuYworKysgYi9kcml2ZXJzL3N0YWdpbmcvbWdha21zL21h dHJveGZiX2Jhc2UuYwpAQCAtMTE0LDYgKzExNCw3IEBACiAjaW5jbHVkZSA8bGludXgvbnZyYW0u aD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgor I2luY2x1ZGUgIm1nYV9kcnYuaCIKIAogI2lmZGVmIENPTkZJR19QUENfUE1BQwogI2luY2x1ZGUg PGFzbS9tYWNoZGVwLmg+CkBAIC0zNjgsNyArMzY5LDcgQEAgc3RhdGljIHZvaWQgbWF0cm94ZmJf cmVtb3ZlKHN0cnVjdCBtYXRyb3hfZmJfaW5mbyAqbWluZm8sIGludCBkdW1teSkKIAkJcmV0dXJu OwogCX0KIAltYXRyb3hmYl91bnJlZ2lzdGVyX2RldmljZShtaW5mbyk7Ci0JdW5yZWdpc3Rlcl9m cmFtZWJ1ZmZlcigmbWluZm8tPmZiY29uKTsKKwltZ2FfdW5yZWdpc3Rlcl9mcmFtZWJ1ZmZlciht aW5mby0+bWRldik7CiAJbWF0cm94ZmJfZzQ1MF9zaHV0ZG93bihtaW5mbyk7CiAJYXJjaF9waHlz X3djX2RlbChtaW5mby0+d2NfY29va2llKTsKIAlpb3VubWFwKG1pbmZvLT5tbWlvLnZiYXNlLnZh ZGRyKTsKQEAgLTEzMTksOSArMTMyMCw3IEBAIHN0YXRpYyBpbnQgbWF0cm94ZmJfZ2V0bWVtb3J5 KHN0cnVjdCBtYXRyb3hfZmJfaW5mbyAqbWluZm8sCiAJbWdhX291dGIoTV9FWFRWR0FfREFUQSwg b3JpZyk7CiAKIAkqcmVhbFNpemUgPSBvZmZzIC0gMHgxMDAwMDA7Ci0jaWZkZWYgQ09ORklHX0ZC X01BVFJPWF9NSUxMRU5JVU0KIAltaW5mby0+aW50ZXJsZWF2ZSA9ICEoIWlzTWlsbGVuaXVtKG1p bmZvKSB8fCAoKG9mZnMgLSAweDEwMDAwMCkgJiAweDNGRkZGRikpOwotI2VuZGlmCiAJcmV0dXJu IDE7CiB9CiAKQEAgLTEzMzEsNyArMTMzMCw2IEBAIHN0cnVjdCB2aWRlb19ib2FyZCB7CiAJaW50 IGFjY2VsSUQ7CiAJc3RydWN0IG1hdHJveF9zd2l0Y2gqIGxvd2xldmVsOwogCQkgfTsKLSNpZmRl ZiBDT05GSUdfRkJfTUFUUk9YX01JTExFTklVTQogc3RhdGljIHN0cnVjdCB2aWRlb19ib2FyZCB2 Yk1pbGxlbm5pdW0gPSB7CiAJLm1heHZyYW0gPSAweDA4MDAwMDAsCiAJLm1heGRpc3BsYXlhYmxl ID0gMHgwODAwMDAwLApAQCAtMTM1MiwxNiArMTM1MCwxMiBAQCBzdGF0aWMgc3RydWN0IHZpZGVv X2JvYXJkIHZiTWlsbGVubml1bTJBID0gewogCS5hY2NlbElEID0gRkJfQUNDRUxfTUFUUk9YX01H QTIxNjRXX0FHUCwKIAkubG93bGV2ZWwgPSAmbWF0cm94X21pbGxlbm5pdW0KIH07Ci0jZW5kaWYJ LyogQ09ORklHX0ZCX01BVFJPWF9NSUxMRU5JVU0gKi8KLSNpZmRlZiBDT05GSUdfRkJfTUFUUk9Y X01ZU1RJUVVFCiBzdGF0aWMgc3RydWN0IHZpZGVvX2JvYXJkIHZiTXlzdGlxdWUgPSB7CiAJLm1h eHZyYW0gPSAweDA4MDAwMDAsCiAJLm1heGRpc3BsYXlhYmxlID0gMHgwODAwMDAwLAogCS5hY2Nl bElEID0gRkJfQUNDRUxfTUFUUk9YX01HQTEwNjRTRywKIAkubG93bGV2ZWwgPSAmbWF0cm94X215 c3RpcXVlCiB9OwotI2VuZGlmCS8qIENPTkZJR19GQl9NQVRST1hfTVlTVElRVUUgKi8KLSNpZmRl ZiBDT05GSUdfRkJfTUFUUk9YX0cKIHN0YXRpYyBzdHJ1Y3QgdmlkZW9fYm9hcmQgdmJHMTAwID0g ewogCS5tYXh2cmFtID0gMHgwODAwMDAwLAogCS5tYXhkaXNwbGF5YWJsZSA9IDB4MDgwMDAwMCwK QEAgLTEzODMsNyArMTM3Nyw2IEBAIHN0YXRpYyBzdHJ1Y3QgdmlkZW9fYm9hcmQgdmJHNDAwID0g ewogCS5hY2NlbElEID0gRkJfQUNDRUxfTUFUUk9YX01HQUc0MDAsCiAJLmxvd2xldmVsID0gJm1h dHJveF9HMTAwCiB9OwotI2VuZGlmCiAKICNkZWZpbmUgREVWRl9WSURFTzY0QklUCQkweDAwMDEK ICNkZWZpbmUJREVWRl9TV0FQUwkJMHgwMDAyCkBAIC0xNDE4LDcgKzE0MTEsNiBAQCBzdGF0aWMg c3RydWN0IGJvYXJkIHsKIAlzdHJ1Y3QgdmlkZW9fYm9hcmQqIGJhc2U7CiAJY29uc3QgY2hhciog bmFtZTsKIAkJfSBkZXZfbGlzdFtdID0gewotI2lmZGVmIENPTkZJR19GQl9NQVRST1hfTUlMTEVO SVVNCiAJe1BDSV9WRU5ET1JfSURfTUFUUk9YLAlQQ0lfREVWSUNFX0lEX01BVFJPWF9NSUwsCTB4 RkYsCiAJCTAsCQkJMCwKIAkJREVWRl9URVhUNEIsCkBAIC0xNDQwLDggKzE0MzIsNiBAQCBzdGF0 aWMgc3RydWN0IGJvYXJkIHsKIAkJTUdBXzIxNjQsCiAJCSZ2Yk1pbGxlbm5pdW0yQSwKIAkJIk1p bGxlbm5pdW0gSUkgKEFHUCkifSwKLSNlbmRpZgotI2lmZGVmIENPTkZJR19GQl9NQVRST1hfTVlT VElRVUUKIAl7UENJX1ZFTkRPUl9JRF9NQVRST1gsCVBDSV9ERVZJQ0VfSURfTUFUUk9YX01ZUywJ MHgwMiwKIAkJMCwJCQkwLAogCQlERVZGX1ZJREVPNjRCSVQgfCBERVZGX0NST1NTNE1CLApAQCAt MTQ3MCw4ICsxNDYwLDYgQEAgc3RhdGljIHN0cnVjdCBib2FyZCB7CiAJCU1HQV8xMTY0LAogCQkm dmJNeXN0aXF1ZSwKIAkJIk15c3RpcXVlIDIyMCAoQUdQKSJ9LAotI2VuZGlmCi0jaWZkZWYgQ09O RklHX0ZCX01BVFJPWF9HCiAJe1BDSV9WRU5ET1JfSURfTUFUUk9YLAlQQ0lfREVWSUNFX0lEX01B VFJPWF9HMTAwX01NLAkweEZGLAogCQkwLAkJCTAsCiAJCURFVkZfRzEwMCwKQEAgLTE1NjMsNyAr MTU1MSw2IEBAIHN0YXRpYyBzdHJ1Y3QgYm9hcmQgewogCQlNR0FfRzU1MCwKIAkJJnZiRzQwMCwK IAkJIkc1NTAifSwKLSNlbmRpZgogCXswLAkJCTAsCQkJCTB4RkYsCiAJCTAsCQkJMCwKIAkJMCwK QEAgLTE2MjIsNiArMTYwOSw3IEBAIHN0YXRpYyBpbnQgaW5pdE1hdHJveDIoc3RydWN0IG1hdHJv eF9mYl9pbmZvICptaW5mbywgc3RydWN0IGJvYXJkICpiKQogCXVuc2lnbmVkIGxvbmcgdmlkZW9f YmFzZV9waHlzID0gMDsKIAl1bnNpZ25lZCBpbnQgbWVtc2l6ZTsKIAlpbnQgZXJyOworCXN0cnVj dCBtZ2FfZGV2aWNlICptZGV2OwogCiAJc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lk IGludGVsXzgyNDM3W10gPSB7CiAJCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0lOVEVMLCBQ Q0lfREVWSUNFX0lEX0lOVEVMXzgyNDM3KSB9LApAQCAtMTkxOCw5ICsxOTA2LDEyIEBAIHN0YXRp YyBpbnQgaW5pdE1hdHJveDIoc3RydWN0IG1hdHJveF9mYl9pbmZvICptaW5mbywgc3RydWN0IGJv YXJkICpiKQogICogYW5kIHdlIGRvIG5vdCB3YW50IGN1cnJjb24gPT0gMCBmb3Igc3Vic2VxdWVu dCBmcmFtZWJ1ZmZlcnMgKi8KIAogCW1pbmZvLT5mYmNvbi5kZXZpY2UgPSAmbWluZm8tPnBjaWRl di0+ZGV2OwotCWlmIChyZWdpc3Rlcl9mcmFtZWJ1ZmZlcigmbWluZm8tPmZiY29uKSA8IDApIHsK KwltZGV2ID0gbWdhX3JlZ2lzdGVyX2ZyYW1lYnVmZmVyKCZtaW5mby0+ZmJjb24sIG1pbmZvLT5w Y2lkZXYpOworCWlmIChJU19FUlIobWRldikpIHsKKwkJZXJyID0gUFRSX0VSUihtZGV2KTsKIAkJ Z290byBmYWlsVmlkZW9JTzsKIAl9CisJbWluZm8tPm1kZXYgPSBtZGV2OwogCWZiX2luZm8oJm1p bmZvLT5mYmNvbiwgIiVzIGZyYW1lIGJ1ZmZlciBkZXZpY2VcbiIsIG1pbmZvLT5mYmNvbi5maXgu aWQpOwogCiAJLyogdGhlcmUgaXMgbm8gY29uc29sZSBvbiB0aGlzIGZiLi4uIGJ1dCB3ZSBoYXZl IHRvIGluaXRpYWxpemUgaGFyZHdhcmUKQEAgLTIxMTYsMTkgKzIxMDcsMTQgQEAgc3RhdGljIHZv aWQgcGNpX3JlbW92ZV9tYXRyb3goc3RydWN0IHBjaV9kZXYqIHBkZXYpIHsKIH0KIAogc3RhdGlj IGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG1hdHJveGZiX2RldmljZXNbXSA9IHsKLSNpZmRl ZiBDT05GSUdfRkJfTUFUUk9YX01JTExFTklVTQogCXtQQ0lfVkVORE9SX0lEX01BVFJPWCwJUENJ X0RFVklDRV9JRF9NQVRST1hfTUlMLAogCQlQQ0lfQU5ZX0lELAlQQ0lfQU5ZX0lELAkwLCAwLCAw fSwKIAl7UENJX1ZFTkRPUl9JRF9NQVRST1gsCVBDSV9ERVZJQ0VfSURfTUFUUk9YX01JTF8yLAog CQlQQ0lfQU5ZX0lELAlQQ0lfQU5ZX0lELAkwLCAwLCAwfSwKIAl7UENJX1ZFTkRPUl9JRF9NQVRS T1gsCVBDSV9ERVZJQ0VfSURfTUFUUk9YX01JTF8yX0FHUCwKIAkJUENJX0FOWV9JRCwJUENJX0FO WV9JRCwJMCwgMCwgMH0sCi0jZW5kaWYKLSNpZmRlZiBDT05GSUdfRkJfTUFUUk9YX01ZU1RJUVVF CiAJe1BDSV9WRU5ET1JfSURfTUFUUk9YLAlQQ0lfREVWSUNFX0lEX01BVFJPWF9NWVMsCiAJCVBD SV9BTllfSUQsCVBDSV9BTllfSUQsCTAsIDAsIDB9LAotI2VuZGlmCi0jaWZkZWYgQ09ORklHX0ZC X01BVFJPWF9HCiAJe1BDSV9WRU5ET1JfSURfTUFUUk9YLAlQQ0lfREVWSUNFX0lEX01BVFJPWF9H MTAwX01NLAogCQlQQ0lfQU5ZX0lELAlQQ0lfQU5ZX0lELAkwLCAwLCAwfSwKIAl7UENJX1ZFTkRP Ul9JRF9NQVRST1gsCVBDSV9ERVZJQ0VfSURfTUFUUk9YX0cxMDBfQUdQLApAQCAtMjE0MSw3ICsy MTI3LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG1hdHJveGZiX2Rldmlj ZXNbXSA9IHsKIAkJUENJX0FOWV9JRCwJUENJX0FOWV9JRCwJMCwgMCwgMH0sCiAJe1BDSV9WRU5E T1JfSURfTUFUUk9YLAlQQ0lfREVWSUNFX0lEX01BVFJPWF9HNTUwLAogCQlQQ0lfQU5ZX0lELAlQ Q0lfQU5ZX0lELAkwLCAwLCAwfSwKLSNlbmRpZgogCXswLAkJCTAsCiAJCTAsCQkwLAkJMCwgMCwg MH0KIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWdha21zL21hdHJveGZiX2Jhc2Uu aCBiL2RyaXZlcnMvc3RhZ2luZy9tZ2FrbXMvbWF0cm94ZmJfYmFzZS5oCmluZGV4IGY4NWFkMjU2 NTllNS4uZjc1NDg1NDliM2E2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWdha21zL21h dHJveGZiX2Jhc2UuaAorKysgYi9kcml2ZXJzL3N0YWdpbmcvbWdha21zL21hdHJveGZiX2Jhc2Uu aApAQCAtMTE1LDExICsxMTUsNyBAQAogCiAjZGVmaW5lIENOVlRfVE9IVyh2YWwsd2lkdGgpICgo KCh2YWwpPDwod2lkdGgpKSsweDdGRkYtKHZhbCkpPj4xNikKIAotLyogRy1zZXJpZXMgYW5kIE15 c3RpcXVlIGhhdmUgKGFsbW9zdCkgc2FtZSBEQUMgKi8KLSN1bmRlZiBORUVEX0RBQzEwNjQKLSNp ZiBkZWZpbmVkKENPTkZJR19GQl9NQVRST1hfTVlTVElRVUUpIHx8IGRlZmluZWQoQ09ORklHX0ZC X01BVFJPWF9HKQotI2RlZmluZSBORUVEX0RBQzEwNjQgMQotI2VuZGlmCitzdHJ1Y3QgbWdhX2Rl dmljZTsKIAogdHlwZWRlZiBzdHJ1Y3QgewogCXZvaWQgX19pb21lbSoJdmFkZHI7CkBAIC0yODIs OSArMjc4LDcgQEAgc3RydWN0IG1hdHJveF9od19zdGF0ZSB7CiB9OwogCiBzdHJ1Y3QgbWF0cm94 X2FjY2VsX2RhdGEgewotI2lmZGVmIENPTkZJR19GQl9NQVRST1hfTUlMTEVOSVVNCiAJdW5zaWdu ZWQgY2hhcglyYW1kYWNfcmV2OwotI2VuZGlmCiAJdV9pbnQzMl90CW1fZHdnX3JlY3Q7CiAJdV9p bnQzMl90CW1fb3Btb2RlOwogCXVfaW50MzJfdAltX2FjY2VzczsKQEAgLTMwMiw5ICsyOTYsOSBA QCBzdHJ1Y3QgbWF0cm94X2FsdG91dCB7CiAJaW50CQkoKnZlcmlmeW1vZGUpKHZvaWQqIGFsdG91 dF9kZXYsIHVfaW50MzJfdCBtb2RlKTsKIAlpbnQJCSgqZ2V0cXVlcnljdHJsKSh2b2lkKiBhbHRv dXRfZGV2LAogCQkJCQlzdHJ1Y3QgdjRsMl9xdWVyeWN0cmwqIGN0cmwpOwotCWludAkJKCpnZXRj dHJsKSh2b2lkKiBhbHRvdXRfZGV2LCAKKwlpbnQJCSgqZ2V0Y3RybCkodm9pZCogYWx0b3V0X2Rl diwKIAkJCQkgICBzdHJ1Y3QgdjRsMl9jb250cm9sKiBjdHJsKTsKLQlpbnQJCSgqc2V0Y3RybCko dm9pZCogYWx0b3V0X2RldiwgCisJaW50CQkoKnNldGN0cmwpKHZvaWQqIGFsdG91dF9kZXYsCiAJ CQkJICAgc3RydWN0IHY0bDJfY29udHJvbCogY3RybCk7CiB9OwogCkBAIC0zMzgsNiArMzMyLDgg QEAgc3RydWN0IG1hdHJveF92c3luYyB7CiBzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gewogCXN0cnVj dCBmYl9pbmZvCQlmYmNvbjsKIAorCXN0cnVjdCBtZ2FfZGV2aWNlCSptZGV2OworCiAJc3RydWN0 IGxpc3RfaGVhZAluZXh0X2ZiOwogCiAJaW50CQkJZGVhZDsKQEAgLTY3NiwxNSArNjcyLDkgQEAg dm9pZCBtYXRyb3hmYl91bnJlZ2lzdGVyX2RyaXZlcihzdHJ1Y3QgbWF0cm94ZmJfZHJpdmVyKiBk cnYpOwogI2RlZmluZSBXYWl0VGlsbElkbGUoKQlkbyB7IG1nYV9pbmwoTV9TVEFUVVMpOyBkbyB7 fSB3aGlsZSAobWdhX2lubChNX1NUQVRVUykgJiAweDEwMDAwKTsgfSB3aGlsZSAoMCkKIAogLyog Y29kZSBzcGVlZHVwICovCi0jaWZkZWYgQ09ORklHX0ZCX01BVFJPWF9NSUxMRU5JVU0KICNkZWZp bmUgaXNJbnRlcmxlYXZlKHgpCSAoeC0+aW50ZXJsZWF2ZSkKICNkZWZpbmUgaXNNaWxsZW5pdW0o eCkJICh4LT5taWxsZW5pdW0pCiAjZGVmaW5lIGlzTWlsbGVuaXVtSUkoeCkgKHgtPm1pbGxlbml1 bUlJKQotI2Vsc2UKLSNkZWZpbmUgaXNJbnRlcmxlYXZlKHgpICAoMCkKLSNkZWZpbmUgaXNNaWxs ZW5pdW0oeCkJICgwKQotI2RlZmluZSBpc01pbGxlbml1bUlJKHgpICgwKQotI2VuZGlmCiAKICNk ZWZpbmUgbWF0cm94ZmJfREFDX2xvY2soKSAgICAgICAgICAgICAgICAgICBzcGluX2xvY2soJm1p bmZvLT5sb2NrLkRBQykKICNkZWZpbmUgbWF0cm94ZmJfREFDX3VubG9jaygpICAgICAgICAgICAg ICAgICBzcGluX3VubG9jaygmbWluZm8tPmxvY2suREFDKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9z dGFnaW5nL21nYWttcy9tYXRyb3hmYl9nNDUwLmggYi9kcml2ZXJzL3N0YWdpbmcvbWdha21zL21h dHJveGZiX2c0NTAuaAppbmRleCBiNWYxN2I4NmVhZTUuLjJjZWM3NzhhMmE4MSAxMDA2NDQKLS0t IGEvZHJpdmVycy9zdGFnaW5nL21nYWttcy9tYXRyb3hmYl9nNDUwLmgKKysrIGIvZHJpdmVycy9z dGFnaW5nL21nYWttcy9tYXRyb3hmYl9nNDUwLmgKQEAgLTQsMTIgKzQsNyBAQAogCiAjaW5jbHVk ZSAibWF0cm94ZmJfYmFzZS5oIgogCi0jaWZkZWYgQ09ORklHX0ZCX01BVFJPWF9HCiB2b2lkIG1h dHJveGZiX2c0NTBfY29ubmVjdChzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvKTsKIHZvaWQg bWF0cm94ZmJfZzQ1MF9zaHV0ZG93bihzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvKTsKLSNl bHNlCi1zdGF0aWMgaW5saW5lIHZvaWQgbWF0cm94ZmJfZzQ1MF9jb25uZWN0KHN0cnVjdCBtYXRy b3hfZmJfaW5mbyAqbWluZm8pIHsgfTsKLXN0YXRpYyBpbmxpbmUgdm9pZCBtYXRyb3hmYl9nNDUw X3NodXRkb3duKHN0cnVjdCBtYXRyb3hfZmJfaW5mbyAqbWluZm8pIHsgfTsKLSNlbmRpZgogCiAj ZW5kaWYgLyogX19NQVRST1hGQl9HNDUwX0hfXyAqLwotLSAKMi4yMy4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=