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=-8.2 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable 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 A5E2EC3A5A1 for ; Mon, 19 Aug 2019 14:47:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7085A2070D for ; Mon, 19 Aug 2019 14:47:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20150623.gappssmtp.com header.i=@baylibre-com.20150623.gappssmtp.com header.b="oClruPFV" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727588AbfHSOrr (ORCPT ); Mon, 19 Aug 2019 10:47:47 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:34530 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725536AbfHSOrq (ORCPT ); Mon, 19 Aug 2019 10:47:46 -0400 Received: by mail-wm1-f65.google.com with SMTP id e8so199890wme.1 for ; Mon, 19 Aug 2019 07:47:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:openpgp:autocrypt:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=l8O3gTzFJyMMAvz/M2oePHQ+jko3IzVMepvXf+tCO0Y=; b=oClruPFVBaHSacCDLIpICqxSLiSZtxZ/BRoPLNYyNwBdUxvKqx0kNWQDbNrOhkuu7l fXg2t5g7vDYu7RrL+noqJISwFwnf8bGt7o5yR06UxrvwCepVqWXc975Z9HQwxHaE3LEH Ag1mAKj89tkaCCVm+5pkO36vI4e++KyvX0rbrixS+cZC6Vkacl9ukL2oDgERsc8W2OoU t2fjtTFbVeK5lafLeiYCEbfntxwnbWxNpI5ZhxZOlQ8TKXpbIRHMm5VOYLHseB03Zg73 DFNjZ61FX0XroOhC91Hj2qpdoE5dwLwL/xXvw2NU+VTRKcqpYzOMZ90N1q35D97VaaVY daWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:openpgp:autocrypt :organization:message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=l8O3gTzFJyMMAvz/M2oePHQ+jko3IzVMepvXf+tCO0Y=; b=C7vXhisZiL+jrQFkUDGTzsAfmigUbaj1nh2M/iNA0BsaCKoyHEZK//ZdGIL6dhVs5R wC69ib9j0xxRnmoE1qlKfZPk7H4GCnldBd24dzUQuNmVLT09m0L5Y/yRlXZjqFFv8GS2 PW6kVcMNxhQN6kV4CYvemB1smnCI+dYj+1cWVz97ARBmsjkT/Zx7Q6RaobCYTaIN9pgC VO50cWPuPIOOBjnJqwG6ip1+d79dCVyY9mR/fRVIXjI/X8mkZA/1UCnxHT+sSZHhK/dc TGnHCxEaSmXnLbemqZ8UUrrO02rOYeL7r0NaJrNjw9COPbaHk3TyGpDJyyfOgZ+GSxN4 Bitg== X-Gm-Message-State: APjAAAXV+YJbzfNsu+3NETacTSeoss3eoZ9m1Su+jls8DKprTOTKX90T VZoUmyjil1FepRPAZ/IUDC8lEg== X-Google-Smtp-Source: APXvYqwKhYKXOKjpY06JOsoELyEEx/4hXV5HKWkILWEZjU+AL35o9qA9wq10eenS0ZiqRFUlBngSVQ== X-Received: by 2002:a1c:4d05:: with SMTP id o5mr20391922wmh.129.1566226062855; Mon, 19 Aug 2019 07:47:42 -0700 (PDT) Received: from [10.1.3.173] (lmontsouris-657-1-212-31.w90-63.abo.wanadoo.fr. [90.63.244.31]) by smtp.gmail.com with ESMTPSA id a8sm11885768wma.31.2019.08.19.07.47.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Aug 2019 07:47:42 -0700 (PDT) Subject: Re: [PATCH v7 8/9] drm: dw-hdmi: use cec_notifier_conn_(un)register To: Hans Verkuil , Dariusz Marcinkiewicz , dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org Cc: Jernej Skrabec , Jonas Karlman , David Airlie , Douglas Anderson , linux-kernel@vger.kernel.org, Sean Paul , Laurent Pinchart , Sam Ravnborg References: <20190814104520.6001-1-darekm@google.com> <20190814104520.6001-9-darekm@google.com> <3ae37c2f-94da-5ad0-a244-ef9658fc35e2@xs4all.nl> <0e961672-aadb-f8fc-457b-8daa325d459c@baylibre.com> <389b558f-06ec-8ec0-07ab-256dff3d4cb0@xs4all.nl> From: Neil Armstrong Openpgp: preference=signencrypt Autocrypt: addr=narmstrong@baylibre.com; prefer-encrypt=mutual; keydata= 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 ZaTUOEkgIor5losDrePdPgE= Organization: Baylibre Message-ID: <8680ee8a-ff7f-de3c-a185-ff3fb3a93b2b@baylibre.com> Date: Mon, 19 Aug 2019 16:47:41 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <389b558f-06ec-8ec0-07ab-256dff3d4cb0@xs4all.nl> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 19/08/2019 16:41, Hans Verkuil wrote: > On 8/19/19 4:38 PM, Neil Armstrong wrote: >> Hi Hans, >> >> On 19/08/2019 16:05, Hans Verkuil wrote: >>> On 8/19/19 11:32 AM, Hans Verkuil wrote: >>>> On 8/14/19 12:45 PM, Dariusz Marcinkiewicz wrote: >>>>> Use the new cec_notifier_conn_(un)register() functions to >>>>> (un)register the notifier for the HDMI connector, and fill in >>>>> the cec_connector_info. >>>>> >>>>> Changes since v6: >>>>> - move cec_notifier_conn_unregister to a bridge detach >>>>> function, >>>>> - add a mutex protecting a CEC notifier. >>>>> Changes since v4: >>>>> - typo fix >>>>> Changes since v2: >>>>> - removed unnecessary NULL check before a call to >>>>> cec_notifier_conn_unregister, >>>>> - use cec_notifier_phys_addr_invalidate to invalidate physical >>>>> address. >>>>> Changes since v1: >>>>> Add memory barrier to make sure that the notifier >>>>> becomes visible to the irq thread once it is fully >>>>> constructed. >>>>> >>>>> Signed-off-by: Dariusz Marcinkiewicz >>>> >>>> Acked-by: Hans Verkuil >>> >>> Tested-by: Hans Verkuil >> >> Did you test it on an Amlogic platform ? If yes, I don't have to ! > > Yes, tested on my khadas VIM2 (modified a bit to fix the issue where > the CEC physical address wasn't invalidated correctly as discussed here > earlier). Good, thanks. Reviewed-by: Neil Armstrong > > Regards, > > Hans > >> >> Neil >> >>> >>> Regards, >>> >>> Hans >>> >>>> >>>> Regards, >>>> >>>> Hans >>>> >>>>> --- >>>>> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 45 +++++++++++++++-------- >>>>> 1 file changed, 30 insertions(+), 15 deletions(-) >>>>> >>>>> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c >>>>> index 83b94b66e464e..55162c9092f71 100644 >>>>> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c >>>>> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c >>>>> @@ -190,6 +190,7 @@ struct dw_hdmi { >>>>> void (*enable_audio)(struct dw_hdmi *hdmi); >>>>> void (*disable_audio)(struct dw_hdmi *hdmi); >>>>> >>>>> + struct mutex cec_notifier_mutex; >>>>> struct cec_notifier *cec_notifier; >>>>> }; >>>>> >>>>> @@ -2194,6 +2195,8 @@ static int dw_hdmi_bridge_attach(struct drm_bridge *bridge) >>>>> struct dw_hdmi *hdmi = bridge->driver_private; >>>>> struct drm_encoder *encoder = bridge->encoder; >>>>> struct drm_connector *connector = &hdmi->connector; >>>>> + struct cec_connector_info conn_info; >>>>> + struct cec_notifier *notifier; >>>>> >>>>> connector->interlace_allowed = 1; >>>>> connector->polled = DRM_CONNECTOR_POLL_HPD; >>>>> @@ -2207,9 +2210,29 @@ static int dw_hdmi_bridge_attach(struct drm_bridge *bridge) >>>>> >>>>> drm_connector_attach_encoder(connector, encoder); >>>>> >>>>> + cec_fill_conn_info_from_drm(&conn_info, connector); >>>>> + >>>>> + notifier = cec_notifier_conn_register(hdmi->dev, NULL, &conn_info); >>>>> + if (!notifier) >>>>> + return -ENOMEM; >>>>> + >>>>> + mutex_lock(&hdmi->cec_notifier_mutex); >>>>> + hdmi->cec_notifier = notifier; >>>>> + mutex_unlock(&hdmi->cec_notifier_mutex); >>>>> + >>>>> return 0; >>>>> } >>>>> >>>>> +static void dw_hdmi_bridge_detach(struct drm_bridge *bridge) >>>>> +{ >>>>> + struct dw_hdmi *hdmi = bridge->driver_private; >>>>> + >>>>> + mutex_lock(&hdmi->cec_notifier_mutex); >>>>> + cec_notifier_conn_unregister(hdmi->cec_notifier); >>>>> + hdmi->cec_notifier = NULL; >>>>> + mutex_unlock(&hdmi->cec_notifier_mutex); >>>>> +} >>>>> + >>>>> static enum drm_mode_status >>>>> dw_hdmi_bridge_mode_valid(struct drm_bridge *bridge, >>>>> const struct drm_display_mode *mode) >>>>> @@ -2266,6 +2289,7 @@ static void dw_hdmi_bridge_enable(struct drm_bridge *bridge) >>>>> >>>>> static const struct drm_bridge_funcs dw_hdmi_bridge_funcs = { >>>>> .attach = dw_hdmi_bridge_attach, >>>>> + .detach = dw_hdmi_bridge_detach, >>>>> .enable = dw_hdmi_bridge_enable, >>>>> .disable = dw_hdmi_bridge_disable, >>>>> .mode_set = dw_hdmi_bridge_mode_set, >>>>> @@ -2373,9 +2397,11 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) >>>>> phy_stat & HDMI_PHY_HPD, >>>>> phy_stat & HDMI_PHY_RX_SENSE); >>>>> >>>>> - if ((phy_stat & (HDMI_PHY_RX_SENSE | HDMI_PHY_HPD)) == 0) >>>>> - cec_notifier_set_phys_addr(hdmi->cec_notifier, >>>>> - CEC_PHYS_ADDR_INVALID); >>>>> + if ((phy_stat & (HDMI_PHY_RX_SENSE | HDMI_PHY_HPD)) == 0) { >>>>> + mutex_lock(&hdmi->cec_notifier_mutex); >>>>> + cec_notifier_phys_addr_invalidate(hdmi->cec_notifier); >>>>> + mutex_unlock(&hdmi->cec_notifier_mutex); >>>>> + } >>>>> } >>>>> >>>>> if (intr_stat & HDMI_IH_PHY_STAT0_HPD) { >>>>> @@ -2561,6 +2587,7 @@ __dw_hdmi_probe(struct platform_device *pdev, >>>>> >>>>> mutex_init(&hdmi->mutex); >>>>> mutex_init(&hdmi->audio_mutex); >>>>> + mutex_init(&hdmi->cec_notifier_mutex); >>>>> spin_lock_init(&hdmi->audio_lock); >>>>> >>>>> ddc_node = of_parse_phandle(np, "ddc-i2c-bus", 0); >>>>> @@ -2693,12 +2720,6 @@ __dw_hdmi_probe(struct platform_device *pdev, >>>>> if (ret) >>>>> goto err_iahb; >>>>> >>>>> - hdmi->cec_notifier = cec_notifier_get(dev); >>>>> - if (!hdmi->cec_notifier) { >>>>> - ret = -ENOMEM; >>>>> - goto err_iahb; >>>>> - } >>>>> - >>>>> /* >>>>> * To prevent overflows in HDMI_IH_FC_STAT2, set the clk regenerator >>>>> * N and cts values before enabling phy >>>>> @@ -2796,9 +2817,6 @@ __dw_hdmi_probe(struct platform_device *pdev, >>>>> hdmi->ddc = NULL; >>>>> } >>>>> >>>>> - if (hdmi->cec_notifier) >>>>> - cec_notifier_put(hdmi->cec_notifier); >>>>> - >>>>> clk_disable_unprepare(hdmi->iahb_clk); >>>>> if (hdmi->cec_clk) >>>>> clk_disable_unprepare(hdmi->cec_clk); >>>>> @@ -2820,9 +2838,6 @@ static void __dw_hdmi_remove(struct dw_hdmi *hdmi) >>>>> /* Disable all interrupts */ >>>>> hdmi_writeb(hdmi, ~0, HDMI_IH_MUTE_PHY_STAT0); >>>>> >>>>> - if (hdmi->cec_notifier) >>>>> - cec_notifier_put(hdmi->cec_notifier); >>>>> - >>>>> clk_disable_unprepare(hdmi->iahb_clk); >>>>> clk_disable_unprepare(hdmi->isfr_clk); >>>>> if (hdmi->cec_clk) >>>>> >>>> >>> >> > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Armstrong Subject: Re: [PATCH v7 8/9] drm: dw-hdmi: use cec_notifier_conn_(un)register Date: Mon, 19 Aug 2019 16:47:41 +0200 Message-ID: <8680ee8a-ff7f-de3c-a185-ff3fb3a93b2b@baylibre.com> References: <20190814104520.6001-1-darekm@google.com> <20190814104520.6001-9-darekm@google.com> <3ae37c2f-94da-5ad0-a244-ef9658fc35e2@xs4all.nl> <0e961672-aadb-f8fc-457b-8daa325d459c@baylibre.com> <389b558f-06ec-8ec0-07ab-256dff3d4cb0@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by gabe.freedesktop.org (Postfix) with ESMTPS id 78FDD6E17D for ; Mon, 19 Aug 2019 14:47:44 +0000 (UTC) Received: by mail-wm1-x344.google.com with SMTP id 207so1883217wma.1 for ; Mon, 19 Aug 2019 07:47:44 -0700 (PDT) In-Reply-To: <389b558f-06ec-8ec0-07ab-256dff3d4cb0@xs4all.nl> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Hans Verkuil , Dariusz Marcinkiewicz , dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org Cc: Jernej Skrabec , Jonas Karlman , David Airlie , linux-kernel@vger.kernel.org, Douglas Anderson , Sean Paul , Laurent Pinchart , Sam Ravnborg List-Id: dri-devel@lists.freedesktop.org T24gMTkvMDgvMjAxOSAxNjo0MSwgSGFucyBWZXJrdWlsIHdyb3RlOgo+IE9uIDgvMTkvMTkgNDoz OCBQTSwgTmVpbCBBcm1zdHJvbmcgd3JvdGU6Cj4+IEhpIEhhbnMsCj4+Cj4+IE9uIDE5LzA4LzIw MTkgMTY6MDUsIEhhbnMgVmVya3VpbCB3cm90ZToKPj4+IE9uIDgvMTkvMTkgMTE6MzIgQU0sIEhh bnMgVmVya3VpbCB3cm90ZToKPj4+PiBPbiA4LzE0LzE5IDEyOjQ1IFBNLCBEYXJpdXN6IE1hcmNp bmtpZXdpY3ogd3JvdGU6Cj4+Pj4+IFVzZSB0aGUgbmV3IGNlY19ub3RpZmllcl9jb25uXyh1bily ZWdpc3RlcigpIGZ1bmN0aW9ucyB0bwo+Pj4+PiAodW4pcmVnaXN0ZXIgdGhlIG5vdGlmaWVyIGZv ciB0aGUgSERNSSBjb25uZWN0b3IsIGFuZCBmaWxsIGluCj4+Pj4+IHRoZSBjZWNfY29ubmVjdG9y X2luZm8uCj4+Pj4+Cj4+Pj4+IENoYW5nZXMgc2luY2UgdjY6Cj4+Pj4+ICAgICAgICAgLSBtb3Zl IGNlY19ub3RpZmllcl9jb25uX3VucmVnaXN0ZXIgdG8gYSBicmlkZ2UgZGV0YWNoCj4+Pj4+IAkg IGZ1bmN0aW9uLAo+Pj4+PiAJLSBhZGQgYSBtdXRleCBwcm90ZWN0aW5nIGEgQ0VDIG5vdGlmaWVy Lgo+Pj4+PiBDaGFuZ2VzIHNpbmNlIHY0Ogo+Pj4+PiAJLSB0eXBvIGZpeAo+Pj4+PiBDaGFuZ2Vz IHNpbmNlIHYyOgo+Pj4+PiAJLSByZW1vdmVkIHVubmVjZXNzYXJ5IE5VTEwgY2hlY2sgYmVmb3Jl IGEgY2FsbCB0bwo+Pj4+PiAJY2VjX25vdGlmaWVyX2Nvbm5fdW5yZWdpc3RlciwKPj4+Pj4gCS0g dXNlIGNlY19ub3RpZmllcl9waHlzX2FkZHJfaW52YWxpZGF0ZSB0byBpbnZhbGlkYXRlIHBoeXNp Y2FsCj4+Pj4+IAlhZGRyZXNzLgo+Pj4+PiBDaGFuZ2VzIHNpbmNlIHYxOgo+Pj4+PiAJQWRkIG1l bW9yeSBiYXJyaWVyIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBub3RpZmllcgo+Pj4+PiAJYmVjb21l cyB2aXNpYmxlIHRvIHRoZSBpcnEgdGhyZWFkIG9uY2UgaXQgaXMgZnVsbHkKPj4+Pj4gCWNvbnN0 cnVjdGVkLgo+Pj4+Pgo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBEYXJpdXN6IE1hcmNpbmtpZXdpY3og PGRhcmVrbUBnb29nbGUuY29tPgo+Pj4+Cj4+Pj4gQWNrZWQtYnk6IEhhbnMgVmVya3VpbCA8aHZl cmt1aWwtY2lzY29AeHM0YWxsLm5sPgo+Pj4KPj4+IFRlc3RlZC1ieTogSGFucyBWZXJrdWlsIDxo dmVya3VpbC1jaXNjb0B4czRhbGwubmw+Cj4+Cj4+IERpZCB5b3UgdGVzdCBpdCBvbiBhbiBBbWxv Z2ljIHBsYXRmb3JtID8gSWYgeWVzLCBJIGRvbid0IGhhdmUgdG8gIQo+IAo+IFllcywgdGVzdGVk IG9uIG15IGtoYWRhcyBWSU0yIChtb2RpZmllZCBhIGJpdCB0byBmaXggdGhlIGlzc3VlIHdoZXJl Cj4gdGhlIENFQyBwaHlzaWNhbCBhZGRyZXNzIHdhc24ndCBpbnZhbGlkYXRlZCBjb3JyZWN0bHkg YXMgZGlzY3Vzc2VkIGhlcmUKPiBlYXJsaWVyKS4KCkdvb2QsIHRoYW5rcy4KClJldmlld2VkLWJ5 OiBOZWlsIEFybXN0cm9uZyA8bmFybXN0cm9uZ0BiYXlsaWJyZS5jb20+Cgo+IAo+IFJlZ2FyZHMs Cj4gCj4gCUhhbnMKPiAKPj4KPj4gTmVpbAo+Pgo+Pj4KPj4+IFJlZ2FyZHMsCj4+Pgo+Pj4gCUhh bnMKPj4+Cj4+Pj4KPj4+PiBSZWdhcmRzLAo+Pj4+Cj4+Pj4gCUhhbnMKPj4+Pgo+Pj4+PiAtLS0K Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jIHwgNDUgKysr KysrKysrKysrKysrLS0tLS0tLS0KPj4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCAzMCBpbnNlcnRpb25z KCspLCAxNSBkZWxldGlvbnMoLSkKPj4+Pj4KPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9z eW5vcHN5cy9kdy1oZG1pLmMKPj4+Pj4gaW5kZXggODNiOTRiNjZlNDY0ZS4uNTUxNjJjOTA5MmY3 MSAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1o ZG1pLmMKPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1p LmMKPj4+Pj4gQEAgLTE5MCw2ICsxOTAsNyBAQCBzdHJ1Y3QgZHdfaGRtaSB7Cj4+Pj4+ICAJdm9p ZCAoKmVuYWJsZV9hdWRpbykoc3RydWN0IGR3X2hkbWkgKmhkbWkpOwo+Pj4+PiAgCXZvaWQgKCpk aXNhYmxlX2F1ZGlvKShzdHJ1Y3QgZHdfaGRtaSAqaGRtaSk7Cj4+Pj4+ICAKPj4+Pj4gKwlzdHJ1 Y3QgbXV0ZXggY2VjX25vdGlmaWVyX211dGV4Owo+Pj4+PiAgCXN0cnVjdCBjZWNfbm90aWZpZXIg KmNlY19ub3RpZmllcjsKPj4+Pj4gIH07Cj4+Pj4+ICAKPj4+Pj4gQEAgLTIxOTQsNiArMjE5NSw4 IEBAIHN0YXRpYyBpbnQgZHdfaGRtaV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpi cmlkZ2UpCj4+Pj4+ICAJc3RydWN0IGR3X2hkbWkgKmhkbWkgPSBicmlkZ2UtPmRyaXZlcl9wcml2 YXRlOwo+Pj4+PiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9IGJyaWRnZS0+ZW5jb2Rl cjsKPj4+Pj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmhkbWktPmNvbm5l Y3RvcjsKPj4+Pj4gKwlzdHJ1Y3QgY2VjX2Nvbm5lY3Rvcl9pbmZvIGNvbm5faW5mbzsKPj4+Pj4g KwlzdHJ1Y3QgY2VjX25vdGlmaWVyICpub3RpZmllcjsKPj4+Pj4gIAo+Pj4+PiAgCWNvbm5lY3Rv ci0+aW50ZXJsYWNlX2FsbG93ZWQgPSAxOwo+Pj4+PiAgCWNvbm5lY3Rvci0+cG9sbGVkID0gRFJN X0NPTk5FQ1RPUl9QT0xMX0hQRDsKPj4+Pj4gQEAgLTIyMDcsOSArMjIxMCwyOSBAQCBzdGF0aWMg aW50IGR3X2hkbWlfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+Pj4+ PiAgCj4+Pj4+ICAJZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2Rlcihjb25uZWN0b3IsIGVuY29k ZXIpOwo+Pj4+PiAgCj4+Pj4+ICsJY2VjX2ZpbGxfY29ubl9pbmZvX2Zyb21fZHJtKCZjb25uX2lu Zm8sIGNvbm5lY3Rvcik7Cj4+Pj4+ICsKPj4+Pj4gKwlub3RpZmllciA9IGNlY19ub3RpZmllcl9j b25uX3JlZ2lzdGVyKGhkbWktPmRldiwgTlVMTCwgJmNvbm5faW5mbyk7Cj4+Pj4+ICsJaWYgKCFu b3RpZmllcikKPj4+Pj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4+Pj4+ICsKPj4+Pj4gKwltdXRleF9s b2NrKCZoZG1pLT5jZWNfbm90aWZpZXJfbXV0ZXgpOwo+Pj4+PiArCWhkbWktPmNlY19ub3RpZmll ciA9IG5vdGlmaWVyOwo+Pj4+PiArCW11dGV4X3VubG9jaygmaGRtaS0+Y2VjX25vdGlmaWVyX211 dGV4KTsKPj4+Pj4gKwo+Pj4+PiAgCXJldHVybiAwOwo+Pj4+PiAgfQo+Pj4+PiAgCj4+Pj4+ICtz dGF0aWMgdm9pZCBkd19oZG1pX2JyaWRnZV9kZXRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSkKPj4+Pj4gK3sKPj4+Pj4gKwlzdHJ1Y3QgZHdfaGRtaSAqaGRtaSA9IGJyaWRnZS0+ZHJpdmVy X3ByaXZhdGU7Cj4+Pj4+ICsKPj4+Pj4gKwltdXRleF9sb2NrKCZoZG1pLT5jZWNfbm90aWZpZXJf bXV0ZXgpOwo+Pj4+PiArCWNlY19ub3RpZmllcl9jb25uX3VucmVnaXN0ZXIoaGRtaS0+Y2VjX25v dGlmaWVyKTsKPj4+Pj4gKwloZG1pLT5jZWNfbm90aWZpZXIgPSBOVUxMOwo+Pj4+PiArCW11dGV4 X3VubG9jaygmaGRtaS0+Y2VjX25vdGlmaWVyX211dGV4KTsKPj4+Pj4gK30KPj4+Pj4gKwo+Pj4+ PiAgc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzCj4+Pj4+ICBkd19oZG1pX2JyaWRnZV9tb2Rl X3ZhbGlkKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4+Pj4+ICAJCQkgIGNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+Pj4+PiBAQCAtMjI2Niw2ICsyMjg5LDcgQEAgc3Rh dGljIHZvaWQgZHdfaGRtaV9icmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Up Cj4+Pj4+ICAKPj4+Pj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyBkd19o ZG1pX2JyaWRnZV9mdW5jcyA9IHsKPj4+Pj4gIAkuYXR0YWNoID0gZHdfaGRtaV9icmlkZ2VfYXR0 YWNoLAo+Pj4+PiArCS5kZXRhY2ggPSBkd19oZG1pX2JyaWRnZV9kZXRhY2gsCj4+Pj4+ICAJLmVu YWJsZSA9IGR3X2hkbWlfYnJpZGdlX2VuYWJsZSwKPj4+Pj4gIAkuZGlzYWJsZSA9IGR3X2hkbWlf YnJpZGdlX2Rpc2FibGUsCj4+Pj4+ICAJLm1vZGVfc2V0ID0gZHdfaGRtaV9icmlkZ2VfbW9kZV9z ZXQsCj4+Pj4+IEBAIC0yMzczLDkgKzIzOTcsMTEgQEAgc3RhdGljIGlycXJldHVybl90IGR3X2hk bWlfaXJxKGludCBpcnEsIHZvaWQgKmRldl9pZCkKPj4+Pj4gIAkJCQkgICAgICAgcGh5X3N0YXQg JiBIRE1JX1BIWV9IUEQsCj4+Pj4+ICAJCQkJICAgICAgIHBoeV9zdGF0ICYgSERNSV9QSFlfUlhf U0VOU0UpOwo+Pj4+PiAgCj4+Pj4+IC0JCWlmICgocGh5X3N0YXQgJiAoSERNSV9QSFlfUlhfU0VO U0UgfCBIRE1JX1BIWV9IUEQpKSA9PSAwKQo+Pj4+PiAtCQkJY2VjX25vdGlmaWVyX3NldF9waHlz X2FkZHIoaGRtaS0+Y2VjX25vdGlmaWVyLAo+Pj4+PiAtCQkJCQkJICAgQ0VDX1BIWVNfQUREUl9J TlZBTElEKTsKPj4+Pj4gKwkJaWYgKChwaHlfc3RhdCAmIChIRE1JX1BIWV9SWF9TRU5TRSB8IEhE TUlfUEhZX0hQRCkpID09IDApIHsKPj4+Pj4gKwkJCW11dGV4X2xvY2soJmhkbWktPmNlY19ub3Rp Zmllcl9tdXRleCk7Cj4+Pj4+ICsJCQljZWNfbm90aWZpZXJfcGh5c19hZGRyX2ludmFsaWRhdGUo aGRtaS0+Y2VjX25vdGlmaWVyKTsKPj4+Pj4gKwkJCW11dGV4X3VubG9jaygmaGRtaS0+Y2VjX25v dGlmaWVyX211dGV4KTsKPj4+Pj4gKwkJfQo+Pj4+PiAgCX0KPj4+Pj4gIAo+Pj4+PiAgCWlmIChp bnRyX3N0YXQgJiBIRE1JX0lIX1BIWV9TVEFUMF9IUEQpIHsKPj4+Pj4gQEAgLTI1NjEsNiArMjU4 Nyw3IEBAIF9fZHdfaGRtaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+Pj4+ PiAgCj4+Pj4+ICAJbXV0ZXhfaW5pdCgmaGRtaS0+bXV0ZXgpOwo+Pj4+PiAgCW11dGV4X2luaXQo JmhkbWktPmF1ZGlvX211dGV4KTsKPj4+Pj4gKwltdXRleF9pbml0KCZoZG1pLT5jZWNfbm90aWZp ZXJfbXV0ZXgpOwo+Pj4+PiAgCXNwaW5fbG9ja19pbml0KCZoZG1pLT5hdWRpb19sb2NrKTsKPj4+ Pj4gIAo+Pj4+PiAgCWRkY19ub2RlID0gb2ZfcGFyc2VfcGhhbmRsZShucCwgImRkYy1pMmMtYnVz IiwgMCk7Cj4+Pj4+IEBAIC0yNjkzLDEyICsyNzIwLDYgQEAgX19kd19oZG1pX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4+Pj4+ICAJaWYgKHJldCkKPj4+Pj4gIAkJZ290byBl cnJfaWFoYjsKPj4+Pj4gIAo+Pj4+PiAtCWhkbWktPmNlY19ub3RpZmllciA9IGNlY19ub3RpZmll cl9nZXQoZGV2KTsKPj4+Pj4gLQlpZiAoIWhkbWktPmNlY19ub3RpZmllcikgewo+Pj4+PiAtCQly ZXQgPSAtRU5PTUVNOwo+Pj4+PiAtCQlnb3RvIGVycl9pYWhiOwo+Pj4+PiAtCX0KPj4+Pj4gLQo+ Pj4+PiAgCS8qCj4+Pj4+ICAJICogVG8gcHJldmVudCBvdmVyZmxvd3MgaW4gSERNSV9JSF9GQ19T VEFUMiwgc2V0IHRoZSBjbGsgcmVnZW5lcmF0b3IKPj4+Pj4gIAkgKiBOIGFuZCBjdHMgdmFsdWVz IGJlZm9yZSBlbmFibGluZyBwaHkKPj4+Pj4gQEAgLTI3OTYsOSArMjgxNyw2IEBAIF9fZHdfaGRt aV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+Pj4+PiAgCQloZG1pLT5kZGMg PSBOVUxMOwo+Pj4+PiAgCX0KPj4+Pj4gIAo+Pj4+PiAtCWlmIChoZG1pLT5jZWNfbm90aWZpZXIp Cj4+Pj4+IC0JCWNlY19ub3RpZmllcl9wdXQoaGRtaS0+Y2VjX25vdGlmaWVyKTsKPj4+Pj4gLQo+ Pj4+PiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShoZG1pLT5pYWhiX2Nsayk7Cj4+Pj4+ICAJaWYg KGhkbWktPmNlY19jbGspCj4+Pj4+ICAJCWNsa19kaXNhYmxlX3VucHJlcGFyZShoZG1pLT5jZWNf Y2xrKTsKPj4+Pj4gQEAgLTI4MjAsOSArMjgzOCw2IEBAIHN0YXRpYyB2b2lkIF9fZHdfaGRtaV9y ZW1vdmUoc3RydWN0IGR3X2hkbWkgKmhkbWkpCj4+Pj4+ICAJLyogRGlzYWJsZSBhbGwgaW50ZXJy dXB0cyAqLwo+Pj4+PiAgCWhkbWlfd3JpdGViKGhkbWksIH4wLCBIRE1JX0lIX01VVEVfUEhZX1NU QVQwKTsKPj4+Pj4gIAo+Pj4+PiAtCWlmIChoZG1pLT5jZWNfbm90aWZpZXIpCj4+Pj4+IC0JCWNl Y19ub3RpZmllcl9wdXQoaGRtaS0+Y2VjX25vdGlmaWVyKTsKPj4+Pj4gLQo+Pj4+PiAgCWNsa19k aXNhYmxlX3VucHJlcGFyZShoZG1pLT5pYWhiX2Nsayk7Cj4+Pj4+ICAJY2xrX2Rpc2FibGVfdW5w cmVwYXJlKGhkbWktPmlzZnJfY2xrKTsKPj4+Pj4gIAlpZiAoaGRtaS0+Y2VjX2NsaykKPj4+Pj4K Pj4+Pgo+Pj4KPj4KPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbA==