From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lowry Li Subject: [PATCH v5 1/2] drm: Add per-plane pixel blend mode property Date: Thu, 23 Aug 2018 16:30:19 +0800 Message-ID: <1535013020-23737-2-git-send-email-lowry.li@arm.com> References: <1535013020-23737-1-git-send-email-lowry.li@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60088.outbound.protection.outlook.com [40.107.6.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0BBA36E4EE for ; Thu, 23 Aug 2018 08:31:03 +0000 (UTC) In-Reply-To: <1535013020-23737-1-git-send-email-lowry.li@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: liviu.dudau@arm.com Cc: airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, emil.l.velikov@gmail.com, seanpaul@chromium.org, malidp@foss.arm.com, daniel.vetter@intel.com, nd@arm.com List-Id: dri-devel@lists.freedesktop.org UGl4ZWwgYmxlbmQgbW9kZXMgcmVwcmVzZW50IHRoZSBhbHBoYSBibGVuZGluZyBlcXVhdGlvbgpz ZWxlY3Rpb24sIGRlc2NyaWJpbmcgaG93IHRoZSBwaXhlbHMgZnJvbSB0aGUgY3VycmVudApwbGFu ZSBhcmUgY29tcG9zaXRlZCB3aXRoIHRoZSBiYWNrZ3JvdW5kLgoKQWRkcyBhIHBpeGVsX2JsZW5k X21vZGUgdG8gZHJtX3BsYW5lX3N0YXRlIGFuZCBhCmJsZW5kX21vZGVfcHJvcGVydHkgdG8gZHJt X3BsYW5lLCBhbmQgcmVsYXRlZCBzdXBwb3J0CmZ1bmN0aW9ucy4KCkRlZmluZXMgdGhyZWUgYmxl bmQgbW9kZXMgaW4gZHJtX2JsZW5kLmguCgpDaGFuZ2VzIHNpbmNlIHYxOgogLSBNb3ZlcyB0aGUg YmxlbmRpbmcgZXF1YXRpb24gaW50byB0aGUgRE9DIGNvbW1lbnQKIC0gUmVmaW5lcyB0aGUgY29t bWVudHMgb2YgZHJtX3BsYW5lX2NyZWF0ZV9ibGVuZF9tb2RlX3Byb3BlcnR5IHRvIG5vdAogICBl bnVtZXJhdGUgdGhlICNkZWZpbmVzLCBidXQgaW5zdGVhZCB0aGUgc3RyaW5nIHZhbHVlcwogLSBV c2VzIGZnLiogaW5zdGVhZCBvZiBwaXhlbC4qIGFuZCBwbGFuZV9hbHBoYSBpbnN0ZWFkIG9mIHBs YW5lLmFscGhhCkNoYW5nZXMgc2luY2UgdjI6CiAtIFJlZmluZXMgdGhlIGNvbW1lbnRzIG9mIGRy bV9wbGFuZV9jcmVhdGVfYmxlbmRfbW9kZV9wcm9wZXJ0eToKICAgICAgMSkgUHV0cyB0aGUgZGVz Y3JpcHRpb25zIChhZnRlciB0aGUgIjoiKSBvbiBhIG5ldyBsaW5lCiAgICAgIDIpIEFkZHMgZXhw bGFpbmluZyB3aHkgQHN1cHBvcnRlZF9tb2RlcyBuZWVkIFBSRU1VTCBhcyBkZWZhdWx0CkNoYW5n ZXMgc2luY2UgdjM6CiAtIFJlZmluZXMgZHJtX3BsYW5lX2NyZWF0ZV9ibGVuZF9tb2RlX3Byb3Bl cnR5KCkuIGRybV9wcm9wZXJ0eV9hZGRfZW51bSgpCiAgIGNhbiBjYWxjdWxhdGUgdGhlIGluZGV4 IGl0c2VsZiBqdXN0IGZpbmUsIHNvIG5vIHBvaW50IGluIGhhdmluZyB0aGUKICAgY2FsbGVyIHBh c3MgaXQgaW4uCiAtIFNpbmNlIHRoZSBjdXJyZW50IERSTSBhc3N1bXB0aW9uIGlzIHRoYXQgYWxw aGEgaXMgcHJlbXVsdGlwbGllZAogICBhcyBkZWZhdWx0LCBkZWZpbmUgRFJNX01PREVfQkxFTkRf UFJFTVVMVEkgYXMgMCB3aWxsIGJlIGJldHRlci4KIC0gUmVmaW5lcyBzb21lIGNvbW1lbnRzLgpD aGFuZ2VzIHNpbmNlIHY0OgogLSBBZGRzIGNvbW1lbnRzIGluIGRybV9ibGVuZC5oLgogLSBSZW1v dmVzIHNldHRpbmcgZGVmYXVsdCB2YWx1ZSBpbiBkcm1fcGxhbmVfY3JlYXRlX2JsZW5kX21vZGVf cHJvcGVydHkoKQogICBhcyBpdCBpcyBhbHJlYWR5IGluIF9fZHJtX2F0b21pY19oZWxwZXJfcGxh bmVfcmVzZXQoKS4KIC0gRml4ZXMgdG8gdXNlIHN0YXRlLT5waXhlbF9ibGVuZF9tb2RlIGluc3Rl YWQgb2YgdXNpbmcKICAgcGxhbmUtPnN0YXRlLT5waXhlbF9ibGVuZF9tb2RlIGluIHJlc2V0IGZ1 bmN0aW9uLgogLSBSZWJhc2VzIG9uIGRybS1taXNjLW5leHQuCgpSZXZpZXdlZC1ieTogTGl2aXUg RHVkYXUgPGxpdml1LmR1ZGF1QGFybS5jb20+ClNpZ25lZC1vZmYtYnk6IExvd3J5IExpIDxsb3dy eS5saUBhcm0uY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAgICAgIHwg ICA0ICsrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8ICAgMSArCiBkcml2 ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMgICAgICAgICB8IDEyMyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIGluY2x1ZGUvZHJtL2RybV9ibGVuZC5oICAgICAgICAgICAgIHwg ICA2ICsrCiBpbmNsdWRlL2RybS9kcm1fcGxhbmUuaCAgICAgICAgICAgICB8ICAgOSArKysKIDUg ZmlsZXMgY2hhbmdlZCwgMTQzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwppbmRleCAz ZWIwNjFlLi5kMDQ3OGFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKQEAgLTg5NSw2ICs4OTUsOCBAQCBz dGF0aWMgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAogCQlzdGF0ZS0+c3JjX2ggPSB2YWw7CiAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBw bGFuZS0+YWxwaGFfcHJvcGVydHkpIHsKIAkJc3RhdGUtPmFscGhhID0gdmFsOworCX0gZWxzZSBp ZiAocHJvcGVydHkgPT0gcGxhbmUtPmJsZW5kX21vZGVfcHJvcGVydHkpIHsKKwkJc3RhdGUtPnBp eGVsX2JsZW5kX21vZGUgPSB2YWw7CiAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+cm90 YXRpb25fcHJvcGVydHkpIHsKIAkJaWYgKCFpc19wb3dlcl9vZl8yKHZhbCAmIERSTV9NT0RFX1JP VEFURV9NQVNLKSkgewogCQkJRFJNX0RFQlVHX0FUT01JQygiW1BMQU5FOiVkOiVzXSBiYWQgcm90 YXRpb24gYml0bWFzazogMHglbGx4XG4iLApAQCAtOTY4LDYgKzk3MCw4IEBAIHN0YXRpYyBpbnQg ZHJtX2F0b21pY19wbGFuZV9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJ CSp2YWwgPSBzdGF0ZS0+c3JjX2g7CiAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+YWxw aGFfcHJvcGVydHkpIHsKIAkJKnZhbCA9IHN0YXRlLT5hbHBoYTsKKwl9IGVsc2UgaWYgKHByb3Bl cnR5ID09IHBsYW5lLT5ibGVuZF9tb2RlX3Byb3BlcnR5KSB7CisJCSp2YWwgPSBzdGF0ZS0+cGl4 ZWxfYmxlbmRfbW9kZTsKIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5yb3RhdGlvbl9w cm9wZXJ0eSkgewogCQkqdmFsID0gc3RhdGUtPnJvdGF0aW9uOwogCX0gZWxzZSBpZiAocHJvcGVy dHkgPT0gcGxhbmUtPnpwb3NfcHJvcGVydHkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMKaW5kZXggNmRkNTAzNi4uMjg0YTVkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMKQEAgLTM1NjksNiArMzU2OSw3IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9y ZXNldChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkvKiBSZXNldCB0aGUgYWxwaGEgdmFsdWUg dG8gZnVsbHkgb3BhcXVlIGlmIGl0IG1hdHRlcnMgKi8KIAlpZiAocGxhbmUtPmFscGhhX3Byb3Bl cnR5KQogCQlzdGF0ZS0+YWxwaGEgPSBwbGFuZS0+YWxwaGFfcHJvcGVydHktPnZhbHVlc1sxXTsK KwlzdGF0ZS0+cGl4ZWxfYmxlbmRfbW9kZSA9IERSTV9NT0RFX0JMRU5EX1BSRU1VTFRJOwogCiAJ cGxhbmUtPnN0YXRlID0gc3RhdGU7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2JsZW5kLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMKaW5kZXggYTE2YTc0ZC4uNDAy YjYyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9ibGVuZC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fYmxlbmQuYwpAQCAtMTA3LDYgKzEwNyw1MiBAQAogICoJcGxhbmVzLiBX aXRob3V0IHRoaXMgcHJvcGVydHkgdGhlIHByaW1hcnkgcGxhbmUgaXMgYWx3YXlzIGJlbG93IHRo ZSBjdXJzb3IKICAqCXBsYW5lLCBhbmQgb3JkZXJpbmcgYmV0d2VlbiBhbGwgb3RoZXIgcGxhbmVz IGlzIHVuZGVmaW5lZC4KICAqCisgKiBwaXhlbCBibGVuZCBtb2RlOgorICoJUGl4ZWwgYmxlbmQg bW9kZSBpcyBzZXQgdXAgd2l0aCBkcm1fcGxhbmVfY3JlYXRlX2JsZW5kX21vZGVfcHJvcGVydHko KS4KKyAqCUl0IGFkZHMgYSBibGVuZCBtb2RlIGZvciBhbHBoYSBibGVuZGluZyBlcXVhdGlvbiBz ZWxlY3Rpb24sIGRlc2NyaWJpbmcKKyAqCWhvdyB0aGUgcGl4ZWxzIGZyb20gdGhlIGN1cnJlbnQg cGxhbmUgYXJlIGNvbXBvc2l0ZWQgd2l0aCB0aGUKKyAqCWJhY2tncm91bmQuCisgKgorICoJIFRo cmVlIGFscGhhIGJsZW5kaW5nIGVxdWF0aW9ucyBhcmUgZGVmaW5lZDoKKyAqCisgKgkgIk5vbmUi OgorICoJCSBCbGVuZCBmb3JtdWxhIHRoYXQgaWdub3JlcyB0aGUgcGl4ZWwgYWxwaGE6OgorICoK KyAqCQkJIG91dC5yZ2IgPSBwbGFuZV9hbHBoYSAqIGZnLnJnYiArCisgKgkJCQkgKDEgLSBwbGFu ZV9hbHBoYSkgKiBiZy5yZ2IKKyAqCisgKgkgIlByZS1tdWx0aXBsaWVkIjoKKyAqCQkgQmxlbmQg Zm9ybXVsYSB0aGF0IGFzc3VtZXMgdGhlIHBpeGVsIGNvbG9yIHZhbHVlcworICoJCSBoYXZlIGJl ZW4gYWxyZWFkeSBwcmUtbXVsdGlwbGllZCB3aXRoIHRoZSBhbHBoYQorICoJCSBjaGFubmVsIHZh bHVlczo6CisgKgorICoJCQkgb3V0LnJnYiA9IHBsYW5lX2FscGhhICogZmcucmdiICsKKyAqCQkJ CSAoMSAtIChwbGFuZV9hbHBoYSAqIGZnLmFscGhhKSkgKiBiZy5yZ2IKKyAqCisgKgkgIkNvdmVy YWdlIjoKKyAqCQkgQmxlbmQgZm9ybXVsYSB0aGF0IGFzc3VtZXMgdGhlIHBpeGVsIGNvbG9yIHZh bHVlcyBoYXZlIG5vdAorICoJCSBiZWVuIHByZS1tdWx0aXBsaWVkIGFuZCB3aWxsIGRvIHNvIHdo ZW4gYmxlbmRpbmcgdGhlbSB0byB0aGUKKyAqCQkgYmFja2dyb3VuZCBjb2xvciB2YWx1ZXM6Ogor ICoKKyAqCQkJIG91dC5yZ2IgPSBwbGFuZV9hbHBoYSAqIGZnLmFscGhhICogZmcucmdiICsKKyAq CQkJCSAoMSAtIChwbGFuZV9hbHBoYSAqIGZnLmFscGhhKSkgKiBiZy5yZ2IKKyAqCisgKgkgVXNp bmcgdGhlIGZvbGxvd2luZyBzeW1ib2xzOgorICoKKyAqCSAiZmcucmdiIjoKKyAqCQkgRWFjaCBv ZiB0aGUgUkdCIGNvbXBvbmVudCB2YWx1ZXMgZnJvbSB0aGUgcGxhbmUncyBwaXhlbAorICoJICJm Zy5hbHBoYSI6CisgKgkJIEFscGhhIGNvbXBvbmVudCB2YWx1ZSBmcm9tIHRoZSBwbGFuZSdzIHBp eGVsLiBJZiB0aGUgcGxhbmUncworICoJCSBwaXhlbCBmb3JtYXQgaGFzIG5vIGFscGhhIGNvbXBv bmVudCwgdGhlbiB0aGlzIGlzIGFzc3VtZWQgdG8gYmUKKyAqCQkgMS4wLiBJbiB0aGVzZSBjYXNl cywgdGhpcyBwcm9wZXJ0eSBoYXMgbm8gZWZmZWN0LCBhcyBhbGwgdGhyZWUKKyAqCQkgZXF1YXRp b25zIGJlY29tZSBlcXVpdmFsZW50LgorICoJICJiZy5yZ2IiOgorICoJCSBFYWNoIG9mIHRoZSBS R0IgY29tcG9uZW50IHZhbHVlcyBmcm9tIHRoZSBiYWNrZ3JvdW5kCisgKgkgInBsYW5lX2FscGhh IjoKKyAqCQkgUGxhbmUgYWxwaGEgdmFsdWUgc2V0IGJ5IHRoZSBwbGFuZSAiYWxwaGEiIHByb3Bl cnR5LiBJZiB0aGUKKyAqCQkgcGxhbmUgZG9lcyBub3QgZXhwb3NlIHRoZSAiYWxwaGEiIHByb3Bl cnR5LCB0aGVuIHRoaXMgaXMKKyAqCQkgYXNzdW1lZCB0byBiZSAxLjAKKyAqCiAgKiBOb3RlIHRo YXQgYWxsIHRoZSBwcm9wZXJ0eSBleHRlbnNpb25zIGRlc2NyaWJlZCBoZXJlIGFwcGx5IGVpdGhl ciB0byB0aGUKICAqIHBsYW5lIG9yIHRoZSBDUlRDIChlLmcuIGZvciB0aGUgYmFja2dyb3VuZCBj b2xvciwgd2hpY2ggY3VycmVudGx5IGlzIG5vdAogICogZXhwb3NlZCBhbmQgYXNzdW1lZCB0byBi ZSBibGFjaykuCkBAIC00NDgsMyArNDk0LDgwIEBAIGludCBkcm1fYXRvbWljX25vcm1hbGl6ZV96 cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9M KGRybV9hdG9taWNfbm9ybWFsaXplX3pwb3MpOworCisvKioKKyAqIGRybV9wbGFuZV9jcmVhdGVf YmxlbmRfbW9kZV9wcm9wZXJ0eSAtIGNyZWF0ZSBhIG5ldyBibGVuZCBtb2RlIHByb3BlcnR5Cisg KiBAcGxhbmU6IGRybSBwbGFuZQorICogQHN1cHBvcnRlZF9tb2RlczogYml0bWFzayBvZiBzdXBw b3J0ZWQgbW9kZXMsIG11c3QgaW5jbHVkZQorICoJCSAgICAgQklUKERSTV9NT0RFX0JMRU5EX1BS RU1VTFRJKS4gQ3VycmVudCBEUk0gYXNzdW1wdGlvbiBpcworICoJCSAgICAgdGhhdCBhbHBoYSBp cyBwcmVtdWx0aXBsaWVkLCBhbmQgb2xkIHVzZXJzcGFjZSBjYW4gYnJlYWsgaWYKKyAqCQkgICAg IHRoZSBwcm9wZXJ0eSBkZWZhdWx0cyB0byBhbnl0aGluZyBlbHNlLgorICoKKyAqIFRoaXMgY3Jl YXRlcyBhIG5ldyBwcm9wZXJ0eSBkZXNjcmliaW5nIHRoZSBibGVuZCBtb2RlLgorICoKKyAqIFRo ZSBwcm9wZXJ0eSBleHBvc2VkIHRvIHVzZXJzcGFjZSBpcyBhbiBlbnVtZXJhdGlvbiBwcm9wZXJ0 eSAoc2VlCisgKiBkcm1fcHJvcGVydHlfY3JlYXRlX2VudW0oKSkgY2FsbGVkICJwaXhlbCBibGVu ZCBtb2RlIiBhbmQgaGFzIHRoZQorICogZm9sbG93aW5nIGVudW1lcmF0aW9uIHZhbHVlczoKKyAq CisgKiAiTm9uZSI6CisgKglCbGVuZCBmb3JtdWxhIHRoYXQgaWdub3JlcyB0aGUgcGl4ZWwgYWxw aGEuCisgKgorICogIlByZS1tdWx0aXBsaWVkIjoKKyAqCUJsZW5kIGZvcm11bGEgdGhhdCBhc3N1 bWVzIHRoZSBwaXhlbCBjb2xvciB2YWx1ZXMgaGF2ZSBiZWVuIGFscmVhZHkKKyAqCXByZS1tdWx0 aXBsaWVkIHdpdGggdGhlIGFscGhhIGNoYW5uZWwgdmFsdWVzLgorICoKKyAqICJDb3ZlcmFnZSI6 CisgKglCbGVuZCBmb3JtdWxhIHRoYXQgYXNzdW1lcyB0aGUgcGl4ZWwgY29sb3IgdmFsdWVzIGhh dmUgbm90IGJlZW4KKyAqCXByZS1tdWx0aXBsaWVkIGFuZCB3aWxsIGRvIHNvIHdoZW4gYmxlbmRp bmcgdGhlbSB0byB0aGUgYmFja2dyb3VuZCBjb2xvcgorICoJdmFsdWVzLgorICoKKyAqIFJFVFVS TlM6CisgKiBaZXJvIGZvciBzdWNjZXNzIG9yIC1lcnJubworICovCitpbnQgZHJtX3BsYW5lX2Ny ZWF0ZV9ibGVuZF9tb2RlX3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCQkg dW5zaWduZWQgaW50IHN1cHBvcnRlZF9tb2RlcykKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gcGxhbmUtPmRldjsKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wOworCXN0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9saXN0IHByb3BzW10gPSB7CisJCXsgRFJNX01PREVfQkxF TkRfUElYRUxfTk9ORSwgIk5vbmUiIH0sCisJCXsgRFJNX01PREVfQkxFTkRfUFJFTVVMVEksICJQ cmUtbXVsdGlwbGllZCIgfSwKKwkJeyBEUk1fTU9ERV9CTEVORF9DT1ZFUkFHRSwgIkNvdmVyYWdl IiB9LAorCX07CisJdW5zaWduZWQgaW50IHZhbGlkX21vZGVfbWFzayA9IEJJVChEUk1fTU9ERV9C TEVORF9QSVhFTF9OT05FKSB8CisJCQkJICAgICAgIEJJVChEUk1fTU9ERV9CTEVORF9QUkVNVUxU SSkgICB8CisJCQkJICAgICAgIEJJVChEUk1fTU9ERV9CTEVORF9DT1ZFUkFHRSk7CisJaW50IGk7 CisKKwlpZiAoV0FSTl9PTigoc3VwcG9ydGVkX21vZGVzICYgfnZhbGlkX21vZGVfbWFzaykgfHwK KwkJICAgICgoc3VwcG9ydGVkX21vZGVzICYgQklUKERSTV9NT0RFX0JMRU5EX1BSRU1VTFRJKSkg PT0gMCkpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRl KGRldiwgRFJNX01PREVfUFJPUF9FTlVNLAorCQkJCSAgICJwaXhlbCBibGVuZCBtb2RlIiwKKwkJ CQkgICBod2VpZ2h0MzIoc3VwcG9ydGVkX21vZGVzKSk7CisJaWYgKCFwcm9wKQorCQlyZXR1cm4g LUVOT01FTTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHByb3BzKTsgaSsrKSB7CisJ CWludCByZXQ7CisKKwkJaWYgKCEoQklUKHByb3BzW2ldLnR5cGUpICYgc3VwcG9ydGVkX21vZGVz KSkKKwkJCWNvbnRpbnVlOworCisJCXJldCA9IGRybV9wcm9wZXJ0eV9hZGRfZW51bShwcm9wLCBw cm9wc1tpXS50eXBlLAorCQkJCQkgICAgcHJvcHNbaV0ubmFtZSk7CisKKwkJaWYgKHJldCkgewor CQkJZHJtX3Byb3BlcnR5X2Rlc3Ryb3koZGV2LCBwcm9wKTsKKworCQkJcmV0dXJuIHJldDsKKwkJ fQorCX0KKworCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcHJvcCwg RFJNX01PREVfQkxFTkRfUFJFTVVMVEkpOworCXBsYW5lLT5ibGVuZF9tb2RlX3Byb3BlcnR5ID0g cHJvcDsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChkcm1fcGxhbmVfY3JlYXRlX2Js ZW5kX21vZGVfcHJvcGVydHkpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2JsZW5kLmgg Yi9pbmNsdWRlL2RybS9kcm1fYmxlbmQuaAppbmRleCAzMzBjNTYxLi44OGJkZmVjIDEwMDY0NAot LS0gYS9pbmNsdWRlL2RybS9kcm1fYmxlbmQuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fYmxlbmQu aApAQCAtMjcsNiArMjcsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgogI2luY2x1ZGUg PGRybS9kcm1fbW9kZS5oPgogCisjZGVmaW5lIERSTV9NT0RFX0JMRU5EX1BSRU1VTFRJCQkwCisj ZGVmaW5lIERSTV9NT0RFX0JMRU5EX0NPVkVSQUdFCQkxCisjZGVmaW5lIERSTV9NT0RFX0JMRU5E X1BJWEVMX05PTkUJMgorCiBzdHJ1Y3QgZHJtX2RldmljZTsKIHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlOwogc3RydWN0IGRybV9wbGFuZTsKQEAgLTUyLDQgKzU2LDYgQEAgaW50IGRybV9wbGFuZV9j cmVhdGVfenBvc19pbW11dGFibGVfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJ CQkJCSAgICAgdW5zaWduZWQgaW50IHpwb3MpOwogaW50IGRybV9hdG9taWNfbm9ybWFsaXplX3pw b3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSk7CitpbnQgZHJtX3BsYW5lX2NyZWF0ZV9ibGVuZF9tb2RlX3Byb3BlcnR5KHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCQkgdW5zaWduZWQgaW50IHN1cHBvcnRlZF9tb2Rl cyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oIGIvaW5jbHVk ZS9kcm0vZHJtX3BsYW5lLmgKaW5kZXggOGExNTJkYy4uMzVlZjY0YSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9kcm0vZHJtX3BsYW5lLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKQEAgLTEx Nyw2ICsxMTcsNyBAQCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlIHsKIAkgKiBkZXRhaWxzLgogCSAq LwogCXUxNiBhbHBoYTsKKwl1aW50MTZfdCBwaXhlbF9ibGVuZF9tb2RlOwogCiAJLyoqCiAJICog QHJvdGF0aW9uOgpAQCAtNjU5LDYgKzY2MCwxNCBAQCBzdHJ1Y3QgZHJtX3BsYW5lIHsKIAkgKiBk cm1fcGxhbmVfY3JlYXRlX3JvdGF0aW9uX3Byb3BlcnR5KCkuCiAJICovCiAJc3RydWN0IGRybV9w cm9wZXJ0eSAqcm90YXRpb25fcHJvcGVydHk7CisJLyoqCisJICogQGJsZW5kX21vZGVfcHJvcGVy dHk6CisJICogT3B0aW9uYWwgInBpeGVsIGJsZW5kIG1vZGUiIGVudW0gcHJvcGVydHkgZm9yIHRo aXMgcGxhbmUuCisJICogQmxlbmQgbW9kZSBwcm9wZXJ0eSByZXByZXNlbnRzIHRoZSBhbHBoYSBi bGVuZGluZyBlcXVhdGlvbiBzZWxlY3Rpb24sCisJICogZGVzY3JpYmluZyBob3cgdGhlIHBpeGVs cyBmcm9tIHRoZSBjdXJyZW50IHBsYW5lIGFyZSBjb21wb3NpdGVkIHdpdGgKKwkgKiB0aGUgYmFj a2dyb3VuZC4KKwkgKi8KKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpibGVuZF9tb2RlX3Byb3BlcnR5 OwogCiAJLyoqCiAJICogQGNvbG9yX2VuY29kaW5nX3Byb3BlcnR5OgotLSAKMS45LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=