From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexandru-Cosmin Gheorghe Subject: Re: [PATCH v5 2/9] drm/fourcc: Add char_per_block, block_w and block_h in drm_format_info Date: Mon, 22 Oct 2018 11:07:05 +0100 Message-ID: <20181022100705.GA17598@e114479-lin.cambridge.arm.com> References: <20181019105752.17741-1-alexandru-cosmin.gheorghe@arm.com> <20181019105752.17741-3-alexandru-cosmin.gheorghe@arm.com> <20181019130937.GA78@DESKTOP-E1NTVVP.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10058.outbound.protection.outlook.com [40.107.1.58]) by gabe.freedesktop.org (Postfix) with ESMTPS id D3BCC88FE5 for ; Mon, 22 Oct 2018 10:07:15 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181019130937.GA78@DESKTOP-E1NTVVP.localdomain> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Brian Starkey Cc: charles.xu@arm.com, nd@arm.com, matt.szczesiak@arm.com, airlied@linux.ie, liviu.dudau@arm.com, dri-devel@lists.freedesktop.org, maxime.ripard@bootlin.com, david.garbett@arm.com, seanpaul@chromium.org, lisa.wu@arm.com, daniel.vetter@ffwll.ch, malidp@foss.arm.com, ayan.halder@arm.com, james.qian.wang@arm.com List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBPY3QgMTksIDIwMTggYXQgMDI6MDk6MzhQTSArMDEwMCwgQnJpYW4gU3RhcmtleSB3 cm90ZToKPiBIaSBBbGV4LAo+IAo+IE9uIEZyaSwgT2N0IDE5LCAyMDE4IGF0IDExOjU3OjQ1QU0g KzAxMDAsIEFsZXhhbmRydSBHaGVvcmdoZSB3cm90ZToKPiA+Rm9yIHNvbWUgcGl4ZWwgZm9ybWF0 cyAuY3BwIHN0cnVjdHVyZSBpbiBkcm1fZm9ybWF0IGluZm8gaXQncyBub3QKPiA+ZW5vdWdoIHRv IGRlc2NyaWJlIHRoZSBwZWN1bGlhcml0aWVzIG9mIHRoZSBwaXhlbCBsYXlvdXQsIGZvciBleGFt cGxlCj4gPnRpbGVkIGZvcm1hdHMgb3IgcGFja2VkIGZvcm1hdHMgYXQgYml0IGxldmVsLgo+ID4K PiA+V2hhdCdzIGltcGxlbWVudGVkIGhlcmUgaXMgdG8gYWRkIHRocmVlIG5ldyBtZW1iZXJzIHRv IGRybV9mb3JtYXRfaW5mbwo+ID50aGF0IGNvdWxkIGRlc2NyaWJlIHN1Y2ggZm9ybWF0czoKPiA+ Cj4gPi0gY2hhcl9wZXJfYmxvY2tbM10KPiA+LSBibG9ja193WzNdCj4gPi0gYmxvY2tfaFszXQo+ ID4KPiA+Y2hhcl9wZXJfYmxvY2sgd2lsbCBiZSBwdXQgaW4gYSB1bmlvbiBhbG9uZ3NpZGUgY3Bw LCBmb3IgdHJhbnNwYXJlbnQKPiA+Y29tcGF0aWJpbGl0eSAgd2l0aCB0aGUgZXhpc3RpbmcgZm9y bWF0IGRlc2NyaXB0aW9ucy4KPiA+Cj4gPlJlZ2FyZGluZywgYmxvY2tfdyBhbmQgYmxvY2tfaCB0 aGV5IGFyZSBpbnRlbmRlZCB0byBiZSB1c2VkIHRocm91Z2gKPiA+dGhlaXIgZXF1aXZhbGVudCBn ZXR0ZXJzIGRybV9mb3JtYXRfaW5mb19ibG9ja193aWR0aCAvCj4gPmRybV9mb3JtYXRfaW5mb19i bG9ja19oZWlnaHQsIHRoZSByZWFzb24gb2YgdGhlIGdldHRlcnMgaXMgdG8gYWJzdHJhY3QKPiA+ dGhlIGZhY3QgdGhhdCBmb3Igbm9ybWFsIGZvcm1hdHMgYmxvY2tfdyBhbmQgYmxvY2tfaCB3aWxs IGJlIHVuc2V0LzAsCj4gPmJ1dCB0aGUgbWV0aG9kcyB3aWxsIGJlIHJldHVybmluZyAxLgo+ID4K PiA+QWRkaXRpb25hbGx5LCBjb252ZW5pZW5jZSBmdW5jdGlvbiBkcm1fZm9ybWF0X2luZm9fbWlu X3BpdGNoIGhhZCBiZWVuCj4gPmFkZGVkIHRoYXQgY29tcHV0ZXMgdGhlIG1pbmltdW0gcmVxdWly ZWQgcGl0Y2ggZm9yIGEgZ2l2ZW4gcGl4ZWwKPiA+Zm9ybWF0IGFuZCBidWZmZXIgd2lkdGguCj4g Pgo+ID5Vc2luZyB0aGF0IHRoZSBmb2xsb3dpbmcgZHJtIGNvcmUgZnVuY3Rpb25zIGhhZCBiZWVu IHVwZGF0ZWQgdG8KPiA+Z2VuZXJpY2FsbHkgaGFuZGxlIGJvdGggYmxvY2sgYW5kIG5vbi1ibG9j ayBmb3JtYXRzOgo+ID4KPiA+LSBkcm1fZmJfY21hX2dldF9nZW1fYWRkcjogZm9yIGJsb2NrIGZv cm1hdHMgaXQgd2lsbCBqdXN0IHJldHVybiB0aGUKPiA+IGJlZ2lubmluZyBvZiB0aGUgYmxvY2su Cj4gPi0gZnJhbWVidWZmZXJfY2hlY2s6IFVzZSB0aGUgbmV3bHkgYWRkZWQgZHJtX2Zvcm1hdF9p bmZvX21pbl9waXRjaC4KPiA+LSBkcm1fZ2VtX2ZiX2NyZWF0ZV93aXRoX2Z1bmNzOiBVc2UgdGhl IG5ld2x5IGFkZGVkCj4gPiBkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoLgo+ID4tIEluIHBsYWNl cyB3aGVyZSBpcyBub3QgZXhwZWN0aW5nIHRvIGhhbmRsZSBibG9jayBmb3JtYXRzLCBsaWtlIGZi ZGV2Cj4gPiBoZWxwZXJzIEkganVzdCBhZGRlZCBzb21lIHdhcm5pbmdzIGluIGNhc2UgdGhlIGJs b2NrIHdpZHRoL2hlaWdodAo+ID4gYXJlIGdyZWF0ZXIgdGhhbiAxLgo+ID4KPiA+Q2hhbmdlcyBz aW5jZSB2MzoKPiA+LSBBZGQgaGVscGVyIGZ1bmN0aW9uIGZvciBjb21wdXRpbmcgdGhlIG1pbmlt dW0gcmVxdWlyZWQgcGl0Y2guCj4gPi0gSW1wcm92ZS9jbGVhbnVwIGRvY3VtZW50YXRpb24KPiA+ Cj4gPlNpZ25lZC1vZmYtYnk6IEFsZXhhbmRydSBHaGVvcmdoZSA8YWxleGFuZHJ1LWNvc21pbi5n aGVvcmdoZUBhcm0uY29tPgo+IAo+IEkgY29tbWVudGVkIG9uIGEgY291cGxlIG9mIHRpbnkgdHlw b2dyYXBoaWNhbCB0aGluZ3MgYmVsb3csIGJ1dAo+IG90aGVyd2lzZSB0aGlzIGxvb2tzIGdvb2Qg dG8gbWUuIFRoYW5rcyEKPiAKPiBSZXZpZXdlZC1ieTogQnJpYW4gU3RhcmtleSA8YnJpYW4uc3Rh cmtleUBhcm0uY29tPgo+IAo+ID4tLS0KPiA+ZHJpdmVycy9ncHUvZHJtL2RybV9mYl9jbWFfaGVs cGVyLmMgICAgICAgICAgfCAyMSArKysrKystCj4gPmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVs cGVyLmMgICAgICAgICAgICAgIHwgIDYgKysKPiA+ZHJpdmVycy9ncHUvZHJtL2RybV9mb3VyY2Mu YyAgICAgICAgICAgICAgICAgfCA2MiArKysrKysrKysrKysrKysrKysrKwo+ID5kcml2ZXJzL2dw dS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgICAgICAgICAgICB8ICA2ICstCj4gPmRyaXZlcnMvZ3B1 L2RybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5jIHwgIDIgKy0KPiA+aW5jbHVkZS9kcm0v ZHJtX2ZvdXJjYy5oICAgICAgICAgICAgICAgICAgICAgfCA2MSArKysrKysrKysrKysrKysrKyst Cj4gPjYgZmlsZXMgY2hhbmdlZCwgMTQ5IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCj4g Pgo+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYwo+ID5pbmRleCBkNTIzNDRhMDNhYTgu LjgzOTQxYThjYTBlMCAxMDA2NDQKPiA+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9jbWFf aGVscGVyLmMKPiA+KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmMKPiA+ QEAgLTcyLDcgKzcyLDkgQEAgc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqZHJtX2ZiX2NtYV9n ZXRfZ2VtX29iaihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+RVhQT1JUX1NZTUJPTF9H UEwoZHJtX2ZiX2NtYV9nZXRfZ2VtX29iaik7Cj4gPgo+ID4vKioKPiA+LSAqIGRybV9mYl9jbWFf Z2V0X2dlbV9hZGRyKCkgLSBHZXQgcGh5c2ljYWwgYWRkcmVzcyBmb3IgZnJhbWVidWZmZXIKPiA+ KyAqIGRybV9mYl9jbWFfZ2V0X2dlbV9hZGRyKCkgLSBHZXQgcGh5c2ljYWwgYWRkcmVzcyBmb3Ig ZnJhbWVidWZmZXIsIGZvciBwaXhlbAo+ID4rICogZm9ybWF0cyB3aGVyZSB2YWx1ZXMgYXJlIGdy b3VwZWQgaW4gYmxvY2tzIHRoaXMgd2lsbCBnZXQgeW91IHRoZSBiZWdpbm5pbmcgb2YKPiA+KyAq IHRoZSBibG9jawo+ID4gKiBAZmI6IFRoZSBmcmFtZWJ1ZmZlcgo+ID4gKiBAc3RhdGU6IFdoaWNo IHN0YXRlIG9mIGRybSBwbGFuZQo+ID4gKiBAcGxhbmU6IFdoaWNoIHBsYW5lCj4gPkBAIC04Nyw2 ICs4OSwxNCBAQCBkbWFfYWRkcl90IGRybV9mYl9jbWFfZ2V0X2dlbV9hZGRyKHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLAo+ID4Jc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqb2JqOwo+ID4J ZG1hX2FkZHJfdCBwYWRkcjsKPiA+CXU4IGhfZGl2ID0gMSwgdl9kaXYgPSAxOwo+ID4rCXUzMiBi bG9ja193ID0gZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX3dpZHRoKGZiLT5mb3JtYXQsIHBsYW5lKTsK PiA+Kwl1MzIgYmxvY2tfaCA9IGRybV9mb3JtYXRfaW5mb19ibG9ja19oZWlnaHQoZmItPmZvcm1h dCwgcGxhbmUpOwo+ID4rCXUzMiBibG9ja19zaXplID0gZmItPmZvcm1hdC0+Y2hhcl9wZXJfYmxv Y2tbcGxhbmVdOwo+ID4rCXUzMiBzYW1wbGVfeDsKPiA+Kwl1MzIgc2FtcGxlX3k7Cj4gPisJdTMy IGJsb2NrX3N0YXJ0X3k7Cj4gPisJdTMyIG51bV9oYmxvY2tzOwo+ID4rCj4gCj4gbml0OiBleHRy YSBuZXdsaW5lCj4gCj4gPgo+ID4Jb2JqID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX29iaihmYiwgcGxh bmUpOwo+ID4JaWYgKCFvYmopCj4gPkBAIC05OSw4ICsxMDksMTMgQEAgZG1hX2FkZHJfdCBkcm1f ZmJfY21hX2dldF9nZW1fYWRkcihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+CQl2X2Rp diA9IGZiLT5mb3JtYXQtPnZzdWI7Cj4gPgl9Cj4gPgo+ID4tCXBhZGRyICs9IChmYi0+Zm9ybWF0 LT5jcHBbcGxhbmVdICogKHN0YXRlLT5zcmNfeCA+PiAxNikpIC8gaF9kaXY7Cj4gPi0JcGFkZHIg Kz0gKGZiLT5waXRjaGVzW3BsYW5lXSAqIChzdGF0ZS0+c3JjX3kgPj4gMTYpKSAvIHZfZGl2Owo+ ID4rCXNhbXBsZV94ID0gKHN0YXRlLT5zcmNfeCA+PiAxNikgLyBoX2RpdjsKPiA+KwlzYW1wbGVf eSA9IChzdGF0ZS0+c3JjX3kgPj4gMTYpIC8gdl9kaXY7Cj4gPisJYmxvY2tfc3RhcnRfeSA9IChz YW1wbGVfeSAvIGJsb2NrX2gpICogYmxvY2tfaDsKPiA+KwludW1faGJsb2NrcyA9IHNhbXBsZV94 IC8gYmxvY2tfdzsKPiA+Kwo+ID4rCXBhZGRyICs9IGZiLT5waXRjaGVzW3BsYW5lXSAqIGJsb2Nr X3N0YXJ0X3k7Cj4gPisJcGFkZHIgKz0gYmxvY2tfc2l6ZSAqIG51bV9oYmxvY2tzOwo+ID4KPiA+ CXJldHVybiBwYWRkcjsKPiA+fQo+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9m Yl9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiA+aW5kZXggYTUw NGE1ZTA1Njc2Li45YWRkMGQ3ZGE3NDQgMTAwNjQ0Cj4gPi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fZmJfaGVscGVyLmMKPiA+KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+ ID5AQCAtMTU5NSw2ICsxNTk1LDEwIEBAIGludCBkcm1fZmJfaGVscGVyX2NoZWNrX3ZhcihzdHJ1 Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhciwKPiA+CWlmICh2YXItPnBpeGNsb2NrICE9IDAgfHwg aW5fZGJnX21hc3RlcigpKQo+ID4JCXJldHVybiAtRUlOVkFMOwo+ID4KPiA+KwlpZiAoKGRybV9m b3JtYXRfaW5mb19ibG9ja193aWR0aChmYi0+Zm9ybWF0LCAwKSA+IDEpIHx8Cj4gPisJICAgIChk cm1fZm9ybWF0X2luZm9fYmxvY2tfaGVpZ2h0KGZiLT5mb3JtYXQsIDApID4gMSkpCj4gPisJCXJl dHVybiAtRUlOVkFMOwo+ID4rCj4gPgkvKgo+ID4JICogQ2hhbmdlcyBzdHJ1Y3QgZmJfdmFyX3Nj cmVlbmluZm8gYXJlIGN1cnJlbnRseSBub3QgcHVzaGVkIGJhY2sKPiA+CSAqIHRvIEtNUywgaGVu Y2UgZmFpbCBpZiBkaWZmZXJlbnQgc2V0dGluZ3MgYXJlIHJlcXVlc3RlZC4KPiA+QEAgLTE5Njks NiArMTk3Myw4IEBAIHZvaWQgZHJtX2ZiX2hlbHBlcl9maWxsX3ZhcihzdHJ1Y3QgZmJfaW5mbyAq aW5mbywgc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlCj4gPnsKPiA+CXN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gZmJfaGVscGVyLT5mYjsKPiA+Cj4gPisJV0FSTl9PTigoZHJtX2Zv cm1hdF9pbmZvX2Jsb2NrX3dpZHRoKGZiLT5mb3JtYXQsIDApID4gMSkgfHwKPiA+KwkJKGRybV9m b3JtYXRfaW5mb19ibG9ja19oZWlnaHQoZmItPmZvcm1hdCwgMCkgPiAxKSk7Cj4gPglpbmZvLT5w c2V1ZG9fcGFsZXR0ZSA9IGZiX2hlbHBlci0+cHNldWRvX3BhbGV0dGU7Cj4gPglpbmZvLT52YXIu eHJlc192aXJ0dWFsID0gZmItPndpZHRoOwo+ID4JaW5mby0+dmFyLnlyZXNfdmlydHVhbCA9IGZi LT5oZWlnaHQ7Cj4gPmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9mb3VyY2MuYwo+ID5pbmRleCBlMTc3ZjZkMGQxZjQuLmE4NDNh NWZjOGRiZiAxMDA2NDQKPiA+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mb3VyY2MuYwo+ID4r KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jCj4gPkBAIC00MDMsMyArNDAzLDY1IEBA IGludCBkcm1fZm9ybWF0X3BsYW5lX2hlaWdodChpbnQgaGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQs IGludCBwbGFuZSkKPiA+CXJldHVybiBoZWlnaHQgLyBpbmZvLT52c3ViOwo+ID59Cj4gPkVYUE9S VF9TWU1CT0woZHJtX2Zvcm1hdF9wbGFuZV9oZWlnaHQpOwo+ID4rCj4gPisvKioKPiA+KyAqIGRy bV9mb3JtYXRfaW5mb19ibG9ja193aWR0aCAtIHdpZHRoIGluIHBpeGVscyBvZiBibG9jay4KPiA+ KyAqIEBpbmZvOiBwaXhlbCBmb3JtYXQgaW5mbwo+ID4rICogQHBsYW5lOiBwbGFuZSBpbmRleAo+ ID4rICoKPiA+KyAqIFJldHVybnM6Cj4gPisgKiBUaGUgd2lkdGggaW4gcGl4ZWxzIG9mIGEgYmxv Y2ssIGRlcGVuZGluZyBvbiB0aGUgcGxhbmUgaW5kZXguCj4gPisgKi8KPiA+K3Vuc2lnbmVkIGlu dCBkcm1fZm9ybWF0X2luZm9fYmxvY2tfd2lkdGgoY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5m byAqaW5mbywKPiA+KwkJCQkJIGludCBwbGFuZSkKPiA+K3sKPiA+KwlpZiAoIWluZm8gfHwgcGxh bmUgPCAwIHx8IHBsYW5lID49IGluZm8tPm51bV9wbGFuZXMpCj4gPisJCXJldHVybiAwOwo+IAo+ IFRoaW5raW5nIGFsb3VkOiBUaGUgb3RoZXIgaGVscGVycyBkb24ndCBjaGVjayA8IDAsIGJ1dCBp dCBsb29rcyB0byBtZQo+IHRoYXQgaXQgd291bGQgbWFrZSBzZW5zZSAoc29tZWRheS4uLikgdG8g Y2hhbmdlIGFsbCBvZiB0aGUgJ3BsYW5lJwo+IGFyZ3VtZW50cyB0byAndW5zaWduZWQgaW50JyBz byB0aGF0IHRoZXJlJ3Mgbm8gcG9zc2liaWxpdHkgb2YgPCAwLgoKVGhlIG9ubHkgcmVhc29uIGlz IGludCBpdCdzIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlcnMsIGFuZCBJCmFkZGVkIDww LCBvbmNlIEkgc3RhcnRlZCB1bml0IHRlc3RpbmcgaXQuIAoKPiAKPiA+Kwo+ID4rCWlmICghaW5m by0+YmxvY2tfd1twbGFuZV0pCj4gPisJCXJldHVybiAxOwo+ID4rCXJldHVybiBpbmZvLT5ibG9j a193W3BsYW5lXTsKPiA+K30KPiA+K0VYUE9SVF9TWU1CT0woZHJtX2Zvcm1hdF9pbmZvX2Jsb2Nr X3dpZHRoKTsKPiA+Kwo+ID4rLyoqCj4gPisgKiBkcm1fZm9ybWF0X2luZm9fYmxvY2tfaGVpZ2h0 IC0gaGVpZ2h0IGluIHBpeGVscyBvZiBhIGJsb2NrCj4gPisgKiBAaW5mbzogcGl4ZWwgZm9ybWF0 IGluZm8KPiA+KyAqIEBwbGFuZTogcGxhbmUgaW5kZXgKPiA+KyAqCj4gPisgKiBSZXR1cm5zOgo+ ID4rICogVGhlIGhlaWdodCBpbiBwaXhlbHMgb2YgYSBibG9jaywgZGVwZW5kaW5nIG9uIHRoZSBw bGFuZSBpbmRleC4KPiA+KyAqLwo+ID4rdW5zaWduZWQgaW50IGRybV9mb3JtYXRfaW5mb19ibG9j a19oZWlnaHQoY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqaW5mbywKPiA+KwkJCQkJICBp bnQgcGxhbmUpCj4gPit7Cj4gPisJaWYgKCFpbmZvIHx8IHBsYW5lIDwgMCB8fCBwbGFuZSA+PSBp bmZvLT5udW1fcGxhbmVzKQo+ID4rCQlyZXR1cm4gMDsKPiA+Kwo+ID4rCWlmICghaW5mby0+Ymxv Y2tfaFtwbGFuZV0pCj4gPisJCXJldHVybiAxOwo+ID4rCXJldHVybiBpbmZvLT5ibG9ja19oW3Bs YW5lXTsKPiA+K30KPiA+K0VYUE9SVF9TWU1CT0woZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX2hlaWdo dCk7Cj4gPisKPiA+Ky8qKgo+ID4rICogZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaCAtIGNvbXB1 dGVzIHRoZSBtaW5pbXVtIHJlcXVpcmVkIHBpdGNoIGluIGJ5dGVzCj4gPisgKiBAaW5mbzogcGl4 ZWwgZm9ybWF0IGluZm8KPiA+KyAqIEBwbGFuZTogcGxhbmUgaW5kZXgKPiA+KyAqIEBidWZmZXJf d2lkdGg6IGJ1ZmZlciB3aWR0aCBpbiBwaXhlbHMKPiA+KyAqCj4gPisgKiBSZXR1cm5zOgo+ID4r ICogVGhlIG1pbmltdW0gcmVxdWlyZWQgcGl0Y2ggaW4gYnl0ZXMgZm9yIGEgYnVmZmVyIGJ5IHRh a2luZyBpbnRvIGNvbnNpZGVyYXRpb24KPiA+KyAqIHRoZSBwaXhlbCBmb3JtYXQgaW5mb3JtYXRp b24gYW5kIHRoZSBidWZmZXIgd2lkdGguCj4gPisgKi8KPiA+K3VpbnQ2NF90IGRybV9mb3JtYXRf aW5mb19taW5fcGl0Y2goY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqaW5mbywKPiA+KwkJ CQkgICBpbnQgcGxhbmUsIHVuc2lnbmVkIGludCBidWZmZXJfd2lkdGgpCj4gPit7Cj4gPisJaWYg KCFpbmZvIHx8IHBsYW5lIDwgMCB8fCBwbGFuZSA+PSBpbmZvLT5udW1fcGxhbmVzKQo+ID4rCQly ZXR1cm4gMDsKPiA+Kwo+ID4rCXJldHVybiBESVZfUk9VTkRfVVAoKHU2NClidWZmZXJfd2lkdGgg KiBpbmZvLT5jaGFyX3Blcl9ibG9ja1twbGFuZV0sCj4gPisJCQkgICAgZHJtX2Zvcm1hdF9pbmZv X2Jsb2NrX3dpZHRoKGluZm8sIHBsYW5lKSAqCj4gPisJCQkgICAgZHJtX2Zvcm1hdF9pbmZvX2Js b2NrX2hlaWdodChpbmZvLCBwbGFuZSkpOwo+ID4rfQo+ID4rRVhQT1JUX1NZTUJPTChkcm1fZm9y bWF0X2luZm9fbWluX3BpdGNoKTsKPiA+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZnJhbWVidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+ID5pbmRl eCAzYmY3MjlkMGFhZTUuLjZhY2E4YTFjY2RiNiAxMDA2NDQKPiA+LS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9mcmFtZWJ1ZmZlci5jCj4gPisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVi dWZmZXIuYwo+ID5AQCAtMTk1LDIwICsxOTUsMjAgQEAgc3RhdGljIGludCBmcmFtZWJ1ZmZlcl9j aGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4JZm9yIChpID0gMDsgaSA8IGluZm8tPm51 bV9wbGFuZXM7IGkrKykgewo+ID4JCXVuc2lnbmVkIGludCB3aWR0aCA9IGZiX3BsYW5lX3dpZHRo KHItPndpZHRoLCBpbmZvLCBpKTsKPiA+CQl1bnNpZ25lZCBpbnQgaGVpZ2h0ID0gZmJfcGxhbmVf aGVpZ2h0KHItPmhlaWdodCwgaW5mbywgaSk7Cj4gPi0JCXVuc2lnbmVkIGludCBjcHAgPSBpbmZv LT5jcHBbaV07Cj4gPisJCXU2NCBtaW5fcGl0Y2ggPSBkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNo KGluZm8sIGksIHdpZHRoKTsKPiA+Cj4gPgkJaWYgKCFyLT5oYW5kbGVzW2ldKSB7Cj4gPgkJCURS TV9ERUJVR19LTVMoIm5vIGJ1ZmZlciBvYmplY3QgaGFuZGxlIGZvciBwbGFuZSAlZFxuIiwgaSk7 Cj4gPgkJCXJldHVybiAtRUlOVkFMOwo+ID4JCX0KPiA+Cj4gPi0JCWlmICgodWludDY0X3QpIHdp ZHRoICogY3BwID4gVUlOVF9NQVgpCj4gPisJCWlmIChtaW5fcGl0Y2ggPiBVSU5UX01BWCkKPiA+ CQkJcmV0dXJuIC1FUkFOR0U7Cj4gPgo+ID4JCWlmICgodWludDY0X3QpIGhlaWdodCAqIHItPnBp dGNoZXNbaV0gKyByLT5vZmZzZXRzW2ldID4gVUlOVF9NQVgpCj4gPgkJCXJldHVybiAtRVJBTkdF Owo+ID4KPiA+LQkJaWYgKHItPnBpdGNoZXNbaV0gPCB3aWR0aCAqIGNwcCkgewo+ID4rCQlpZiAo ci0+cGl0Y2hlc1tpXSA8IG1pbl9waXRjaCkgewo+ID4JCQlEUk1fREVCVUdfS01TKCJiYWQgcGl0 Y2ggJXUgZm9yIHBsYW5lICVkXG4iLCByLT5waXRjaGVzW2ldLCBpKTsKPiA+CQkJcmV0dXJuIC1F SU5WQUw7Cj4gPgkJfQo+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fZnJh bWVidWZmZXJfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9o ZWxwZXIuYwo+ID5pbmRleCBkZWQ3YTM3OWFjMzUuLmFjYjQ2NmQyNWFmYyAxMDA2NDQKPiA+LS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmMKPiA+KysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmMKPiA+QEAgLTE3MSw3 ICsxNzEsNyBAQCBkcm1fZ2VtX2ZiX2NyZWF0ZV93aXRoX2Z1bmNzKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPiA+CQl9Cj4gPgo+ID4JCW1pbl9zaXplID0g KGhlaWdodCAtIDEpICogbW9kZV9jbWQtPnBpdGNoZXNbaV0KPiA+LQkJCSArIHdpZHRoICogaW5m by0+Y3BwW2ldCj4gPisJCQkgKyBkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIGksIHdp ZHRoKQo+ID4JCQkgKyBtb2RlX2NtZC0+b2Zmc2V0c1tpXTsKPiA+Cj4gPgkJaWYgKG9ianNbaV0t PnNpemUgPCBtaW5fc2l6ZSkgewo+ID5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZvdXJj Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2ZvdXJjYy5oCj4gPmluZGV4IDM0NWYxMTIyN2U5ZS4uMjUz ZDRjMDdhMTBjIDEwMDY0NAo+ID4tLS0gYS9pbmNsdWRlL2RybS9kcm1fZm91cmNjLmgKPiA+Kysr IGIvaW5jbHVkZS9kcm0vZHJtX2ZvdXJjYy5oCj4gPkBAIC02OSw4ICs2OSw1OSBAQCBzdHJ1Y3Qg ZHJtX2Zvcm1hdF9pbmZvIHsKPiA+CS8qKiBAbnVtX3BsYW5lczogTnVtYmVyIG9mIGNvbG9yIHBs YW5lcyAoMSB0byAzKSAqLwo+ID4JdTggbnVtX3BsYW5lczsKPiA+Cj4gPi0JLyoqIEBjcHA6IE51 bWJlciBvZiBieXRlcyBwZXIgcGl4ZWwgKHBlciBwbGFuZSkgKi8KPiA+LQl1OCBjcHBbM107Cj4g PisJdW5pb24gewo+ID4rCQkvKioKPiA+KwkJICogQGNwcDoKPiA+KwkJICoKPiA+KwkJICogTnVt YmVyIG9mIGJ5dGVzIHBlciBwaXhlbCAocGVyIHBsYW5lKSwgdGhpcyBpcyBhbGlhc2VkIHdpdGgK PiA+KwkJICogQGNoYXJfcGVyX2Jsb2NrLiBJdCBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiB1 c2luZyB0aGUKPiA+KwkJICogdHJpcGxldCBAY2hhcl9wZXJfYmxvY2ssIEBibG9ja193LCBAYmxv Y2tfaCBmb3IgYmV0dGVyCj4gPisJCSAqIGRlc2NyaWJpbmcgdGhlIHBpeGVsIGZvcm1hdC4KPiA+ KwkJICovCj4gPisJCXU4IGNwcFszXTsKPiA+Kwo+ID4rCQkvKioKPiA+KwkJICogQGNoYXJfcGVy X2Jsb2NrOgo+ID4rCQkgKgo+ID4rCQkgKiBOdW1iZXIgb2YgYnl0ZXMgcGVyIGJsb2NrIChwZXIg cGxhbmUpLCB3aGVyZSBibG9ja3MgYXJlCj4gPisJCSAqIGRlZmluZWQgYXMgYSByZWN0YW5nbGUg b2YgcGl4ZWxzIHdoaWNoIGFyZSBzdG9yZWQgbmV4dCB0bwo+ID4rCQkgKiBlYWNoIG90aGVyIGlu IGEgYnl0ZSBhbGlnbmVkIG1lbW9yeSByZWdpb24uIFRvZ2V0aGVyIHdpdGgKPiA+KwkJICogQGJs b2NrX3cgYW5kIEBibG9ja19oIHRoaXMgaXMgdXNlZCB0byBwcm9wZXJseSBkZXNjcmliZSB0aWxl cwo+ID4rCQkgKiBpbiB0aWxlZCBmb3JtYXRzIG9yIHRvIGRlc2NyaWJlIGdyb3VwcyBvZiBwaXhl bHMgaW4gcGFja2VkCj4gPisJCSAqIGZvcm1hdHMgZm9yIHdoaWNoIHRoZSBtZW1vcnkgbmVlZGVk IGZvciBhIHNpbmdsZSBwaXhlbCBpdCdzCj4gCj4gcy9pdCdzL2lzLwo+IAo+ID4rCQkgKiBub3Qg Ynl0ZSBhbGlnbmVkLgo+ID4rCQkgKgo+ID4rCQkgKiBAY3BwIGhhZCBiZWVuIGtlcHQgZnJvbSBo aXN0b3JpY2FsIHJlYXNvbnMgYmVjYXVzZSB0aGVyZSBhcmUKPiAKPiBzL2hhZC9oYXMvLCBzL2Zy b20vZm9yLwo+IAo+ID4rCQkgKiBhIGxvdCBvZiBwbGFjZXMgaW4gZHJpdmVycyB3aGVyZSBpdCdz IHVzZWQuIEluIGRybSBjb3JlIGZvcgo+ID4rCQkgKiBnZW5lcmljIGNvZGUgcGF0aHMgdGhlIHBy ZWZlcnJlZCB3YXkgaXMgdG8gdXNlCj4gPisJCSAqIEBjaGFyX3Blcl9ibG9jaywgZHJtX2Zvcm1h dF9pbmZvX2Jsb2NrX3dpZHRoKCkgYW5kCj4gPisJCSAqIGRybV9mb3JtYXRfaW5mb19ibG9ja19o ZWlnaHQoKSB3aGljaCBhbGxvd3MgaGFuZGxpbmcgYm90aAo+ID4rCQkgKiBibG9jayBhbmQgbm9u LWJsb2NrIGZvcm1hdHMgaW4gdGhlIHNhbWUgd2F5Lgo+ID4rCQkgKgo+ID4rCQkgKiBGb3IgZm9y bWF0cyB0aGF0IGFyZSBpbnRlbmRlZCB0byBiZSB1c2VkIG9ubHkgd2l0aCBub24tbGluZWFyCj4g PisJCSAqIG1vZGlmaWVycyBib3RoIEBjcHAgYW5kIEBjaGFyX3Blcl9ibG9jayBtdXN0IGJlIDAg aW4gdGhlCj4gPisJCSAqIGdlbmVyaWMgZm9ybWF0IHRhYmxlLiBEcml2ZXJzIGNvdWxkIHN1cHBs eSBhY2N1cmF0ZQo+ID4rCQkgKiBpbmZvcm1hdGlvbiBmcm9tIHRoZWlyIGRybV9tb2RlX2NvbmZp Zy5nZXRfZm9ybWF0X2luZm8gaG9vawo+ID4rCQkgKiBpZiB0aGV5IHdhbnQgdGhlIGNvcmUgdG8g YmUgdmFsaWRhdGluZyB0aGUgcGl0Y2guCj4gPisJCSAqLwo+ID4rCQl1OCBjaGFyX3Blcl9ibG9j a1szXTsKPiA+Kwl9Owo+ID4rCj4gPisJLyoqCj4gPisJICogQGJsb2NrX3c6Cj4gPisJICoKPiA+ KwkgKiBCbG9jayB3aWR0aCBpbiBwaXhlbHMsIHRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgYWNjZXNz ZWQgdGhyb3VnaAo+ID4rCSAqIGRybV9mb3JtYXRfaW5mb19ibG9ja193aWR0aCgpCj4gPisJICov Cj4gPisJdTggYmxvY2tfd1szXTsKPiA+Kwo+ID4rCS8qKgo+ID4rCSAqIEBibG9ja19oOgo+ID4r CSAqCj4gPisJICogQmxvY2sgaGVpZ2h0IGluIHBpeGVscywgdGhpcyBpcyBpbnRlbmRlZCB0byBi ZSBhY2Nlc3NlZCB0aHJvdWdoCj4gPisJICogZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX2hlaWdodCgp Cj4gPisJICovCj4gPisJdTggYmxvY2tfaFszXTsKPiA+Cj4gPgkvKiogQGhzdWI6IEhvcml6b250 YWwgY2hyb21hIHN1YnNhbXBsaW5nIGZhY3RvciAqLwo+ID4JdTggaHN1YjsKPiA+QEAgLTEwNiw2 ICsxNTcsMTIgQEAgaW50IGRybV9mb3JtYXRfaG9yel9jaHJvbWFfc3Vic2FtcGxpbmcodWludDMy X3QgZm9ybWF0KTsKPiA+aW50IGRybV9mb3JtYXRfdmVydF9jaHJvbWFfc3Vic2FtcGxpbmcodWlu dDMyX3QgZm9ybWF0KTsKPiA+aW50IGRybV9mb3JtYXRfcGxhbmVfd2lkdGgoaW50IHdpZHRoLCB1 aW50MzJfdCBmb3JtYXQsIGludCBwbGFuZSk7Cj4gPmludCBkcm1fZm9ybWF0X3BsYW5lX2hlaWdo dChpbnQgaGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQsIGludCBwbGFuZSk7Cj4gPit1bnNpZ25lZCBp bnQgZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX3dpZHRoKGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2lu Zm8gKmluZm8sCj4gPisJCQkJCSBpbnQgcGxhbmUpOwo+ID4rdW5zaWduZWQgaW50IGRybV9mb3Jt YXRfaW5mb19ibG9ja19oZWlnaHQoY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqaW5mbywK PiA+KwkJCQkJICBpbnQgcGxhbmUpOwo+ID4rdWludDY0X3QgZHJtX2Zvcm1hdF9pbmZvX21pbl9w aXRjaChjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICppbmZvLAo+ID4rCQkJCSAgIGludCBw bGFuZSwgdW5zaWduZWQgaW50IGJ1ZmZlcl93aWR0aCk7Cj4gPmNvbnN0IGNoYXIgKmRybV9nZXRf Zm9ybWF0X25hbWUodWludDMyX3QgZm9ybWF0LCBzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiAq YnVmKTsKPiA+Cj4gPiNlbmRpZiAvKiBfX0RSTV9GT1VSQ0NfSF9fICovCj4gPi0tIAo+ID4yLjE4 LjAKPiA+CgotLSAKQ2hlZXJzLApBbGV4IEcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCg==