From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jilai Wang Subject: [PATCH] drm/msm/mdp: Add capabilities to MDP planes(V2) Date: Wed, 8 Jul 2015 18:12:40 -0400 Message-ID: <1436393560-18140-1-git-send-email-jilaiw@codeaurora.org> References: <1436303816-19566-1-git-send-email-jilaiw@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1436303816-19566-1-git-send-email-jilaiw@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 TURQIHBsYW5lcyBjYW4gYmUgaW1wbGVtZW50ZWQgdXNpbmcgZGlmZmVyZW50IHR5cGUgb2YgSFcg cGlwZXMsClJHQi9WSUcvRE1BIHBpcGVzIGZvciBNRFA1IGFuZCBSR0IvVkcvRE1BIHBpcGVzIGZv ciBNRFA0LiBFYWNoIHR5cGUKb2YgcGlwZSBoYXMgZGlmZmVyZW50IEhXIGNhcGFiaWxpdGllcyBz dWNoIGFzIHNjYWxpbmcsIGNvbG9yIHNwYWNlCmNvbnZlcnNpb24sIGRlY2ltYXRpb24uLi4gQWRk IGEgdmFyaWFibGUgaW4gcGxhbmUgZGF0YSBzdHJ1Y3R1cmUKdG8gc3BlY2lmeSB0aGUgZGlmZmVy ZW5jZSBvZiBlYWNoIHBsYW5lIHdoaWNoIGNvbWVzIGZyb20gbWRwNV9jZmcgZGF0YQphbmQgdXNl IGl0IHRvIGRpZmZlcmVuY2lhdGUgdGhlIHBsYW5lIG9wZXJhdGlvbi4KVjE6IEluaXRpYWwgY2hh bmdlClYyOiBGaXggYSB0eXBvIGluIG1kcDRfa21zLmgKClNpZ25lZC1vZmYtYnk6IEppbGFpIFdh bmcgPGppbGFpd0Bjb2RlYXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9t ZHA0L21kcDRfa21zLmggICB8IDE5ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9t ZHA0L21kcDRfcGxhbmUuYyB8ICA3ICsrLQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9t ZHA1X2NmZy5jICAgfCAyNiArKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRw NS9tZHA1X2NmZy5oICAgfCAxMSArKystLQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9t ZHA1X2ttcy5jICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2tt cy5oICAgfCAyNCArLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVf cGxhbmUuYyB8IDczICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9tc20vbWRwL21kcF9rbXMuaCAgICAgICAgIHwgMTMgKysrKysrCiA4IGZpbGVzIGNoYW5n ZWQsIDExNCBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfa21zLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21kcC9tZHA0L21kcDRfa21zLmgKaW5kZXggYzFlY2I5ZC4uMWFhZWRhZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNC9tZHA0X2ttcy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vbWRwL21kcDQvbWRwNF9rbXMuaApAQCAtMTc1LDI3ICsxNzUsMjQgQEAgaXJxcmV0 dXJuX3QgbWRwNF9pcnEoc3RydWN0IG1zbV9rbXMgKmttcyk7CiBpbnQgbWRwNF9lbmFibGVfdmJs YW5rKHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiB2b2lkIG1k cDRfZGlzYWJsZV92Ymxhbmsoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9jcnRjICpj cnRjKTsKIAotc3RhdGljIGlubGluZSBib29sIHBpcGVfc3VwcG9ydHNfeXV2KGVudW0gbWRwNF9w aXBlIHBpcGUpCitzdGF0aWMgaW5saW5lIHVpbnQzMl90IG1kcDRfcGlwZV9jYXBzKGVudW0gbWRw NF9waXBlIHBpcGUpCiB7CiAJc3dpdGNoIChwaXBlKSB7CiAJY2FzZSBWRzE6CiAJY2FzZSBWRzI6 CiAJY2FzZSBWRzM6CiAJY2FzZSBWRzQ6Ci0JCXJldHVybiB0cnVlOworCQlyZXR1cm4gTURQX1BJ UEVfQ0FQX0hGTElQIHwgTURQX1BJUEVfQ0FQX1ZGTElQIHwKKwkJCU1EUF9QSVBFX0NBUF9TQ0FM RSB8IE1EUF9QSVBFX0NBUF9DU0M7CisJY2FzZSBSR0IxOgorCWNhc2UgUkdCMjoKKwljYXNlIFJH QjM6CisJCXJldHVybiBNRFBfUElQRV9DQVBfU0NBTEU7CiAJZGVmYXVsdDoKLQkJcmV0dXJuIGZh bHNlOworCQlyZXR1cm4gMDsKIAl9CiB9CiAKLXN0YXRpYyBpbmxpbmUKLXVpbnQzMl90IG1kcDRf Z2V0X2Zvcm1hdHMoZW51bSBtZHA0X3BpcGUgcGlwZV9pZCwgdWludDMyX3QgKnBpeGVsX2Zvcm1h dHMsCi0JCXVpbnQzMl90IG1heF9mb3JtYXRzKQotewotCXJldHVybiBtZHBfZ2V0X2Zvcm1hdHMo cGl4ZWxfZm9ybWF0cywgbWF4X2Zvcm1hdHMsCi0JCQkJIXBpcGVfc3VwcG9ydHNfeXV2KHBpcGVf aWQpKTsKLX0KLQogdm9pZCBtZHA0X3BsYW5lX2luc3RhbGxfcHJvcGVydGllcyhzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKIAkJc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqKTsKIGVudW0gbWRw NF9waXBlIG1kcDRfcGxhbmVfcGlwZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfcGxhbmUuYyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jCmluZGV4IDBkMWRiYjcuLmM3NDk0ODkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jCkBAIC0yNiw2ICsy Niw3IEBAIHN0cnVjdCBtZHA0X3BsYW5lIHsKIAogCWVudW0gbWRwNF9waXBlIHBpcGU7CiAKKwl1 aW50MzJfdCBjYXBzOwogCXVpbnQzMl90IG5mb3JtYXRzOwogCXVpbnQzMl90IGZvcm1hdHNbMzJd OwogCkBAIC0zODAsOSArMzgxLDExIEBAIHN0cnVjdCBkcm1fcGxhbmUgKm1kcDRfcGxhbmVfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJbWRwNF9wbGFuZS0+cGlwZSA9IHBpcGVfaWQ7 CiAJbWRwNF9wbGFuZS0+bmFtZSA9IHBpcGVfbmFtZXNbcGlwZV9pZF07CisJbWRwNF9wbGFuZS0+ Y2FwcyA9IG1kcDRfcGlwZV9jYXBzKHBpcGVfaWQpOwogCi0JbWRwNF9wbGFuZS0+bmZvcm1hdHMg PSBtZHA0X2dldF9mb3JtYXRzKHBpcGVfaWQsIG1kcDRfcGxhbmUtPmZvcm1hdHMsCi0JCQlBUlJB WV9TSVpFKG1kcDRfcGxhbmUtPmZvcm1hdHMpKTsKKwltZHA0X3BsYW5lLT5uZm9ybWF0cyA9IG1k cF9nZXRfZm9ybWF0cyhtZHA0X3BsYW5lLT5mb3JtYXRzLAorCQkJQVJSQVlfU0laRShtZHA0X3Bs YW5lLT5mb3JtYXRzKSwKKwkJCSFwaXBlX3N1cHBvcnRzX3l1dihtZHA0X3BsYW5lLT5jYXBzKSk7 CiAKIAl0eXBlID0gcHJpdmF0ZV9wbGFuZSA/IERSTV9QTEFORV9UWVBFX1BSSU1BUlkgOiBEUk1f UExBTkVfVFlQRV9PVkVSTEFZOwogCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChkZXYs IHBsYW5lLCAweGZmLCAmbWRwNF9wbGFuZV9mdW5jcywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vbWRwL21kcDUvbWRwNV9jZmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21k cDUvbWRwNV9jZmcuYwppbmRleCA3ODliMDJmLi5hYzFkNThmIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY2ZnLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9tZHAvbWRwNS9tZHA1X2NmZy5jCkBAIC00NSwxNCArNDUsMjAgQEAgY29uc3Qgc3RydWN0IG1k cDVfY2ZnX2h3IG1zbTh4NzRfY29uZmlnID0gewogCS5waXBlX3ZpZyA9IHsKIAkJLmNvdW50ID0g MywKIAkJLmJhc2UgPSB7IDB4MDEyMDAsIDB4MDE2MDAsIDB4MDFhMDAgfSwKKwkJLmNhcHMgPSBN RFBfUElQRV9DQVBfSEZMSVAgfCBNRFBfUElQRV9DQVBfVkZMSVAgfAorCQkJCU1EUF9QSVBFX0NB UF9TQ0FMRSB8IE1EUF9QSVBFX0NBUF9DU0MgfAorCQkJCU1EUF9QSVBFX0NBUF9ERUNJTUFUSU9O LAogCX0sCiAJLnBpcGVfcmdiID0gewogCQkuY291bnQgPSAzLAogCQkuYmFzZSA9IHsgMHgwMWUw MCwgMHgwMjIwMCwgMHgwMjYwMCB9LAorCQkuY2FwcyA9IE1EUF9QSVBFX0NBUF9IRkxJUCB8IE1E UF9QSVBFX0NBUF9WRkxJUCB8CisJCQkJTURQX1BJUEVfQ0FQX1NDQUxFIHwgTURQX1BJUEVfQ0FQ X0RFQ0lNQVRJT04sCiAJfSwKIAkucGlwZV9kbWEgPSB7CiAJCS5jb3VudCA9IDIsCiAJCS5iYXNl ID0geyAweDAyYTAwLCAweDAyZTAwIH0sCisJCS5jYXBzID0gTURQX1BJUEVfQ0FQX0hGTElQIHwg TURQX1BJUEVfQ0FQX1ZGTElQLAogCX0sCiAJLmxtID0gewogCQkuY291bnQgPSA1LApAQCAtMTEz LDE0ICsxMTksMjAgQEAgY29uc3Qgc3RydWN0IG1kcDVfY2ZnX2h3IGFwcTgwODRfY29uZmlnID0g ewogCS5waXBlX3ZpZyA9IHsKIAkJLmNvdW50ID0gNCwKIAkJLmJhc2UgPSB7IDB4MDEyMDAsIDB4 MDE2MDAsIDB4MDFhMDAsIDB4MDFlMDAgfSwKKwkJLmNhcHMgPSBNRFBfUElQRV9DQVBfSEZMSVAg fCBNRFBfUElQRV9DQVBfVkZMSVAgfAorCQkJCU1EUF9QSVBFX0NBUF9TQ0FMRSB8IE1EUF9QSVBF X0NBUF9DU0MgfAorCQkJCU1EUF9QSVBFX0NBUF9ERUNJTUFUSU9OLAogCX0sCiAJLnBpcGVfcmdi ID0gewogCQkuY291bnQgPSA0LAogCQkuYmFzZSA9IHsgMHgwMjIwMCwgMHgwMjYwMCwgMHgwMmEw MCwgMHgwMmUwMCB9LAorCQkuY2FwcyA9IE1EUF9QSVBFX0NBUF9IRkxJUCB8IE1EUF9QSVBFX0NB UF9WRkxJUCB8CisJCQkJTURQX1BJUEVfQ0FQX1NDQUxFIHwgTURQX1BJUEVfQ0FQX0RFQ0lNQVRJ T04sCiAJfSwKIAkucGlwZV9kbWEgPSB7CiAJCS5jb3VudCA9IDIsCiAJCS5iYXNlID0geyAweDAz MjAwLCAweDAzNjAwIH0sCisJCS5jYXBzID0gTURQX1BJUEVfQ0FQX0hGTElQIHwgTURQX1BJUEVf Q0FQX1ZGTElQLAogCX0sCiAJLmxtID0gewogCQkuY291bnQgPSA2LApAQCAtMTc0LDE0ICsxODYs MjAgQEAgY29uc3Qgc3RydWN0IG1kcDVfY2ZnX2h3IG1zbTh4MTZfY29uZmlnID0gewogCS5waXBl X3ZpZyA9IHsKIAkJLmNvdW50ID0gMSwKIAkJLmJhc2UgPSB7IDB4MDUwMDAgfSwKKwkJLmNhcHMg PSBNRFBfUElQRV9DQVBfSEZMSVAgfCBNRFBfUElQRV9DQVBfVkZMSVAgfAorCQkJCU1EUF9QSVBF X0NBUF9TQ0FMRSB8IE1EUF9QSVBFX0NBUF9DU0MgfAorCQkJCU1EUF9QSVBFX0NBUF9ERUNJTUFU SU9OLAogCX0sCiAJLnBpcGVfcmdiID0gewogCQkuY291bnQgPSAyLAogCQkuYmFzZSA9IHsgMHgx NTAwMCwgMHgxNzAwMCB9LAorCQkuY2FwcyA9IE1EUF9QSVBFX0NBUF9IRkxJUCB8IE1EUF9QSVBF X0NBUF9WRkxJUCB8CisJCQkJTURQX1BJUEVfQ0FQX1NDQUxFIHwgTURQX1BJUEVfQ0FQX0RFQ0lN QVRJT04sCiAJfSwKIAkucGlwZV9kbWEgPSB7CiAJCS5jb3VudCA9IDEsCiAJCS5iYXNlID0geyAw eDI1MDAwIH0sCisJCS5jYXBzID0gTURQX1BJUEVfQ0FQX0hGTElQIHwgTURQX1BJUEVfQ0FQX1ZG TElQLAogCX0sCiAJLmxtID0gewogCQkuY291bnQgPSAyLCAvKiBMTTAgYW5kIExNMyAqLwpAQCAt MjMzLDE2ICsyNTEsMjAgQEAgY29uc3Qgc3RydWN0IG1kcDVfY2ZnX2h3IG1zbTh4OTRfY29uZmln ID0gewogCS5waXBlX3ZpZyA9IHsKIAkJLmNvdW50ID0gNCwKIAkJLmJhc2UgPSB7IDB4MDUwMDAs IDB4MDcwMDAsIDB4MDkwMDAsIDB4MGIwMDAgfSwKLQkJLyogVE9ETzogYWRkIGRlY2ltYXRpb24g Yml0ICovCisJCS5jYXBzID0gTURQX1BJUEVfQ0FQX0hGTElQIHwgTURQX1BJUEVfQ0FQX1ZGTElQ IHwKKwkJCQlNRFBfUElQRV9DQVBfU0NBTEUgfCBNRFBfUElQRV9DQVBfQ1NDIHwKKwkJCQlNRFBf UElQRV9DQVBfREVDSU1BVElPTiwKIAl9LAogCS5waXBlX3JnYiA9IHsKIAkJLmNvdW50ID0gNCwK IAkJLmJhc2UgPSB7IDB4MTUwMDAsIDB4MTcwMDAsIDB4MTkwMDAsIDB4MWIwMDAgfSwKLQkJLyog VE9ETzogYWRkIGRlY2ltYXRpb24gYml0ICovCisJCS5jYXBzID0gTURQX1BJUEVfQ0FQX0hGTElQ IHwgTURQX1BJUEVfQ0FQX1ZGTElQIHwKKwkJCQlNRFBfUElQRV9DQVBfU0NBTEUgfCBNRFBfUElQ RV9DQVBfREVDSU1BVElPTiwKIAl9LAogCS5waXBlX2RtYSA9IHsKIAkJLmNvdW50ID0gMiwKIAkJ LmJhc2UgPSB7IDB4MjUwMDAsIDB4MjcwMDAgfSwKKwkJLmNhcHMgPSBNRFBfUElQRV9DQVBfSEZM SVAgfCBNRFBfUElQRV9DQVBfVkZMSVAsCiAJfSwKIAkubG0gPSB7CiAJCS5jb3VudCA9IDYsCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY2ZnLmggYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY2ZnLmgKaW5kZXggNjkzNDlhYi4uNzJlOTkx NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2NmZy5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jZmcuaApAQCAtNDQsNiArNDQs MTEgQEAgc3RydWN0IG1kcDVfbG1fYmxvY2sgewogCXVpbnQzMl90IG5iX3N0YWdlczsJCS8qIG51 bWJlciBvZiBzdGFnZXMgcGVyIGJsZW5kZXIgKi8KIH07CiAKK3N0cnVjdCBtZHA1X3BpcGVfYmxv Y2sgeworCU1EUDVfU1VCX0JMT0NLX0RFRklOSVRJT047CisJdWludDMyX3QgY2FwczsJCQkvKiBw aXBlIGNhcGFiaWxpdGllcyAqLworfTsKKwogc3RydWN0IG1kcDVfY3RsX2Jsb2NrIHsKIAlNRFA1 X1NVQl9CTE9DS19ERUZJTklUSU9OOwogCXVpbnQzMl90IGZsdXNoX2h3X21hc2s7CQkvKiBGTFVT SCByZWdpc3RlcidzIGhhcmR3YXJlIG1hc2sgKi8KQEAgLTcwLDkgKzc1LDkgQEAgc3RydWN0IG1k cDVfY2ZnX2h3IHsKIAlzdHJ1Y3QgbWRwNV9zdWJfYmxvY2sgbWRwOwogCXN0cnVjdCBtZHA1X3Nt cF9ibG9jayBzbXA7CiAJc3RydWN0IG1kcDVfY3RsX2Jsb2NrIGN0bDsKLQlzdHJ1Y3QgbWRwNV9z dWJfYmxvY2sgcGlwZV92aWc7Ci0Jc3RydWN0IG1kcDVfc3ViX2Jsb2NrIHBpcGVfcmdiOwotCXN0 cnVjdCBtZHA1X3N1Yl9ibG9jayBwaXBlX2RtYTsKKwlzdHJ1Y3QgbWRwNV9waXBlX2Jsb2NrIHBp cGVfdmlnOworCXN0cnVjdCBtZHA1X3BpcGVfYmxvY2sgcGlwZV9yZ2I7CisJc3RydWN0IG1kcDVf cGlwZV9ibG9jayBwaXBlX2RtYTsKIAlzdHJ1Y3QgbWRwNV9sbV9ibG9jayAgbG07CiAJc3RydWN0 IG1kcDVfc3ViX2Jsb2NrIGRzcHA7CiAJc3RydWN0IG1kcDVfc3ViX2Jsb2NrIGFkOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5jIGIvZHJpdmVycy9n cHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5jCmluZGV4IGFmMDA1OWIuLmNiZGE0MWQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmMKQEAgLTMzOSw3ICszMzksNyBA QCBzdGF0aWMgaW50IG1vZGVzZXRfaW5pdChzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21zKQogCQlz dHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAKIAkJcGxhbmUgPSBtZHA1X3BsYW5lX2luaXQoZGV2LCBj cnRjc1tpXSwgdHJ1ZSwKLQkJCQlod19jZmctPnBpcGVfcmdiLmJhc2VbaV0pOworCQkJaHdfY2Zn LT5waXBlX3JnYi5iYXNlW2ldLCBod19jZmctPnBpcGVfcmdiLmNhcHMpOwogCQlpZiAoSVNfRVJS KHBsYW5lKSkgewogCQkJcmV0ID0gUFRSX0VSUihwbGFuZSk7CiAJCQlkZXZfZXJyKGRldi0+ZGV2 LCAiZmFpbGVkIHRvIGNvbnN0cnVjdCBwbGFuZSBmb3IgJXMgKCVkKVxuIiwKQEAgLTM2Miw3ICsz NjIsNyBAQCBzdGF0aWMgaW50IG1vZGVzZXRfaW5pdChzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21z KQogCQlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKIAogCQlwbGFuZSA9IG1kcDVfcGxhbmVfaW5p dChkZXYsIHB1Yl9wbGFuZXNbaV0sIGZhbHNlLAotCQkJCWh3X2NmZy0+cGlwZV92aWcuYmFzZVtp XSk7CisJCQlod19jZmctPnBpcGVfdmlnLmJhc2VbaV0sIGh3X2NmZy0+cGlwZV92aWcuY2Fwcyk7 CiAJCWlmIChJU19FUlIocGxhbmUpKSB7CiAJCQlyZXQgPSBQVFJfRVJSKHBsYW5lKTsKIAkJCWRl dl9lcnIoZGV2LT5kZXYsICJmYWlsZWQgdG8gY29uc3RydWN0ICVzIHBsYW5lOiAlZFxuIiwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuaCBiL2RyaXZl cnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuaAppbmRleCAwNmFmNDE1Li44NTQyYjMw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5oCkBAIC0xOTYsMzQgKzE5 NiwxNCBAQCB2b2lkIG1kcDVfZGlzYWJsZV92Ymxhbmsoc3RydWN0IG1zbV9rbXMgKmttcywgc3Ry dWN0IGRybV9jcnRjICpjcnRjKTsKIGludCBtZHA1X2lycV9kb21haW5faW5pdChzdHJ1Y3QgbWRw NV9rbXMgKm1kcDVfa21zKTsKIHZvaWQgbWRwNV9pcnFfZG9tYWluX2Zpbmkoc3RydWN0IG1kcDVf a21zICptZHA1X2ttcyk7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBwaXBlX3N1cHBvcnRzX3l1dihl bnVtIG1kcDVfcGlwZSBwaXBlKQotewotCXN3aXRjaCAocGlwZSkgewotCWNhc2UgU1NQUF9WSUcw OgotCWNhc2UgU1NQUF9WSUcxOgotCWNhc2UgU1NQUF9WSUcyOgotCWNhc2UgU1NQUF9WSUczOgot CQlyZXR1cm4gdHJ1ZTsKLQlkZWZhdWx0OgotCQlyZXR1cm4gZmFsc2U7Ci0JfQotfQotCi1zdGF0 aWMgaW5saW5lCi11aW50MzJfdCBtZHA1X2dldF9mb3JtYXRzKGVudW0gbWRwNV9waXBlIHBpcGUs IHVpbnQzMl90ICpwaXhlbF9mb3JtYXRzLAotCQl1aW50MzJfdCBtYXhfZm9ybWF0cykKLXsKLQly ZXR1cm4gbWRwX2dldF9mb3JtYXRzKHBpeGVsX2Zvcm1hdHMsIG1heF9mb3JtYXRzLAotCQkJCSFw aXBlX3N1cHBvcnRzX3l1dihwaXBlKSk7Ci19Ci0KIHZvaWQgbWRwNV9wbGFuZV9pbnN0YWxsX3By b3BlcnRpZXMoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCXN0cnVjdCBkcm1fbW9kZV9vYmpl Y3QgKm9iaik7CiB1aW50MzJfdCBtZHA1X3BsYW5lX2dldF9mbHVzaChzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSk7CiB2b2lkIG1kcDVfcGxhbmVfY29tcGxldGVfZmxpcChzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSk7CiBlbnVtIG1kcDVfcGlwZSBtZHA1X3BsYW5lX3BpcGUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUpOwogc3RydWN0IGRybV9wbGFuZSAqbWRwNV9wbGFuZV9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCi0JCWVudW0gbWRwNV9waXBlIHBpcGUsIGJvb2wgcHJpdmF0ZV9wbGFuZSwg dWludDMyX3QgcmVnX29mZnNldCk7CisJCWVudW0gbWRwNV9waXBlIHBpcGUsIGJvb2wgcHJpdmF0 ZV9wbGFuZSwKKwkJIHVpbnQzMl90IHJlZ19vZmZzZXQsICB1aW50MzJfdCBjYXBzKTsKIAogdWlu dDMyX3QgbWRwNV9jcnRjX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jCmluZGV4IDUxYmI5NDQuLjFmYmIxN2Qg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jCkBAIC0yNiw2ICsy Niw3IEBAIHN0cnVjdCBtZHA1X3BsYW5lIHsKIAogCXNwaW5sb2NrX3QgcGlwZV9sb2NrOwkvKiBw cm90ZWN0IFJFR19NRFA1X1BJUEVfKiByZWdpc3RlcnMgKi8KIAl1aW50MzJfdCByZWdfb2Zmc2V0 OworCXVpbnQzMl90IGNhcHM7CiAKIAl1aW50MzJfdCBmbHVzaF9tYXNrOwkvKiB1c2VkIHRvIGNv bW1pdCBwaXBlIHJlZ2lzdGVycyAqLwogCkBAIC0yODgsMTAgKzI4OSwzMyBAQCBzdGF0aWMgaW50 IG1kcDVfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogewogCXN0 cnVjdCBtZHA1X3BsYW5lICptZHA1X3BsYW5lID0gdG9fbWRwNV9wbGFuZShwbGFuZSk7CiAJc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlID0gcGxhbmUtPnN0YXRlOworCWNvbnN0IHN0 cnVjdCBtZHBfZm9ybWF0ICpmb3JtYXQ7CiAKIAlEQkcoIiVzOiBjaGVjayAoJWQgLT4gJWQpIiwg bWRwNV9wbGFuZS0+bmFtZSwKIAkJCXBsYW5lX2VuYWJsZWQob2xkX3N0YXRlKSwgcGxhbmVfZW5h YmxlZChzdGF0ZSkpOwogCisJaWYgKHBsYW5lX2VuYWJsZWQoc3RhdGUpKSB7CisJCWZvcm1hdCA9 IHRvX21kcF9mb3JtYXQobXNtX2ZyYW1lYnVmZmVyX2Zvcm1hdChzdGF0ZS0+ZmIpKTsKKwkJaWYg KE1EUF9GT1JNQVRfSVNfWVVWKGZvcm1hdCkgJiYKKwkJCSFwaXBlX3N1cHBvcnRzX3l1dihtZHA1 X3BsYW5lLT5jYXBzKSkgeworCQkJZGV2X2VycihwbGFuZS0+ZGV2LT5kZXYsCisJCQkJIlBpcGUg ZG9lc24ndCBzdXBwb3J0IFlVVlxuIik7CisKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJ aWYgKCEobWRwNV9wbGFuZS0+Y2FwcyAmIE1EUF9QSVBFX0NBUF9TQ0FMRSkgJiYKKwkJCSgoKHN0 YXRlLT5zcmNfdyA+PiAxNikgIT0gc3RhdGUtPmNydGNfdykgfHwKKwkJCSgoc3RhdGUtPnNyY19o ID4+IDE2KSAhPSBzdGF0ZS0+Y3J0Y19oKSkpIHsKKwkJCWRldl9lcnIocGxhbmUtPmRldi0+ZGV2 LAorCQkJCSJQaXBlIGRvZXNuJ3Qgc3VwcG9ydCBzY2FsaW5nICglZHglZCAtPiAlZHglZClcbiIs CisJCQkJc3RhdGUtPnNyY193ID4+IDE2LCBzdGF0ZS0+c3JjX2ggPj4gMTYsCisJCQkJc3RhdGUt PmNydGNfdywgc3RhdGUtPmNydGNfaCk7CisKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJfQor CiAJaWYgKHBsYW5lX2VuYWJsZWQoc3RhdGUpICYmIHBsYW5lX2VuYWJsZWQob2xkX3N0YXRlKSkg ewogCQkvKiB3ZSBjYW5ub3QgY2hhbmdlIFNNUCBibG9jayBjb25maWd1cmF0aW9uIGR1cmluZyBz Y2Fub3V0OiAqLwogCQlib29sIGZ1bGxfbW9kZXNldCA9IGZhbHNlOwpAQCAtNjU2LDI0ICs2ODAs MjggQEAgc3RhdGljIGludCBtZHA1X3BsYW5lX21vZGVfc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAogCS8qIG5vdCB1c2luZyBzZWN1cmUgbW9kZTogKi8KIAltZHA1X3dyaXRlKG1kcDVfa21z LCBSRUdfTURQNV9QSVBFX1NSQ19BRERSX1NXX1NUQVRVUyhwaXBlKSwgMCk7CiAKLQltZHA1X3dy aXRlKG1kcDVfa21zLCBSRUdfTURQNV9QSVBFX1NDQUxFX1BIQVNFX1NURVBfWChwaXBlKSwKLQkJ CXBoYXNleF9zdGVwWzBdKTsKLQltZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQNV9QSVBFX1ND QUxFX1BIQVNFX1NURVBfWShwaXBlKSwKLQkJCXBoYXNleV9zdGVwWzBdKTsKLQltZHA1X3dyaXRl KG1kcDVfa21zLCBSRUdfTURQNV9QSVBFX1NDQUxFX0NSX1BIQVNFX1NURVBfWChwaXBlKSwKLQkJ CXBoYXNleF9zdGVwWzFdKTsKLQltZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQNV9QSVBFX1ND QUxFX0NSX1BIQVNFX1NURVBfWShwaXBlKSwKLQkJCXBoYXNleV9zdGVwWzFdKTsKLQltZHA1X3dy aXRlKG1kcDVfa21zLCBSRUdfTURQNV9QSVBFX0RFQ0lNQVRJT04ocGlwZSksCi0JCQlNRFA1X1BJ UEVfREVDSU1BVElPTl9WRVJUKHZkZWNtKSB8Ci0JCQlNRFA1X1BJUEVfREVDSU1BVElPTl9IT1Ja KGhkZWNtKSk7Ci0JbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVfUElQRV9TQ0FMRV9DT05G SUcocGlwZSksIGNvbmZpZyk7Ci0KLQlpZiAoTURQX0ZPUk1BVF9JU19ZVVYoZm9ybWF0KSkKLQkJ Y3NjX2VuYWJsZShtZHA1X2ttcywgcGlwZSwKLQkJCQltZHBfZ2V0X2RlZmF1bHRfY3NjX2NmZyhD U0NfWVVWMlJHQikpOwotCWVsc2UKLQkJY3NjX2Rpc2FibGUobWRwNV9rbXMsIHBpcGUpOworCWlm IChtZHA1X3BsYW5lLT5jYXBzICYgTURQX1BJUEVfQ0FQX1NDQUxFKSB7CisJCW1kcDVfd3JpdGUo bWRwNV9rbXMsIFJFR19NRFA1X1BJUEVfU0NBTEVfUEhBU0VfU1RFUF9YKHBpcGUpLAorCQkJCXBo YXNleF9zdGVwWzBdKTsKKwkJbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVfUElQRV9TQ0FM RV9QSEFTRV9TVEVQX1kocGlwZSksCisJCQkJcGhhc2V5X3N0ZXBbMF0pOworCQltZHA1X3dyaXRl KG1kcDVfa21zLCBSRUdfTURQNV9QSVBFX1NDQUxFX0NSX1BIQVNFX1NURVBfWChwaXBlKSwKKwkJ CQlwaGFzZXhfc3RlcFsxXSk7CisJCW1kcDVfd3JpdGUobWRwNV9rbXMsIFJFR19NRFA1X1BJUEVf U0NBTEVfQ1JfUEhBU0VfU1RFUF9ZKHBpcGUpLAorCQkJCXBoYXNleV9zdGVwWzFdKTsKKwkJbWRw NV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVfUElQRV9ERUNJTUFUSU9OKHBpcGUpLAorCQkJCU1E UDVfUElQRV9ERUNJTUFUSU9OX1ZFUlQodmRlY20pIHwKKwkJCQlNRFA1X1BJUEVfREVDSU1BVElP Tl9IT1JaKGhkZWNtKSk7CisJCW1kcDVfd3JpdGUobWRwNV9rbXMsIFJFR19NRFA1X1BJUEVfU0NB TEVfQ09ORklHKHBpcGUpLCBjb25maWcpOworCX0KKworCWlmIChtZHA1X3BsYW5lLT5jYXBzICYg TURQX1BJUEVfQ0FQX0NTQykgeworCQlpZiAoTURQX0ZPUk1BVF9JU19ZVVYoZm9ybWF0KSkKKwkJ CWNzY19lbmFibGUobWRwNV9rbXMsIHBpcGUsCisJCQkJCW1kcF9nZXRfZGVmYXVsdF9jc2NfY2Zn KENTQ19ZVVYyUkdCKSk7CisJCWVsc2UKKwkJCWNzY19kaXNhYmxlKG1kcDVfa21zLCBwaXBlKTsK Kwl9CiAKIAlzZXRfc2Nhbm91dF9sb2NrZWQocGxhbmUsIGZiKTsKIApAQCAtNzEwLDcgKzczOCw4 IEBAIHVpbnQzMl90IG1kcDVfcGxhbmVfZ2V0X2ZsdXNoKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l KQogCiAvKiBpbml0aWFsaXplIHBsYW5lICovCiBzdHJ1Y3QgZHJtX3BsYW5lICptZHA1X3BsYW5l X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJZW51bSBtZHA1X3BpcGUgcGlwZSwgYm9v bCBwcml2YXRlX3BsYW5lLCB1aW50MzJfdCByZWdfb2Zmc2V0KQorCQllbnVtIG1kcDVfcGlwZSBw aXBlLCBib29sIHByaXZhdGVfcGxhbmUsIHVpbnQzMl90IHJlZ19vZmZzZXQsCisJCXVpbnQzMl90 IGNhcHMpCiB7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBOVUxMOwogCXN0cnVjdCBtZHA1 X3BsYW5lICptZHA1X3BsYW5lOwpAQCAtNzI3LDkgKzc1NiwxMSBAQCBzdHJ1Y3QgZHJtX3BsYW5l ICptZHA1X3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCW1kcDVfcGxhbmUt PnBpcGUgPSBwaXBlOwogCW1kcDVfcGxhbmUtPm5hbWUgPSBwaXBlMm5hbWUocGlwZSk7CisJbWRw NV9wbGFuZS0+Y2FwcyA9IGNhcHM7CiAKLQltZHA1X3BsYW5lLT5uZm9ybWF0cyA9IG1kcDVfZ2V0 X2Zvcm1hdHMocGlwZSwgbWRwNV9wbGFuZS0+Zm9ybWF0cywKLQkJCUFSUkFZX1NJWkUobWRwNV9w bGFuZS0+Zm9ybWF0cykpOworCW1kcDVfcGxhbmUtPm5mb3JtYXRzID0gbWRwX2dldF9mb3JtYXRz KG1kcDVfcGxhbmUtPmZvcm1hdHMsCisJCUFSUkFZX1NJWkUobWRwNV9wbGFuZS0+Zm9ybWF0cyks CisJCSFwaXBlX3N1cHBvcnRzX3l1dihtZHA1X3BsYW5lLT5jYXBzKSk7CiAKIAltZHA1X3BsYW5l LT5mbHVzaF9tYXNrID0gbWRwX2N0bF9mbHVzaF9tYXNrX3BpcGUocGlwZSk7CiAJbWRwNV9wbGFu ZS0+cmVnX29mZnNldCA9IHJlZ19vZmZzZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL21kcC9tZHBfa21zLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHBfa21zLmgKaW5k ZXggMmQzNDI4Yy4uM2RiMjVkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAv bWRwX2ttcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcF9rbXMuaApAQCAtOTcs NiArOTcsMTkgQEAgc3RydWN0IG1kcF9mb3JtYXQgewogdWludDMyX3QgbWRwX2dldF9mb3JtYXRz KHVpbnQzMl90ICpmb3JtYXRzLCB1aW50MzJfdCBtYXhfZm9ybWF0cywgYm9vbCByZ2Jfb25seSk7 CiBjb25zdCBzdHJ1Y3QgbXNtX2Zvcm1hdCAqbWRwX2dldF9mb3JtYXQoc3RydWN0IG1zbV9rbXMg KmttcywgdWludDMyX3QgZm9ybWF0KTsKIAorLyogTURQIHBpcGUgY2FwYWJpbGl0aWVzICovCisj ZGVmaW5lIE1EUF9QSVBFX0NBUF9IRkxJUAkJCUJJVCgwKQorI2RlZmluZSBNRFBfUElQRV9DQVBf VkZMSVAJCQlCSVQoMSkKKyNkZWZpbmUgTURQX1BJUEVfQ0FQX1NDQUxFCQkJQklUKDIpCisjZGVm aW5lIE1EUF9QSVBFX0NBUF9DU0MJCQlCSVQoMykKKyNkZWZpbmUgTURQX1BJUEVfQ0FQX0RFQ0lN QVRJT04JCQlCSVQoNCkKKworc3RhdGljIGlubGluZSBib29sIHBpcGVfc3VwcG9ydHNfeXV2KHVp bnQzMl90IHBpcGVfY2FwcykKK3sKKwlyZXR1cm4gKHBpcGVfY2FwcyAmIE1EUF9QSVBFX0NBUF9T Q0FMRSkgJiYKKwkJKHBpcGVfY2FwcyAmIE1EUF9QSVBFX0NBUF9DU0MpOworfQorCiBlbnVtIGNz Y190eXBlIHsKIAlDU0NfUkdCMlJHQiA9IDAsCiAJQ1NDX1lVVjJSR0IsCi0tIApUaGUgUXVhbGNv bW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3Jh IEZvcnVtLAphIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=