From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF2CCC433E0 for ; Mon, 21 Dec 2020 18:36:37 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E6CAE22CB2 for ; Mon, 21 Dec 2020 18:36:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E6CAE22CB2 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0C56B6E4E3; Mon, 21 Dec 2020 18:36:36 +0000 (UTC) Received: from mail-ot1-x334.google.com (mail-ot1-x334.google.com [IPv6:2607:f8b0:4864:20::334]) by gabe.freedesktop.org (Postfix) with ESMTPS id 05A496E4E3 for ; Mon, 21 Dec 2020 18:36:33 +0000 (UTC) Received: by mail-ot1-x334.google.com with SMTP id d8so9684431otq.6 for ; Mon, 21 Dec 2020 10:36:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=3+MdQ2uV70E0/w5yDMsjfrNxO+jatM/HxQ1uAxOim2c=; b=ZbnNtJntzYLBL8C8AbpP27OAvHvap+Z/ek7uLsvYQygj8K4VjX9V/Wn0p1HzimIRlN l9uCqO8cvOyd82Fes78cyesSoNv0CXTsoA4hEObDZt8BrgVGyHmPpjzg/tz/0P16mVV9 w1UAzYjyr+divmgZJpiVUtQy06D37L4tWIiC0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=3+MdQ2uV70E0/w5yDMsjfrNxO+jatM/HxQ1uAxOim2c=; b=IB1pJtvw8I1Kv3PqWwWe7pWLBpjn81yc0pfm9/Wae9CqotN/br7VzoS2eiu6hjEIXh Dk/vYDA33yvGk2meyZXrlZoOEhChi4pntg4cg/JvVsQ5zx7DT/xXDfSs8L7+nItqryAM k+/ZPx4x0I5f3qheG/FuoS914Vw77J1gCNfSBKUdAiohM+4F++vP3J7MhJ87YubHC7x3 f5iI5nmkvl+Vgb7SqLHaPv2U0OUMduO9MMm5lA7cyswfX08T5xcXy0UR7G3eeC8Tvn7R kNnwE4kmWajwwu0uOkflekhwM6MsYR0/INxl5T37RpQyMZ+oM/AqNEEI7qzbArKgn86a 3xfQ== X-Gm-Message-State: AOAM5317449XS34SOWrCoV96BIN/AV2FKsCht0jheLP8P2KPNC4RFqAB PApTWqsyayeqJSTtmvstT2wUHn4XdTb00723jWZycg== X-Google-Smtp-Source: ABdhPJySMY8d5xlejCyHAhIKJ/NR/ivpsrRZLBogmjRTI9mgEjWB5QuaKI5D1iHt527SC6xeqYBr/rq39IkPwtgNCSk= X-Received: by 2002:a9d:4e08:: with SMTP id p8mr13007864otf.188.1608575793159; Mon, 21 Dec 2020 10:36:33 -0800 (PST) MIME-Version: 1.0 References: <20201221015730.28333-1-laurent.pinchart+renesas@ideasonboard.com> <20201221015730.28333-4-laurent.pinchart+renesas@ideasonboard.com> In-Reply-To: <20201221015730.28333-4-laurent.pinchart+renesas@ideasonboard.com> From: Daniel Vetter Date: Mon, 21 Dec 2020 19:36:22 +0100 Message-ID: Subject: Re: [PATCH 3/4] drm: Extend color correction to support 3D-CLU To: Laurent Pinchart X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kieran Bingham , dri-devel , "open list:DRM DRIVERS FOR RENESAS" , Kieran Bingham Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gTW9uLCBEZWMgMjEsIDIwMjAgYXQgMjo1NyBBTSBMYXVyZW50IFBpbmNoYXJ0CjxsYXVyZW50 LnBpbmNoYXJ0K3JlbmVzYXNAaWRlYXNvbmJvYXJkLmNvbT4gd3JvdGU6Cj4KPiBGcm9tOiBLaWVy YW4gQmluZ2hhbSA8a2llcmFuLmJpbmdoYW0rcmVuZXNhc0BpZGVhc29uYm9hcmQuY29tPgo+Cj4g RXh0ZW5kIHRoZSBleGlzdGluZyBjb2xvciBtYW5hZ2VtZW50IHByb3BlcnRpZXMgdG8gc3VwcG9y dCBwcm92aXNpb24KPiBvZiBhIDNEIGN1YmljIGxvb2sgdXAgdGFibGUsIGFsbG93aW5nIGZvciBj b2xvciBzcGVjaWZpYyBhZGp1c3RtZW50cy4KPgo+IFNpZ25lZC1vZmYtYnk6IEtpZXJhbiBCaW5n aGFtIDxraWVyYW4uYmluZ2hhbStyZW5lc2FzQGlkZWFzb25ib2FyZC5jb20+Cj4gQ28tZGV2ZWxv cGVkLWJ5OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0K3JlbmVzYXNAaWRlYXNv bmJvYXJkLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBp bmNoYXJ0K3JlbmVzYXNAaWRlYXNvbmJvYXJkLmNvbT4KCkFzc3VtaW5nIHRoaXMgaXMgbWVhbnQg Zm9yIG1lcmdpbmcgdG8gdXBzdHJlYW06IE5lZWRzIGlndCArIG9wZW4KdXNlcnNwYWNlIGluIGEg Y29tcG9zaXRvciB0aGF0IGNhcmVzIGVub3VnaC4KLURhbmllbAoKPiAtLS0KPiAgZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgICAgICAgfCAgMSArCj4gIGRyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jIHwgIDMgKysKPiAgZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfdWFwaS5jICAgICAgICAgfCAxMCArKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2Ry bV9jb2xvcl9tZ210LmMgICAgICAgICAgfCA0MSArKysrKysrKysrKysrKysrKysrLS0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMgICAgICAgICB8IDE0ICsrKysrKysrCj4g IGluY2x1ZGUvZHJtL2RybV9jcnRjLmggICAgICAgICAgICAgICAgICAgIHwgIDkgKysrKysKPiAg aW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmggICAgICAgICAgICAgfCAxMSArKysrKysKPiAg NyBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQo+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBpbmRleCBiYTE1MDcwMzZmMjYuLjBmNTQ4OTdk M2M4ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gQEAgLTM1NTgsNiAr MzU1OCw3IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKPiAgICAgICAgIHJlcGxhY2VkICA9IGRybV9wcm9wZXJ0eV9yZXBsYWNl X2Jsb2IoJmNydGNfc3RhdGUtPmRlZ2FtbWFfbHV0LCBOVUxMKTsKPiAgICAgICAgIHJlcGxhY2Vk IHw9IGRybV9wcm9wZXJ0eV9yZXBsYWNlX2Jsb2IoJmNydGNfc3RhdGUtPmN0bSwgTlVMTCk7Cj4g ICAgICAgICByZXBsYWNlZCB8PSBkcm1fcHJvcGVydHlfcmVwbGFjZV9ibG9iKCZjcnRjX3N0YXRl LT5nYW1tYV9sdXQsIGJsb2IpOwo+ICsgICAgICAgcmVwbGFjZWQgfD0gZHJtX3Byb3BlcnR5X3Jl cGxhY2VfYmxvYigmY3J0Y19zdGF0ZS0+Y3ViaWNfbHV0LCBOVUxMKTsKPiAgICAgICAgIGNydGNf c3RhdGUtPmNvbG9yX21nbXRfY2hhbmdlZCB8PSByZXBsYWNlZDsKPgo+ICAgICAgICAgcmV0ID0g ZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0 YXRlX2hlbHBlci5jCj4gaW5kZXggZGRjZjVjMmM4ZTZhLi42MWM2ODViNTA2NzcgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuYwo+IEBAIC0xNDEsNiArMTQx LDggQEAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKPiAgICAgICAgICAgICAgICAgZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0 KHN0YXRlLT5jdG0pOwo+ICAgICAgICAgaWYgKHN0YXRlLT5nYW1tYV9sdXQpCj4gICAgICAgICAg ICAgICAgIGRybV9wcm9wZXJ0eV9ibG9iX2dldChzdGF0ZS0+Z2FtbWFfbHV0KTsKPiArICAgICAg IGlmIChzdGF0ZS0+Y3ViaWNfbHV0KQo+ICsgICAgICAgICAgICAgICBkcm1fcHJvcGVydHlfYmxv Yl9nZXQoc3RhdGUtPmN1YmljX2x1dCk7Cj4gICAgICAgICBzdGF0ZS0+bW9kZV9jaGFuZ2VkID0g ZmFsc2U7Cj4gICAgICAgICBzdGF0ZS0+YWN0aXZlX2NoYW5nZWQgPSBmYWxzZTsKPiAgICAgICAg IHN0YXRlLT5wbGFuZXNfY2hhbmdlZCA9IGZhbHNlOwo+IEBAIC0yMTMsNiArMjE1LDcgQEAgdm9p ZCBfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKnN0YXRlKQo+ICAgICAgICAgZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KHN0YXRlLT5kZWdh bW1hX2x1dCk7Cj4gICAgICAgICBkcm1fcHJvcGVydHlfYmxvYl9wdXQoc3RhdGUtPmN0bSk7Cj4g ICAgICAgICBkcm1fcHJvcGVydHlfYmxvYl9wdXQoc3RhdGUtPmdhbW1hX2x1dCk7Cj4gKyAgICAg ICBkcm1fcHJvcGVydHlfYmxvYl9wdXQoc3RhdGUtPmN1YmljX2x1dCk7Cj4gIH0KPiAgRVhQT1JU X1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSk7Cj4KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gaW5kZXggMjY4YmI2OWMyZTJmLi4wNzIyOWFjYWI3MWMg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gQEAgLTQ3MSw2ICs0NzEsMTQgQEAg c3RhdGljIGludCBkcm1fYXRvbWljX2NydGNfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlcGxhY2Vk KTsKPiAgICAgICAgICAgICAgICAgc3RhdGUtPmNvbG9yX21nbXRfY2hhbmdlZCB8PSByZXBsYWNl ZDsKPiAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiArICAgICAgIH0gZWxzZSBpZiAocHJv cGVydHkgPT0gY29uZmlnLT5jdWJpY19sdXRfcHJvcGVydHkpIHsKPiArICAgICAgICAgICAgICAg cmV0ID0gZHJtX2F0b21pY19yZXBsYWNlX3Byb3BlcnR5X2Jsb2JfZnJvbV9pZChkZXYsCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdGF0ZS0+Y3ViaWNfbHV0LAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCBzaXplb2Yoc3RydWN0IGRybV9jb2xv cl9sdXQpLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVwbGFj ZWQpOwo+ICsgICAgICAgICAgICAgICBzdGF0ZS0+Y29sb3JfbWdtdF9jaGFuZ2VkIHw9IHJlcGxh Y2VkOwo+ICsgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ICAgICAgICAgfSBlbHNlIGlmIChw cm9wZXJ0eSA9PSBjb25maWctPnByb3Bfb3V0X2ZlbmNlX3B0cikgewo+ICAgICAgICAgICAgICAg ICBzMzIgX191c2VyICpmZW5jZV9wdHIgPSB1NjRfdG9fdXNlcl9wdHIodmFsKTsKPgo+IEBAIC01 MTYsNiArNTI0LDggQEAgZHJtX2F0b21pY19jcnRjX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCj4gICAgICAgICAgICAgICAgICp2YWwgPSAoc3RhdGUtPmN0bSkgPyBzdGF0ZS0+ Y3RtLT5iYXNlLmlkIDogMDsKPiAgICAgICAgIGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+ Z2FtbWFfbHV0X3Byb3BlcnR5KQo+ICAgICAgICAgICAgICAgICAqdmFsID0gKHN0YXRlLT5nYW1t YV9sdXQpID8gc3RhdGUtPmdhbW1hX2x1dC0+YmFzZS5pZCA6IDA7Cj4gKyAgICAgICBlbHNlIGlm IChwcm9wZXJ0eSA9PSBjb25maWctPmN1YmljX2x1dF9wcm9wZXJ0eSkKPiArICAgICAgICAgICAg ICAgKnZhbCA9IChzdGF0ZS0+Y3ViaWNfbHV0KSA/IHN0YXRlLT5jdWJpY19sdXQtPmJhc2UuaWQg OiAwOwo+ICAgICAgICAgZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX291dF9mZW5j ZV9wdHIpCj4gICAgICAgICAgICAgICAgICp2YWwgPSAwOwo+ICAgICAgICAgZWxzZSBpZiAocHJv cGVydHkgPT0gY3J0Yy0+c2NhbGluZ19maWx0ZXJfcHJvcGVydHkpCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY29sb3JfbWdtdC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb2xv cl9tZ210LmMKPiBpbmRleCAzYmNhYmMyZjZlMGUuLjg1YmJiYzhjZThlNSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21nbXQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fY29sb3JfbWdtdC5jCj4gQEAgLTMzLDcgKzMzLDcgQEAKPiAgLyoqCj4gICAqIERPQzog b3ZlcnZpZXcKPiAgICoKPiAtICogQ29sb3IgbWFuYWdlbWVudCBvciBjb2xvciBzcGFjZSBhZGp1 c3RtZW50cyBpcyBzdXBwb3J0ZWQgdGhyb3VnaCBhIHNldCBvZiA1Cj4gKyAqIENvbG9yIG1hbmFn ZW1lbnQgb3IgY29sb3Igc3BhY2UgYWRqdXN0bWVudHMgaXMgc3VwcG9ydGVkIHRocm91Z2ggYSBz ZXQgb2YgNwo+ICAgKiBwcm9wZXJ0aWVzIG9uIHRoZSAmZHJtX2NydGMgb2JqZWN0LiBUaGV5IGFy ZSBzZXQgdXAgYnkgY2FsbGluZwo+ICAgKiBkcm1fY3J0Y19lbmFibGVfY29sb3JfbWdtdCgpLgo+ ICAgKgo+IEBAIC02MCw3ICs2MCw3IEBACj4gICAqIOKAnENUTeKAnToKPiAgICogICAgIEJsb2Ig cHJvcGVydHkgdG8gc2V0IHRoZSBjdXJyZW50IHRyYW5zZm9ybWF0aW9uIG1hdHJpeCAoQ1RNKSBh cHBseSB0bwo+ICAgKiAgICAgcGl4ZWwgZGF0YSBhZnRlciB0aGUgbG9va3VwIHRocm91Z2ggdGhl IGRlZ2FtbWEgTFVUIGFuZCBiZWZvcmUgdGhlCj4gLSAqICAgICBsb29rdXAgdGhyb3VnaCB0aGUg Z2FtbWEgTFVULiBUaGUgZGF0YSBpcyBpbnRlcnByZXRlZCBhcyBhIHN0cnVjdAo+ICsgKiAgICAg bG9va3VwIHRocm91Z2ggdGhlIGN1YmljIExVVC4gVGhlIGRhdGEgaXMgaW50ZXJwcmV0ZWQgYXMg YSBzdHJ1Y3QKPiAgICogICAgICZkcm1fY29sb3JfY3RtLgo+ICAgKgo+ICAgKiAgICAgU2V0dGlu ZyB0aGlzIHRvIE5VTEwgKGJsb2IgcHJvcGVydHkgdmFsdWUgc2V0IHRvIDApIG1lYW5zIGEKPiBA QCAtNjgsMTMgKzY4LDQwIEBACj4gICAqICAgICBib290LXVwIHN0YXRlIHRvby4gRHJpdmVycyBj YW4gYWNjZXNzIHRoZSBibG9iIGZvciB0aGUgY29sb3IgY29udmVyc2lvbgo+ICAgKiAgICAgbWF0 cml4IHRocm91Z2ggJmRybV9jcnRjX3N0YXRlLmN0bS4KPiAgICoKPiArICog4oCdQ1VCSUNfTFVU 4oCdOgo+ICsgKiAgICAgQmxvYiBwcm9wZXJ0eSB0byBzZXQgdGhlIGN1YmljICgzRCkgbG9va3Vw IHRhYmxlIHBlcmZvcm1pbmcgY29sb3IKPiArICogICAgIG1hcHBpbmcgYWZ0ZXIgdGhlIHRyYW5z Zm9ybWF0aW9uIG1hdHJpeCBhbmQgYmVmb3JlIHRoZSBsb29rdXAgdGhyb3VnaAo+ICsgKiAgICAg dGhlIGdhbW1hIExVVC4gVW5saWtlIHRoZSBkZWdhbW1hIGFuZCBnYW1tYSBMVVRzIHRoYXQgbWFw IGNvbG9yCj4gKyAqICAgICBjb21wb25lbnRzIGluZGVwZW5kZW50bHksIHRoZSAzRCBMVVQgY29u dmVydHMgYW4gaW5wdXQgY29sb3IgdG8gYW4KPiArICogICAgIG91dHB1dCBjb2xvciBieSBpbmRl eGluZyBpbnRvIHRoZSAzRCB0YWJsZSB1c2luZyB0aGUgY29sb3IgY29tcG9uZW50cwo+ICsgKiAg ICAgYXMgYSAzRCBjb29yZGluYXRlLiBUaGUgTFVUIGlzIHN1YnNhbXBsZWQgYXMgOC1iaXQgKG9y IG1vcmUpIHByZWNpc2lvbgo+ICsgKiAgICAgd291bGQgcmVxdWlyZSB0b28gbXVjaCBzdG9yYWdl IHNwYWNlIGluIHRoZSBoYXJkd2FyZSwgc28gdGhlIHByZWNpc2lvbgo+ICsgKiAgICAgb2YgdGhl IGNvbG9yIGNvbXBvbmVudHMgaXMgcmVkdWNlZCBiZWZvcmUgdGhlIGxvb2sgdXAsIGFuZCB0aGUg bG93Cj4gKyAqICAgICBvcmRlciBiaXRzIG1heSBiZSB1c2VkIHRvIGludGVycG9sYXRlIGJldHdl ZW4gdGhlIG5lYXJlc3QgcG9pbnRzIGluIDNECj4gKyAqICAgICBzcGFjZS4KPiArICoKPiArICog ICAgIFRoZSBkYXRhIGlzIGludGVycHJldGVkIGFzIGFuIGFycmF5IG9mICZzdHJ1Y3QgZHJtX2Nv bG9yX2x1dCBlbGVtZW50cy4KPiArICogICAgIEhhcmR3YXJlIG1pZ2h0IGNob29zZSBub3QgdG8g dXNlIHRoZSBmdWxsIHByZWNpc2lvbiBvZiB0aGUgTFVUCj4gKyAqICAgICBlbGVtZW50cy4KPiAr ICoKPiArICogICAgIFNldHRpbmcgdGhpcyB0byBOVUxMIChibG9iIHByb3BlcnR5IHZhbHVlIHNl dCB0byAwKSBtZWFucyB0aGUgb3V0cHV0Cj4gKyAqICAgICBjb2xvciBpcyBpZGVudGljYWwgdG8g dGhlIGlucHV0IGNvbG9yLiBUaGlzIGlzIGdlbmVyYWxseSB0aGUgZHJpdmVyCj4gKyAqICAgICBi b290LXVwIHN0YXRlIHRvby4gRHJpdmVycyBjYW4gYWNjZXNzIHRoaXMgYmxvYiB0aHJvdWdoCj4g KyAqICAgICAmZHJtX2NydGNfc3RhdGUuY3ViaWNfbHV0Lgo+ICsgKgo+ICsgKiDigJ1DVUJJQ19M VVRfU0laReKAnToKPiArICogICAgIFVuc2lnbmVkIHJhbmdlIHByb3BlcnR5IHRvIGdpdmUgdGhl IHNpemUgb2YgdGhlIGxvb2t1cCB0YWJsZSB0byBiZSBzZXQKPiArICogICAgIG9uIHRoZSBDVUJJ Q19MVVQgcHJvcGVydHkgKHRoZSBzaXplIGRlcGVuZHMgb24gdGhlIHVuZGVybHlpbmcgaGFyZHdh cmUpLgo+ICsgKiAgICAgSWYgZHJpdmVycyBzdXBwb3J0IG11bHRpcGxlIExVVCBzaXplcyB0aGVu IHRoZXkgc2hvdWxkIHB1Ymxpc2ggdGhlCj4gKyAqICAgICBsYXJnZXN0IHNpemUsIGFuZCBzdWIt c2FtcGxlIHNtYWxsZXIgc2l6ZWQgTFVUcyBhcHByb3ByaWF0ZWx5Lgo+ICsgKgo+ICAgKiDigJxH QU1NQV9MVVTigJ06Cj4gICAqICAgICBCbG9iIHByb3BlcnR5IHRvIHNldCB0aGUgZ2FtbWEgbG9v a3VwIHRhYmxlIChMVVQpIG1hcHBpbmcgcGl4ZWwgZGF0YQo+IC0gKiAgICAgYWZ0ZXIgdGhlIHRy YW5zZm9ybWF0aW9uIG1hdHJpeCB0byBkYXRhIHNlbnQgdG8gdGhlIGNvbm5lY3Rvci4gVGhlCj4g LSAqICAgICBkYXRhIGlzIGludGVycHJldGVkIGFzIGFuIGFycmF5IG9mICZzdHJ1Y3QgZHJtX2Nv bG9yX2x1dCBlbGVtZW50cy4KPiAtICogICAgIEhhcmR3YXJlIG1pZ2h0IGNob29zZSBub3QgdG8g dXNlIHRoZSBmdWxsIHByZWNpc2lvbiBvZiB0aGUgTFVUIGVsZW1lbnRzCj4gLSAqICAgICBub3Ig dXNlIGFsbCB0aGUgZWxlbWVudHMgb2YgdGhlIExVVCAoZm9yIGV4YW1wbGUgdGhlIGhhcmR3YXJl IG1pZ2h0Cj4gLSAqICAgICBjaG9vc2UgdG8gaW50ZXJwb2xhdGUgYmV0d2VlbiBMVVRbMF0gYW5k IExVVFs0XSkuCj4gKyAqICAgICBhZnRlciB0aGUgY3ViaWMgTFVUIHRvIGRhdGEgc2VudCB0byB0 aGUgY29ubmVjdG9yLiBUaGUgZGF0YSBpcwo+ICsgKiAgICAgaW50ZXJwcmV0ZWQgYXMgYW4gYXJy YXkgb2YgJnN0cnVjdCBkcm1fY29sb3JfbHV0IGVsZW1lbnRzLiBIYXJkd2FyZQo+ICsgKiAgICAg bWlnaHQgY2hvb3NlIG5vdCB0byB1c2UgdGhlIGZ1bGwgcHJlY2lzaW9uIG9mIHRoZSBMVVQgZWxl bWVudHMgbm9yIHVzZQo+ICsgKiAgICAgYWxsIHRoZSBlbGVtZW50cyBvZiB0aGUgTFVUIChmb3Ig ZXhhbXBsZSB0aGUgaGFyZHdhcmUgbWlnaHQgY2hvb3NlIHRvCj4gKyAqICAgICBpbnRlcnBvbGF0 ZSBiZXR3ZWVuIExVVFswXSBhbmQgTFVUWzRdKS4KPiAgICoKPiAgICogICAgIFNldHRpbmcgdGhp cyB0byBOVUxMIChibG9iIHByb3BlcnR5IHZhbHVlIHNldCB0byAwKSBtZWFucyBhCj4gICAqICAg ICBsaW5lYXIvcGFzcy10aHJ1IGdhbW1hIHRhYmxlIHNob3VsZCBiZSB1c2VkLiBUaGlzIGlzIGdl bmVyYWxseSB0aGUKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZp Zy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jCj4gaW5kZXggZjFhZmZjMWJi Njc5Li42YzMzMjRmNjBlN2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rl X2NvbmZpZy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jCj4gQEAg LTM2NCw2ICszNjQsMjAgQEAgc3RhdGljIGludCBkcm1fbW9kZV9jcmVhdGVfc3RhbmRhcmRfcHJv cGVydGllcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgICAgICAgICAgICAgICByZXR1cm4g LUVOT01FTTsKPiAgICAgICAgIGRldi0+bW9kZV9jb25maWcuZ2FtbWFfbHV0X3NpemVfcHJvcGVy dHkgPSBwcm9wOwo+Cj4gKyAgICAgICBwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZShkZXYsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgRFJNX01PREVfUFJPUF9CTE9CLAo+ICsgICAgICAgICAg ICAgICAgICAgICAgICJDVUJJQ19MVVQiLCAwKTsKPiArICAgICAgIGlmICghcHJvcCkKPiArICAg ICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gKyAgICAgICBkZXYtPm1vZGVfY29uZmlnLmN1 YmljX2x1dF9wcm9wZXJ0eSA9IHByb3A7Cj4gKwo+ICsgICAgICAgcHJvcCA9IGRybV9wcm9wZXJ0 eV9jcmVhdGVfcmFuZ2UoZGV2LAo+ICsgICAgICAgICAgICAgICAgICAgICAgIERSTV9NT0RFX1BS T1BfSU1NVVRBQkxFLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICJDVUJJQ19MVVRfU0laRSIs IDAsIFVJTlRfTUFYKTsKPiArICAgICAgIGlmICghcHJvcCkKPiArICAgICAgICAgICAgICAgcmV0 dXJuIC1FTk9NRU07Cj4gKyAgICAgICBkZXYtPm1vZGVfY29uZmlnLmN1YmljX2x1dF9zaXplX3By b3BlcnR5ID0gcHJvcDsKPiArCj4gICAgICAgICBwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZShk ZXYsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fTU9ERV9QUk9QX0lN TVVUQUJMRSB8IERSTV9NT0RFX1BST1BfQkxPQiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJJTl9GT1JNQVRTIiwgMCk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9jcnRjLmggYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gaW5kZXggNWY0M2Q2NGQyYTA3Li5k ZjVjYzIyMzlhZGIgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+ICsrKyBi L2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBAQCAtMjg4LDYgKzI4OCwxNSBAQCBzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgewo+ICAgICAgICAgICovCj4gICAgICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5 X2Jsb2IgKmdhbW1hX2x1dDsKPgo+ICsgICAgICAgLyoqCj4gKyAgICAgICAgKiBAY3ViaWNfbHV0 Ogo+ICsgICAgICAgICoKPiArICAgICAgICAqIEN1YmljIExvb2t1cCB0YWJsZSBmb3IgY29udmVy dGluZyBwaXhlbCBkYXRhLiBTZWUKPiArICAgICAgICAqIGRybV9jcnRjX2VuYWJsZV9jb2xvcl9t Z210KCkuIFRoZSBibG9iIChpZiBub3QgTlVMTCkgaXMgYSAzRCBhcnJheQo+ICsgICAgICAgICog b2YgJnN0cnVjdCBkcm1fY29sb3JfbHV0Lgo+ICsgICAgICAgICovCj4gKyAgICAgICBzdHJ1Y3Qg ZHJtX3Byb3BlcnR5X2Jsb2IgKmN1YmljX2x1dDsKPiArCj4gICAgICAgICAvKioKPiAgICAgICAg ICAqIEB0YXJnZXRfdmJsYW5rOgo+ICAgICAgICAgICoKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vZHJtX21vZGVfY29uZmlnLmggYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAo+IGlu ZGV4IGFiNDI0ZGRkNzY2NS4uOGVkYjAwOTRlNWE3IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJt L2RybV9tb2RlX2NvbmZpZy5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgK PiBAQCAtODAwLDYgKzgwMCwxNyBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnIHsKPiAgICAgICAg ICAqLwo+ICAgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqZ2FtbWFfbHV0X3NpemVfcHJvcGVy dHk7Cj4KPiArICAgICAgIC8qKgo+ICsgICAgICAgICogQGN1YmljX2x1dF9wcm9wZXJ0eTogT3B0 aW9uYWwgQ1JUQyBwcm9wZXJ0eSB0byBzZXQgdGhlIDNEIExVVCB1c2VkIHRvCj4gKyAgICAgICAg KiBjb252ZXJ0IGNvbG9yIHNwYWNlcy4KPiArICAgICAgICAqLwo+ICsgICAgICAgc3RydWN0IGRy bV9wcm9wZXJ0eSAqY3ViaWNfbHV0X3Byb3BlcnR5Owo+ICsgICAgICAgLyoqCj4gKyAgICAgICAg KiBAY3ViaWNfbHV0X3NpemVfcHJvcGVydHk6IE9wdGlvbmFsIENSVEMgcHJvcGVydHkgZm9yIHRo ZSBzaXplIG9mIHRoZQo+ICsgICAgICAgICogM0QgTFVUIGFzIHN1cHBvcnRlZCBieSB0aGUgZHJp dmVyIChyZWFkLW9ubHkpLgo+ICsgICAgICAgICovCj4gKyAgICAgICBzdHJ1Y3QgZHJtX3Byb3Bl cnR5ICpjdWJpY19sdXRfc2l6ZV9wcm9wZXJ0eTsKPiArCj4gICAgICAgICAvKioKPiAgICAgICAg ICAqIEBzdWdnZXN0ZWRfeF9wcm9wZXJ0eTogT3B0aW9uYWwgY29ubmVjdG9yIHByb3BlcnR5IHdp dGggYSBoaW50IGZvcgo+ICAgICAgICAgICogdGhlIHBvc2l0aW9uIG9mIHRoZSBvdXRwdXQgb24g dGhlIGhvc3QncyBzY3JlZW4uCj4gLS0KPiBSZWdhcmRzLAo+Cj4gTGF1cmVudCBQaW5jaGFydAo+ CgoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9u Cmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=