From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jilai Wang Subject: [PATCH] drm/msm/mdp: Add capabilities to MDP planes Date: Tue, 7 Jul 2015 17:16:56 -0400 Message-ID: <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: 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 IGl0IHRvIGRpZmZlcmVuY2lhdGUgdGhlIHBsYW5lIG9wZXJhdGlvbi4KClNpZ25lZC1vZmYtYnk6 IEppbGFpIFdhbmcgPGppbGFpd0Bjb2RlYXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v bXNtL21kcC9tZHA0L21kcDRfa21zLmggICB8IDE5ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0v bXNtL21kcC9tZHA0L21kcDRfcGxhbmUuYyB8ICA3ICsrLQogZHJpdmVycy9ncHUvZHJtL21zbS9t ZHAvbWRwNS9tZHA1X2NmZy5jICAgfCAyNiArKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL21z bS9tZHAvbWRwNS9tZHA1X2NmZy5oICAgfCAxMSArKystLQogZHJpdmVycy9ncHUvZHJtL21zbS9t ZHAvbWRwNS9tZHA1X2ttcy5jICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRw NS9tZHA1X2ttcy5oICAgfCAyNCArLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9t ZHA1L21kcDVfcGxhbmUuYyB8IDczICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcF9rbXMuaCAgICAgICAgIHwgMTMgKysrKysrCiA4IGZp bGVzIGNoYW5nZWQsIDExNCBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfa21zLmggYi9kcml2ZXJzL2dw dS9kcm0vbXNtL21kcC9tZHA0L21kcDRfa21zLmgKaW5kZXggYzFlY2I5ZC4uODNhNTRkMCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNC9tZHA0X2ttcy5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9rbXMuaApAQCAtMTc1LDI3ICsxNzUsMjQg QEAgaXJxcmV0dXJuX3QgbWRwNF9pcnEoc3RydWN0IG1zbV9rbXMgKmttcyk7CiBpbnQgbWRwNF9l bmFibGVfdmJsYW5rKHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7 CiB2b2lkIG1kcDRfZGlzYWJsZV92Ymxhbmsoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRy bV9jcnRjICpjcnRjKTsKIAotc3RhdGljIGlubGluZSBib29sIHBpcGVfc3VwcG9ydHNfeXV2KGVu dW0gbWRwNF9waXBlIHBpcGUpCitzdGF0aWMgaW5saW5lIHVpbnQzMl90IG1kcDRfcGlwZV9jYXBz KGVudW0gbWRwNF9waXBlIHBpcGUpCiB7CiAJc3dpdGNoIChwaXBlKSB7CiAJY2FzZSBWRzE6CiAJ Y2FzZSBWRzI6CiAJY2FzZSBWRzM6CiAJY2FzZSBWRzQ6Ci0JCXJldHVybiB0cnVlOworCQlyZXR1 cm4gTURQX1BJUEVfQ0FQX0hGTElQIHwgTURQX1BJUEVfQ0FQX1ZGTElQIHwKKwkJCU1EUF9QSVBF X0NBUF9TQ0FMRSB8IE1EUF9QSVBFX0NBUF9DU0M7CisJY2FzZSBSR0IxOgorCWNhc2UgUkdCMjoK KwljYXNlIFJCRzI6CisJCXJldHVybiBNRFBfUElQRV9DQVBfU0NBTEU7CiAJZGVmYXVsdDoKLQkJ cmV0dXJuIGZhbHNlOworCQlyZXR1cm4gMDsKIAl9CiB9CiAKLXN0YXRpYyBpbmxpbmUKLXVpbnQz Ml90IG1kcDRfZ2V0X2Zvcm1hdHMoZW51bSBtZHA0X3BpcGUgcGlwZV9pZCwgdWludDMyX3QgKnBp eGVsX2Zvcm1hdHMsCi0JCXVpbnQzMl90IG1heF9mb3JtYXRzKQotewotCXJldHVybiBtZHBfZ2V0 X2Zvcm1hdHMocGl4ZWxfZm9ybWF0cywgbWF4X2Zvcm1hdHMsCi0JCQkJIXBpcGVfc3VwcG9ydHNf eXV2KHBpcGVfaWQpKTsKLX0KLQogdm9pZCBtZHA0X3BsYW5lX2luc3RhbGxfcHJvcGVydGllcyhz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqKTsK IGVudW0gbWRwNF9waXBlIG1kcDRfcGxhbmVfcGlwZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfcGxhbmUuYyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jCmluZGV4IDBkMWRiYjcu LmM3NDk0ODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9w bGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jCkBA IC0yNiw2ICsyNiw3IEBAIHN0cnVjdCBtZHA0X3BsYW5lIHsKIAogCWVudW0gbWRwNF9waXBlIHBp cGU7CiAKKwl1aW50MzJfdCBjYXBzOwogCXVpbnQzMl90IG5mb3JtYXRzOwogCXVpbnQzMl90IGZv cm1hdHNbMzJdOwogCkBAIC0zODAsOSArMzgxLDExIEBAIHN0cnVjdCBkcm1fcGxhbmUgKm1kcDRf cGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJbWRwNF9wbGFuZS0+cGlwZSA9 IHBpcGVfaWQ7CiAJbWRwNF9wbGFuZS0+bmFtZSA9IHBpcGVfbmFtZXNbcGlwZV9pZF07CisJbWRw NF9wbGFuZS0+Y2FwcyA9IG1kcDRfcGlwZV9jYXBzKHBpcGVfaWQpOwogCi0JbWRwNF9wbGFuZS0+ bmZvcm1hdHMgPSBtZHA0X2dldF9mb3JtYXRzKHBpcGVfaWQsIG1kcDRfcGxhbmUtPmZvcm1hdHMs Ci0JCQlBUlJBWV9TSVpFKG1kcDRfcGxhbmUtPmZvcm1hdHMpKTsKKwltZHA0X3BsYW5lLT5uZm9y bWF0cyA9IG1kcF9nZXRfZm9ybWF0cyhtZHA0X3BsYW5lLT5mb3JtYXRzLAorCQkJQVJSQVlfU0la RShtZHA0X3BsYW5lLT5mb3JtYXRzKSwKKwkJCSFwaXBlX3N1cHBvcnRzX3l1dihtZHA0X3BsYW5l LT5jYXBzKSk7CiAKIAl0eXBlID0gcHJpdmF0ZV9wbGFuZSA/IERSTV9QTEFORV9UWVBFX1BSSU1B UlkgOiBEUk1fUExBTkVfVFlQRV9PVkVSTEFZOwogCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVf aW5pdChkZXYsIHBsYW5lLCAweGZmLCAmbWRwNF9wbGFuZV9mdW5jcywKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jZmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vbWRwL21kcDUvbWRwNV9jZmcuYwppbmRleCA3ODliMDJmLi5hYzFkNThmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY2ZnLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2NmZy5jCkBAIC00NSwxNCArNDUsMjAgQEAgY29uc3Qg c3RydWN0IG1kcDVfY2ZnX2h3IG1zbTh4NzRfY29uZmlnID0gewogCS5waXBlX3ZpZyA9IHsKIAkJ LmNvdW50ID0gMywKIAkJLmJhc2UgPSB7IDB4MDEyMDAsIDB4MDE2MDAsIDB4MDFhMDAgfSwKKwkJ LmNhcHMgPSBNRFBfUElQRV9DQVBfSEZMSVAgfCBNRFBfUElQRV9DQVBfVkZMSVAgfAorCQkJCU1E UF9QSVBFX0NBUF9TQ0FMRSB8IE1EUF9QSVBFX0NBUF9DU0MgfAorCQkJCU1EUF9QSVBFX0NBUF9E RUNJTUFUSU9OLAogCX0sCiAJLnBpcGVfcmdiID0gewogCQkuY291bnQgPSAzLAogCQkuYmFzZSA9 IHsgMHgwMWUwMCwgMHgwMjIwMCwgMHgwMjYwMCB9LAorCQkuY2FwcyA9IE1EUF9QSVBFX0NBUF9I RkxJUCB8IE1EUF9QSVBFX0NBUF9WRkxJUCB8CisJCQkJTURQX1BJUEVfQ0FQX1NDQUxFIHwgTURQ X1BJUEVfQ0FQX0RFQ0lNQVRJT04sCiAJfSwKIAkucGlwZV9kbWEgPSB7CiAJCS5jb3VudCA9IDIs CiAJCS5iYXNlID0geyAweDAyYTAwLCAweDAyZTAwIH0sCisJCS5jYXBzID0gTURQX1BJUEVfQ0FQ X0hGTElQIHwgTURQX1BJUEVfQ0FQX1ZGTElQLAogCX0sCiAJLmxtID0gewogCQkuY291bnQgPSA1 LApAQCAtMTEzLDE0ICsxMTksMjAgQEAgY29uc3Qgc3RydWN0IG1kcDVfY2ZnX2h3IGFwcTgwODRf Y29uZmlnID0gewogCS5waXBlX3ZpZyA9IHsKIAkJLmNvdW50ID0gNCwKIAkJLmJhc2UgPSB7IDB4 MDEyMDAsIDB4MDE2MDAsIDB4MDFhMDAsIDB4MDFlMDAgfSwKKwkJLmNhcHMgPSBNRFBfUElQRV9D QVBfSEZMSVAgfCBNRFBfUElQRV9DQVBfVkZMSVAgfAorCQkJCU1EUF9QSVBFX0NBUF9TQ0FMRSB8 IE1EUF9QSVBFX0NBUF9DU0MgfAorCQkJCU1EUF9QSVBFX0NBUF9ERUNJTUFUSU9OLAogCX0sCiAJ LnBpcGVfcmdiID0gewogCQkuY291bnQgPSA0LAogCQkuYmFzZSA9IHsgMHgwMjIwMCwgMHgwMjYw MCwgMHgwMmEwMCwgMHgwMmUwMCB9LAorCQkuY2FwcyA9IE1EUF9QSVBFX0NBUF9IRkxJUCB8IE1E UF9QSVBFX0NBUF9WRkxJUCB8CisJCQkJTURQX1BJUEVfQ0FQX1NDQUxFIHwgTURQX1BJUEVfQ0FQ X0RFQ0lNQVRJT04sCiAJfSwKIAkucGlwZV9kbWEgPSB7CiAJCS5jb3VudCA9IDIsCiAJCS5iYXNl ID0geyAweDAzMjAwLCAweDAzNjAwIH0sCisJCS5jYXBzID0gTURQX1BJUEVfQ0FQX0hGTElQIHwg TURQX1BJUEVfQ0FQX1ZGTElQLAogCX0sCiAJLmxtID0gewogCQkuY291bnQgPSA2LApAQCAtMTc0 LDE0ICsxODYsMjAgQEAgY29uc3Qgc3RydWN0IG1kcDVfY2ZnX2h3IG1zbTh4MTZfY29uZmlnID0g ewogCS5waXBlX3ZpZyA9IHsKIAkJLmNvdW50ID0gMSwKIAkJLmJhc2UgPSB7IDB4MDUwMDAgfSwK KwkJLmNhcHMgPSBNRFBfUElQRV9DQVBfSEZMSVAgfCBNRFBfUElQRV9DQVBfVkZMSVAgfAorCQkJ CU1EUF9QSVBFX0NBUF9TQ0FMRSB8IE1EUF9QSVBFX0NBUF9DU0MgfAorCQkJCU1EUF9QSVBFX0NB UF9ERUNJTUFUSU9OLAogCX0sCiAJLnBpcGVfcmdiID0gewogCQkuY291bnQgPSAyLAogCQkuYmFz ZSA9IHsgMHgxNTAwMCwgMHgxNzAwMCB9LAorCQkuY2FwcyA9IE1EUF9QSVBFX0NBUF9IRkxJUCB8 IE1EUF9QSVBFX0NBUF9WRkxJUCB8CisJCQkJTURQX1BJUEVfQ0FQX1NDQUxFIHwgTURQX1BJUEVf Q0FQX0RFQ0lNQVRJT04sCiAJfSwKIAkucGlwZV9kbWEgPSB7CiAJCS5jb3VudCA9IDEsCiAJCS5i YXNlID0geyAweDI1MDAwIH0sCisJCS5jYXBzID0gTURQX1BJUEVfQ0FQX0hGTElQIHwgTURQX1BJ UEVfQ0FQX1ZGTElQLAogCX0sCiAJLmxtID0gewogCQkuY291bnQgPSAyLCAvKiBMTTAgYW5kIExN MyAqLwpAQCAtMjMzLDE2ICsyNTEsMjAgQEAgY29uc3Qgc3RydWN0IG1kcDVfY2ZnX2h3IG1zbTh4 OTRfY29uZmlnID0gewogCS5waXBlX3ZpZyA9IHsKIAkJLmNvdW50ID0gNCwKIAkJLmJhc2UgPSB7 IDB4MDUwMDAsIDB4MDcwMDAsIDB4MDkwMDAsIDB4MGIwMDAgfSwKLQkJLyogVE9ETzogYWRkIGRl Y2ltYXRpb24gYml0ICovCisJCS5jYXBzID0gTURQX1BJUEVfQ0FQX0hGTElQIHwgTURQX1BJUEVf Q0FQX1ZGTElQIHwKKwkJCQlNRFBfUElQRV9DQVBfU0NBTEUgfCBNRFBfUElQRV9DQVBfQ1NDIHwK KwkJCQlNRFBfUElQRV9DQVBfREVDSU1BVElPTiwKIAl9LAogCS5waXBlX3JnYiA9IHsKIAkJLmNv dW50ID0gNCwKIAkJLmJhc2UgPSB7IDB4MTUwMDAsIDB4MTcwMDAsIDB4MTkwMDAsIDB4MWIwMDAg fSwKLQkJLyogVE9ETzogYWRkIGRlY2ltYXRpb24gYml0ICovCisJCS5jYXBzID0gTURQX1BJUEVf Q0FQX0hGTElQIHwgTURQX1BJUEVfQ0FQX1ZGTElQIHwKKwkJCQlNRFBfUElQRV9DQVBfU0NBTEUg fCBNRFBfUElQRV9DQVBfREVDSU1BVElPTiwKIAl9LAogCS5waXBlX2RtYSA9IHsKIAkJLmNvdW50 ID0gMiwKIAkJLmJhc2UgPSB7IDB4MjUwMDAsIDB4MjcwMDAgfSwKKwkJLmNhcHMgPSBNRFBfUElQ RV9DQVBfSEZMSVAgfCBNRFBfUElQRV9DQVBfVkZMSVAsCiAJfSwKIAkubG0gPSB7CiAJCS5jb3Vu dCA9IDYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY2Zn LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY2ZnLmgKaW5kZXggNjkzNDlh Yi4uNzJlOTkxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1 X2NmZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jZmcuaApAQCAt NDQsNiArNDQsMTEgQEAgc3RydWN0IG1kcDVfbG1fYmxvY2sgewogCXVpbnQzMl90IG5iX3N0YWdl czsJCS8qIG51bWJlciBvZiBzdGFnZXMgcGVyIGJsZW5kZXIgKi8KIH07CiAKK3N0cnVjdCBtZHA1 X3BpcGVfYmxvY2sgeworCU1EUDVfU1VCX0JMT0NLX0RFRklOSVRJT047CisJdWludDMyX3QgY2Fw czsJCQkvKiBwaXBlIGNhcGFiaWxpdGllcyAqLworfTsKKwogc3RydWN0IG1kcDVfY3RsX2Jsb2Nr IHsKIAlNRFA1X1NVQl9CTE9DS19ERUZJTklUSU9OOwogCXVpbnQzMl90IGZsdXNoX2h3X21hc2s7 CQkvKiBGTFVTSCByZWdpc3RlcidzIGhhcmR3YXJlIG1hc2sgKi8KQEAgLTcwLDkgKzc1LDkgQEAg c3RydWN0IG1kcDVfY2ZnX2h3IHsKIAlzdHJ1Y3QgbWRwNV9zdWJfYmxvY2sgbWRwOwogCXN0cnVj dCBtZHA1X3NtcF9ibG9jayBzbXA7CiAJc3RydWN0IG1kcDVfY3RsX2Jsb2NrIGN0bDsKLQlzdHJ1 Y3QgbWRwNV9zdWJfYmxvY2sgcGlwZV92aWc7Ci0Jc3RydWN0IG1kcDVfc3ViX2Jsb2NrIHBpcGVf cmdiOwotCXN0cnVjdCBtZHA1X3N1Yl9ibG9jayBwaXBlX2RtYTsKKwlzdHJ1Y3QgbWRwNV9waXBl X2Jsb2NrIHBpcGVfdmlnOworCXN0cnVjdCBtZHA1X3BpcGVfYmxvY2sgcGlwZV9yZ2I7CisJc3Ry dWN0IG1kcDVfcGlwZV9ibG9jayBwaXBlX2RtYTsKIAlzdHJ1Y3QgbWRwNV9sbV9ibG9jayAgbG07 CiAJc3RydWN0IG1kcDVfc3ViX2Jsb2NrIGRzcHA7CiAJc3RydWN0IG1kcDVfc3ViX2Jsb2NrIGFk OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5jCmluZGV4IGFmMDA1OWIuLmNi ZGE0MWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmMKQEAgLTMzOSw3 ICszMzksNyBAQCBzdGF0aWMgaW50IG1vZGVzZXRfaW5pdChzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVf a21zKQogCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAKIAkJcGxhbmUgPSBtZHA1X3BsYW5lX2lu aXQoZGV2LCBjcnRjc1tpXSwgdHJ1ZSwKLQkJCQlod19jZmctPnBpcGVfcmdiLmJhc2VbaV0pOwor CQkJaHdfY2ZnLT5waXBlX3JnYi5iYXNlW2ldLCBod19jZmctPnBpcGVfcmdiLmNhcHMpOwogCQlp ZiAoSVNfRVJSKHBsYW5lKSkgewogCQkJcmV0ID0gUFRSX0VSUihwbGFuZSk7CiAJCQlkZXZfZXJy KGRldi0+ZGV2LCAiZmFpbGVkIHRvIGNvbnN0cnVjdCBwbGFuZSBmb3IgJXMgKCVkKVxuIiwKQEAg LTM2Miw3ICszNjIsNyBAQCBzdGF0aWMgaW50IG1vZGVzZXRfaW5pdChzdHJ1Y3QgbWRwNV9rbXMg Km1kcDVfa21zKQogCQlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKIAogCQlwbGFuZSA9IG1kcDVf cGxhbmVfaW5pdChkZXYsIHB1Yl9wbGFuZXNbaV0sIGZhbHNlLAotCQkJCWh3X2NmZy0+cGlwZV92 aWcuYmFzZVtpXSk7CisJCQlod19jZmctPnBpcGVfdmlnLmJhc2VbaV0sIGh3X2NmZy0+cGlwZV92 aWcuY2Fwcyk7CiAJCWlmIChJU19FUlIocGxhbmUpKSB7CiAJCQlyZXQgPSBQVFJfRVJSKHBsYW5l KTsKIAkJCWRldl9lcnIoZGV2LT5kZXYsICJmYWlsZWQgdG8gY29uc3RydWN0ICVzIHBsYW5lOiAl ZFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMu aCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuaAppbmRleCAwNmFmNDE1 Li44NTQyYjMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVf a21zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5oCkBAIC0x OTYsMzQgKzE5NiwxNCBAQCB2b2lkIG1kcDVfZGlzYWJsZV92Ymxhbmsoc3RydWN0IG1zbV9rbXMg Kmttcywgc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIGludCBtZHA1X2lycV9kb21haW5faW5pdChz dHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21zKTsKIHZvaWQgbWRwNV9pcnFfZG9tYWluX2Zpbmkoc3Ry dWN0IG1kcDVfa21zICptZHA1X2ttcyk7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBwaXBlX3N1cHBv cnRzX3l1dihlbnVtIG1kcDVfcGlwZSBwaXBlKQotewotCXN3aXRjaCAocGlwZSkgewotCWNhc2Ug U1NQUF9WSUcwOgotCWNhc2UgU1NQUF9WSUcxOgotCWNhc2UgU1NQUF9WSUcyOgotCWNhc2UgU1NQ UF9WSUczOgotCQlyZXR1cm4gdHJ1ZTsKLQlkZWZhdWx0OgotCQlyZXR1cm4gZmFsc2U7Ci0JfQot fQotCi1zdGF0aWMgaW5saW5lCi11aW50MzJfdCBtZHA1X2dldF9mb3JtYXRzKGVudW0gbWRwNV9w aXBlIHBpcGUsIHVpbnQzMl90ICpwaXhlbF9mb3JtYXRzLAotCQl1aW50MzJfdCBtYXhfZm9ybWF0 cykKLXsKLQlyZXR1cm4gbWRwX2dldF9mb3JtYXRzKHBpeGVsX2Zvcm1hdHMsIG1heF9mb3JtYXRz LAotCQkJCSFwaXBlX3N1cHBvcnRzX3l1dihwaXBlKSk7Ci19Ci0KIHZvaWQgbWRwNV9wbGFuZV9p bnN0YWxsX3Byb3BlcnRpZXMoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCXN0cnVjdCBkcm1f bW9kZV9vYmplY3QgKm9iaik7CiB1aW50MzJfdCBtZHA1X3BsYW5lX2dldF9mbHVzaChzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSk7CiB2b2lkIG1kcDVfcGxhbmVfY29tcGxldGVfZmxpcChzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSk7CiBlbnVtIG1kcDVfcGlwZSBtZHA1X3BsYW5lX3BpcGUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUpOwogc3RydWN0IGRybV9wbGFuZSAqbWRwNV9wbGFuZV9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCWVudW0gbWRwNV9waXBlIHBpcGUsIGJvb2wgcHJpdmF0 ZV9wbGFuZSwgdWludDMyX3QgcmVnX29mZnNldCk7CisJCWVudW0gbWRwNV9waXBlIHBpcGUsIGJv b2wgcHJpdmF0ZV9wbGFuZSwKKwkJIHVpbnQzMl90IHJlZ19vZmZzZXQsICB1aW50MzJfdCBjYXBz KTsKIAogdWludDMyX3QgbWRwNV9jcnRjX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jCmluZGV4IDUxYmI5NDQu LjFmYmIxN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9w bGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jCkBA IC0yNiw2ICsyNiw3IEBAIHN0cnVjdCBtZHA1X3BsYW5lIHsKIAogCXNwaW5sb2NrX3QgcGlwZV9s b2NrOwkvKiBwcm90ZWN0IFJFR19NRFA1X1BJUEVfKiByZWdpc3RlcnMgKi8KIAl1aW50MzJfdCBy ZWdfb2Zmc2V0OworCXVpbnQzMl90IGNhcHM7CiAKIAl1aW50MzJfdCBmbHVzaF9tYXNrOwkvKiB1 c2VkIHRvIGNvbW1pdCBwaXBlIHJlZ2lzdGVycyAqLwogCkBAIC0yODgsMTAgKzI4OSwzMyBAQCBz dGF0aWMgaW50IG1kcDVfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAogewogCXN0cnVjdCBtZHA1X3BsYW5lICptZHA1X3BsYW5lID0gdG9fbWRwNV9wbGFuZShwbGFu ZSk7CiAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlID0gcGxhbmUtPnN0YXRlOwor CWNvbnN0IHN0cnVjdCBtZHBfZm9ybWF0ICpmb3JtYXQ7CiAKIAlEQkcoIiVzOiBjaGVjayAoJWQg LT4gJWQpIiwgbWRwNV9wbGFuZS0+bmFtZSwKIAkJCXBsYW5lX2VuYWJsZWQob2xkX3N0YXRlKSwg cGxhbmVfZW5hYmxlZChzdGF0ZSkpOwogCisJaWYgKHBsYW5lX2VuYWJsZWQoc3RhdGUpKSB7CisJ CWZvcm1hdCA9IHRvX21kcF9mb3JtYXQobXNtX2ZyYW1lYnVmZmVyX2Zvcm1hdChzdGF0ZS0+ZmIp KTsKKwkJaWYgKE1EUF9GT1JNQVRfSVNfWVVWKGZvcm1hdCkgJiYKKwkJCSFwaXBlX3N1cHBvcnRz X3l1dihtZHA1X3BsYW5lLT5jYXBzKSkgeworCQkJZGV2X2VycihwbGFuZS0+ZGV2LT5kZXYsCisJ CQkJIlBpcGUgZG9lc24ndCBzdXBwb3J0IFlVVlxuIik7CisKKwkJCXJldHVybiAtRUlOVkFMOwor CQl9CisKKwkJaWYgKCEobWRwNV9wbGFuZS0+Y2FwcyAmIE1EUF9QSVBFX0NBUF9TQ0FMRSkgJiYK KwkJCSgoKHN0YXRlLT5zcmNfdyA+PiAxNikgIT0gc3RhdGUtPmNydGNfdykgfHwKKwkJCSgoc3Rh dGUtPnNyY19oID4+IDE2KSAhPSBzdGF0ZS0+Y3J0Y19oKSkpIHsKKwkJCWRldl9lcnIocGxhbmUt PmRldi0+ZGV2LAorCQkJCSJQaXBlIGRvZXNuJ3Qgc3VwcG9ydCBzY2FsaW5nICglZHglZCAtPiAl ZHglZClcbiIsCisJCQkJc3RhdGUtPnNyY193ID4+IDE2LCBzdGF0ZS0+c3JjX2ggPj4gMTYsCisJ CQkJc3RhdGUtPmNydGNfdywgc3RhdGUtPmNydGNfaCk7CisKKwkJCXJldHVybiAtRUlOVkFMOwor CQl9CisJfQorCiAJaWYgKHBsYW5lX2VuYWJsZWQoc3RhdGUpICYmIHBsYW5lX2VuYWJsZWQob2xk X3N0YXRlKSkgewogCQkvKiB3ZSBjYW5ub3QgY2hhbmdlIFNNUCBibG9jayBjb25maWd1cmF0aW9u IGR1cmluZyBzY2Fub3V0OiAqLwogCQlib29sIGZ1bGxfbW9kZXNldCA9IGZhbHNlOwpAQCAtNjU2 LDI0ICs2ODAsMjggQEAgc3RhdGljIGludCBtZHA1X3BsYW5lX21vZGVfc2V0KHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAogCS8qIG5vdCB1c2luZyBzZWN1cmUgbW9kZTogKi8KIAltZHA1X3dyaXRl KG1kcDVfa21zLCBSRUdfTURQNV9QSVBFX1NSQ19BRERSX1NXX1NUQVRVUyhwaXBlKSwgMCk7CiAK LQltZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQNV9QSVBFX1NDQUxFX1BIQVNFX1NURVBfWChw aXBlKSwKLQkJCXBoYXNleF9zdGVwWzBdKTsKLQltZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQ NV9QSVBFX1NDQUxFX1BIQVNFX1NURVBfWShwaXBlKSwKLQkJCXBoYXNleV9zdGVwWzBdKTsKLQlt ZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQNV9QSVBFX1NDQUxFX0NSX1BIQVNFX1NURVBfWChw aXBlKSwKLQkJCXBoYXNleF9zdGVwWzFdKTsKLQltZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQ NV9QSVBFX1NDQUxFX0NSX1BIQVNFX1NURVBfWShwaXBlKSwKLQkJCXBoYXNleV9zdGVwWzFdKTsK LQltZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQNV9QSVBFX0RFQ0lNQVRJT04ocGlwZSksCi0J CQlNRFA1X1BJUEVfREVDSU1BVElPTl9WRVJUKHZkZWNtKSB8Ci0JCQlNRFA1X1BJUEVfREVDSU1B VElPTl9IT1JaKGhkZWNtKSk7Ci0JbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVfUElQRV9T Q0FMRV9DT05GSUcocGlwZSksIGNvbmZpZyk7Ci0KLQlpZiAoTURQX0ZPUk1BVF9JU19ZVVYoZm9y bWF0KSkKLQkJY3NjX2VuYWJsZShtZHA1X2ttcywgcGlwZSwKLQkJCQltZHBfZ2V0X2RlZmF1bHRf Y3NjX2NmZyhDU0NfWVVWMlJHQikpOwotCWVsc2UKLQkJY3NjX2Rpc2FibGUobWRwNV9rbXMsIHBp cGUpOworCWlmIChtZHA1X3BsYW5lLT5jYXBzICYgTURQX1BJUEVfQ0FQX1NDQUxFKSB7CisJCW1k cDVfd3JpdGUobWRwNV9rbXMsIFJFR19NRFA1X1BJUEVfU0NBTEVfUEhBU0VfU1RFUF9YKHBpcGUp LAorCQkJCXBoYXNleF9zdGVwWzBdKTsKKwkJbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVf UElQRV9TQ0FMRV9QSEFTRV9TVEVQX1kocGlwZSksCisJCQkJcGhhc2V5X3N0ZXBbMF0pOworCQlt ZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQNV9QSVBFX1NDQUxFX0NSX1BIQVNFX1NURVBfWChw aXBlKSwKKwkJCQlwaGFzZXhfc3RlcFsxXSk7CisJCW1kcDVfd3JpdGUobWRwNV9rbXMsIFJFR19N RFA1X1BJUEVfU0NBTEVfQ1JfUEhBU0VfU1RFUF9ZKHBpcGUpLAorCQkJCXBoYXNleV9zdGVwWzFd KTsKKwkJbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVfUElQRV9ERUNJTUFUSU9OKHBpcGUp LAorCQkJCU1EUDVfUElQRV9ERUNJTUFUSU9OX1ZFUlQodmRlY20pIHwKKwkJCQlNRFA1X1BJUEVf REVDSU1BVElPTl9IT1JaKGhkZWNtKSk7CisJCW1kcDVfd3JpdGUobWRwNV9rbXMsIFJFR19NRFA1 X1BJUEVfU0NBTEVfQ09ORklHKHBpcGUpLCBjb25maWcpOworCX0KKworCWlmIChtZHA1X3BsYW5l LT5jYXBzICYgTURQX1BJUEVfQ0FQX0NTQykgeworCQlpZiAoTURQX0ZPUk1BVF9JU19ZVVYoZm9y bWF0KSkKKwkJCWNzY19lbmFibGUobWRwNV9rbXMsIHBpcGUsCisJCQkJCW1kcF9nZXRfZGVmYXVs dF9jc2NfY2ZnKENTQ19ZVVYyUkdCKSk7CisJCWVsc2UKKwkJCWNzY19kaXNhYmxlKG1kcDVfa21z LCBwaXBlKTsKKwl9CiAKIAlzZXRfc2Nhbm91dF9sb2NrZWQocGxhbmUsIGZiKTsKIApAQCAtNzEw LDcgKzczOCw4IEBAIHVpbnQzMl90IG1kcDVfcGxhbmVfZ2V0X2ZsdXNoKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lKQogCiAvKiBpbml0aWFsaXplIHBsYW5lICovCiBzdHJ1Y3QgZHJtX3BsYW5lICpt ZHA1X3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJZW51bSBtZHA1X3BpcGUg cGlwZSwgYm9vbCBwcml2YXRlX3BsYW5lLCB1aW50MzJfdCByZWdfb2Zmc2V0KQorCQllbnVtIG1k cDVfcGlwZSBwaXBlLCBib29sIHByaXZhdGVfcGxhbmUsIHVpbnQzMl90IHJlZ19vZmZzZXQsCisJ CXVpbnQzMl90IGNhcHMpCiB7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBOVUxMOwogCXN0 cnVjdCBtZHA1X3BsYW5lICptZHA1X3BsYW5lOwpAQCAtNzI3LDkgKzc1NiwxMSBAQCBzdHJ1Y3Qg ZHJtX3BsYW5lICptZHA1X3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCW1k cDVfcGxhbmUtPnBpcGUgPSBwaXBlOwogCW1kcDVfcGxhbmUtPm5hbWUgPSBwaXBlMm5hbWUocGlw ZSk7CisJbWRwNV9wbGFuZS0+Y2FwcyA9IGNhcHM7CiAKLQltZHA1X3BsYW5lLT5uZm9ybWF0cyA9 IG1kcDVfZ2V0X2Zvcm1hdHMocGlwZSwgbWRwNV9wbGFuZS0+Zm9ybWF0cywKLQkJCUFSUkFZX1NJ WkUobWRwNV9wbGFuZS0+Zm9ybWF0cykpOworCW1kcDVfcGxhbmUtPm5mb3JtYXRzID0gbWRwX2dl dF9mb3JtYXRzKG1kcDVfcGxhbmUtPmZvcm1hdHMsCisJCUFSUkFZX1NJWkUobWRwNV9wbGFuZS0+ Zm9ybWF0cyksCisJCSFwaXBlX3N1cHBvcnRzX3l1dihtZHA1X3BsYW5lLT5jYXBzKSk7CiAKIAlt ZHA1X3BsYW5lLT5mbHVzaF9tYXNrID0gbWRwX2N0bF9mbHVzaF9tYXNrX3BpcGUocGlwZSk7CiAJ bWRwNV9wbGFuZS0+cmVnX29mZnNldCA9IHJlZ19vZmZzZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbXNtL21kcC9tZHBfa21zLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHBf a21zLmgKaW5kZXggMmQzNDI4Yy4uM2RiMjVkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L21zbS9tZHAvbWRwX2ttcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcF9rbXMu aApAQCAtOTcsNiArOTcsMTkgQEAgc3RydWN0IG1kcF9mb3JtYXQgewogdWludDMyX3QgbWRwX2dl dF9mb3JtYXRzKHVpbnQzMl90ICpmb3JtYXRzLCB1aW50MzJfdCBtYXhfZm9ybWF0cywgYm9vbCBy Z2Jfb25seSk7CiBjb25zdCBzdHJ1Y3QgbXNtX2Zvcm1hdCAqbWRwX2dldF9mb3JtYXQoc3RydWN0 IG1zbV9rbXMgKmttcywgdWludDMyX3QgZm9ybWF0KTsKIAorLyogTURQIHBpcGUgY2FwYWJpbGl0 aWVzICovCisjZGVmaW5lIE1EUF9QSVBFX0NBUF9IRkxJUAkJCUJJVCgwKQorI2RlZmluZSBNRFBf UElQRV9DQVBfVkZMSVAJCQlCSVQoMSkKKyNkZWZpbmUgTURQX1BJUEVfQ0FQX1NDQUxFCQkJQklU KDIpCisjZGVmaW5lIE1EUF9QSVBFX0NBUF9DU0MJCQlCSVQoMykKKyNkZWZpbmUgTURQX1BJUEVf Q0FQX0RFQ0lNQVRJT04JCQlCSVQoNCkKKworc3RhdGljIGlubGluZSBib29sIHBpcGVfc3VwcG9y dHNfeXV2KHVpbnQzMl90IHBpcGVfY2FwcykKK3sKKwlyZXR1cm4gKHBpcGVfY2FwcyAmIE1EUF9Q SVBFX0NBUF9TQ0FMRSkgJiYKKwkJKHBpcGVfY2FwcyAmIE1EUF9QSVBFX0NBUF9DU0MpOworfQor CiBlbnVtIGNzY190eXBlIHsKIAlDU0NfUkdCMlJHQiA9IDAsCiAJQ1NDX1lVVjJSR0IsCi0tIApU aGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENv ZGUgQXVyb3JhIEZvcnVtLAphIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=