From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 10/13] drm/atomic: atomic plane properties Date: Wed, 17 Dec 2014 15:41:30 +0100 Message-ID: <20141217144130.GQ2711@phenom.ffwll.local> References: <1418771141-16954-1-git-send-email-robdclark@gmail.com> <1418771141-16954-11-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f172.google.com (mail-wi0-f172.google.com [209.85.212.172]) by gabe.freedesktop.org (Postfix) with ESMTP id 428EA6E88E for ; Wed, 17 Dec 2014 06:40:55 -0800 (PST) Received: by mail-wi0-f172.google.com with SMTP id n3so15985693wiv.5 for ; Wed, 17 Dec 2014 06:40:54 -0800 (PST) Content-Disposition: inline In-Reply-To: <1418771141-16954-11-git-send-email-robdclark@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rob Clark Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBEZWMgMTYsIDIwMTQgYXQgMDY6MDU6MzhQTSAtMDUwMCwgUm9iIENsYXJrIHdyb3Rl Ogo+IEV4cG9zZSB0aGUgY29yZSBwbGFuZSBzdGF0ZSBhcyBwcm9wZXJ0aWVzLCBzbyB0aGV5IGNh biBiZSB1cGRhdGVkIHZpYQo+IGF0b21pYyBpb2N0bC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBSb2Ig Q2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+CgpKdXN0IGNvbW1lbnRzIGFib3V0IHRoZSBsYWNr IG9mIFBST1BfQVRPTUlDIGFuZCBvbmUgc3VnZ2VzdGlvbiBmb3IgYQpjb21tZW50LiBXaXRoIHRo YXQgYWRkcmVzc2VkIHRoaXMgaXMgUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52 ZXR0ZXJAZmZ3bGwuY2g+Cgo+IC0tLQo+ICBEb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwg fCA3NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+ICBkcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pYy5jICAgfCA2OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyAgICAgfCA4MiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0KPiAgaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAg ICAgICAgIHwgMTAgKysrKysrCj4gIDQgZmlsZXMgY2hhbmdlZCwgMjI0IGluc2VydGlvbnMoKyks IDExIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0RvY0Jvb2sv ZHJtLnRtcGwgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwKPiBpbmRleCA0YjU5MmZm Li4yODJmYTZiIDEwMDY0NAo+IC0tLSBhL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbAo+ ICsrKyBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbAo+IEBAIC0yNTY0LDcgKzI1NjQs NyBAQCB2b2lkIGludGVsX2NydF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAk8dGQg dmFsaWduPSJ0b3AiID5EZXNjcmlwdGlvbi9SZXN0cmljdGlvbnM8L3RkPgo+ICAJPC90cj4KPiAg CTx0cj4KPiAtCTx0ZCByb3dzcGFuPSIyNSIgdmFsaWduPSJ0b3AiID5EUk08L3RkPgo+ICsJPHRk IHJvd3NwYW49IjM1IiB2YWxpZ249InRvcCIgPkRSTTwvdGQ+Cj4gIAk8dGQgcm93c3Bhbj0iNCIg dmFsaWduPSJ0b3AiID5HZW5lcmljPC90ZD4KPiAgCTx0ZCB2YWxpZ249InRvcCIgPuKAnEVESUTi gJ08L3RkPgo+ICAJPHRkIHZhbGlnbj0idG9wIiA+QkxPQiB8IElNTVVUQUJMRTwvdGQ+Cj4gQEAg LTI1OTQsNyArMjU5NCw3IEBAIHZvaWQgaW50ZWxfY3J0X2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgCTx0ZCB2YWxpZ249InRvcCIgPkNvbnRhaW5zIHRpbGluZyBpbmZvcm1hdGlvbiBm b3IgYSBjb25uZWN0b3IuPC90ZD4KPiAgCTwvdHI+Cj4gIAk8dHI+Cj4gLQk8dGQgcm93c3Bhbj0i MSIgdmFsaWduPSJ0b3AiID5QbGFuZTwvdGQ+Cj4gKwk8dGQgcm93c3Bhbj0iMTEiIHZhbGlnbj0i dG9wIiA+UGxhbmU8L3RkPgo+ICAJPHRkIHZhbGlnbj0idG9wIiA+4oCcdHlwZeKAnTwvdGQ+Cj4g IAk8dGQgdmFsaWduPSJ0b3AiID5FTlVNIHwgSU1NVVRBQkxFPC90ZD4KPiAgCTx0ZCB2YWxpZ249 InRvcCIgPnsgIk92ZXJsYXkiLCAiUHJpbWFyeSIsICJDdXJzb3IiIH08L3RkPgo+IEBAIC0yNjAy LDYgKzI2MDIsNzYgQEAgdm9pZCBpbnRlbF9jcnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICAJPHRkIHZhbGlnbj0idG9wIiA+UGxhbmUgdHlwZTwvdGQ+Cj4gIAk8L3RyPgo+ICAJPHRy Pgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+4oCcU1JDX1jigJ08L3RkPgo+ICsJPHRkIHZhbGlnbj0i dG9wIiA+UkFOR0U8L3RkPgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+TWluPTAsIE1heD1VSU5UX01B WDwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5QbGFuZTwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0 b3AiID5TY2Fub3V0IHNvdXJjZSB4IGNvb3JkaW5hdGUgaW4gMTYuMTYgZml4ZWQgcG9pbnQgKGF0 b21pYyk8L3RkPgo+ICsJPC90cj4KPiArCTx0cj4KPiArCTx0ZCB2YWxpZ249InRvcCIgPuKAnFNS Q19Z4oCdPC90ZD4KPiArCTx0ZCB2YWxpZ249InRvcCIgPlJBTkdFPC90ZD4KPiArCTx0ZCB2YWxp Z249InRvcCIgPk1pbj0wLCBNYXg9VUlOVF9NQVg8L3RkPgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+ UGxhbmU8L3RkPgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+U2Nhbm91dCBzb3VyY2UgeSBjb29yZGlu YXRlIGluIDE2LjE2IGZpeGVkIHBvaW50IChhdG9taWMpPC90ZD4KPiArCTwvdHI+Cj4gKwk8dHI+ Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID7igJxTUkNfV+KAnTwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0 b3AiID5SQU5HRTwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5NaW49MCwgTWF4PVVJTlRfTUFY PC90ZD4KPiArCTx0ZCB2YWxpZ249InRvcCIgPlBsYW5lPC90ZD4KPiArCTx0ZCB2YWxpZ249InRv cCIgPlNjYW5vdXQgc291cmNlIHdpZHRoIGluIDE2LjE2IGZpeGVkIHBvaW50IChhdG9taWMpPC90 ZD4KPiArCTwvdHI+Cj4gKwk8dHI+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID7igJxTUkNfSOKAnTwv dGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5SQU5HRTwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3Ai ID5NaW49MCwgTWF4PVVJTlRfTUFYPC90ZD4KPiArCTx0ZCB2YWxpZ249InRvcCIgPlBsYW5lPC90 ZD4KPiArCTx0ZCB2YWxpZ249InRvcCIgPlNjYW5vdXQgc291cmNlIGhlaWdodCBpbiAxNi4xNiBm aXhlZCBwb2ludCAoYXRvbWljKTwvdGQ+Cj4gKwk8L3RyPgo+ICsJPHRyPgo+ICsJPHRkIHZhbGln bj0idG9wIiA+4oCcQ1JUQ19Y4oCdPC90ZD4KPiArCTx0ZCB2YWxpZ249InRvcCIgPlNJR05FRF9S QU5HRTwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5NaW49SU5UX01JTiwgTWF4PUlOVF9NQVg8 L3RkPgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+UGxhbmU8L3RkPgo+ICsJPHRkIHZhbGlnbj0idG9w IiA+U2Nhbm91dCBDUlRDIChkZXN0aW5hdGlvbikgeCBjb29yZGluYXRlIChhdG9taWMpPC90ZD4K PiArCTwvdHI+Cj4gKwk8dHI+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID7igJxDUlRDX1nigJ08L3Rk Pgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+U0lHTkVEX1JBTkdFPC90ZD4KPiArCTx0ZCB2YWxpZ249 InRvcCIgPk1pbj1JTlRfTUlOLCBNYXg9SU5UX01BWDwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3Ai ID5QbGFuZTwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5TY2Fub3V0IENSVEMgKGRlc3RpbmF0 aW9uKSB5IGNvb3JkaW5hdGUgKGF0b21pYyk8L3RkPgo+ICsJPC90cj4KPiArCTx0cj4KPiArCTx0 ZCB2YWxpZ249InRvcCIgPuKAnENSVENfV+KAnTwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5S QU5HRTwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5NaW49MCwgTWF4PVVJTlRfTUFYPC90ZD4K PiArCTx0ZCB2YWxpZ249InRvcCIgPlBsYW5lPC90ZD4KPiArCTx0ZCB2YWxpZ249InRvcCIgPlNj YW5vdXQgQ1JUQyAoZGVzdGluYXRpb24pIHdpZHRoIChhdG9taWMpPC90ZD4KPiArCTwvdHI+Cj4g Kwk8dHI+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID7igJxDUlRDX0jigJ08L3RkPgo+ICsJPHRkIHZh bGlnbj0idG9wIiA+UkFOR0U8L3RkPgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+TWluPTAsIE1heD1V SU5UX01BWDwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5QbGFuZTwvdGQ+Cj4gKwk8dGQgdmFs aWduPSJ0b3AiID5TY2Fub3V0IENSVEMgKGRlc3RpbmF0aW9uKSBoZWlnaHQgKGF0b21pYyk8L3Rk Pgo+ICsJPC90cj4KPiArCTx0cj4KPiArCTx0ZCB2YWxpZ249InRvcCIgPuKAnEZCX0lE4oCdPC90 ZD4KPiArCTx0ZCB2YWxpZ249InRvcCIgPk9CSkVDVDwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3Ai ID5EUk1fTU9ERV9PQkpFQ1RfRkI8L3RkPgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+UGxhbmU8L3Rk Pgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+U2Nhbm91dCBmcmFtZWJ1ZmZlciAoYXRvbWljKTwvdGQ+ Cj4gKwk8L3RyPgo+ICsJPHRyPgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+4oCcQ1JUQ19JROKAnTwv dGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5PQkpFQ1Q8L3RkPgo+ICsJPHRkIHZhbGlnbj0idG9w IiA+RFJNX01PREVfT0JKRUNUX0NSVEM8L3RkPgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+UGxhbmU8 L3RkPgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+Q1JUQyB0aGF0IHBsYW5lIGlzIGF0dGFjaGVkIHRv IChhdG9taWMpPC90ZD4KPiArCTwvdHI+Cj4gKwk8dHI+Cj4gIAk8dGQgcm93c3Bhbj0iMiIgdmFs aWduPSJ0b3AiID5EVkktSTwvdGQ+Cj4gIAk8dGQgdmFsaWduPSJ0b3AiID7igJxzdWJjb25uZWN0 b3LigJ08L3RkPgo+ICAJPHRkIHZhbGlnbj0idG9wIiA+RU5VTTwvdGQ+Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Yy5jCj4gaW5kZXggYWZiODMwZC4uYzA5YTA1YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+IEBA IC0zNTIsOSArMzUyLDQxIEBAIGludCBkcm1fYXRvbWljX3BsYW5lX3NldF9wcm9wZXJ0eShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwg c3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gIAkJdWludDY0X3QgdmFsKQo+ICB7Cj4g LQlpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KQo+IC0JCXJldHVybiBwbGFu ZS0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkocGxhbmUsIHN0YXRlLCBwcm9wZXJ0eSwgdmFs KTsKPiAtCXJldHVybiAtRUlOVkFMOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5l LT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcgPSAmZGV2LT5tb2RlX2Nv bmZpZzsKPiArCj4gKwlpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2ZiX2lkKSB7Cj4gKwkJ c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBkcm1fZnJhbWVidWZmZXJfbG9va3VwKGRldiwg dmFsKTsKPiArCQlkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUoc3RhdGUsIGZiKTsKPiArCQlp ZiAoZmIpCj4gKwkJCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShmYik7Cj4gKwl9IGVsc2Ug aWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9jcnRjX2lkKSB7Cj4gKwkJc3RydWN0IGRybV9j cnRjICpjcnRjID0gZHJtX2NydGNfZmluZChkZXYsIHZhbCk7Cj4gKwkJcmV0dXJuIGRybV9hdG9t aWNfc2V0X2NydGNfZm9yX3BsYW5lKHN0YXRlLT5zdGF0ZSwgcGxhbmUsIGNydGMpOwo+ICsJfSBl bHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3BfY3J0Y194KSB7Cj4gKwkJc3RhdGUtPmNy dGNfeCA9IFU2NDJJNjQodmFsKTsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5w cm9wX2NydGNfeSkgewo+ICsJCXN0YXRlLT5jcnRjX3kgPSBVNjQySTY0KHZhbCk7Cj4gKwl9IGVs c2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9jcnRjX3cpIHsKPiArCQlzdGF0ZS0+Y3J0 Y193ID0gdmFsOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3BfY3J0Y19o KSB7Cj4gKwkJc3RhdGUtPmNydGNfaCA9IHZhbDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0g Y29uZmlnLT5wcm9wX3NyY194KSB7Cj4gKwkJc3RhdGUtPnNyY194ID0gdmFsOwo+ICsJfSBlbHNl IGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3Bfc3JjX3kpIHsKPiArCQlzdGF0ZS0+c3JjX3kg PSB2YWw7Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9zcmNfdykgewo+ ICsJCXN0YXRlLT5zcmNfdyA9IHZhbDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmln LT5wcm9wX3NyY19oKSB7Cj4gKwkJc3RhdGUtPnNyY19oID0gdmFsOwoKV2UgbmVlZCB0byBjaGVj ayBmb3IgUFJPUF9BVE9NSUMgc29tZXdoZXJlLiBXZWxsIG1vcmUgcHJlY2lzZWx5CgoJaWYgKChw cm9wLT5mbGFncyAmIFBST1BfQVRPTUlDKSAmJiAhZmlsZV9wcml2LT5hdG9taWNfa21zKQoJCXJl dHVybiAtRUlOVkFMOwoKQW5kIHdpdGggYWxsIHRoZSBzY2FmZm9sZGluZyBmb3IgZmlsZV9wcml2 LT5hdG9taWNfa21zIGxpa2Ugd2UgaGF2ZSBmb3IKZmlsZV9wcml2LT51bml2ZXJzYWxfcGxhbmVz LiBJIGd1ZXNzIHRoYXQgc2hvdWxkIGJlIGRpcmVjdGx5IGluIHRoZSBsZWdhY3kKZ2V0X3Byb3Bz IHBhdGhzLCBzaW5jZSBvdGhlcndpc2Ugd2UgY2FuJ3QgZ2V0IGF0IHRoZSBmaWxlX3ByaXYuIE90 aGVyCmNhbGxlcnMgcHJvYmFibHkgZG9uJ3QgY2FyZSBhYm91dCB0aGlzIGZpbHRlcmluZy4KCgo+ ICsJfSBlbHNlIGlmIChwbGFuZS0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkpIHsKPiArCQly ZXR1cm4gcGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwKPiAr CQkJCXByb3BlcnR5LCB2YWwpOwo+ICsJfSBlbHNlIHsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiAr CX0KPiArCj4gKwlyZXR1cm4gMDsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfcGxh bmVfc2V0X3Byb3BlcnR5KTsKPiAgCj4gQEAgLTM3NCw5ICs0MDYsMzYgQEAgaW50IGRybV9hdG9t aWNfcGxhbmVfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCWNvbnN0 IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlLAo+ICAJCXN0cnVjdCBkcm1fcHJvcGVydHkg KnByb3BlcnR5LCB1aW50NjRfdCAqdmFsKQo+ICB7Cj4gLQlpZiAocGxhbmUtPmZ1bmNzLT5hdG9t aWNfZ2V0X3Byb3BlcnR5KQo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7 Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsK PiArCj4gKwlpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2ZiX2lkKSB7Cj4gKwkJKnZhbCA9 IChzdGF0ZS0+ZmIpID8gc3RhdGUtPmZiLT5iYXNlLmlkIDogMDsKPiArCX0gZWxzZSBpZiAocHJv cGVydHkgPT0gY29uZmlnLT5wcm9wX2NydGNfaWQpIHsKPiArCQkqdmFsID0gKHN0YXRlLT5jcnRj KSA/IHN0YXRlLT5jcnRjLT5iYXNlLmlkIDogMDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0g Y29uZmlnLT5wcm9wX2NydGNfeCkgewo+ICsJCSp2YWwgPSBJNjQyVTY0KHN0YXRlLT5jcnRjX3gp Owo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3BfY3J0Y195KSB7Cj4gKwkJ KnZhbCA9IEk2NDJVNjQoc3RhdGUtPmNydGNfeSk7Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09 IGNvbmZpZy0+cHJvcF9jcnRjX3cpIHsKPiArCQkqdmFsID0gc3RhdGUtPmNydGNfdzsKPiArCX0g ZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2NydGNfaCkgewo+ICsJCSp2YWwgPSBz dGF0ZS0+Y3J0Y19oOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3Bfc3Jj X3gpIHsKPiArCQkqdmFsID0gc3RhdGUtPnNyY194Owo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9 PSBjb25maWctPnByb3Bfc3JjX3kpIHsKPiArCQkqdmFsID0gc3RhdGUtPnNyY195Owo+ICsJfSBl bHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3Bfc3JjX3cpIHsKPiArCQkqdmFsID0gc3Rh dGUtPnNyY193Owo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3Bfc3JjX2gp IHsKPiArCQkqdmFsID0gc3RhdGUtPnNyY19oOwo+ICsJfSBlbHNlIGlmIChwbGFuZS0+ZnVuY3Mt PmF0b21pY19nZXRfcHJvcGVydHkpIHsKPiAgCQlyZXR1cm4gcGxhbmUtPmZ1bmNzLT5hdG9taWNf Z2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4gLQlyZXR1cm4gLUVJ TlZBTDsKPiArCX0gZWxzZSB7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJcmV0 dXJuIDA7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX3BsYW5lX2dldF9wcm9wZXJ0 eSk7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4gaW5kZXggNjJmNWRjOC4uZmQ2ZjkxZCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fY3J0Yy5jCj4gQEAgLTgxOSw2ICs4MTksMTMgQEAgc3RhdGljIHZvaWQgZHJtX2Nvbm5lY3Rv cl9nZXRfY21kbGluZV9tb2RlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAkJ ICAgICAgbW9kZS0+aW50ZXJsYWNlID8gICIgaW50ZXJsYWNlZCIgOiAiIik7Cj4gIH0KPiAgCj4g K3N0YXRpYyBib29sCj4gK2hhc19hdG9taWNfcHJvcGVydGllcyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcgPSAmZGV2LT5tb2Rl X2NvbmZpZzsKPiArCXJldHVybiAhIWNvbmZpZy0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHk7 CgpZZWFoLCBJIHRoaW5rIHdlIHJlYWxseSB3YW50IHRvIGNhbGwgdGhpcyBjb25maWctPnVzZXNf YXRvbWljX3Byb3BzLCBtdWNoCmNsZWFyZXIgd2hhdCBpdCBkb2VzLiBBbmQgZ2V0cyByaWQgb2Yg dGhpcyB3cmFwcGVyLiBBc2lkZTogQ2FzdGluZyB0byBib29sCmF1dG9tYXRpY2FsbHkgYXBwbGll cyB0aGUgISEgdHJpY2ssIHNvIG5vdCBuZWVkZWQgaGVyZS4KCj4gK30KPiArCj4gIC8qKgo+ICAg KiBkcm1fY29ubmVjdG9yX2luaXQgLSBJbml0IGEgcHJlYWxsb2NhdGVkIGNvbm5lY3Rvcgo+ICAg KiBAZGV2OiBEUk0gZGV2aWNlCj4gQEAgLTExNzQsNiArMTE4MSw3IEBAIGludCBkcm1fdW5pdmVy c2FsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCj4gIAkJCSAgICAgY29uc3QgdWludDMyX3QgKmZvcm1hdHMsIHVpbnQzMl90IGZvcm1h dF9jb3VudCwKPiAgCQkJICAgICBlbnVtIGRybV9wbGFuZV90eXBlIHR5cGUpCj4gIHsKPiArCXN0 cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOwo+ICAJaW50 IHJldDsKPiAgCj4gIAlyZXQgPSBkcm1fbW9kZV9vYmplY3RfZ2V0KGRldiwgJnBsYW5lLT5iYXNl LCBEUk1fTU9ERV9PQkpFQ1RfUExBTkUpOwo+IEBAIC0xMTk4LDE1ICsxMjA2LDI4IEBAIGludCBk cm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCj4gIAlwbGFuZS0+cG9zc2libGVfY3J0Y3MgPSBwb3NzaWJsZV9jcnRj czsKPiAgCXBsYW5lLT50eXBlID0gdHlwZTsKPiAgCj4gLQlsaXN0X2FkZF90YWlsKCZwbGFuZS0+ aGVhZCwgJmRldi0+bW9kZV9jb25maWcucGxhbmVfbGlzdCk7Cj4gLQlkZXYtPm1vZGVfY29uZmln Lm51bV90b3RhbF9wbGFuZSsrOwo+ICsJbGlzdF9hZGRfdGFpbCgmcGxhbmUtPmhlYWQsICZjb25m aWctPnBsYW5lX2xpc3QpOwo+ICsJY29uZmlnLT5udW1fdG90YWxfcGxhbmUrKzsKPiAgCWlmIChw bGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZKQo+IC0JCWRldi0+bW9kZV9jb25m aWcubnVtX292ZXJsYXlfcGxhbmUrKzsKPiArCQljb25maWctPm51bV9vdmVybGF5X3BsYW5lKys7 Cj4gIAo+ICAJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLAo+IC0JCQkJ ICAgZGV2LT5tb2RlX2NvbmZpZy5wbGFuZV90eXBlX3Byb3BlcnR5LAo+ICsJCQkJICAgY29uZmln LT5wbGFuZV90eXBlX3Byb3BlcnR5LAo+ICAJCQkJICAgcGxhbmUtPnR5cGUpOwo+ICAKPiArCWlm IChoYXNfYXRvbWljX3Byb3BlcnRpZXMoZGV2KSkgewo+ICsJCWRybV9vYmplY3RfYXR0YWNoX3By b3BlcnR5KCZwbGFuZS0+YmFzZSwgY29uZmlnLT5wcm9wX2ZiX2lkLCAwKTsKPiArCQlkcm1fb2Jq ZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIGNvbmZpZy0+cHJvcF9jcnRjX2lkLCAw KTsKPiArCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIGNvbmZpZy0+ cHJvcF9jcnRjX3gsIDApOwo+ICsJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+ YmFzZSwgY29uZmlnLT5wcm9wX2NydGNfeSwgMCk7Cj4gKwkJZHJtX29iamVjdF9hdHRhY2hfcHJv cGVydHkoJnBsYW5lLT5iYXNlLCBjb25maWctPnByb3BfY3J0Y193LCAwKTsKPiArCQlkcm1fb2Jq ZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIGNvbmZpZy0+cHJvcF9jcnRjX2gsIDAp Owo+ICsJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgY29uZmlnLT5w cm9wX3NyY194LCAwKTsKPiArCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJh c2UsIGNvbmZpZy0+cHJvcF9zcmNfeSwgMCk7Cj4gKwkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVy dHkoJnBsYW5lLT5iYXNlLCBjb25maWctPnByb3Bfc3JjX3csIDApOwo+ICsJCWRybV9vYmplY3Rf YXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgY29uZmlnLT5wcm9wX3NyY19oLCAwKTsKCnMv MC9EUk1fTU9ERV9QUk9QX0FUT01JQy8gaW4gYWxsIHRoZSBhYm92ZS4KCj4gKwl9Cj4gKwo+ICAJ cmV0dXJuIDA7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQp Owo+IEBAIC0xMzY1LDYgKzEzODYsNTkgQEAgc3RhdGljIGludCBkcm1fbW9kZV9jcmVhdGVfc3Rh bmRhcmRfY29ubmVjdG9yX3Byb3BlcnRpZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQly ZXR1cm4gLUVOT01FTTsKPiAgCWRldi0+bW9kZV9jb25maWcudGlsZV9wcm9wZXJ0eSA9IHByb3A7 Cj4gIAo+ICsJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfcmFuZ2UoZGV2LCAwLCAiU1JDX1gi LCAwLCBVSU5UX01BWCk7Cj4gKwlpZiAoIXByb3ApCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwlk ZXYtPm1vZGVfY29uZmlnLnByb3Bfc3JjX3ggPSBwcm9wOwo+ICsKPiArCXByb3AgPSBkcm1fcHJv cGVydHlfY3JlYXRlX3JhbmdlKGRldiwgMCwgIlNSQ19ZIiwgMCwgVUlOVF9NQVgpOwo+ICsJaWYg KCFwcm9wKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsJZGV2LT5tb2RlX2NvbmZpZy5wcm9wX3Ny Y195ID0gcHJvcDsKPiArCj4gKwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9yYW5nZShkZXYs IDAsICJTUkNfVyIsIDAsIFVJTlRfTUFYKTsKPiArCWlmICghcHJvcCkKPiArCQlyZXR1cm4gLUVO T01FTTsKPiArCWRldi0+bW9kZV9jb25maWcucHJvcF9zcmNfdyA9IHByb3A7Cj4gKwo+ICsJcHJv cCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfcmFuZ2UoZGV2LCAwLCAiU1JDX0giLCAwLCBVSU5UX01B WCk7Cj4gKwlpZiAoIXByb3ApCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwlkZXYtPm1vZGVfY29u ZmlnLnByb3Bfc3JjX2ggPSBwcm9wOwo+ICsKPiArCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRl X3NpZ25lZF9yYW5nZShkZXYsIDAsICJDUlRDX1giLAo+ICsJCQlJTlRfTUlOLCBJTlRfTUFYKTsK PiArCWlmICghcHJvcCkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCWRldi0+bW9kZV9jb25maWcu cHJvcF9jcnRjX3ggPSBwcm9wOwo+ICsKPiArCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX3Np Z25lZF9yYW5nZShkZXYsIDAsICJDUlRDX1kiLAo+ICsJCQlJTlRfTUlOLCBJTlRfTUFYKTsKPiAr CWlmICghcHJvcCkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCWRldi0+bW9kZV9jb25maWcucHJv cF9jcnRjX3kgPSBwcm9wOwo+ICsKPiArCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX3Jhbmdl KGRldiwgMCwgIkNSVENfVyIsIDAsIElOVF9NQVgpOwo+ICsJaWYgKCFwcm9wKQo+ICsJCXJldHVy biAtRU5PTUVNOwo+ICsJZGV2LT5tb2RlX2NvbmZpZy5wcm9wX2NydGNfdyA9IHByb3A7Cj4gKwo+ ICsJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfcmFuZ2UoZGV2LCAwLCAiQ1JUQ19IIiwgMCwg SU5UX01BWCk7Cj4gKwlpZiAoIXByb3ApCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwlkZXYtPm1v ZGVfY29uZmlnLnByb3BfY3J0Y19oID0gcHJvcDsKPiArCj4gKwlwcm9wID0gZHJtX3Byb3BlcnR5 X2NyZWF0ZV9vYmplY3QoZGV2LCAwLCAiRkJfSUQiLCBEUk1fTU9ERV9PQkpFQ1RfRkIpOwo+ICsJ aWYgKCFwcm9wKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsJZGV2LT5tb2RlX2NvbmZpZy5wcm9w X2ZiX2lkID0gcHJvcDsKPiArCj4gKwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9vYmplY3Qo ZGV2LCAwLAo+ICsJCQkiQ1JUQ19JRCIsIERSTV9NT0RFX09CSkVDVF9DUlRDKTsKPiArCWlmICgh cHJvcCkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCWRldi0+bW9kZV9jb25maWcucHJvcF9jcnRj X2lkID0gcHJvcDsKPiArCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBpbmRleCBjYThi YTcyLi40OGZjZDk4IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiArKysg Yi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gQEAgLTEwODUsNiArMTA4NSwxNiBAQCBzdHJ1Y3Qg ZHJtX21vZGVfY29uZmlnIHsKPiAgCXN0cnVjdCBkcm1fcHJvcGVydHkgKnRpbGVfcHJvcGVydHk7 Cj4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwbGFuZV90eXBlX3Byb3BlcnR5Owo+ICAJc3RydWN0 IGRybV9wcm9wZXJ0eSAqcm90YXRpb25fcHJvcGVydHk7CgpJbW8gYSBjb21tZW50IGhlcmUgbGlr ZSAvKiBwbGFuZSBhdG9taWMgcHJvcHMgKi8gdG8ga2VlcCBvdXIgc2FuaXR5IHdvdWxkCmJlIGdv b2QuCgo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcF9zcmNfeDsKPiArCXN0cnVjdCBkcm1f cHJvcGVydHkgKnByb3Bfc3JjX3k7Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wX3NyY193 Owo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcF9zcmNfaDsKPiArCXN0cnVjdCBkcm1fcHJv cGVydHkgKnByb3BfY3J0Y194Owo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcF9jcnRjX3k7 Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wX2NydGNfdzsKPiArCXN0cnVjdCBkcm1fcHJv cGVydHkgKnByb3BfY3J0Y19oOwo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcF9mYl9pZDsK PiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BfY3J0Y19pZDsKPiAgCj4gIAkvKiBEVkktSSBw cm9wZXJ0aWVzICovCj4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpkdmlfaV9zdWJjb25uZWN0b3Jf cHJvcGVydHk7Cj4gLS0gCj4gMi4xLjAKPiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVu Z2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgorNDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9i bG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==