From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephane Viau Subject: [PATCH 09/10] drm/msm/mdp: Add Software Pixel Extension support Date: Tue, 15 Sep 2015 08:41:52 -0400 Message-ID: <1442320913-3248-10-git-send-email-sviau@codeaurora.org> References: <1442320913-3248-1-git-send-email-sviau@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1442320913-3248-1-git-send-email-sviau@codeaurora.org> 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 Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org SW4gb3JkZXIgdG8gcHJvZHVjZSBhbiBpbWFnZSwgdGhlIHNjYWxhciBuZWVkcyB0byBiZSBmZWQg ZXh0cmEKcGl4ZWxzLiBUaGVzZSB0b3AvYm90dG9tL2xlZnQvcmlnaHQgdmFsdWVzIGRlcGVuZCBv biBhIHZhcmlvdXMgb2YKZmFjdG9ycywgaW5jbHVkaW5nIHJlc29sdXRpb24sIHNjYWxpbmcgdHlw ZSwgcGhhc2Ugc3RlcCBhbmQKaW5pdGlhbCBwaGFzZS4KClBpeGVsIEV4dGVuc2lvbiBhcmUgcHJv Z3JhbW1lZCBieSBoYXJkd2FyZSBpbiBtb3N0IHRhcmdldHMgLSBhbmQKY2FuIGJlIG92ZXJ3cml0 dGVuIGJ5IHNvZnR3YXJlLiBGb3Igc29tZSB0YXJnZXRzIChlLmcuOiBtc204OTk2KSwKc29mdHdh cmUgKm11c3QqIHByb2dyYW0gdGhvc2UgcmVnaXN0ZXJzLgoKSW4gb3JkZXIgdG8gZWFzZSB0aGlz IGNvbXB1dGF0aW9uLCBsZXQncyBhbHdheXMgdXNlIGJpbGluZWFyCmZpbHRlcnMsIHdoaWNoIGFy ZSBlYXNpZXIgdG8gcHJvZ3JhbSBmcm9tIGtlcm5lbC4gRXZlbnR1YWxseSwKYWxsIG9mIHRoZXNl IHZhbHVlcyB3aWxsIGNvbWUgZG93biBmcm9tIHVzZXIgc3BhY2UgZm9yIGJldHRlcgpxdWFsaXR5 LgoKU2lnbmVkLW9mZi1ieTogU3RlcGhhbmUgVmlhdSA8c3ZpYXVAY29kZWF1cm9yYS5vcmc+Ci0t LQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMgfCAxNTggKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHBfa21z LmggICAgICAgICB8ICAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDEyOCBpbnNlcnRpb25zKCspLCAz MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1 L21kcDVfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5j CmluZGV4IGMyOTQwMzMuLmM4NmY0OWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20v bWRwL21kcDUvbWRwNV9wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUv bWRwNV9wbGFuZS5jCkBAIC01NDIsNDAgKzU0MiwxMjAgQEAgc3RhdGljIGludCBjYWxjX3NjYWxl eV9zdGVwcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IHVpbnQzMl90IGdldF9zY2FsZV9jb25maWcoZW51bSBtZHBfY2hyb21hX3NhbXBfdHlwZSBjaHJv bWFfc2FtcGxlLAotCQl1aW50MzJfdCBzcmMsIHVpbnQzMl90IGRlc3QsIGJvb2wgaG9yKQorc3Rh dGljIHVpbnQzMl90IGdldF9zY2FsZV9jb25maWcoY29uc3Qgc3RydWN0IG1kcF9mb3JtYXQgKmZv cm1hdCwKKwkJdWludDMyX3Qgc3JjLCB1aW50MzJfdCBkc3QsIGJvb2wgaG9yeikKIHsKLQl1aW50 MzJfdCB5X2ZpbHRlciA9ICAgKHNyYyA8PSBkZXN0KSA/IFNDQUxFX0ZJTFRFUl9DQSAgOiBTQ0FM RV9GSUxURVJfUENNTjsKLQl1aW50MzJfdCB5X2FfZmlsdGVyID0gKHNyYyA8PSBkZXN0KSA/IFND QUxFX0ZJTFRFUl9CSUwgOiBTQ0FMRV9GSUxURVJfUENNTjsKLQl1aW50MzJfdCB1dl9maWx0ZXIg PSAoKHNyYyAvIDIpIDw9IGRlc3QpID8gLyogMnggdXBzYW1wbGUgKi8KLQkJCVNDQUxFX0ZJTFRF Ul9CSUwgOiBTQ0FMRV9GSUxURVJfUENNTjsKLQl1aW50MzJfdCB2YWx1ZSA9IDA7Ci0KLQlpZiAo Y2hyb21hX3NhbXBsZSA9PSBDSFJPTUFfNDIwIHx8IGNocm9tYV9zYW1wbGUgPT0gQ0hST01BX0gy VjEpIHsKLQkJaWYgKGhvcikKLQkJCXZhbHVlID0gTURQNV9QSVBFX1NDQUxFX0NPTkZJR19TQ0FM RVhfRU4gfAotCQkJCU1EUDVfUElQRV9TQ0FMRV9DT05GSUdfU0NBTEVYX0ZJTFRFUl9DT01QXzAo eV9maWx0ZXIpIHwKLQkJCQlNRFA1X1BJUEVfU0NBTEVfQ09ORklHX1NDQUxFWF9GSUxURVJfQ09N UF8zKHlfYV9maWx0ZXIpIHwKLQkJCQlNRFA1X1BJUEVfU0NBTEVfQ09ORklHX1NDQUxFWF9GSUxU RVJfQ09NUF8xXzIodXZfZmlsdGVyKTsKLQkJZWxzZQotCQkJdmFsdWUgPSBNRFA1X1BJUEVfU0NB TEVfQ09ORklHX1NDQUxFWV9FTiB8Ci0JCQkJTURQNV9QSVBFX1NDQUxFX0NPTkZJR19TQ0FMRVlf RklMVEVSX0NPTVBfMCh5X2ZpbHRlcikgfAotCQkJCU1EUDVfUElQRV9TQ0FMRV9DT05GSUdfU0NB TEVZX0ZJTFRFUl9DT01QXzMoeV9hX2ZpbHRlcikgfAotCQkJCU1EUDVfUElQRV9TQ0FMRV9DT05G SUdfU0NBTEVZX0ZJTFRFUl9DT01QXzFfMih1dl9maWx0ZXIpOwotCX0gZWxzZSBpZiAoc3JjICE9 IGRlc3QpIHsKLQkJaWYgKGhvcikKLQkJCXZhbHVlID0gTURQNV9QSVBFX1NDQUxFX0NPTkZJR19T Q0FMRVhfRU4gfAotCQkJCU1EUDVfUElQRV9TQ0FMRV9DT05GSUdfU0NBTEVYX0ZJTFRFUl9DT01Q XzAoeV9hX2ZpbHRlcikgfAotCQkJCU1EUDVfUElQRV9TQ0FMRV9DT05GSUdfU0NBTEVYX0ZJTFRF Ul9DT01QXzMoeV9hX2ZpbHRlcik7Ci0JCWVsc2UKLQkJCXZhbHVlID0gTURQNV9QSVBFX1NDQUxF X0NPTkZJR19TQ0FMRVlfRU4gfAotCQkJCU1EUDVfUElQRV9TQ0FMRV9DT05GSUdfU0NBTEVZX0ZJ TFRFUl9DT01QXzAoeV9hX2ZpbHRlcikgfAotCQkJCU1EUDVfUElQRV9TQ0FMRV9DT05GSUdfU0NB TEVZX0ZJTFRFUl9DT01QXzMoeV9hX2ZpbHRlcik7CisJYm9vbCBzY2FsaW5nID0gZm9ybWF0LT5p c195dXYgPyB0cnVlIDogKHNyYyAhPSBkc3QpOworCXVpbnQzMl90IHN1YiwgcGl4X2ZtdCA9IGZv cm1hdC0+YmFzZS5waXhlbF9mb3JtYXQ7CisJdWludDMyX3QgeWFfZmlsdGVyLCB1dl9maWx0ZXI7 CisJYm9vbCB5dXYgPSBmb3JtYXQtPmlzX3l1djsKKworCWlmICghc2NhbGluZykKKwkJcmV0dXJu IDA7CisKKwlpZiAoeXV2KSB7CisJCXN1YiA9IGhvcnogPyBkcm1fZm9ybWF0X2hvcnpfY2hyb21h X3N1YnNhbXBsaW5nKHBpeF9mbXQpIDoKKwkJCSAgICAgZHJtX2Zvcm1hdF92ZXJ0X2Nocm9tYV9z dWJzYW1wbGluZyhwaXhfZm10KTsKKwkJdXZfZmlsdGVyID0gKChzcmMgLyBzdWIpIDw9IGRzdCkg PworCQkJCSAgIFNDQUxFX0ZJTFRFUl9CSUwgOiBTQ0FMRV9GSUxURVJfUENNTjsKIAl9CisJeWFf ZmlsdGVyID0gKHNyYyA8PSBkc3QpID8gU0NBTEVfRklMVEVSX0JJTCA6IFNDQUxFX0ZJTFRFUl9Q Q01OOworCisJaWYgKGhvcnopCisJCXJldHVybiAgTURQNV9QSVBFX1NDQUxFX0NPTkZJR19TQ0FM RVhfRU4gfAorCQkJTURQNV9QSVBFX1NDQUxFX0NPTkZJR19TQ0FMRVhfRklMVEVSX0NPTVBfMCh5 YV9maWx0ZXIpIHwKKwkJCU1EUDVfUElQRV9TQ0FMRV9DT05GSUdfU0NBTEVYX0ZJTFRFUl9DT01Q XzMoeWFfZmlsdGVyKSB8CisJCQlDT05EKHl1diwgTURQNV9QSVBFX1NDQUxFX0NPTkZJR19TQ0FM RVhfRklMVEVSX0NPTVBfMV8yKHV2X2ZpbHRlcikpOworCWVsc2UKKwkJcmV0dXJuICBNRFA1X1BJ UEVfU0NBTEVfQ09ORklHX1NDQUxFWV9FTiB8CisJCQlNRFA1X1BJUEVfU0NBTEVfQ09ORklHX1ND QUxFWV9GSUxURVJfQ09NUF8wKHlhX2ZpbHRlcikgfAorCQkJTURQNV9QSVBFX1NDQUxFX0NPTkZJ R19TQ0FMRVlfRklMVEVSX0NPTVBfMyh5YV9maWx0ZXIpIHwKKwkJCUNPTkQoeXV2LCBNRFA1X1BJ UEVfU0NBTEVfQ09ORklHX1NDQUxFWV9GSUxURVJfQ09NUF8xXzIodXZfZmlsdGVyKSk7Cit9CisK K3N0YXRpYyB2b2lkIGNhbGNfcGl4ZWxfZXh0KGNvbnN0IHN0cnVjdCBtZHBfZm9ybWF0ICpmb3Jt YXQsCisJCXVpbnQzMl90IHNyYywgdWludDMyX3QgZHN0LCB1aW50MzJfdCBwaGFzZV9zdGVwWzJd LAorCQlpbnQgcGl4X2V4dF9lZGdlMVtDT01QX01BWF0sIGludCBwaXhfZXh0X2VkZ2UyW0NPTVBf TUFYXSwKKwkJYm9vbCBob3J6KQoreworCWJvb2wgc2NhbGluZyA9IGZvcm1hdC0+aXNfeXV2ID8g dHJ1ZSA6IChzcmMgIT0gZHN0KTsKKwlpbnQgaTsKKworCS8qCisJICogTm90ZToKKwkgKiBXZSBh c3N1bWUgaGVyZSB0aGF0OgorCSAqICAgICAxLiBQQ01OIGZpbHRlciBpcyB1c2VkIGZvciBkb3du c2NhbGUKKwkgKiAgICAgMi4gYmlsaW5lYXIgZmlsdGVyIGlzIHVzZWQgZm9yIHVwc2NhbGUKKwkg KiAgICAgMy4gd2UgYXJlIGluIGEgc2luZ2xlIHBpcGUgY29uZmlndXJhdGlvbgorCSAqLwogCi0J cmV0dXJuIHZhbHVlOworCWZvciAoaSA9IDA7IGkgPCBDT01QX01BWDsgaSsrKSB7CisJCXBpeF9l eHRfZWRnZTFbaV0gPSAwOworCQlwaXhfZXh0X2VkZ2UyW2ldID0gc2NhbGluZyA/IDEgOiAwOwor CX0KIH0KIAorc3RhdGljIHZvaWQgbWRwNV93cml0ZV9waXhlbF9leHQoc3RydWN0IG1kcDVfa21z ICptZHA1X2ttcywgZW51bSBtZHA1X3BpcGUgcGlwZSwKKwljb25zdCBzdHJ1Y3QgbWRwX2Zvcm1h dCAqZm9ybWF0LAorCXVpbnQzMl90IHNyY193LCBpbnQgcGVfbGVmdFtDT01QX01BWF0sIGludCBw ZV9yaWdodFtDT01QX01BWF0sCisJdWludDMyX3Qgc3JjX2gsIGludCBwZV90b3BbQ09NUF9NQVhd LCBpbnQgcGVfYm90dG9tW0NPTVBfTUFYXSkKK3sKKwl1aW50MzJfdCBwaXhfZm10ID0gZm9ybWF0 LT5iYXNlLnBpeGVsX2Zvcm1hdDsKKwl1aW50MzJfdCBsciwgdGIsIHJlcTsKKwlpbnQgaTsKKwor CWZvciAoaSA9IDA7IGkgPCBDT01QX01BWDsgaSsrKSB7CisJCXVpbnQzMl90IHJvaV93ID0gc3Jj X3c7CisJCXVpbnQzMl90IHJvaV9oID0gc3JjX2g7CisKKwkJaWYgKGZvcm1hdC0+aXNfeXV2ICYm IGkgPT0gQ09NUF8xXzIpIHsKKwkJCXJvaV93IC89IGRybV9mb3JtYXRfaG9yel9jaHJvbWFfc3Vi c2FtcGxpbmcocGl4X2ZtdCk7CisJCQlyb2lfaCAvPSBkcm1fZm9ybWF0X3ZlcnRfY2hyb21hX3N1 YnNhbXBsaW5nKHBpeF9mbXQpOworCQl9CisKKwkJbHIgID0gKHBlX2xlZnRbaV0gPj0gMCkgPwor CQkJTURQNV9QSVBFX1NXX1BJWF9FWFRfTFJfTEVGVF9SUFQocGVfbGVmdFtpXSkgOgorCQkJTURQ NV9QSVBFX1NXX1BJWF9FWFRfTFJfTEVGVF9PVkYocGVfbGVmdFtpXSk7CisKKwkJbHIgfD0gKHBl X3JpZ2h0W2ldID49IDApID8KKwkJCU1EUDVfUElQRV9TV19QSVhfRVhUX0xSX1JJR0hUX1JQVChw ZV9yaWdodFtpXSkgOgorCQkJTURQNV9QSVBFX1NXX1BJWF9FWFRfTFJfUklHSFRfT1ZGKHBlX3Jp Z2h0W2ldKTsKKworCQl0YiAgPSAocGVfdG9wW2ldID49IDApID8KKwkJCU1EUDVfUElQRV9TV19Q SVhfRVhUX1RCX1RPUF9SUFQocGVfdG9wW2ldKSA6CisJCQlNRFA1X1BJUEVfU1dfUElYX0VYVF9U Ql9UT1BfT1ZGKHBlX3RvcFtpXSk7CisKKwkJdGIgfD0gKHBlX2JvdHRvbVtpXSA+PSAwKSA/CisJ CQlNRFA1X1BJUEVfU1dfUElYX0VYVF9UQl9CT1RUT01fUlBUKHBlX2JvdHRvbVtpXSkgOgorCQkJ TURQNV9QSVBFX1NXX1BJWF9FWFRfVEJfQk9UVE9NX09WRihwZV9ib3R0b21baV0pOworCisJCXJl cSAgPSBNRFA1X1BJUEVfU1dfUElYX0VYVF9SRVFfUElYRUxTX0xFRlRfUklHSFQocm9pX3cgKwor CQkJCXBlX2xlZnRbaV0gKyBwZV9yaWdodFtpXSk7CisKKwkJcmVxIHw9IE1EUDVfUElQRV9TV19Q SVhfRVhUX1JFUV9QSVhFTFNfVE9QX0JPVFRPTShyb2lfaCArCisJCQkJcGVfdG9wW2ldICsgcGVf Ym90dG9tW2ldKTsKKworCQltZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQNV9QSVBFX1NXX1BJ WF9FWFRfTFIocGlwZSwgaSksIGxyKTsKKwkJbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVf UElQRV9TV19QSVhfRVhUX1RCKHBpcGUsIGkpLCB0Yik7CisJCW1kcDVfd3JpdGUobWRwNV9rbXMs IFJFR19NRFA1X1BJUEVfU1dfUElYX0VYVF9SRVFfUElYRUxTKHBpcGUsIGkpLCByZXEpOworCisJ CURCRygiY29tcC0lZCAoTC9SKTogcnB0PSVkLyVkLCBvdmY9JWQvJWQsIHJlcT0lZCIsIGksCisJ CQlGSUVMRChsciwgIE1EUDVfUElQRV9TV19QSVhfRVhUX0xSX0xFRlRfUlBUKSwKKwkJCUZJRUxE KGxyLCAgTURQNV9QSVBFX1NXX1BJWF9FWFRfTFJfUklHSFRfUlBUKSwKKwkJCUZJRUxEKGxyLCAg TURQNV9QSVBFX1NXX1BJWF9FWFRfTFJfTEVGVF9PVkYpLAorCQkJRklFTEQobHIsICBNRFA1X1BJ UEVfU1dfUElYX0VYVF9MUl9SSUdIVF9PVkYpLAorCQkJRklFTEQocmVxLCBNRFA1X1BJUEVfU1df UElYX0VYVF9SRVFfUElYRUxTX0xFRlRfUklHSFQpKTsKKworCQlEQkcoImNvbXAtJWQgKFQvQik6 IHJwdD0lZC8lZCwgb3ZmPSVkLyVkLCByZXE9JWQiLCBpLAorCQkJRklFTEQodGIsICBNRFA1X1BJ UEVfU1dfUElYX0VYVF9UQl9UT1BfUlBUKSwKKwkJCUZJRUxEKHRiLCAgTURQNV9QSVBFX1NXX1BJ WF9FWFRfVEJfQk9UVE9NX1JQVCksCisJCQlGSUVMRCh0YiwgIE1EUDVfUElQRV9TV19QSVhfRVhU X1RCX1RPUF9PVkYpLAorCQkJRklFTEQodGIsICBNRFA1X1BJUEVfU1dfUElYX0VYVF9UQl9CT1RU T01fT1ZGKSwKKwkJCUZJRUxEKHJlcSwgTURQNV9QSVBFX1NXX1BJWF9FWFRfUkVRX1BJWEVMU19U T1BfQk9UVE9NKSk7CisJfQorfQorCisKIHN0YXRpYyBpbnQgbWRwNV9wbGFuZV9tb2RlX3NldChz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJaW50IGNydGNfeCwgaW50IGNydGNfeSwKQEAgLTU5MCw2 ICs2NzAsOSBAQCBzdGF0aWMgaW50IG1kcDVfcGxhbmVfbW9kZV9zZXQoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCiAJY29uc3Qgc3RydWN0IG1kcF9mb3JtYXQgKmZvcm1hdDsKIAl1aW50MzJfdCBu cGxhbmVzLCBjb25maWcgPSAwOwogCXVpbnQzMl90IHBoYXNleF9zdGVwW0NPTVBfTUFYXSA9IHsw LH0sIHBoYXNleV9zdGVwW0NPTVBfTUFYXSA9IHswLH07CisJYm9vbCBwZSA9IG1kcDVfcGxhbmUt PmNhcHMgJiBNRFBfUElQRV9DQVBfU1dfUElYX0VYVDsKKwlpbnQgcGVfbGVmdFtDT01QX01BWF0s IHBlX3JpZ2h0W0NPTVBfTUFYXTsKKwlpbnQgcGVfdG9wW0NPTVBfTUFYXSwgcGVfYm90dG9tW0NP TVBfTUFYXTsKIAl1aW50MzJfdCBoZGVjbSA9IDAsIHZkZWNtID0gMDsKIAl1aW50MzJfdCBwaXhf Zm9ybWF0OwogCWJvb2wgdmZsaXAsIGhmbGlwOwpAQCAtNjM3LDExICs3MjAsMTggQEAgc3RhdGlj IGludCBtZHA1X3BsYW5lX21vZGVfc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWlmIChy ZXQpCiAJCXJldHVybiByZXQ7CiAKKwlpZiAobWRwNV9wbGFuZS0+Y2FwcyAmIE1EUF9QSVBFX0NB UF9TV19QSVhfRVhUKSB7CisJCWNhbGNfcGl4ZWxfZXh0KGZvcm1hdCwgc3JjX3csIGNydGNfdywg cGhhc2V4X3N0ZXAsCisJCQkJCSBwZV9sZWZ0LCBwZV9yaWdodCwgdHJ1ZSk7CisJCWNhbGNfcGl4 ZWxfZXh0KGZvcm1hdCwgc3JjX2gsIGNydGNfaCwgcGhhc2V5X3N0ZXAsCisJCQkJCXBlX3RvcCwg cGVfYm90dG9tLCBmYWxzZSk7CisJfQorCiAJLyogVE9ETyBjYWxjIGhkZWNtLCB2ZGVjbSAqLwog CiAJLyogU0NBTEUgaXMgdXNlZCB0byBib3RoIHNjYWxlIGFuZCB1cC1zYW1wbGUgY2hyb21hIGNv bXBvbmVudHMgKi8KLQljb25maWcgfD0gZ2V0X3NjYWxlX2NvbmZpZyhmb3JtYXQtPmNocm9tYV9z YW1wbGUsIHNyY193LCBjcnRjX3csIHRydWUpOwotCWNvbmZpZyB8PSBnZXRfc2NhbGVfY29uZmln KGZvcm1hdC0+Y2hyb21hX3NhbXBsZSwgc3JjX2gsIGNydGNfaCwgZmFsc2UpOworCWNvbmZpZyB8 PSBnZXRfc2NhbGVfY29uZmlnKGZvcm1hdCwgc3JjX3csIGNydGNfdywgdHJ1ZSk7CisJY29uZmln IHw9IGdldF9zY2FsZV9jb25maWcoZm9ybWF0LCBzcmNfaCwgY3J0Y19oLCBmYWxzZSk7CiAJREJH KCJzY2FsZSBjb25maWcgPSAleCIsIGNvbmZpZyk7CiAKIAloZmxpcCA9ICEhKHBzdGF0ZS0+cm90 YXRpb24gJiBCSVQoRFJNX1JFRkxFQ1RfWCkpOwpAQCAtNjkwLDExICs3ODAsMTcgQEAgc3RhdGlj IGludCBtZHA1X3BsYW5lX21vZGVfc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCW1kcDVf d3JpdGUobWRwNV9rbXMsIFJFR19NRFA1X1BJUEVfU1JDX09QX01PREUocGlwZSksCiAJCQkoaGZs aXAgPyBNRFA1X1BJUEVfU1JDX09QX01PREVfRkxJUF9MUiA6IDApIHwKIAkJCSh2ZmxpcCA/IE1E UDVfUElQRV9TUkNfT1BfTU9ERV9GTElQX1VEIDogMCkgfAorCQkJQ09ORChwZSwgTURQNV9QSVBF X1NSQ19PUF9NT0RFX1NXX1BJWF9FWFRfT1ZFUlJJREUpIHwKIAkJCU1EUDVfUElQRV9TUkNfT1Bf TU9ERV9CV0MoQldDX0xPU1NMRVNTKSk7CiAKIAkvKiBub3QgdXNpbmcgc2VjdXJlIG1vZGU6ICov CiAJbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVfUElQRV9TUkNfQUREUl9TV19TVEFUVVMo cGlwZSksIDApOwogCisJaWYgKG1kcDVfcGxhbmUtPmNhcHMgJiBNRFBfUElQRV9DQVBfU1dfUElY X0VYVCkKKwkJbWRwNV93cml0ZV9waXhlbF9leHQobWRwNV9rbXMsIHBpcGUsIGZvcm1hdCwKKwkJ CQlzcmNfdywgcGVfbGVmdCwgcGVfcmlnaHQsCisJCQkJc3JjX2gsIHBlX3RvcCwgcGVfYm90dG9t KTsKKwogCWlmIChtZHA1X3BsYW5lLT5jYXBzICYgTURQX1BJUEVfQ0FQX1NDQUxFKSB7CiAJCW1k cDVfd3JpdGUobWRwNV9rbXMsIFJFR19NRFA1X1BJUEVfU0NBTEVfUEhBU0VfU1RFUF9YKHBpcGUp LAogCQkJCXBoYXNleF9zdGVwW0NPTVBfMF0pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9tZHAvbWRwX2ttcy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwX2ttcy5oCmlu ZGV4IDQ2YTk0ZTcuLjBhZjJhNTQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21k cC9tZHBfa21zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwX2ttcy5oCkBAIC0x MDYsNiArMTA2LDcgQEAgY29uc3Qgc3RydWN0IG1zbV9mb3JtYXQgKm1kcF9nZXRfZm9ybWF0KHN0 cnVjdCBtc21fa21zICprbXMsIHVpbnQzMl90IGZvcm1hdCk7CiAjZGVmaW5lIE1EUF9QSVBFX0NB UF9TQ0FMRQkJCUJJVCgyKQogI2RlZmluZSBNRFBfUElQRV9DQVBfQ1NDCQkJQklUKDMpCiAjZGVm aW5lIE1EUF9QSVBFX0NBUF9ERUNJTUFUSU9OCQkJQklUKDQpCisjZGVmaW5lIE1EUF9QSVBFX0NB UF9TV19QSVhfRVhUCQkJQklUKDUpCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBwaXBlX3N1cHBvcnRz X3l1dih1aW50MzJfdCBwaXBlX2NhcHMpCiB7Ci0tIApRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRl ciwgSW5jLgoKVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVy IG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwgYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRp dmUgUHJvamVjdAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK