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=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 4729EC0650F for ; Mon, 5 Aug 2019 12:48:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 103B0205C9 for ; Mon, 5 Aug 2019 12:48:59 +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="s6b1QVHf" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728811AbfHEMs5 (ORCPT ); Mon, 5 Aug 2019 08:48:57 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:55482 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726779AbfHEMs5 (ORCPT ); Mon, 5 Aug 2019 08:48:57 -0400 Received: by mail-wm1-f67.google.com with SMTP id a15so74614377wmj.5 for ; Mon, 05 Aug 2019 05:48:55 -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:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=I4WQBlYtUK3LpLALLS8/Bgf6TMUihDOjjA4mHf9gmXw=; b=s6b1QVHf93ASWMbEq+K8NrqNubU0VKZcHFb4e3uq3oEfx0rf+//MchlNQPKayhgCvW CUCBE6YkH92ZifWWrmW464gGWwOUVdrm0W2eT6xdLqZNfIYzONd2kTpbiOBcmqc2tB9t V17h1u1tU/TF5u+mTW3xwhB87mA6giFlr3gwUIuId9c7WGoqw54is7R02XNt40eTKWhh njOMkKU2kfjm6zt/L8R3Pi0g4lmHu4rKkXKvyKyDWGZzC8Aa6+VHuuwKrFXWOphk9qRO drwPAPxNLKqoP7G/WnTmYb8fAbRYc6ukNJq0jnnb+rvIaWUqY4BabyFS8jOldRo6+q8d Gxdw== 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:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=I4WQBlYtUK3LpLALLS8/Bgf6TMUihDOjjA4mHf9gmXw=; b=Vytk0pzX5L9QRohFjTAlLT0KYoaD9Oxv+mV/aUOK1vH3cX2YsATd/R4cCsp8UAeG4s 2uuFMKdw3w1pZG84wdmbdq9xpYT2W0BU3+vv5GBi0KisHhAngIDURHHIfEi+yF2DTr4O w9zUXscEyYuzWsEfbe8a5+ygXvk1KsSF3hrNy7N8UO5kWkYfiLlLSPAO4waPNXVPZU3e gLhfbNpn8jYlkaKZV7UhzxZ9EiGZeC4ePS0+0DNdNODo/3MQVzK7JeNXJ39lF80Sjm5h Iw2Y3TD5+n+v+O49qFO5radfE8rS55mV+quvba9lAlfPfhOcRxFPgVt7HY8NRYBD+Uu0 Vq4w== X-Gm-Message-State: APjAAAWms2N08e7xFiha2Fc8EFEW6YwIiSpLDOOOfVYyL11E3UjZ5Uvc aFFNrt1Wt7w0XDv6g4AufbzToQ== X-Google-Smtp-Source: APXvYqwpd7vS0LRg5oITH/nfFBUXRzWmk9UAeFv1TcmYUsmKHnazMLOnFGlOmL6kk7iKgRhpY4SaJw== X-Received: by 2002:a1c:a7c6:: with SMTP id q189mr19095355wme.146.1565009334383; Mon, 05 Aug 2019 05:48:54 -0700 (PDT) Received: from [10.1.4.98] (lmontsouris-657-1-212-31.w90-63.abo.wanadoo.fr. [90.63.244.31]) by smtp.gmail.com with ESMTPSA id i66sm151649804wmi.11.2019.08.05.05.48.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Aug 2019 05:48:53 -0700 (PDT) Subject: Re: [PATCH v2 2/6] thermal: amlogic: Add thermal driver to support G12 SoCs To: Martin Blumenstingl Cc: daniel.lezcano@linaro.org, khilman@baylibre.com, devicetree@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org References: <20190731153529.30159-1-glaroque@baylibre.com> <20190731153529.30159-3-glaroque@baylibre.com> From: guillaume La Roque Message-ID: <14e14cd9-46bd-0d43-654c-6db64397f5c7@baylibre.com> Date: Mon, 5 Aug 2019 14:48:53 +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: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Martin, again thanks for your review. On 8/3/19 8:24 PM, Martin Blumenstingl wrote: > Hi Guillaume, > > (I still don't have any experience with the thermal framework, so > below are some general comments) > > On Wed, Jul 31, 2019 at 5:36 PM Guillaume La Roque > wrote: > I would add a patch description here: > " > Amlogic G12A and G12B SoCs integrate two thermal sensors with the same design. > One is located close to the DDR (controller?) and the other one is > located close to the PLLs (between the CPU and GPU). > > The calibration data for each of the thermal sensors instance is > stored in a different location within the AO region. > > Implement reading the temperature from each thermal sensor. > > The IP block has more functionality, which may be added to this driver > in the future: > - reading up to 16 stored temperature samples it's not working, you can verify it if you check the regmap define in the driver. in fact temp is only write in one register, it's confirmed by amlogic. > - chip reset when the temperature exceeds a configurable threshold > - up to four interrupts when the temperature has risen above a > configurable threshold > - up to four interrupts when the temperature has fallen below a > configurable threshold > " agreed with you to add description  and optional without 16 register part. > >> Signed-off-by: Guillaume La Roque >> --- >> drivers/thermal/Kconfig | 11 + >> drivers/thermal/Makefile | 1 + >> drivers/thermal/amlogic_thermal.c | 332 ++++++++++++++++++++++++++++++ >> 3 files changed, 344 insertions(+) >> create mode 100644 drivers/thermal/amlogic_thermal.c >> >> diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig >> index 9966364a6deb..0f31bb4bc372 100644 >> --- a/drivers/thermal/Kconfig >> +++ b/drivers/thermal/Kconfig >> @@ -348,6 +348,17 @@ config MTK_THERMAL >> Enable this option if you want to have support for thermal management >> controller present in Mediatek SoCs >> >> +config AMLOGIC_THERMAL > we typically use "MESON" in the Kconfig symbols: > $ grep -c AMLOGIC .config > 1 > $ grep -c MESON .config > 33 > > I also wonder if we should add G12 or G12A so we don't conflict with > upcoming thermal sensors with a different design (assuming that this > will be a thing). > for example we already have three different USB2 PHY drivers > > [...] i check with Neil and for new family it's better to use Amlogic instead of meson. i don't add G12 because we already know it's same sensors for SM1 SoC family [0]. >> +/* >> + * Calculate a temperature value from a temperature code. >> + * The unit of the temperature is degree Celsius. > is it really degree Celsius or millicelsius? good point it's in millicelsius, i will fix all > >> + */ >> +static int code_to_temp(struct amlogic_thermal *pdata, int temp_code) > PREFIX_thermal_code_to_millicelsius? ok > [...] >> +static int amlogic_thermal_enable(struct amlogic_thermal *data) >> +{ >> + clk_prepare_enable(data->clk); > no clock error handling? i will fix > >> + regmap_update_bits(data->regmap, TSENSOR_CFG_REG1, >> + TSENSOR_CFG_REG1_ENABLE, TSENSOR_CFG_REG1_ENABLE); >> + >> + return 0; >> +} >> + >> +static int amlogic_thermal_disable(struct amlogic_thermal *data) >> +{ >> + regmap_update_bits(data->regmap, TSENSOR_CFG_REG1, >> + TSENSOR_CFG_REG1_ENABLE, 0); >> + clk_disable(data->clk); > either clk_disable_unprepare here or use only clk_enable in > amlogic_thermal_enable and move prepare/unprepare somewhere else i will align with enable and use clk_disable_unprepare > >> + >> + return 0; >> +} >> + >> +static int amlogic_thermal_get_temp(void *data, int *temp) >> +{ >> + unsigned int tvalue; >> + struct amlogic_thermal *pdata = data; >> + >> + if (!data) >> + return -EINVAL; >> + >> + regmap_read(pdata->regmap, TSENSOR_STAT0, &tvalue); >> + *temp = code_to_temp(pdata, >> + tvalue & TSENSOR_READ_TEMP_MASK); > maybe simply move the implementation from code_to_temp here? for the optional function it could be a problem if i move all in code_to_temp. i prefer to have a function which are just do the conversion. > > [...] >> +static const struct amlogic_thermal_data amlogic_thermal_g12_cpu_param = { >> + .u_efuse_off = 0x128, >> + .soc = &amlogic_thermal_g12, > based on the variable name I expected this to be an enum of some sort. > I would have expected it to be called calibration_parameters or > similar to match the explanation in the driver description > (no need to change it if you prefer it like this, I just want to make > you aware of this) ok to rename structure name > >> + .regmap_config = &amlogic_thermal_regmap_config_g12, > if regmap_config is always the same you may also pass it directly to > devm_regmap_init_mmio it's the same for now but we don't know if in the future  SoCs use same regmap. > >> +}; >> + >> +static const struct amlogic_thermal_data amlogic_thermal_g12_ddr_param = { >> + .u_efuse_off = 0xF0, > I believe we use lower-case hex everywhere else > > [...] will fix >> +static const struct of_device_id of_amlogic_thermal_match[] = { >> + { >> + .compatible = "amlogic,g12-ddr-thermal", >> + .data = &amlogic_thermal_g12_ddr_param, >> + }, >> + { >> + .compatible = "amlogic,g12-cpu-thermal", >> + .data = &amlogic_thermal_g12_cpu_param, >> + }, >> + { /* end */ } > other drivers use "sentinel", but personally I have no preference here > > [...] same for me i will do same as other drivers >> + pdata->tzd = devm_thermal_zone_of_sensor_register >> + (&pdev->dev, >> + 0, >> + pdata, >> + &amlogic_thermal_ops); > I believe the opening brace has to go onto the same line as the function name > > [...] will fix >> + ret = amlogic_thermal_enable(pdata); >> + if (ret) >> + clk_unprepare(pdata->clk); > clk_disable_unprepare, else you'll leave the clock prepared will fix > >> +#ifdef CONFIG_PM_SLEEP >> +static int amlogic_thermal_suspend(struct device *dev) >> +{ >> + struct amlogic_thermal *data = dev_get_drvdata(dev); >> + >> + return amlogic_thermal_disable(data); >> +} >> + >> +static int amlogic_thermal_resume(struct device *dev) >> +{ >> + struct amlogic_thermal *data = dev_get_drvdata(dev); >> + >> + return amlogic_thermal_enable(data); >> +} >> +#endif > instead of using an #ifdef here annotate the suspend/resume functions > with __maybe_unused, see [0] will fix > > > Martin > > > [0] https://lore.kernel.org/patchwork/patch/732981/ [0] https://lore.kernel.org/linux-arm-kernel/20190701104705.18271-1-narmstrong@baylibre.com/ thanks Guillaume 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.3 required=3.0 tests=DKIMWL_WL_HIGH,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=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 71ACCC0650F for ; Mon, 5 Aug 2019 12:49:04 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 43375205C9 for ; Mon, 5 Aug 2019 12:49:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="nqZ7ElI/"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=baylibre-com.20150623.gappssmtp.com header.i=@baylibre-com.20150623.gappssmtp.com header.b="s6b1QVHf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 43375205C9 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=AGchQq1vWhHTwVSmGeGgfHjk3Ar52rh5Npml9ES87As=; b=nqZ7ElI/A5950r c31sGCzAOHB/fY7ird1i0M5f0SjkaJuOxb3/HbUWT/e4L6/C08/JrAyfVofKJUOihcqVCK2ydaGq0 3LyB6d0OHt+OrZIevboECwbMvk0eXvZD3PcUMhpuUv8QNTd1HGxp4IdgvuCCx+SUCXIsFPPQvy4z/ nP6Fv/lN0f2ic7Tkyar81qb5K2kRAzPuI1B60irYC18jEQ57GMH46+S8qC/vsgoEvL2qhnVkXPdUO V1CZULkHE/yVGavoQlVESPzvSbFD18gSRgr3J3egao1E2YaZPz+q0s+I0lpHMibTs0bI6vELK+oYX w+NWAOZWWvl0ShmQAlsA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hucQB-0008Ne-Oh; Mon, 05 Aug 2019 12:49:03 +0000 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hucQ3-0008FL-OB for linux-arm-kernel@lists.infradead.org; Mon, 05 Aug 2019 12:48:57 +0000 Received: by mail-wm1-x343.google.com with SMTP id g67so68773444wme.1 for ; Mon, 05 Aug 2019 05:48:55 -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:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=I4WQBlYtUK3LpLALLS8/Bgf6TMUihDOjjA4mHf9gmXw=; b=s6b1QVHf93ASWMbEq+K8NrqNubU0VKZcHFb4e3uq3oEfx0rf+//MchlNQPKayhgCvW CUCBE6YkH92ZifWWrmW464gGWwOUVdrm0W2eT6xdLqZNfIYzONd2kTpbiOBcmqc2tB9t V17h1u1tU/TF5u+mTW3xwhB87mA6giFlr3gwUIuId9c7WGoqw54is7R02XNt40eTKWhh njOMkKU2kfjm6zt/L8R3Pi0g4lmHu4rKkXKvyKyDWGZzC8Aa6+VHuuwKrFXWOphk9qRO drwPAPxNLKqoP7G/WnTmYb8fAbRYc6ukNJq0jnnb+rvIaWUqY4BabyFS8jOldRo6+q8d Gxdw== 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:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=I4WQBlYtUK3LpLALLS8/Bgf6TMUihDOjjA4mHf9gmXw=; b=e0oZVtc9B93GpESh35evxPAzn7TFrD09T09O/ze9Q3xW+9MZuoOxD4NAoBv9jDPD8B Y8HXEpUnoTixzvXZNCJFRrO/Spt+NyO+ExAuQf3voN2J/NQtP7iT3U/fDlHJ5FiMu8K4 owEhwaewnziKOezfaYjYLHU2wEBapl0DPu/qE2YycV7tcFiQOGbsGysBXG6k01ilDOKz h3k+7+DHLOmuJ19pnwZDI7/UUrxV3FOTHJF18q0yUxJIMTdAqoonvBrdBClnSyrzfJLN 2ZzYiqZGNXGOxJABnm1rAsJ3Bk9upM41sAKfNaxf6QvaBFzHMSrXzmFontDV+XvmEAUF 2XGQ== X-Gm-Message-State: APjAAAVr7OnGh8KKZDC8Iqng5rTXSR2moWz1wvnCxz55MAHgH0PZlQfa v/TGUE4oTi1myIz6t9wx8om3aogwoks= X-Google-Smtp-Source: APXvYqwpd7vS0LRg5oITH/nfFBUXRzWmk9UAeFv1TcmYUsmKHnazMLOnFGlOmL6kk7iKgRhpY4SaJw== X-Received: by 2002:a1c:a7c6:: with SMTP id q189mr19095355wme.146.1565009334383; Mon, 05 Aug 2019 05:48:54 -0700 (PDT) Received: from [10.1.4.98] (lmontsouris-657-1-212-31.w90-63.abo.wanadoo.fr. [90.63.244.31]) by smtp.gmail.com with ESMTPSA id i66sm151649804wmi.11.2019.08.05.05.48.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Aug 2019 05:48:53 -0700 (PDT) Subject: Re: [PATCH v2 2/6] thermal: amlogic: Add thermal driver to support G12 SoCs To: Martin Blumenstingl References: <20190731153529.30159-1-glaroque@baylibre.com> <20190731153529.30159-3-glaroque@baylibre.com> From: guillaume La Roque Message-ID: <14e14cd9-46bd-0d43-654c-6db64397f5c7@baylibre.com> Date: Mon, 5 Aug 2019 14:48:53 +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: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190805_054855_999946_81754381 X-CRM114-Status: GOOD ( 36.21 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-pm@vger.kernel.org, khilman@baylibre.com, daniel.lezcano@linaro.org, linux-kernel@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgTWFydGluLAoKYWdhaW4gdGhhbmtzIGZvciB5b3VyIHJldmlldy4KCk9uIDgvMy8xOSA4OjI0 IFBNLCBNYXJ0aW4gQmx1bWVuc3RpbmdsIHdyb3RlOgo+IEhpIEd1aWxsYXVtZSwKPgo+IChJIHN0 aWxsIGRvbid0IGhhdmUgYW55IGV4cGVyaWVuY2Ugd2l0aCB0aGUgdGhlcm1hbCBmcmFtZXdvcmss IHNvCj4gYmVsb3cgYXJlIHNvbWUgZ2VuZXJhbCBjb21tZW50cykKPgo+IE9uIFdlZCwgSnVsIDMx LCAyMDE5IGF0IDU6MzYgUE0gR3VpbGxhdW1lIExhIFJvcXVlCj4gPGdsYXJvcXVlQGJheWxpYnJl LmNvbT4gd3JvdGU6Cj4gSSB3b3VsZCBhZGQgYSBwYXRjaCBkZXNjcmlwdGlvbiBoZXJlOgo+ICIK PiBBbWxvZ2ljIEcxMkEgYW5kIEcxMkIgU29DcyBpbnRlZ3JhdGUgdHdvIHRoZXJtYWwgc2Vuc29y cyB3aXRoIHRoZSBzYW1lIGRlc2lnbi4KPiBPbmUgaXMgbG9jYXRlZCBjbG9zZSB0byB0aGUgRERS IChjb250cm9sbGVyPykgYW5kIHRoZSBvdGhlciBvbmUgaXMKPiBsb2NhdGVkIGNsb3NlIHRvIHRo ZSBQTExzIChiZXR3ZWVuIHRoZSBDUFUgYW5kIEdQVSkuCj4KPiBUaGUgY2FsaWJyYXRpb24gZGF0 YSBmb3IgZWFjaCBvZiB0aGUgdGhlcm1hbCBzZW5zb3JzIGluc3RhbmNlIGlzCj4gc3RvcmVkIGlu IGEgZGlmZmVyZW50IGxvY2F0aW9uIHdpdGhpbiB0aGUgQU8gcmVnaW9uLgo+Cj4gSW1wbGVtZW50 IHJlYWRpbmcgdGhlIHRlbXBlcmF0dXJlIGZyb20gZWFjaCB0aGVybWFsIHNlbnNvci4KPgo+IFRo ZSBJUCBibG9jayBoYXMgbW9yZSBmdW5jdGlvbmFsaXR5LCB3aGljaCBtYXkgYmUgYWRkZWQgdG8g dGhpcyBkcml2ZXIKPiBpbiB0aGUgZnV0dXJlOgo+IC0gcmVhZGluZyB1cCB0byAxNiBzdG9yZWQg dGVtcGVyYXR1cmUgc2FtcGxlcwoKaXQncyBub3Qgd29ya2luZywgeW91IGNhbiB2ZXJpZnkgaXQg aWYgeW91IGNoZWNrIHRoZSByZWdtYXAgZGVmaW5lIGluIHRoZSBkcml2ZXIuIGluIGZhY3QgdGVt cCBpcyBvbmx5IHdyaXRlIGluIG9uZSByZWdpc3RlciwgaXQncyBjb25maXJtZWQgYnkgYW1sb2dp Yy4KCj4gLSBjaGlwIHJlc2V0IHdoZW4gdGhlIHRlbXBlcmF0dXJlIGV4Y2VlZHMgYSBjb25maWd1 cmFibGUgdGhyZXNob2xkCj4gLSB1cCB0byBmb3VyIGludGVycnVwdHMgd2hlbiB0aGUgdGVtcGVy YXR1cmUgaGFzIHJpc2VuIGFib3ZlIGEKPiBjb25maWd1cmFibGUgdGhyZXNob2xkCj4gLSB1cCB0 byBmb3VyIGludGVycnVwdHMgd2hlbiB0aGUgdGVtcGVyYXR1cmUgaGFzIGZhbGxlbiBiZWxvdyBh Cj4gY29uZmlndXJhYmxlIHRocmVzaG9sZAo+ICIKCmFncmVlZCB3aXRoIHlvdSB0byBhZGQgZGVz Y3JpcHRpb27CoCBhbmQgb3B0aW9uYWwgd2l0aG91dCAxNiByZWdpc3RlciBwYXJ0LgoKPgo+PiBT aWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTGEgUm9xdWUgPGdsYXJvcXVlQGJheWxpYnJlLmNvbT4K Pj4gLS0tCj4+ICBkcml2ZXJzL3RoZXJtYWwvS2NvbmZpZyAgICAgICAgICAgfCAgMTEgKwo+PiAg ZHJpdmVycy90aGVybWFsL01ha2VmaWxlICAgICAgICAgIHwgICAxICsKPj4gIGRyaXZlcnMvdGhl cm1hbC9hbWxvZ2ljX3RoZXJtYWwuYyB8IDMzMiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPj4gIDMgZmlsZXMgY2hhbmdlZCwgMzQ0IGluc2VydGlvbnMoKykKPj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL3RoZXJtYWwvYW1sb2dpY190aGVybWFsLmMKPj4KPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvdGhlcm1hbC9LY29uZmlnIGIvZHJpdmVycy90aGVybWFsL0tjb25maWcKPj4g aW5kZXggOTk2NjM2NGE2ZGViLi4wZjMxYmI0YmMzNzIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv dGhlcm1hbC9LY29uZmlnCj4+ICsrKyBiL2RyaXZlcnMvdGhlcm1hbC9LY29uZmlnCj4+IEBAIC0z NDgsNiArMzQ4LDE3IEBAIGNvbmZpZyBNVEtfVEhFUk1BTAo+PiAgICAgICAgICAgRW5hYmxlIHRo aXMgb3B0aW9uIGlmIHlvdSB3YW50IHRvIGhhdmUgc3VwcG9ydCBmb3IgdGhlcm1hbCBtYW5hZ2Vt ZW50Cj4+ICAgICAgICAgICBjb250cm9sbGVyIHByZXNlbnQgaW4gTWVkaWF0ZWsgU29Dcwo+Pgo+ PiArY29uZmlnIEFNTE9HSUNfVEhFUk1BTAo+IHdlIHR5cGljYWxseSB1c2UgIk1FU09OIiBpbiB0 aGUgS2NvbmZpZyBzeW1ib2xzOgo+ICQgZ3JlcCAtYyBBTUxPR0lDIC5jb25maWcKPiAxCj4gJCBn cmVwIC1jIE1FU09OIC5jb25maWcKPiAzMwo+Cj4gSSBhbHNvIHdvbmRlciBpZiB3ZSBzaG91bGQg YWRkIEcxMiBvciBHMTJBIHNvIHdlIGRvbid0IGNvbmZsaWN0IHdpdGgKPiB1cGNvbWluZyB0aGVy bWFsIHNlbnNvcnMgd2l0aCBhIGRpZmZlcmVudCBkZXNpZ24gKGFzc3VtaW5nIHRoYXQgdGhpcwo+ IHdpbGwgYmUgYSB0aGluZykuCj4gZm9yIGV4YW1wbGUgd2UgYWxyZWFkeSBoYXZlIHRocmVlIGRp ZmZlcmVudCBVU0IyIFBIWSBkcml2ZXJzCj4KPiBbLi4uXQoKaSBjaGVjayB3aXRoIE5laWwgYW5k IGZvciBuZXcgZmFtaWx5IGl0J3MgYmV0dGVyIHRvIHVzZSBBbWxvZ2ljIGluc3RlYWQgb2YgbWVz b24uCgppIGRvbid0IGFkZCBHMTIgYmVjYXVzZSB3ZSBhbHJlYWR5IGtub3cgaXQncyBzYW1lIHNl bnNvcnMgZm9yIFNNMSBTb0MgZmFtaWx5IFswXS4KCj4+ICsvKgo+PiArICogQ2FsY3VsYXRlIGEg dGVtcGVyYXR1cmUgdmFsdWUgZnJvbSBhIHRlbXBlcmF0dXJlIGNvZGUuCj4+ICsgKiBUaGUgdW5p dCBvZiB0aGUgdGVtcGVyYXR1cmUgaXMgZGVncmVlIENlbHNpdXMuCj4gaXMgaXQgcmVhbGx5IGRl Z3JlZSBDZWxzaXVzIG9yIG1pbGxpY2Vsc2l1cz8KZ29vZCBwb2ludCBpdCdzIGluIG1pbGxpY2Vs c2l1cywgaSB3aWxsIGZpeCBhbGwKPgo+PiArICovCj4+ICtzdGF0aWMgaW50IGNvZGVfdG9fdGVt cChzdHJ1Y3QgYW1sb2dpY190aGVybWFsICpwZGF0YSwgaW50IHRlbXBfY29kZSkKPiBQUkVGSVhf dGhlcm1hbF9jb2RlX3RvX21pbGxpY2Vsc2l1cz8Kb2sKPiBbLi4uXQo+PiArc3RhdGljIGludCBh bWxvZ2ljX3RoZXJtYWxfZW5hYmxlKHN0cnVjdCBhbWxvZ2ljX3RoZXJtYWwgKmRhdGEpCj4+ICt7 Cj4+ICsgICAgICAgY2xrX3ByZXBhcmVfZW5hYmxlKGRhdGEtPmNsayk7Cj4gbm8gY2xvY2sgZXJy b3IgaGFuZGxpbmc/CgoKaSB3aWxsIGZpeAoKPgo+PiArICAgICAgIHJlZ21hcF91cGRhdGVfYml0 cyhkYXRhLT5yZWdtYXAsIFRTRU5TT1JfQ0ZHX1JFRzEsCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgIFRTRU5TT1JfQ0ZHX1JFRzFfRU5BQkxFLCBUU0VOU09SX0NGR19SRUcxX0VOQUJMRSk7 Cj4+ICsKPj4gKyAgICAgICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBhbWxv Z2ljX3RoZXJtYWxfZGlzYWJsZShzdHJ1Y3QgYW1sb2dpY190aGVybWFsICpkYXRhKQo+PiArewo+ PiArICAgICAgIHJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5yZWdtYXAsIFRTRU5TT1JfQ0ZHX1JF RzEsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFRTRU5TT1JfQ0ZHX1JFRzFfRU5BQkxF LCAwKTsKPj4gKyAgICAgICBjbGtfZGlzYWJsZShkYXRhLT5jbGspOwo+IGVpdGhlciBjbGtfZGlz YWJsZV91bnByZXBhcmUgaGVyZSBvciB1c2Ugb25seSBjbGtfZW5hYmxlIGluCj4gYW1sb2dpY190 aGVybWFsX2VuYWJsZSBhbmQgbW92ZSBwcmVwYXJlL3VucHJlcGFyZSBzb21ld2hlcmUgZWxzZQpp IHdpbGwgYWxpZ24gd2l0aCBlbmFibGUgYW5kIHVzZSBjbGtfZGlzYWJsZV91bnByZXBhcmUKPgo+ PiArCj4+ICsgICAgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgYW1sb2dp Y190aGVybWFsX2dldF90ZW1wKHZvaWQgKmRhdGEsIGludCAqdGVtcCkKPj4gK3sKPj4gKyAgICAg ICB1bnNpZ25lZCBpbnQgdHZhbHVlOwo+PiArICAgICAgIHN0cnVjdCBhbWxvZ2ljX3RoZXJtYWwg KnBkYXRhID0gZGF0YTsKPj4gKwo+PiArICAgICAgIGlmICghZGF0YSkKPj4gKyAgICAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOwo+PiArCj4+ICsgICAgICAgcmVnbWFwX3JlYWQocGRhdGEtPnJl Z21hcCwgVFNFTlNPUl9TVEFUMCwgJnR2YWx1ZSk7Cj4+ICsgICAgICAgKnRlbXAgPSBjb2RlX3Rv X3RlbXAocGRhdGEsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHZhbHVlICYgVFNF TlNPUl9SRUFEX1RFTVBfTUFTSyk7Cj4gbWF5YmUgc2ltcGx5IG1vdmUgdGhlIGltcGxlbWVudGF0 aW9uIGZyb20gY29kZV90b190ZW1wIGhlcmU/Cgpmb3IgdGhlIG9wdGlvbmFsIGZ1bmN0aW9uIGl0 IGNvdWxkIGJlIGEgcHJvYmxlbSBpZiBpIG1vdmUgYWxsIGluIGNvZGVfdG9fdGVtcC4KCmkgcHJl ZmVyIHRvIGhhdmUgYSBmdW5jdGlvbiB3aGljaCBhcmUganVzdCBkbyB0aGUgY29udmVyc2lvbi4K Cj4KPiBbLi4uXQo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBhbWxvZ2ljX3RoZXJtYWxfZGF0YSBh bWxvZ2ljX3RoZXJtYWxfZzEyX2NwdV9wYXJhbSA9IHsKPj4gKyAgICAgICAudV9lZnVzZV9vZmYg PSAweDEyOCwKPj4gKyAgICAgICAuc29jID0gJmFtbG9naWNfdGhlcm1hbF9nMTIsCj4gYmFzZWQg b24gdGhlIHZhcmlhYmxlIG5hbWUgSSBleHBlY3RlZCB0aGlzIHRvIGJlIGFuIGVudW0gb2Ygc29t ZSBzb3J0Lgo+IEkgd291bGQgaGF2ZSBleHBlY3RlZCBpdCB0byBiZSBjYWxsZWQgY2FsaWJyYXRp b25fcGFyYW1ldGVycyBvcgo+IHNpbWlsYXIgdG8gbWF0Y2ggdGhlIGV4cGxhbmF0aW9uIGluIHRo ZSBkcml2ZXIgZGVzY3JpcHRpb24KPiAobm8gbmVlZCB0byBjaGFuZ2UgaXQgaWYgeW91IHByZWZl ciBpdCBsaWtlIHRoaXMsIEkganVzdCB3YW50IHRvIG1ha2UKPiB5b3UgYXdhcmUgb2YgdGhpcykK b2sgdG8gcmVuYW1lIHN0cnVjdHVyZSBuYW1lCj4KPj4gKyAgICAgICAucmVnbWFwX2NvbmZpZyA9 ICZhbWxvZ2ljX3RoZXJtYWxfcmVnbWFwX2NvbmZpZ19nMTIsCj4gaWYgcmVnbWFwX2NvbmZpZyBp cyBhbHdheXMgdGhlIHNhbWUgeW91IG1heSBhbHNvIHBhc3MgaXQgZGlyZWN0bHkgdG8KPiBkZXZt X3JlZ21hcF9pbml0X21taW8KCml0J3MgdGhlIHNhbWUgZm9yIG5vdyBidXQgd2UgZG9uJ3Qga25v dyBpZiBpbiB0aGUgZnV0dXJlwqAgU29DcyB1c2Ugc2FtZSByZWdtYXAuCgoKPgo+PiArfTsKPj4g Kwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBhbWxvZ2ljX3RoZXJtYWxfZGF0YSBhbWxvZ2ljX3Ro ZXJtYWxfZzEyX2Rkcl9wYXJhbSA9IHsKPj4gKyAgICAgICAudV9lZnVzZV9vZmYgPSAweEYwLAo+ IEkgYmVsaWV2ZSB3ZSB1c2UgbG93ZXItY2FzZSBoZXggZXZlcnl3aGVyZSBlbHNlCj4KPiBbLi4u XQp3aWxsIGZpeAo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgb2ZfYW1sb2dp Y190aGVybWFsX21hdGNoW10gPSB7Cj4+ICsgICAgICAgewo+PiArICAgICAgICAgICAgICAgLmNv bXBhdGlibGUgPSAiYW1sb2dpYyxnMTItZGRyLXRoZXJtYWwiLAo+PiArICAgICAgICAgICAgICAg LmRhdGEgPSAmYW1sb2dpY190aGVybWFsX2cxMl9kZHJfcGFyYW0sCj4+ICsgICAgICAgfSwKPj4g KyAgICAgICB7Cj4+ICsgICAgICAgICAgICAgICAuY29tcGF0aWJsZSA9ICJhbWxvZ2ljLGcxMi1j cHUtdGhlcm1hbCIsCj4+ICsgICAgICAgICAgICAgICAuZGF0YSA9ICZhbWxvZ2ljX3RoZXJtYWxf ZzEyX2NwdV9wYXJhbSwKPj4gKyAgICAgICB9LAo+PiArICAgICAgIHsgLyogZW5kICovIH0KPiBv dGhlciBkcml2ZXJzIHVzZSAic2VudGluZWwiLCBidXQgcGVyc29uYWxseSBJIGhhdmUgbm8gcHJl ZmVyZW5jZSBoZXJlCj4KPiBbLi4uXQpzYW1lIGZvciBtZSBpIHdpbGwgZG8gc2FtZSBhcyBvdGhl ciBkcml2ZXJzCj4+ICsgICAgICAgcGRhdGEtPnR6ZCA9IGRldm1fdGhlcm1hbF96b25lX29mX3Nl bnNvcl9yZWdpc3Rlcgo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgmcGRldi0+ ZGV2LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZGF0YSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmFtbG9naWNfdGhlcm1hbF9vcHMpOwo+IEkgYmVsaWV2ZSB0aGUgb3BlbmluZyBi cmFjZSBoYXMgdG8gZ28gb250byB0aGUgc2FtZSBsaW5lIGFzIHRoZSBmdW5jdGlvbiBuYW1lCj4K PiBbLi4uXQp3aWxsIGZpeAo+PiArICAgICAgIHJldCA9IGFtbG9naWNfdGhlcm1hbF9lbmFibGUo cGRhdGEpOwo+PiArICAgICAgIGlmIChyZXQpCj4+ICsgICAgICAgICAgICAgICBjbGtfdW5wcmVw YXJlKHBkYXRhLT5jbGspOwo+IGNsa19kaXNhYmxlX3VucHJlcGFyZSwgZWxzZSB5b3UnbGwgbGVh dmUgdGhlIGNsb2NrIHByZXBhcmVkCndpbGwgZml4Cj4KPj4gKyNpZmRlZiBDT05GSUdfUE1fU0xF RVAKPj4gK3N0YXRpYyBpbnQgYW1sb2dpY190aGVybWFsX3N1c3BlbmQoc3RydWN0IGRldmljZSAq ZGV2KQo+PiArewo+PiArICAgICAgIHN0cnVjdCBhbWxvZ2ljX3RoZXJtYWwgKmRhdGEgPSBkZXZf Z2V0X2RydmRhdGEoZGV2KTsKPj4gKwo+PiArICAgICAgIHJldHVybiBhbWxvZ2ljX3RoZXJtYWxf ZGlzYWJsZShkYXRhKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBhbWxvZ2ljX3RoZXJtYWxf cmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgYW1sb2dp Y190aGVybWFsICpkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4+ICsKPj4gKyAgICAgICBy ZXR1cm4gYW1sb2dpY190aGVybWFsX2VuYWJsZShkYXRhKTsKPj4gK30KPj4gKyNlbmRpZgo+IGlu c3RlYWQgb2YgdXNpbmcgYW4gI2lmZGVmIGhlcmUgYW5ub3RhdGUgdGhlIHN1c3BlbmQvcmVzdW1l IGZ1bmN0aW9ucwo+IHdpdGggX19tYXliZV91bnVzZWQsIHNlZSBbMF0Kd2lsbCBmaXgKPgo+Cj4g TWFydGluCj4KPgo+IFswXSBodHRwczovL2xvcmUua2VybmVsLm9yZy9wYXRjaHdvcmsvcGF0Y2gv NzMyOTgxLwoKWzBdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWFybS1rZXJuZWwvMjAx OTA3MDExMDQ3MDUuMTgyNzEtMS1uYXJtc3Ryb25nQGJheWxpYnJlLmNvbS8KCgp0aGFua3MKCkd1 aWxsYXVtZQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LWFybS1rZXJuZWwK 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.3 required=3.0 tests=DKIMWL_WL_HIGH,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 E57DEC0650F for ; Mon, 5 Aug 2019 12:49:22 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 AEC60205C9 for ; Mon, 5 Aug 2019 12:49:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="X/9o7l4B"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=baylibre-com.20150623.gappssmtp.com header.i=@baylibre-com.20150623.gappssmtp.com header.b="s6b1QVHf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AEC60205C9 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Ht7dtZ0CvkXw7ebOfXKap79uHKpFUEVqPaWWRapxT00=; b=X/9o7l4BjbkgiM 6HMSCq9DmR9rY0uKgv1xnWfRbc4Y0J64u1eIcs3jKPKz9p+xf6QejVCvZ4UnW1m0mZKEvYHMuGkpf xJRRtG0oBM3hL8OJNIg9z7YburNqn5HnXkv7EVw8zVyw7NWArnFpwgwpTy95FqS1KO3fPXP6WOGQ5 xMehBO06E9dlcB5w1fJYoci6LVRA/hkmi8LQJMSpXzo0rDDyx88af3kLljWtkn+q+SLlaI1rjA4g8 3CzOrAW6jDFBu9d5PUeitRAi0EhJSSiJSwtVspRaqVJGFp92B/zaM5By41bU0J32HUS+7qdbD1p7/ IFUZy0velE/HxwVM0uRw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hucQP-00009V-GF; Mon, 05 Aug 2019 12:49:17 +0000 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hucQ4-0008FM-0F for linux-amlogic@lists.infradead.org; Mon, 05 Aug 2019 12:48:58 +0000 Received: by mail-wm1-x342.google.com with SMTP id v19so72904457wmj.5 for ; Mon, 05 Aug 2019 05:48:55 -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:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=I4WQBlYtUK3LpLALLS8/Bgf6TMUihDOjjA4mHf9gmXw=; b=s6b1QVHf93ASWMbEq+K8NrqNubU0VKZcHFb4e3uq3oEfx0rf+//MchlNQPKayhgCvW CUCBE6YkH92ZifWWrmW464gGWwOUVdrm0W2eT6xdLqZNfIYzONd2kTpbiOBcmqc2tB9t V17h1u1tU/TF5u+mTW3xwhB87mA6giFlr3gwUIuId9c7WGoqw54is7R02XNt40eTKWhh njOMkKU2kfjm6zt/L8R3Pi0g4lmHu4rKkXKvyKyDWGZzC8Aa6+VHuuwKrFXWOphk9qRO drwPAPxNLKqoP7G/WnTmYb8fAbRYc6ukNJq0jnnb+rvIaWUqY4BabyFS8jOldRo6+q8d Gxdw== 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:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=I4WQBlYtUK3LpLALLS8/Bgf6TMUihDOjjA4mHf9gmXw=; b=gk6J1DiZmzdnqykWw7fp080ODc6vzLLziNm8TKhExDXSOJJJ1k5b5FEPWYpO6n8jKg dl7L6RhIc1BpA8i+8VTMv4bFlqQ5ls1V12mV8WChKxWKaAcIzZOtOR2kByQ8qHBP/3sR kSAhC5hv4s+A+yWF7IDw+y8sxk93HadM1ywV2gJrJDluQJ5Jz/gNz98EhYaIhxVZAeaw 2uVQlniVl++3dtB+dTibBbwdFObSEWbtmWk3SVRwHXVhPWLm2rTGwsxTUmBhWw23d37v sZY1jT1lnI3zTormWrWyYRJkMxF+s+PQQAvt1zHTq9pPkRNEuIiYCjqrtOvZ0m22koZT LuEw== X-Gm-Message-State: APjAAAXBGxuWj+lzExIRZU33DzFoXkLm84c+1dlZLGPQP+dx87tu7pK2 uEAJuh8zp/v56OhSvACgXtkjdQ== X-Google-Smtp-Source: APXvYqwpd7vS0LRg5oITH/nfFBUXRzWmk9UAeFv1TcmYUsmKHnazMLOnFGlOmL6kk7iKgRhpY4SaJw== X-Received: by 2002:a1c:a7c6:: with SMTP id q189mr19095355wme.146.1565009334383; Mon, 05 Aug 2019 05:48:54 -0700 (PDT) Received: from [10.1.4.98] (lmontsouris-657-1-212-31.w90-63.abo.wanadoo.fr. [90.63.244.31]) by smtp.gmail.com with ESMTPSA id i66sm151649804wmi.11.2019.08.05.05.48.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Aug 2019 05:48:53 -0700 (PDT) Subject: Re: [PATCH v2 2/6] thermal: amlogic: Add thermal driver to support G12 SoCs To: Martin Blumenstingl References: <20190731153529.30159-1-glaroque@baylibre.com> <20190731153529.30159-3-glaroque@baylibre.com> From: guillaume La Roque Message-ID: <14e14cd9-46bd-0d43-654c-6db64397f5c7@baylibre.com> Date: Mon, 5 Aug 2019 14:48:53 +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: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190805_054856_246753_E1DED7C9 X-CRM114-Status: GOOD ( 34.85 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-pm@vger.kernel.org, khilman@baylibre.com, daniel.lezcano@linaro.org, linux-kernel@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org SGkgTWFydGluLAoKYWdhaW4gdGhhbmtzIGZvciB5b3VyIHJldmlldy4KCk9uIDgvMy8xOSA4OjI0 IFBNLCBNYXJ0aW4gQmx1bWVuc3RpbmdsIHdyb3RlOgo+IEhpIEd1aWxsYXVtZSwKPgo+IChJIHN0 aWxsIGRvbid0IGhhdmUgYW55IGV4cGVyaWVuY2Ugd2l0aCB0aGUgdGhlcm1hbCBmcmFtZXdvcmss IHNvCj4gYmVsb3cgYXJlIHNvbWUgZ2VuZXJhbCBjb21tZW50cykKPgo+IE9uIFdlZCwgSnVsIDMx LCAyMDE5IGF0IDU6MzYgUE0gR3VpbGxhdW1lIExhIFJvcXVlCj4gPGdsYXJvcXVlQGJheWxpYnJl LmNvbT4gd3JvdGU6Cj4gSSB3b3VsZCBhZGQgYSBwYXRjaCBkZXNjcmlwdGlvbiBoZXJlOgo+ICIK PiBBbWxvZ2ljIEcxMkEgYW5kIEcxMkIgU29DcyBpbnRlZ3JhdGUgdHdvIHRoZXJtYWwgc2Vuc29y cyB3aXRoIHRoZSBzYW1lIGRlc2lnbi4KPiBPbmUgaXMgbG9jYXRlZCBjbG9zZSB0byB0aGUgRERS IChjb250cm9sbGVyPykgYW5kIHRoZSBvdGhlciBvbmUgaXMKPiBsb2NhdGVkIGNsb3NlIHRvIHRo ZSBQTExzIChiZXR3ZWVuIHRoZSBDUFUgYW5kIEdQVSkuCj4KPiBUaGUgY2FsaWJyYXRpb24gZGF0 YSBmb3IgZWFjaCBvZiB0aGUgdGhlcm1hbCBzZW5zb3JzIGluc3RhbmNlIGlzCj4gc3RvcmVkIGlu IGEgZGlmZmVyZW50IGxvY2F0aW9uIHdpdGhpbiB0aGUgQU8gcmVnaW9uLgo+Cj4gSW1wbGVtZW50 IHJlYWRpbmcgdGhlIHRlbXBlcmF0dXJlIGZyb20gZWFjaCB0aGVybWFsIHNlbnNvci4KPgo+IFRo ZSBJUCBibG9jayBoYXMgbW9yZSBmdW5jdGlvbmFsaXR5LCB3aGljaCBtYXkgYmUgYWRkZWQgdG8g dGhpcyBkcml2ZXIKPiBpbiB0aGUgZnV0dXJlOgo+IC0gcmVhZGluZyB1cCB0byAxNiBzdG9yZWQg dGVtcGVyYXR1cmUgc2FtcGxlcwoKaXQncyBub3Qgd29ya2luZywgeW91IGNhbiB2ZXJpZnkgaXQg aWYgeW91IGNoZWNrIHRoZSByZWdtYXAgZGVmaW5lIGluIHRoZSBkcml2ZXIuIGluIGZhY3QgdGVt cCBpcyBvbmx5IHdyaXRlIGluIG9uZSByZWdpc3RlciwgaXQncyBjb25maXJtZWQgYnkgYW1sb2dp Yy4KCj4gLSBjaGlwIHJlc2V0IHdoZW4gdGhlIHRlbXBlcmF0dXJlIGV4Y2VlZHMgYSBjb25maWd1 cmFibGUgdGhyZXNob2xkCj4gLSB1cCB0byBmb3VyIGludGVycnVwdHMgd2hlbiB0aGUgdGVtcGVy YXR1cmUgaGFzIHJpc2VuIGFib3ZlIGEKPiBjb25maWd1cmFibGUgdGhyZXNob2xkCj4gLSB1cCB0 byBmb3VyIGludGVycnVwdHMgd2hlbiB0aGUgdGVtcGVyYXR1cmUgaGFzIGZhbGxlbiBiZWxvdyBh Cj4gY29uZmlndXJhYmxlIHRocmVzaG9sZAo+ICIKCmFncmVlZCB3aXRoIHlvdSB0byBhZGQgZGVz Y3JpcHRpb27CoCBhbmQgb3B0aW9uYWwgd2l0aG91dCAxNiByZWdpc3RlciBwYXJ0LgoKPgo+PiBT aWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTGEgUm9xdWUgPGdsYXJvcXVlQGJheWxpYnJlLmNvbT4K Pj4gLS0tCj4+ICBkcml2ZXJzL3RoZXJtYWwvS2NvbmZpZyAgICAgICAgICAgfCAgMTEgKwo+PiAg ZHJpdmVycy90aGVybWFsL01ha2VmaWxlICAgICAgICAgIHwgICAxICsKPj4gIGRyaXZlcnMvdGhl cm1hbC9hbWxvZ2ljX3RoZXJtYWwuYyB8IDMzMiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPj4gIDMgZmlsZXMgY2hhbmdlZCwgMzQ0IGluc2VydGlvbnMoKykKPj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL3RoZXJtYWwvYW1sb2dpY190aGVybWFsLmMKPj4KPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvdGhlcm1hbC9LY29uZmlnIGIvZHJpdmVycy90aGVybWFsL0tjb25maWcKPj4g aW5kZXggOTk2NjM2NGE2ZGViLi4wZjMxYmI0YmMzNzIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv dGhlcm1hbC9LY29uZmlnCj4+ICsrKyBiL2RyaXZlcnMvdGhlcm1hbC9LY29uZmlnCj4+IEBAIC0z NDgsNiArMzQ4LDE3IEBAIGNvbmZpZyBNVEtfVEhFUk1BTAo+PiAgICAgICAgICAgRW5hYmxlIHRo aXMgb3B0aW9uIGlmIHlvdSB3YW50IHRvIGhhdmUgc3VwcG9ydCBmb3IgdGhlcm1hbCBtYW5hZ2Vt ZW50Cj4+ICAgICAgICAgICBjb250cm9sbGVyIHByZXNlbnQgaW4gTWVkaWF0ZWsgU29Dcwo+Pgo+ PiArY29uZmlnIEFNTE9HSUNfVEhFUk1BTAo+IHdlIHR5cGljYWxseSB1c2UgIk1FU09OIiBpbiB0 aGUgS2NvbmZpZyBzeW1ib2xzOgo+ICQgZ3JlcCAtYyBBTUxPR0lDIC5jb25maWcKPiAxCj4gJCBn cmVwIC1jIE1FU09OIC5jb25maWcKPiAzMwo+Cj4gSSBhbHNvIHdvbmRlciBpZiB3ZSBzaG91bGQg YWRkIEcxMiBvciBHMTJBIHNvIHdlIGRvbid0IGNvbmZsaWN0IHdpdGgKPiB1cGNvbWluZyB0aGVy bWFsIHNlbnNvcnMgd2l0aCBhIGRpZmZlcmVudCBkZXNpZ24gKGFzc3VtaW5nIHRoYXQgdGhpcwo+ IHdpbGwgYmUgYSB0aGluZykuCj4gZm9yIGV4YW1wbGUgd2UgYWxyZWFkeSBoYXZlIHRocmVlIGRp ZmZlcmVudCBVU0IyIFBIWSBkcml2ZXJzCj4KPiBbLi4uXQoKaSBjaGVjayB3aXRoIE5laWwgYW5k IGZvciBuZXcgZmFtaWx5IGl0J3MgYmV0dGVyIHRvIHVzZSBBbWxvZ2ljIGluc3RlYWQgb2YgbWVz b24uCgppIGRvbid0IGFkZCBHMTIgYmVjYXVzZSB3ZSBhbHJlYWR5IGtub3cgaXQncyBzYW1lIHNl bnNvcnMgZm9yIFNNMSBTb0MgZmFtaWx5IFswXS4KCj4+ICsvKgo+PiArICogQ2FsY3VsYXRlIGEg dGVtcGVyYXR1cmUgdmFsdWUgZnJvbSBhIHRlbXBlcmF0dXJlIGNvZGUuCj4+ICsgKiBUaGUgdW5p dCBvZiB0aGUgdGVtcGVyYXR1cmUgaXMgZGVncmVlIENlbHNpdXMuCj4gaXMgaXQgcmVhbGx5IGRl Z3JlZSBDZWxzaXVzIG9yIG1pbGxpY2Vsc2l1cz8KZ29vZCBwb2ludCBpdCdzIGluIG1pbGxpY2Vs c2l1cywgaSB3aWxsIGZpeCBhbGwKPgo+PiArICovCj4+ICtzdGF0aWMgaW50IGNvZGVfdG9fdGVt cChzdHJ1Y3QgYW1sb2dpY190aGVybWFsICpwZGF0YSwgaW50IHRlbXBfY29kZSkKPiBQUkVGSVhf dGhlcm1hbF9jb2RlX3RvX21pbGxpY2Vsc2l1cz8Kb2sKPiBbLi4uXQo+PiArc3RhdGljIGludCBh bWxvZ2ljX3RoZXJtYWxfZW5hYmxlKHN0cnVjdCBhbWxvZ2ljX3RoZXJtYWwgKmRhdGEpCj4+ICt7 Cj4+ICsgICAgICAgY2xrX3ByZXBhcmVfZW5hYmxlKGRhdGEtPmNsayk7Cj4gbm8gY2xvY2sgZXJy b3IgaGFuZGxpbmc/CgoKaSB3aWxsIGZpeAoKPgo+PiArICAgICAgIHJlZ21hcF91cGRhdGVfYml0 cyhkYXRhLT5yZWdtYXAsIFRTRU5TT1JfQ0ZHX1JFRzEsCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgIFRTRU5TT1JfQ0ZHX1JFRzFfRU5BQkxFLCBUU0VOU09SX0NGR19SRUcxX0VOQUJMRSk7 Cj4+ICsKPj4gKyAgICAgICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBhbWxv Z2ljX3RoZXJtYWxfZGlzYWJsZShzdHJ1Y3QgYW1sb2dpY190aGVybWFsICpkYXRhKQo+PiArewo+ PiArICAgICAgIHJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5yZWdtYXAsIFRTRU5TT1JfQ0ZHX1JF RzEsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFRTRU5TT1JfQ0ZHX1JFRzFfRU5BQkxF LCAwKTsKPj4gKyAgICAgICBjbGtfZGlzYWJsZShkYXRhLT5jbGspOwo+IGVpdGhlciBjbGtfZGlz YWJsZV91bnByZXBhcmUgaGVyZSBvciB1c2Ugb25seSBjbGtfZW5hYmxlIGluCj4gYW1sb2dpY190 aGVybWFsX2VuYWJsZSBhbmQgbW92ZSBwcmVwYXJlL3VucHJlcGFyZSBzb21ld2hlcmUgZWxzZQpp IHdpbGwgYWxpZ24gd2l0aCBlbmFibGUgYW5kIHVzZSBjbGtfZGlzYWJsZV91bnByZXBhcmUKPgo+ PiArCj4+ICsgICAgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgYW1sb2dp Y190aGVybWFsX2dldF90ZW1wKHZvaWQgKmRhdGEsIGludCAqdGVtcCkKPj4gK3sKPj4gKyAgICAg ICB1bnNpZ25lZCBpbnQgdHZhbHVlOwo+PiArICAgICAgIHN0cnVjdCBhbWxvZ2ljX3RoZXJtYWwg KnBkYXRhID0gZGF0YTsKPj4gKwo+PiArICAgICAgIGlmICghZGF0YSkKPj4gKyAgICAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOwo+PiArCj4+ICsgICAgICAgcmVnbWFwX3JlYWQocGRhdGEtPnJl Z21hcCwgVFNFTlNPUl9TVEFUMCwgJnR2YWx1ZSk7Cj4+ICsgICAgICAgKnRlbXAgPSBjb2RlX3Rv X3RlbXAocGRhdGEsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHZhbHVlICYgVFNF TlNPUl9SRUFEX1RFTVBfTUFTSyk7Cj4gbWF5YmUgc2ltcGx5IG1vdmUgdGhlIGltcGxlbWVudGF0 aW9uIGZyb20gY29kZV90b190ZW1wIGhlcmU/Cgpmb3IgdGhlIG9wdGlvbmFsIGZ1bmN0aW9uIGl0 IGNvdWxkIGJlIGEgcHJvYmxlbSBpZiBpIG1vdmUgYWxsIGluIGNvZGVfdG9fdGVtcC4KCmkgcHJl ZmVyIHRvIGhhdmUgYSBmdW5jdGlvbiB3aGljaCBhcmUganVzdCBkbyB0aGUgY29udmVyc2lvbi4K Cj4KPiBbLi4uXQo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBhbWxvZ2ljX3RoZXJtYWxfZGF0YSBh bWxvZ2ljX3RoZXJtYWxfZzEyX2NwdV9wYXJhbSA9IHsKPj4gKyAgICAgICAudV9lZnVzZV9vZmYg PSAweDEyOCwKPj4gKyAgICAgICAuc29jID0gJmFtbG9naWNfdGhlcm1hbF9nMTIsCj4gYmFzZWQg b24gdGhlIHZhcmlhYmxlIG5hbWUgSSBleHBlY3RlZCB0aGlzIHRvIGJlIGFuIGVudW0gb2Ygc29t ZSBzb3J0Lgo+IEkgd291bGQgaGF2ZSBleHBlY3RlZCBpdCB0byBiZSBjYWxsZWQgY2FsaWJyYXRp b25fcGFyYW1ldGVycyBvcgo+IHNpbWlsYXIgdG8gbWF0Y2ggdGhlIGV4cGxhbmF0aW9uIGluIHRo ZSBkcml2ZXIgZGVzY3JpcHRpb24KPiAobm8gbmVlZCB0byBjaGFuZ2UgaXQgaWYgeW91IHByZWZl ciBpdCBsaWtlIHRoaXMsIEkganVzdCB3YW50IHRvIG1ha2UKPiB5b3UgYXdhcmUgb2YgdGhpcykK b2sgdG8gcmVuYW1lIHN0cnVjdHVyZSBuYW1lCj4KPj4gKyAgICAgICAucmVnbWFwX2NvbmZpZyA9 ICZhbWxvZ2ljX3RoZXJtYWxfcmVnbWFwX2NvbmZpZ19nMTIsCj4gaWYgcmVnbWFwX2NvbmZpZyBp cyBhbHdheXMgdGhlIHNhbWUgeW91IG1heSBhbHNvIHBhc3MgaXQgZGlyZWN0bHkgdG8KPiBkZXZt X3JlZ21hcF9pbml0X21taW8KCml0J3MgdGhlIHNhbWUgZm9yIG5vdyBidXQgd2UgZG9uJ3Qga25v dyBpZiBpbiB0aGUgZnV0dXJlwqAgU29DcyB1c2Ugc2FtZSByZWdtYXAuCgoKPgo+PiArfTsKPj4g Kwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBhbWxvZ2ljX3RoZXJtYWxfZGF0YSBhbWxvZ2ljX3Ro ZXJtYWxfZzEyX2Rkcl9wYXJhbSA9IHsKPj4gKyAgICAgICAudV9lZnVzZV9vZmYgPSAweEYwLAo+ IEkgYmVsaWV2ZSB3ZSB1c2UgbG93ZXItY2FzZSBoZXggZXZlcnl3aGVyZSBlbHNlCj4KPiBbLi4u XQp3aWxsIGZpeAo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgb2ZfYW1sb2dp Y190aGVybWFsX21hdGNoW10gPSB7Cj4+ICsgICAgICAgewo+PiArICAgICAgICAgICAgICAgLmNv bXBhdGlibGUgPSAiYW1sb2dpYyxnMTItZGRyLXRoZXJtYWwiLAo+PiArICAgICAgICAgICAgICAg LmRhdGEgPSAmYW1sb2dpY190aGVybWFsX2cxMl9kZHJfcGFyYW0sCj4+ICsgICAgICAgfSwKPj4g KyAgICAgICB7Cj4+ICsgICAgICAgICAgICAgICAuY29tcGF0aWJsZSA9ICJhbWxvZ2ljLGcxMi1j cHUtdGhlcm1hbCIsCj4+ICsgICAgICAgICAgICAgICAuZGF0YSA9ICZhbWxvZ2ljX3RoZXJtYWxf ZzEyX2NwdV9wYXJhbSwKPj4gKyAgICAgICB9LAo+PiArICAgICAgIHsgLyogZW5kICovIH0KPiBv dGhlciBkcml2ZXJzIHVzZSAic2VudGluZWwiLCBidXQgcGVyc29uYWxseSBJIGhhdmUgbm8gcHJl ZmVyZW5jZSBoZXJlCj4KPiBbLi4uXQpzYW1lIGZvciBtZSBpIHdpbGwgZG8gc2FtZSBhcyBvdGhl ciBkcml2ZXJzCj4+ICsgICAgICAgcGRhdGEtPnR6ZCA9IGRldm1fdGhlcm1hbF96b25lX29mX3Nl bnNvcl9yZWdpc3Rlcgo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgmcGRldi0+ ZGV2LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZGF0YSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmFtbG9naWNfdGhlcm1hbF9vcHMpOwo+IEkgYmVsaWV2ZSB0aGUgb3BlbmluZyBi cmFjZSBoYXMgdG8gZ28gb250byB0aGUgc2FtZSBsaW5lIGFzIHRoZSBmdW5jdGlvbiBuYW1lCj4K PiBbLi4uXQp3aWxsIGZpeAo+PiArICAgICAgIHJldCA9IGFtbG9naWNfdGhlcm1hbF9lbmFibGUo cGRhdGEpOwo+PiArICAgICAgIGlmIChyZXQpCj4+ICsgICAgICAgICAgICAgICBjbGtfdW5wcmVw YXJlKHBkYXRhLT5jbGspOwo+IGNsa19kaXNhYmxlX3VucHJlcGFyZSwgZWxzZSB5b3UnbGwgbGVh dmUgdGhlIGNsb2NrIHByZXBhcmVkCndpbGwgZml4Cj4KPj4gKyNpZmRlZiBDT05GSUdfUE1fU0xF RVAKPj4gK3N0YXRpYyBpbnQgYW1sb2dpY190aGVybWFsX3N1c3BlbmQoc3RydWN0IGRldmljZSAq ZGV2KQo+PiArewo+PiArICAgICAgIHN0cnVjdCBhbWxvZ2ljX3RoZXJtYWwgKmRhdGEgPSBkZXZf Z2V0X2RydmRhdGEoZGV2KTsKPj4gKwo+PiArICAgICAgIHJldHVybiBhbWxvZ2ljX3RoZXJtYWxf ZGlzYWJsZShkYXRhKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBhbWxvZ2ljX3RoZXJtYWxf cmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgYW1sb2dp Y190aGVybWFsICpkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4+ICsKPj4gKyAgICAgICBy ZXR1cm4gYW1sb2dpY190aGVybWFsX2VuYWJsZShkYXRhKTsKPj4gK30KPj4gKyNlbmRpZgo+IGlu c3RlYWQgb2YgdXNpbmcgYW4gI2lmZGVmIGhlcmUgYW5ub3RhdGUgdGhlIHN1c3BlbmQvcmVzdW1l IGZ1bmN0aW9ucwo+IHdpdGggX19tYXliZV91bnVzZWQsIHNlZSBbMF0Kd2lsbCBmaXgKPgo+Cj4g TWFydGluCj4KPgo+IFswXSBodHRwczovL2xvcmUua2VybmVsLm9yZy9wYXRjaHdvcmsvcGF0Y2gv NzMyOTgxLwoKWzBdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWFybS1rZXJuZWwvMjAx OTA3MDExMDQ3MDUuMTgyNzEtMS1uYXJtc3Ryb25nQGJheWxpYnJlLmNvbS8KCgp0aGFua3MKCkd1 aWxsYXVtZQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LWFtbG9naWMgbWFpbGluZyBsaXN0CmxpbnV4LWFtbG9naWNAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFt bG9naWMK