From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Starkey Subject: Re: [PATCH v3 3/3] drm: rcar-du: Add VSP1 live source support Date: Tue, 31 Jan 2017 15:42:34 +0000 Message-ID: <20170131154233.GE11506@e106950-lin.cambridge.arm.com> References: <1542778.dcWpka5Jpx@wasted.cogentembedded.com> <2606258.J5UQyLyQ6T@wasted.cogentembedded.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by gabe.freedesktop.org (Postfix) with ESMTP id AAE0E6E69E for ; Tue, 31 Jan 2017 15:42:36 +0000 (UTC) Content-Disposition: inline In-Reply-To: <2606258.J5UQyLyQ6T@wasted.cogentembedded.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sergei Shtylyov Cc: linux-renesas-soc@vger.kernel.org, laurent.pinchart@ideasonboard.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBKYW4gMjYsIDIwMTcgYXQgMTI6Mzg6MjZBTSArMDMwMCwgU2VyZ2VpIFNodHlseW92 IHdyb3RlOgo+RnJvbTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydCtyZW5lc2Fz QGlkZWFzb25ib2FyZC5jb20+Cj4KPlJlZ2lzdGVyIGxpdmUgc291cmNlcyBmb3IgVlNQRDAgYW5k IFZTUEQxIGFuZCBjb25maWd1cmUgdGhlIHBsYW5lIHNvdXJjZQo+YXQgcGxhbmUgc2V0dXAgdGlt ZSB0byBzb3VyY2UgZnJhbWVzIGZyb20gbWVtb3J5IG9yIGZyb20gdGhlIFZTUDEuCj4KPltTZXJn ZWk6IHBvcnRlZCB0byB0aGUgbW9kZXJuIGtlcm5lbC5dCj4KPlNpZ25lZC1vZmYtYnk6IExhdXJl bnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnQrcmVuZXNhc0BpZGVhc29uYm9hcmQuY29tPgo+ U2lnbmVkLW9mZi1ieTogU2VyZ2VpIFNodHlseW92IDxzZXJnZWkuc2h0eWx5b3ZAY29nZW50ZW1i ZWRkZWQuY29tPgo+Cj4tLS0KPkNoYW5nZXMgaW4gdmVyc2lvbiAzOgo+LSBwb3J0ZWQgdGhlIHBh dGNoIHRvIHRoZSBtb2Rlcm4ga2VybmVsOwo+LSByZWZvcm1hdHRlZCByY2FyX2R1X2xpdmVfZmJf Y3JlYXRlX2hhbmRsZSgpL3JjYXJfZHVfbGl2ZV9mYl9jcmVhdGUoKSdzCj4gIHBhcmFtZXRlciBs aXN0czsKPi0gYWRkZWQgbXkgc2lnbm9mZi4KPgo+IGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3Jj YXJfZHVfZHJ2LmMgICB8ICAgIDYgKy0KPiBkcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1 X2ttcy5jICAgfCAgIDc3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiBkcml2ZXJz L2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2ttcy5oICAgfCAgICAzICsKPiBkcml2ZXJzL2dwdS9k cm0vcmNhci1kdS9yY2FyX2R1X3BsYW5lLmMgfCAgIDc5ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystCj4gZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9wbGFuZS5oIHwgICAg MyArCj4gNSBmaWxlcyBjaGFuZ2VkLCAxNjQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkK Pgo+SW5kZXg6IGxpbnV4L2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZHJ2LmMKPj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KPi0tLSBsaW51eC5vcmlnL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVf ZHJ2LmMKPisrKyBsaW51eC9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2Rydi5jCj5A QCAtNjAsNyArNjAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJjYXJfZHVfZGV2aWNlX2luZm8K PiBzdGF0aWMgY29uc3Qgc3RydWN0IHJjYXJfZHVfZGV2aWNlX2luZm8gcmNhcl9kdV9yOGE3Nzkw X2luZm8gPSB7Cj4gCS5nZW4gPSAyLAo+IAkuZmVhdHVyZXMgPSBSQ0FSX0RVX0ZFQVRVUkVfQ1JU Q19JUlFfQ0xPQ0sKPi0JCSAgfCBSQ0FSX0RVX0ZFQVRVUkVfRVhUX0NUUkxfUkVHUywKPisJCSAg fCBSQ0FSX0RVX0ZFQVRVUkVfRVhUX0NUUkxfUkVHUwo+KwkJICB8IFJDQVJfRFVfRkVBVFVSRV9W U1AxX1NPVVJDRSwKPiAJLnF1aXJrcyA9IFJDQVJfRFVfUVVJUktfQUxJR05fMTI4QiB8IFJDQVJf RFVfUVVJUktfTFZEU19MQU5FUywKPiAJLm51bV9jcnRjcyA9IDMsCj4gCS5yb3V0ZXMgPSB7Cj5A QCAtOTAsNyArOTEsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJjYXJfZHVfZGV2aWNlX2luZm8K PiBzdGF0aWMgY29uc3Qgc3RydWN0IHJjYXJfZHVfZGV2aWNlX2luZm8gcmNhcl9kdV9yOGE3Nzkx X2luZm8gPSB7Cj4gCS5nZW4gPSAyLAo+IAkuZmVhdHVyZXMgPSBSQ0FSX0RVX0ZFQVRVUkVfQ1JU Q19JUlFfQ0xPQ0sKPi0JCSAgfCBSQ0FSX0RVX0ZFQVRVUkVfRVhUX0NUUkxfUkVHUywKPisJCSAg fCBSQ0FSX0RVX0ZFQVRVUkVfRVhUX0NUUkxfUkVHUwo+KwkJICB8IFJDQVJfRFVfRkVBVFVSRV9W U1AxX1NPVVJDRSwKPiAJLm51bV9jcnRjcyA9IDIsCj4gCS5yb3V0ZXMgPSB7Cj4gCQkvKiBSOEE3 NzlbMTNdIGhhcyBvbmUgUkdCIG91dHB1dCwgb25lIExWRFMgb3V0cHV0IGFuZCBvbmUKPkluZGV4 OiBsaW51eC9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2ttcy5jCj49PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Cj4tLS0gbGludXgub3JpZy9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2ttcy5jCj4r KysgbGludXgvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9rbXMuYwo+QEAgLTE2Niw2 ICsxNjYsNzQgQEAgaW50IHJjYXJfZHVfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlCj4gCXJl dHVybiBkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZV9pbnRlcm5hbChmaWxlLCBkZXYsIGFyZ3MpOwo+ IH0KPgo+K3N0cnVjdCByY2FyX2R1X2xpdmVfZnJhbWVidWZmZXIgewo+KwlzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyIGZiOwo+KwlzdHJ1Y3QgZHJtX2xpdmVfc291cmNlICpzcmM7CgpJIGZlZWwgbGlr ZSB0aGlzIHNyYyBtZW1iZXIgc2hvdWxkIGxpdmUgaW4gdGhlIGdlbmVyaWMKZHJtX2ZyYW1lYnVm ZmVyLCBhbmQgY29yZS9oZWxwZXJzIHNob3VsZCB0YWtlIGNhcmUgb2Ygc2V0dGluZyBpdCB1cApi YXNlZCBvbiB0aGUgcGFzc2VkLWluIGxpdmUtc291cmNlIGhhbmRsZS4KCj4rfTsKPisKPisjZGVm aW5lIHRvX2xpdmVfZmIoZmIpIGNvbnRhaW5lcl9vZihmYiwgc3RydWN0IHJjYXJfZHVfbGl2ZV9m cmFtZWJ1ZmZlciwgZmIpCj4rCj4rc3RydWN0IGRybV9saXZlX3NvdXJjZSAqcmNhcl9kdV9saXZl X2ZiX3NvdXJjZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKPit7Cj4rCXJldHVybiBmYi0+ ZmxhZ3MgJiBEUk1fTU9ERV9GQl9MSVZFX1NPVVJDRSA/IHRvX2xpdmVfZmIoZmIpLT5zcmMgOiBO VUxMOwo+K30KPisKPitzdGF0aWMgdm9pZCByY2FyX2R1X2xpdmVfZmJfZGVzdHJveShzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYikKPit7Cj4rCXN0cnVjdCByY2FyX2R1X2xpdmVfZnJhbWVidWZm ZXIgKmxpdmVfZmIgPSB0b19saXZlX2ZiKGZiKTsKPisKPisJZHJtX2ZyYW1lYnVmZmVyX2NsZWFu dXAoZmIpOwo+KwlrZnJlZShsaXZlX2ZiKTsKPit9Cj4rCj4rc3RhdGljIGludCByY2FyX2R1X2xp dmVfZmJfY3JlYXRlX2hhbmRsZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPisJCQkJCSBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPisJCQkJCSB1bnNpZ25lZCBpbnQgKmhhbmRsZSkK Pit7Cj4rCSpoYW5kbGUgPSAwOwo+KwlyZXR1cm4gMDsKPit9Cj4rCj4rc3RhdGljIHN0cnVjdCBk cm1fZnJhbWVidWZmZXJfZnVuY3MgcmNhcl9kdV9saXZlX2ZiX2Z1bmNzID0gewo+KwkuZGVzdHJv eQk9IHJjYXJfZHVfbGl2ZV9mYl9kZXN0cm95LAo+KwkuY3JlYXRlX2hhbmRsZQk9IHJjYXJfZHVf bGl2ZV9mYl9jcmVhdGVfaGFuZGxlLAo+K307Cj4rCj4rc3RhdGljIHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKgo+K3JjYXJfZHVfbGl2ZV9mYl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4rCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9t b2RlX2ZiX2NtZDIgKm1vZGVfY21kKQo+K3sKPisJc3RydWN0IHJjYXJfZHVfbGl2ZV9mcmFtZWJ1 ZmZlciAqZmI7Cj4rCXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iajsKPisJc3RydWN0IGRybV9s aXZlX3NvdXJjZSAqc3JjOwo+KwlpbnQgcmV0Owo+Kwo+KwlvYmogPSBkcm1fbW9kZV9vYmplY3Rf ZmluZChkZXYsIG1vZGVfY21kLT5oYW5kbGVzWzBdLAo+KwkJCQkgICBEUk1fTU9ERV9PQkpFQ1Rf TElWRV9TT1VSQ0UpOwo+KwlpZiAoIW9iaikKPisJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+ Kwo+KwlzcmMgPSBvYmpfdG9fbGl2ZV9zb3VyY2Uob2JqKTsKPisKPisJZmIgPSBremFsbG9jKHNp emVvZigqZmIpLCBHRlBfS0VSTkVMKTsKPisJaWYgKCFmYikKPisJCXJldHVybiBFUlJfUFRSKC1F Tk9NRU0pOwo+Kwo+Kwlkcm1faGVscGVyX21vZGVfZmlsbF9mYl9zdHJ1Y3QoZGV2LCAmZmItPmZi LCBtb2RlX2NtZCk7Cj4rCj4rCWZiLT5zcmMgPSBzcmM7Cj4rCj4rCXJldCA9IGRybV9mcmFtZWJ1 ZmZlcl9pbml0KGRldiwgJmZiLT5mYiwgJnJjYXJfZHVfbGl2ZV9mYl9mdW5jcyk7Cj4rCWlmIChy ZXQpIHsKPisJCWRldl9lcnIoZGV2LT5kZXYsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBmcmFtZWJ1 ZmZlcjogJWRcbiIsCj4rCQkJcmV0KTsKPisJCWtmcmVlKGZiKTsKPisJCXJldHVybiBFUlJfUFRS KHJldCk7Cj4rCX0KPisKPisJcmV0dXJuICZmYi0+ZmI7Cj4rfQoKVGhpcyBsb29rcyBwcmV0dHkg Z2VuZXJpYywgc2hvdWxkIGl0IGxpdmUgc29tZXdoZXJlIG91dHNpZGUgcmNhci1kdT8KU29tZXRo aW5nIGxpa2UgZHJtX2xpdmVfZmJfY3JlYXRlX3dpdGhfZnVuY3MsIHNpbWlsYXIgdG8KZHJtX2Zi X2NtYV9jcmVhdGVfd2l0aF9mdW5jcy4KCj4rCj4gc3RhdGljIHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKgo+IHJjYXJfZHVfZmJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2LAo+IAkJICBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAq bW9kZV9jbWQpCj5AQCAtMTc3LDYgKzI0NSw5IEBAIHJjYXJfZHVfZmJfY3JlYXRlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYKPiAJdW5zaWduZWQgaW50IGJwcDsKPiAJdW5zaWduZWQgaW50IGk7Cj4K PisJaWYgKG1vZGVfY21kLT5mbGFncyAmIERSTV9NT0RFX0ZCX0xJVkVfU09VUkNFKQo+KwkJcmV0 dXJuIHJjYXJfZHVfbGl2ZV9mYl9jcmVhdGUoZGV2LCBmaWxlX3ByaXYsIG1vZGVfY21kKTsKPisK Ck1heWJlIGV2ZW4gdGhlIGNvcmUgY2FuIG9mZmxvYWQgdGhpcyB0byBhIC0+bGl2ZV9mYl9jcmVh dGUgZnVuY3Rpb24gaW4KdGhlIGRybV9tb2RlX2NvbmZpZ19mdW5jcy4KCj4gCWZvcm1hdCA9IHJj YXJfZHVfZm9ybWF0X2luZm8obW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCk7Cj4gCWlmIChmb3JtYXQg PT0gTlVMTCkgewo+IAkJZGV2X2RiZyhkZXYtPmRldiwgInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1h dCAlMDh4XG4iLAo+QEAgLTY1OSw2ICs3MzAsMTIgQEAgaW50IHJjYXJfZHVfbW9kZXNldF9pbml0 KHN0cnVjdCByY2FyX2R1Xwo+Cj4gCWRybV9tb2RlX2NvbmZpZ19yZXNldChkZXYpOwo+Cj4rCWlm IChyY2FyX2R1X2hhcyhyY2R1LCBSQ0FSX0RVX0ZFQVRVUkVfVlNQMV9TT1VSQ0UpKSB7Cj4rCQly ZXQgPSByY2FyX2R1X3ZzcDFfc291cmNlc19pbml0KHJjZHUpOwo+KwkJaWYgKHJldCA8IDApCj4r CQkJcmV0dXJuIHJldDsKPisJfQo+Kwo+IAlkcm1fa21zX2hlbHBlcl9wb2xsX2luaXQoZGV2KTsK Pgo+IAlpZiAoZGV2LT5tb2RlX2NvbmZpZy5udW1fY29ubmVjdG9yKSB7Cj5JbmRleDogbGludXgv ZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9rbXMuaAo+PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGxp bnV4Lm9yaWcvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9rbXMuaAo+KysrIGxpbnV4 L2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfa21zLmgKPkBAIC0xOCw2ICsxOCw3IEBA Cj4KPiBzdHJ1Y3QgZHJtX2ZpbGU7Cj4gc3RydWN0IGRybV9kZXZpY2U7Cj4rc3RydWN0IGRybV9s aXZlX3NvdXJjZTsKPiBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWI7Cj4gc3RydWN0IHJjYXJf ZHVfZGV2aWNlOwo+Cj5AQCAtMzYsNCArMzcsNiBAQCBpbnQgcmNhcl9kdV9tb2Rlc2V0X2luaXQo c3RydWN0IHJjYXJfZHVfCj4gaW50IHJjYXJfZHVfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxl ICpmaWxlLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IAkJCXN0cnVjdCBkcm1fbW9kZV9jcmVh dGVfZHVtYiAqYXJncyk7Cj4KPitzdHJ1Y3QgZHJtX2xpdmVfc291cmNlICpyY2FyX2R1X2xpdmVf ZmJfc291cmNlKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKTsKPisKPiAjZW5kaWYgLyogX19S Q0FSX0RVX0tNU19IX18gKi8KPkluZGV4OiBsaW51eC9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9y Y2FyX2R1X3BsYW5lLmMKPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBsaW51eC5vcmlnL2RyaXZlcnMvZ3B1L2Ry bS9yY2FyLWR1L3JjYXJfZHVfcGxhbmUuYwo+KysrIGxpbnV4L2RyaXZlcnMvZ3B1L2RybS9yY2Fy LWR1L3JjYXJfZHVfcGxhbmUuYwo+QEAgLTI3LDYgKzI3LDcxIEBACj4gI2luY2x1ZGUgInJjYXJf ZHVfcmVncy5oIgo+Cj4gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPisgKiBMaXZlIFNvdXJjZXMK PisgKi8KPisKPitzdHJ1Y3QgcmNhcl9kdV92c3AxX3NvdXJjZSB7Cj4rCXN0cnVjdCBkcm1fbGl2 ZV9zb3VyY2UgYmFzZTsKPisKPisJZW51bSByY2FyX2R1X3BsYW5lX3NvdXJjZSBzb3VyY2U7Cj4r fTsKPisKPitzdGF0aWMgaW5saW5lIHN0cnVjdCByY2FyX2R1X3ZzcDFfc291cmNlICoKPit0b19y Y2FyX3ZzcDFfc291cmNlKHN0cnVjdCBkcm1fbGl2ZV9zb3VyY2UgKnNyYykKPit7Cj4rCXJldHVy biBjb250YWluZXJfb2Yoc3JjLCBzdHJ1Y3QgcmNhcl9kdV92c3AxX3NvdXJjZSwgYmFzZSk7Cj4r fQo+Kwo+K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2xpdmVfc291cmNlX2Z1bmNzIHJjYXJfZHVf bGl2ZV9zb3VyY2VfZnVuY3MgPSB7Cj4rCS5kZXN0cm95ID0gZHJtX2xpdmVfc291cmNlX2NsZWFu dXAsCj4rfTsKPisKPitzdGF0aWMgY29uc3QgdWludDMyX3Qgc291cmNlX2Zvcm1hdHNbXSA9IHsK PisJRFJNX0ZPUk1BVF9YUkdCODg4OCwKPit9Owo+Kwo+K2ludCByY2FyX2R1X3ZzcDFfc291cmNl c19pbml0KHN0cnVjdCByY2FyX2R1X2RldmljZSAqcmNkdSkKPit7Cj4rCXN0YXRpYyBjb25zdCBz dHJ1Y3Qgewo+KwkJZW51bSByY2FyX2R1X3BsYW5lX3NvdXJjZSBzb3VyY2U7Cj4rCQl1bnNpZ25l ZCBpbnQgcGxhbmVzOwo+Kwl9IHNvdXJjZXNbXSA9IHsKPisJCXsgUkNBUl9EVV9QTEFORV9WU1BE MCwgQklUKFJDQVJfRFVfTlVNX0tNU19QTEFORVMgLSAxKSB9LAo+KwkJeyBSQ0FSX0RVX1BMQU5F X1ZTUEQxLCBCSVQoUkNBUl9EVV9OVU1fS01TX1BMQU5FUyAtIDIpIHwKPisJCQkJICAgICAgIEJJ VCgyICogUkNBUl9EVV9OVU1fS01TX1BMQU5FUyAtIDEpIH0sCj4rCX07Cj4rCXVuc2lnbmVkIGlu dCBwbGFuZXNfbWFzazsKPisJdW5zaWduZWQgaW50IG51bV9wbGFuZXM7Cj4rCXVuc2lnbmVkIGlu dCBpOwo+Kwo+KwludW1fcGxhbmVzID0gUkNBUl9EVV9OVU1fS01TX1BMQU5FUyAqIERJVl9ST1VO RF9VUChyY2R1LT5udW1fY3J0Y3MsIDIpOwo+KwlwbGFuZXNfbWFzayA9ICgxIDw8IG51bV9wbGFu ZXMpIC0gMTsKPisKPisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc291cmNlcyk7ICsraSkg ewo+KwkJc3RydWN0IHJjYXJfZHVfdnNwMV9zb3VyY2UgKnNyYzsKPisJCWNoYXIgbmFtZVs2XTsK PisJCWludCByZXQ7Cj4rCj4rCQlzcmMgPSBkZXZtX2t6YWxsb2MocmNkdS0+ZGV2LCBzaXplb2Yo KnNyYyksIEdGUF9LRVJORUwpOwo+KwkJaWYgKHNyYyA9PSBOVUxMKQo+KwkJCXJldHVybiAtRU5P TUVNOwo+Kwo+KwkJc3JjLT5zb3VyY2UgPSBzb3VyY2VzW2ldLnNvdXJjZTsKPisKPisJCXNwcmlu dGYobmFtZSwgInZzcGQldSIsIGkpOwo+KwkJcmV0ID0gZHJtX2xpdmVfc291cmNlX2luaXQocmNk dS0+ZGRldiwgJnNyYy0+YmFzZSwgbmFtZSwKPisJCQkJCSAgIHNvdXJjZXNbaV0ucGxhbmVzICYg cGxhbmVzX21hc2ssCj4rCQkJCQkgICBzb3VyY2VfZm9ybWF0cywKPisJCQkJCSAgIEFSUkFZX1NJ WkUoc291cmNlX2Zvcm1hdHMpLAo+KwkJCQkJICAgJnJjYXJfZHVfbGl2ZV9zb3VyY2VfZnVuY3Mp Owo+KwkJaWYgKHJldCA8IDApCj4rCQkJcmV0dXJuIHJldDsKPisJfQo+Kwo+KwlyZXR1cm4gMDsK Pit9Cj4rCj4rLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgKiBBdG9taWMgaGFyZHdhcmUgcGxh bmUgYWxsb2NhdG9yCj4gICoKPiAgKiBUaGUgaGFyZHdhcmUgcGxhbmUgYWxsb2NhdG9yIGlzIHNv bGVseSBiYXNlZCBvbiB0aGUgYXRvbWljIHBsYW5lIHN0YXRlcwo+QEAgLTU1NSw2ICs2MjAsNyBA QCBzdGF0aWMgaW50IHJjYXJfZHVfcGxhbmVfYXRvbWljX2NoZWNrKHN0Cj4gCXN0cnVjdCByY2Fy X2R1X3BsYW5lX3N0YXRlICpyc3RhdGUgPSB0b19yY2FyX3BsYW5lX3N0YXRlKHN0YXRlKTsKPiAJ c3RydWN0IHJjYXJfZHVfcGxhbmUgKnJwbGFuZSA9IHRvX3JjYXJfcGxhbmUocGxhbmUpOwo+IAlz dHJ1Y3QgcmNhcl9kdV9kZXZpY2UgKnJjZHUgPSBycGxhbmUtPmdyb3VwLT5kZXY7Cj4rCXVpbnQz Ml90IHBpeGVsX2Zvcm1hdDsKPgo+IAlpZiAoIXN0YXRlLT5mYiB8fCAhc3RhdGUtPmNydGMpIHsK PiAJCXJzdGF0ZS0+Zm9ybWF0ID0gTlVMTDsKPkBAIC01NjcsMTMgKzYzMywyMiBAQCBzdGF0aWMg aW50IHJjYXJfZHVfcGxhbmVfYXRvbWljX2NoZWNrKHN0Cj4gCQlyZXR1cm4gLUVJTlZBTDsKPiAJ fQo+Cj4tCXJzdGF0ZS0+Zm9ybWF0ID0gcmNhcl9kdV9mb3JtYXRfaW5mbyhzdGF0ZS0+ZmItPmZv cm1hdC0+Zm9ybWF0KTsKPisJcGl4ZWxfZm9ybWF0ID0gc3RhdGUtPmZiLT5mb3JtYXQtPmZvcm1h dDsKPisJcnN0YXRlLT5mb3JtYXQgPSByY2FyX2R1X2Zvcm1hdF9pbmZvKHBpeGVsX2Zvcm1hdCk7 Cj4gCWlmIChyc3RhdGUtPmZvcm1hdCA9PSBOVUxMKSB7Cj4gCQlkZXZfZGJnKHJjZHUtPmRldiwg IiVzOiB1bnN1cHBvcnRlZCBmb3JtYXQgJTA4eFxuIiwgX19mdW5jX18sCj4tCQkJc3RhdGUtPmZi LT5mb3JtYXQtPmZvcm1hdCk7Cj4rCQkJcGl4ZWxfZm9ybWF0KTsKPiAJCXJldHVybiAtRUlOVkFM Owo+IAl9Cj4KPisJaWYgKHN0YXRlLT5mYi0+ZmxhZ3MgJiBEUk1fTU9ERV9GQl9MSVZFX1NPVVJD RSkgewo+KwkJc3RydWN0IGRybV9saXZlX3NvdXJjZSAqc3JjID0gcmNhcl9kdV9saXZlX2ZiX3Nv dXJjZShzdGF0ZS0+ZmIpOwoKc3RhdGUtPmZiLT5zcmMgc2VlbXMgYSBiaXQgbmVhdGVyIGFuZCBt b3JlIGluLWxpbmUgd2l0aCB0aGUgcmVzdCBvZgp0aGUgYXRvbWljX3N0YXRlICh0YWtpbmcgdXNl cnNwYWNlLXByb3ZpZGVkIGZsYWdzIGV0Yy4gYW5kIHR1cm5pbmcgaXQKaW50byBhY3R1YWwgb2Jq ZWN0cyBmb3IgdGhlIGtlcm5lbCB0byB1c2UpLCBpZiB5b3UgbW92ZSB0aGUgc3JjCnBvaW50ZXIg dG8gZHJtX2ZyYW1lYnVmZmVyLgoKLUJyaWFuCgo+Kwo+KwkJcnN0YXRlLT5zb3VyY2UgPSB0b19y Y2FyX3ZzcDFfc291cmNlKHNyYyktPnNvdXJjZTsKPisJfSBlbHNlIHsKPisJCXJzdGF0ZS0+c291 cmNlID0gUkNBUl9EVV9QTEFORV9NRU1PUlk7Cj4rCX0KPisKPiAJcmV0dXJuIDA7Cj4gfQo+Cj5J bmRleDogbGludXgvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9wbGFuZS5oCj49PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Cj4tLS0gbGludXgub3JpZy9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3Bs YW5lLmgKPisrKyBsaW51eC9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3BsYW5lLmgK PkBAIC0xNyw2ICsxNyw3IEBACj4gI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gI2luY2x1ZGUgPGRy bS9kcm1fY3J0Yy5oPgo+Cj4rc3RydWN0IHJjYXJfZHVfZGV2aWNlOwo+IHN0cnVjdCByY2FyX2R1 X2Zvcm1hdF9pbmZvOwo+IHN0cnVjdCByY2FyX2R1X2dyb3VwOwo+Cj5AQCAtNzIsNiArNzMsOCBA QCB0b19yY2FyX3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fcGxhbmVfc3RhCj4gaW50IHJjYXJfZHVf YXRvbWljX2NoZWNrX3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IAkJCQlzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+Cj4raW50IHJjYXJfZHVfdnNwMV9zb3VyY2VzX2lu aXQoc3RydWN0IHJjYXJfZHVfZGV2aWNlICpyY2R1KTsKPisKPiBpbnQgcmNhcl9kdV9wbGFuZXNf aW5pdChzdHJ1Y3QgcmNhcl9kdV9ncm91cCAqcmdycCk7Cj4KPiB2b2lkIF9fcmNhcl9kdV9wbGFu ZV9zZXR1cChzdHJ1Y3QgcmNhcl9kdV9ncm91cCAqcmdycCwKPgo+X19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=