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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 03155C433F5 for ; Mon, 18 Oct 2021 15:40:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CE95560F8F for ; Mon, 18 Oct 2021 15:40:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231741AbhJRPmT (ORCPT ); Mon, 18 Oct 2021 11:42:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37590 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232408AbhJRPmR (ORCPT ); Mon, 18 Oct 2021 11:42:17 -0400 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 67093C06161C for ; Mon, 18 Oct 2021 08:40:05 -0700 (PDT) Received: by mail-wr1-x429.google.com with SMTP id i12so42114877wrb.7 for ; Mon, 18 Oct 2021 08:40:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=pjlDidMjUP54gNnWHEztCEIW6CfLvZ4h/Q6wK7PbSKk=; b=VLCqQd5lCp6WvwDEA5GFEkCQ5+CNUFltDinOxOC907MtLaXIT3zPBANhDsE+kN5JX4 asJTtKUMb1XGdoXVRfyK4r8kfe2BPyAGwlAdr75C9BHOoHk/k5VwaUaE04m2tfo9PunI 6Wzotf50yIxvDiEYI31iRmyuRzp03ORnGdO6j2rgnIPV3iUlFegzOyjH0SLrgudmv238 a03KzWaoVOEJuwS2y37B29deujv3DSwOM/f+KxuW9NQSDGsnBp2UHqg3NyXnWQ+mJtBl 0Np2YQwT8YekFnswy0KfM5FQmgy/LkAKJZmApN3TkmIGxirZYE70F+V6C8cqO2NY0hzW HliA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=pjlDidMjUP54gNnWHEztCEIW6CfLvZ4h/Q6wK7PbSKk=; b=FTI1rkvSRDTWqvgTBM6xLinsT5dRIG2f92zZD6vUhswPxqUJ8jXQzAJNlwPYPmZmyE PDdOWaRvKfZnVbcGsdxsuyAoBm5oJp335FwGk5RPglu8wZK7ZXGgvB96TBbxh1j3UisT QMoHS0dU7oh9dQe/K+inZLrhCm/2Dk6Ak/l8okEUNIsheVvrCsEoNXJoaFIfki0qHKwc rROzBnWi3myo5FBkpPX6Nh0uQH4v2SQKN69FWb2Z0Q+YfFVFfHzCMq4NqPD87GZ4s562 MPSkutlU1/gFir/15wKrPsqWoppwiYKqgV7JT2363eSTDJiOXwcuLHDuPDDJsIAjFapp dJZA== X-Gm-Message-State: AOAM530gfoU1ZecgMvMXJre1VgdBr9EB1B2uiMWjhKuoxuFlAfEFkoVT 93cR49fq9km4aKGptzDrAc5ylQ== X-Google-Smtp-Source: ABdhPJy/pQcdiOs4mcK3rfZtbnFO8PF2JEU9NxxxCX5B3S5ikVNoWX+n9XNbC5OEjQ4lOu/gwDIDPA== X-Received: by 2002:a05:6000:1541:: with SMTP id 1mr35650882wry.273.1634571603956; Mon, 18 Oct 2021 08:40:03 -0700 (PDT) Received: from blmsp ([2a02:2454:3e6:c900:5142:5fbb:5821:5dc3]) by smtp.gmail.com with ESMTPSA id u5sm12227325wmm.39.2021.10.18.08.40.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Oct 2021 08:40:02 -0700 (PDT) Date: Mon, 18 Oct 2021 17:40:01 +0200 From: Markus Schneider-Pargmann To: Daniel Lezcano Cc: Zhang Rui , Matthias Brugger , Rob Herring , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, fparent@baylibre.com, khilman@baylibre.com Subject: Re: [PATCH 3/3] thermal: mediatek: add MT8365 thermal driver support Message-ID: <20211018154001.sj7nc575hln3jkel@blmsp> References: <20211014135636.3644166-1-msp@baylibre.com> <20211014135636.3644166-4-msp@baylibre.com> <33815817-0f64-836a-5417-c614e66e231e@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <33815817-0f64-836a-5417-c614e66e231e@linaro.org> Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Hi Daniel, On Sat, Oct 16, 2021 at 10:06:28PM +0200, Daniel Lezcano wrote: > On 14/10/2021 15:56, Markus Schneider-Pargmann wrote: > > From: Fabien Parent > > > > mt8365 is similar to the other SoCs supported by the driver. It has only > > one bank and 3 sensors that can be multiplexed. > > > > Additionally the buffer has to be enabled and connected to AUXADC > > similar to the V2 version but at a different register offset. That's why > > I added three new configuration values to define the register, mask and > > bits to be set to be able to use it for both V2 and mt8365. > > > > Signed-off-by: Fabien Parent > > [Added apmixed control register logic] > > Signed-off-by: Markus Schneider-Pargmann > > --- > > drivers/thermal/mtk_thermal.c | 91 ++++++++++++++++++++++++++++++++--- > > 1 file changed, 85 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/thermal/mtk_thermal.c b/drivers/thermal/mtk_thermal.c > > index 93ee043d70da..7a75ae8231f2 100644 > > --- a/drivers/thermal/mtk_thermal.c > > +++ b/drivers/thermal/mtk_thermal.c > > @@ -31,6 +31,7 @@ > > #define AUXADC_CON2_V 0x010 > > #define AUXADC_DATA(channel) (0x14 + (channel) * 4) > > > > +#define APMIXED_SYS_TS_CON0 0x600 > > #define APMIXED_SYS_TS_CON1 0x604 > > > > /* Thermal Controller Registers */ > > @@ -245,6 +246,17 @@ enum mtk_thermal_version { > > /* The calibration coefficient of sensor */ > > #define MT8183_CALIBRATION 153 > > > > +/* MT8365 */ > > +#define MT8365_TEMP_AUXADC_CHANNEL 11 > > +#define MT8365_CALIBRATION 164 > > +#define MT8365_NUM_CONTROLLER 1 > > +#define MT8365_NUM_BANKS 1 > > +#define MT8365_NUM_SENSORS 3 > > +#define MT8365_NUM_SENSORS_PER_ZONE 3 > > You can get rid of these macros by using ARRAY_SIZE. > > eg. > > static const int mt8365_bank_data[] = { > MT8365_TS1, > MT8365_TS2, > MT8365_TS3 > }; > > ... > > .num_sensors = ARRAY_SIZE(mt8365_bank_data); > ... > Thanks, done, I also used ARRAY_SIZE() on the other array definitions to enforce that they have the correct size. > > > +#define MT8365_TS1 0 > > +#define MT8365_TS2 1 > > +#define MT8365_TS3 2 > > + > > struct mtk_thermal; > > > > struct thermal_bank_cfg { > > @@ -271,6 +283,9 @@ struct mtk_thermal_data { > > bool need_switch_bank; > > struct thermal_bank_cfg bank_data[MAX_NUM_ZONES]; > > enum mtk_thermal_version version; > > + u32 apmixed_buffer_ctl_reg; > > + u32 apmixed_buffer_ctl_mask; > > + u32 apmixed_buffer_ctl_set; > > }; > > > > struct mtk_thermal { > > @@ -386,6 +401,24 @@ static const int mt7622_mux_values[MT7622_NUM_SENSORS] = { 0, }; > > static const int mt7622_vts_index[MT7622_NUM_SENSORS] = { VTS1 }; > > static const int mt7622_tc_offset[MT7622_NUM_CONTROLLER] = { 0x0, }; > > > > +/* MT8365 thermal sensor data */ > > +static const int mt8365_bank_data[MT8365_NUM_SENSORS] = { > > + MT8365_TS1, MT8365_TS2, MT8365_TS3 > > +}; > > + > > +static const int mt8365_msr[MT8365_NUM_SENSORS_PER_ZONE] = { > > + TEMP_MSR0, TEMP_MSR1, TEMP_MSR2 > > +}; > > + > > +static const int mt8365_adcpnp[MT8365_NUM_SENSORS_PER_ZONE] = { > > + TEMP_ADCPNP0, TEMP_ADCPNP1, TEMP_ADCPNP2 > > +}; > > + > > +static const int mt8365_mux_values[MT8365_NUM_SENSORS] = { 0, 1, 2 }; > > +static const int mt8365_tc_offset[MT8365_NUM_CONTROLLER] = { 0 }; > > + > > +static const int mt8365_vts_index[MT8365_NUM_SENSORS] = { VTS1, VTS2, VTS3 }; > > + > > /* > > * The MT8173 thermal controller has four banks. Each bank can read up to > > * four temperature sensors simultaneously. The MT8173 has a total of 5 > > @@ -460,6 +493,40 @@ static const struct mtk_thermal_data mt2701_thermal_data = { > > .version = MTK_THERMAL_V1, > > }; > > > > +/* > > + * The MT8365 thermal controller has one bank, which can read up to > > + * four temperature sensors simultaneously. The MT8365 has a total of 3 > > + * temperature sensors. > > + * > > + * The thermal core only gets the maximum temperature of this one bank, > > + * so the bank concept wouldn't be necessary here. However, the SVS (Smart > > + * Voltage Scaling) unit makes its decisions based on the same bank > > + * data. > > + */ > > +static const struct mtk_thermal_data mt8365_thermal_data = { > > + .auxadc_channel = MT8365_TEMP_AUXADC_CHANNEL, > > + .num_banks = MT8365_NUM_BANKS, > > + .num_sensors = MT8365_NUM_SENSORS, > > + .vts_index = mt8365_vts_index, > > + .cali_val = MT8365_CALIBRATION, > > + .num_controller = MT8365_NUM_CONTROLLER, > > + .controller_offset = mt8365_tc_offset, > > + .need_switch_bank = false, > > + .bank_data = { > > + { > > + .num_sensors = MT8365_NUM_SENSORS, > > + .sensors = mt8365_bank_data > > + }, > > + }, > > + .msr = mt8365_msr, > > + .adcpnp = mt8365_adcpnp, > > + .sensor_mux_values = mt8365_mux_values, > > + .version = MTK_THERMAL_V1, > > + .apmixed_buffer_ctl_reg = APMIXED_SYS_TS_CON0, > > + .apmixed_buffer_ctl_mask = ~(u32)GENMASK(29, 28), > > + .apmixed_buffer_ctl_set = 0, > > +}; > > + > > /* > > * The MT2712 thermal controller has one bank, which can read up to > > * four temperature sensors simultaneously. The MT2712 has a total of 4 > > @@ -514,6 +581,9 @@ static const struct mtk_thermal_data mt7622_thermal_data = { > > .adcpnp = mt7622_adcpnp, > > .sensor_mux_values = mt7622_mux_values, > > .version = MTK_THERMAL_V2, > > + .apmixed_buffer_ctl_reg = APMIXED_SYS_TS_CON1, > > + .apmixed_buffer_ctl_mask = ~0x37, > > + .apmixed_buffer_ctl_set = 0x1, > > Please change those literal into macros done. > > > }; > > > > /* > > @@ -958,19 +1028,27 @@ static const struct of_device_id mtk_thermal_of_match[] = { > > { > > .compatible = "mediatek,mt8183-thermal", > > .data = (void *)&mt8183_thermal_data, > > + }, > > + { > > + .compatible = "mediatek,mt8365-thermal", > > + .data = (void *)&mt8365_thermal_data, > > Is this cast really needed ? No, removed and created another patch to fix all other ones. Would look weird otherwise. > > > }, { > > }, > > }; > > MODULE_DEVICE_TABLE(of, mtk_thermal_of_match); > > > > -static void mtk_thermal_turn_on_buffer(void __iomem *apmixed_base) > > +static void mtk_thermal_turn_on_buffer(struct mtk_thermal *mt, > > + void __iomem *apmixed_base) > > { > > int tmp; > > > > - tmp = readl(apmixed_base + APMIXED_SYS_TS_CON1); > > - tmp &= ~(0x37); > > - tmp |= 0x1; > > - writel(tmp, apmixed_base + APMIXED_SYS_TS_CON1); > > + if (!mt->conf->apmixed_buffer_ctl_reg) > > + return; > > + > > + tmp = readl(apmixed_base + mt->conf->apmixed_buffer_ctl_reg); > > + tmp &= mt->conf->apmixed_buffer_ctl_mask; > > + tmp |= mt->conf->apmixed_buffer_ctl_set; > > What is the goal of these two bits operations ? mt7622 needs to unset a few bits and set one bit in this register. mt8365 only unsets bits. For this purpose I created a _mask field to unset bits and a _set field to set bits. Would you suggest a different way? Thanks for your feedback. Best, Markus > > > + writel(tmp, apmixed_base + mt->conf->apmixed_buffer_ctl_reg); > > udelay(200); > > } > > > > @@ -1070,8 +1148,9 @@ static int mtk_thermal_probe(struct platform_device *pdev) > > goto err_disable_clk_auxadc; > > } > > > > + mtk_thermal_turn_on_buffer(mt, apmixed_base); > > + > > if (mt->conf->version == MTK_THERMAL_V2) { > > - mtk_thermal_turn_on_buffer(apmixed_base); > > mtk_thermal_release_periodic_ts(mt, auxadc_base); > > } > > > > > > > -- > Linaro.org │ Open source software for ARM SoCs > > Follow Linaro: Facebook | > Twitter | > Blog 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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8A8B3C433F5 for ; Mon, 18 Oct 2021 15:40:23 +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 4022D60F44 for ; Mon, 18 Oct 2021 15:40:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 4022D60F44 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=FFqGy6lLZ1BhJZ7XZplZVXBSkQBOweq0WogcpM+/yMM=; b=rS9jMO25vrMAhK pQ5wfdCaCTn+HatVYX5edK3CGNL7CfvSEO96IPlCkVdkXBb+IDDagKYPMSOytUSnY/N+sPAesxtV/ t+Tty+cf1fVCalaeUXlCwbqScXbHZtZ27JsuTZNBbF3vPI+b46NezKkZk/S1GowASgn0vqHcRSFYc 89E0chJshNhNFNJaTJ/d/GxxxcA0q8OPF+SfzcBiwHpzgeett4etceU8pPjtwyuwrUDcyAVOhqrtj 5tJu0PYSg5pYRIkTcgIdm24dvgrb4Gf5608VgOiZf+5Mf8gyWmuZ10dPMAEZ/QCZDMjiPpgGNdaBY 8Fwh7uZ5aZ61HOG5k1AQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mcUkD-00GMoV-Vm; Mon, 18 Oct 2021 15:40:09 +0000 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mcUk9-00GMmw-Th for linux-mediatek@lists.infradead.org; Mon, 18 Oct 2021 15:40:08 +0000 Received: by mail-wr1-x434.google.com with SMTP id v17so42147674wrv.9 for ; Mon, 18 Oct 2021 08:40:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=pjlDidMjUP54gNnWHEztCEIW6CfLvZ4h/Q6wK7PbSKk=; b=VLCqQd5lCp6WvwDEA5GFEkCQ5+CNUFltDinOxOC907MtLaXIT3zPBANhDsE+kN5JX4 asJTtKUMb1XGdoXVRfyK4r8kfe2BPyAGwlAdr75C9BHOoHk/k5VwaUaE04m2tfo9PunI 6Wzotf50yIxvDiEYI31iRmyuRzp03ORnGdO6j2rgnIPV3iUlFegzOyjH0SLrgudmv238 a03KzWaoVOEJuwS2y37B29deujv3DSwOM/f+KxuW9NQSDGsnBp2UHqg3NyXnWQ+mJtBl 0Np2YQwT8YekFnswy0KfM5FQmgy/LkAKJZmApN3TkmIGxirZYE70F+V6C8cqO2NY0hzW HliA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=pjlDidMjUP54gNnWHEztCEIW6CfLvZ4h/Q6wK7PbSKk=; b=YeP7mQgTESCN4Vho256O2f3yib2z7yMiiFJKtnJKSzs4PsQKbxCmXvy/cjcXH9lnMP cNlPXKCaL44IJNlxDj4FYBalckJ3oVU3jUFYGiESES1FXYS0xohhWO0Vi4WoNJB8Lm3Y u4VviQ/KclrHeKTHxDyiJjAayoVy51zI3UJJUCZt29xnZRlW8ioaKSs2URx2Ex/128Sr Pv3aTWIw0UkkEZzfmanJ8JF3E2fE0fzJgH9+8hYvyKAjdq1XyY23ki+yLttlvyXozF7/ x2wZTC6KJFatGGzxX8qkYy9kyrSROOuf52CIMen7yosRwCL0bh0AlMd0dGoj9xXUnWqn L+KA== X-Gm-Message-State: AOAM533FTanNU1n65c0rKbvJUqGAOtApE6u+YUyASh80BGleXiUwVrT6 swgcpazVbu8R9JmWB3R0WL9ylQ== X-Google-Smtp-Source: ABdhPJy/pQcdiOs4mcK3rfZtbnFO8PF2JEU9NxxxCX5B3S5ikVNoWX+n9XNbC5OEjQ4lOu/gwDIDPA== X-Received: by 2002:a05:6000:1541:: with SMTP id 1mr35650882wry.273.1634571603956; Mon, 18 Oct 2021 08:40:03 -0700 (PDT) Received: from blmsp ([2a02:2454:3e6:c900:5142:5fbb:5821:5dc3]) by smtp.gmail.com with ESMTPSA id u5sm12227325wmm.39.2021.10.18.08.40.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Oct 2021 08:40:02 -0700 (PDT) Date: Mon, 18 Oct 2021 17:40:01 +0200 From: Markus Schneider-Pargmann To: Daniel Lezcano Cc: Zhang Rui , Matthias Brugger , Rob Herring , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, fparent@baylibre.com, khilman@baylibre.com Subject: Re: [PATCH 3/3] thermal: mediatek: add MT8365 thermal driver support Message-ID: <20211018154001.sj7nc575hln3jkel@blmsp> References: <20211014135636.3644166-1-msp@baylibre.com> <20211014135636.3644166-4-msp@baylibre.com> <33815817-0f64-836a-5417-c614e66e231e@linaro.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <33815817-0f64-836a-5417-c614e66e231e@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211018_084006_071502_04712BF9 X-CRM114-Status: GOOD ( 38.75 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org SGkgRGFuaWVsLAoKT24gU2F0LCBPY3QgMTYsIDIwMjEgYXQgMTA6MDY6MjhQTSArMDIwMCwgRGFu aWVsIExlemNhbm8gd3JvdGU6Cj4gT24gMTQvMTAvMjAyMSAxNTo1NiwgTWFya3VzIFNjaG5laWRl ci1QYXJnbWFubiB3cm90ZToKPiA+IEZyb206IEZhYmllbiBQYXJlbnQgPGZwYXJlbnRAYmF5bGli cmUuY29tPgo+ID4gCj4gPiBtdDgzNjUgaXMgc2ltaWxhciB0byB0aGUgb3RoZXIgU29DcyBzdXBw b3J0ZWQgYnkgdGhlIGRyaXZlci4gSXQgaGFzIG9ubHkKPiA+IG9uZSBiYW5rIGFuZCAzIHNlbnNv cnMgdGhhdCBjYW4gYmUgbXVsdGlwbGV4ZWQuCj4gPiAKPiA+IEFkZGl0aW9uYWxseSB0aGUgYnVm ZmVyIGhhcyB0byBiZSBlbmFibGVkIGFuZCBjb25uZWN0ZWQgdG8gQVVYQURDCj4gPiBzaW1pbGFy IHRvIHRoZSBWMiB2ZXJzaW9uIGJ1dCBhdCBhIGRpZmZlcmVudCByZWdpc3RlciBvZmZzZXQuIFRo YXQncyB3aHkKPiA+IEkgYWRkZWQgdGhyZWUgbmV3IGNvbmZpZ3VyYXRpb24gdmFsdWVzIHRvIGRl ZmluZSB0aGUgcmVnaXN0ZXIsIG1hc2sgYW5kCj4gPiBiaXRzIHRvIGJlIHNldCB0byBiZSBhYmxl IHRvIHVzZSBpdCBmb3IgYm90aCBWMiBhbmQgbXQ4MzY1Lgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5 OiBGYWJpZW4gUGFyZW50IDxmcGFyZW50QGJheWxpYnJlLmNvbT4KPiA+IFtBZGRlZCBhcG1peGVk IGNvbnRyb2wgcmVnaXN0ZXIgbG9naWNdCj4gPiBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgU2NobmVp ZGVyLVBhcmdtYW5uIDxtc3BAYmF5bGlicmUuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy90aGVy bWFsL210a190aGVybWFsLmMgfCA5MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+ ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL210a190aGVybWFsLmMgYi9kcml2 ZXJzL3RoZXJtYWwvbXRrX3RoZXJtYWwuYwo+ID4gaW5kZXggOTNlZTA0M2Q3MGRhLi43YTc1YWU4 MjMxZjIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3RoZXJtYWwvbXRrX3RoZXJtYWwuYwo+ID4g KysrIGIvZHJpdmVycy90aGVybWFsL210a190aGVybWFsLmMKPiA+IEBAIC0zMSw2ICszMSw3IEBA Cj4gPiAgI2RlZmluZSBBVVhBRENfQ09OMl9WCQkweDAxMAo+ID4gICNkZWZpbmUgQVVYQURDX0RB VEEoY2hhbm5lbCkJKDB4MTQgKyAoY2hhbm5lbCkgKiA0KQo+ID4gIAo+ID4gKyNkZWZpbmUgQVBN SVhFRF9TWVNfVFNfQ09OMAkweDYwMAo+ID4gICNkZWZpbmUgQVBNSVhFRF9TWVNfVFNfQ09OMQkw eDYwNAo+ID4gIAo+ID4gIC8qIFRoZXJtYWwgQ29udHJvbGxlciBSZWdpc3RlcnMgKi8KPiA+IEBA IC0yNDUsNiArMjQ2LDE3IEBAIGVudW0gbXRrX3RoZXJtYWxfdmVyc2lvbiB7Cj4gPiAgLyogVGhl IGNhbGlicmF0aW9uIGNvZWZmaWNpZW50IG9mIHNlbnNvciAgKi8KPiA+ICAjZGVmaW5lIE1UODE4 M19DQUxJQlJBVElPTgkxNTMKPiA+ICAKPiA+ICsvKiBNVDgzNjUgKi8KPiA+ICsjZGVmaW5lIE1U ODM2NV9URU1QX0FVWEFEQ19DSEFOTkVMIDExCj4gPiArI2RlZmluZSBNVDgzNjVfQ0FMSUJSQVRJ T04gMTY0Cj4gPiArI2RlZmluZSBNVDgzNjVfTlVNX0NPTlRST0xMRVIgMQo+ID4gKyNkZWZpbmUg TVQ4MzY1X05VTV9CQU5LUyAxCj4gPiArI2RlZmluZSBNVDgzNjVfTlVNX1NFTlNPUlMgMwo+ID4g KyNkZWZpbmUgTVQ4MzY1X05VTV9TRU5TT1JTX1BFUl9aT05FIDMKPiAKPiBZb3UgY2FuIGdldCBy aWQgb2YgdGhlc2UgbWFjcm9zIGJ5IHVzaW5nIEFSUkFZX1NJWkUuCj4gCj4gZWcuCj4gCj4gc3Rh dGljIGNvbnN0IGludCBtdDgzNjVfYmFua19kYXRhW10gPSB7Cj4gCU1UODM2NV9UUzEsCj4gCU1U ODM2NV9UUzIsCj4gCU1UODM2NV9UUzMKPiB9Owo+IAo+IC4uLgo+IAo+IAkubnVtX3NlbnNvcnMg PSBBUlJBWV9TSVpFKG10ODM2NV9iYW5rX2RhdGEpOwo+IC4uLgo+IAoKVGhhbmtzLCBkb25lLCBJ IGFsc28gdXNlZCBBUlJBWV9TSVpFKCkgb24gdGhlIG90aGVyIGFycmF5IGRlZmluaXRpb25zIHRv CmVuZm9yY2UgdGhhdCB0aGV5IGhhdmUgdGhlIGNvcnJlY3Qgc2l6ZS4KCj4gCj4gPiArI2RlZmlu ZSBNVDgzNjVfVFMxIDAKPiA+ICsjZGVmaW5lIE1UODM2NV9UUzIgMQo+ID4gKyNkZWZpbmUgTVQ4 MzY1X1RTMyAyCj4gPiArCj4gPiAgc3RydWN0IG10a190aGVybWFsOwo+ID4gIAo+ID4gIHN0cnVj dCB0aGVybWFsX2JhbmtfY2ZnIHsKPiA+IEBAIC0yNzEsNiArMjgzLDkgQEAgc3RydWN0IG10a190 aGVybWFsX2RhdGEgewo+ID4gIAlib29sIG5lZWRfc3dpdGNoX2Jhbms7Cj4gPiAgCXN0cnVjdCB0 aGVybWFsX2JhbmtfY2ZnIGJhbmtfZGF0YVtNQVhfTlVNX1pPTkVTXTsKPiA+ICAJZW51bSBtdGtf dGhlcm1hbF92ZXJzaW9uIHZlcnNpb247Cj4gPiArCXUzMiBhcG1peGVkX2J1ZmZlcl9jdGxfcmVn Owo+ID4gKwl1MzIgYXBtaXhlZF9idWZmZXJfY3RsX21hc2s7Cj4gPiArCXUzMiBhcG1peGVkX2J1 ZmZlcl9jdGxfc2V0Owo+ID4gIH07Cj4gPiAgCj4gPiAgc3RydWN0IG10a190aGVybWFsIHsKPiA+ IEBAIC0zODYsNiArNDAxLDI0IEBAIHN0YXRpYyBjb25zdCBpbnQgbXQ3NjIyX211eF92YWx1ZXNb TVQ3NjIyX05VTV9TRU5TT1JTXSA9IHsgMCwgfTsKPiA+ICBzdGF0aWMgY29uc3QgaW50IG10NzYy Ml92dHNfaW5kZXhbTVQ3NjIyX05VTV9TRU5TT1JTXSA9IHsgVlRTMSB9Owo+ID4gIHN0YXRpYyBj b25zdCBpbnQgbXQ3NjIyX3RjX29mZnNldFtNVDc2MjJfTlVNX0NPTlRST0xMRVJdID0geyAweDAs IH07Cj4gPiAgCj4gPiArLyogTVQ4MzY1IHRoZXJtYWwgc2Vuc29yIGRhdGEgKi8KPiA+ICtzdGF0 aWMgY29uc3QgaW50IG10ODM2NV9iYW5rX2RhdGFbTVQ4MzY1X05VTV9TRU5TT1JTXSA9IHsKPiA+ ICsJTVQ4MzY1X1RTMSwgTVQ4MzY1X1RTMiwgTVQ4MzY1X1RTMwo+ID4gK307Cj4gPiArCj4gPiAr c3RhdGljIGNvbnN0IGludCBtdDgzNjVfbXNyW01UODM2NV9OVU1fU0VOU09SU19QRVJfWk9ORV0g PSB7Cj4gPiArCVRFTVBfTVNSMCwgVEVNUF9NU1IxLCBURU1QX01TUjIKPiA+ICt9Owo+ID4gKwo+ ID4gK3N0YXRpYyBjb25zdCBpbnQgbXQ4MzY1X2FkY3BucFtNVDgzNjVfTlVNX1NFTlNPUlNfUEVS X1pPTkVdID0gewo+ID4gKwlURU1QX0FEQ1BOUDAsIFRFTVBfQURDUE5QMSwgVEVNUF9BRENQTlAy Cj4gPiArfTsKPiA+ICsKPiA+ICtzdGF0aWMgY29uc3QgaW50IG10ODM2NV9tdXhfdmFsdWVzW01U ODM2NV9OVU1fU0VOU09SU10gPSB7IDAsIDEsIDIgfTsKPiA+ICtzdGF0aWMgY29uc3QgaW50IG10 ODM2NV90Y19vZmZzZXRbTVQ4MzY1X05VTV9DT05UUk9MTEVSXSA9IHsgMCB9Owo+ID4gKwo+ID4g K3N0YXRpYyBjb25zdCBpbnQgbXQ4MzY1X3Z0c19pbmRleFtNVDgzNjVfTlVNX1NFTlNPUlNdID0g eyBWVFMxLCBWVFMyLCBWVFMzIH07Cj4gPiArCj4gPiAgLyoKPiA+ICAgKiBUaGUgTVQ4MTczIHRo ZXJtYWwgY29udHJvbGxlciBoYXMgZm91ciBiYW5rcy4gRWFjaCBiYW5rIGNhbiByZWFkIHVwIHRv Cj4gPiAgICogZm91ciB0ZW1wZXJhdHVyZSBzZW5zb3JzIHNpbXVsdGFuZW91c2x5LiBUaGUgTVQ4 MTczIGhhcyBhIHRvdGFsIG9mIDUKPiA+IEBAIC00NjAsNiArNDkzLDQwIEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgbXRrX3RoZXJtYWxfZGF0YSBtdDI3MDFfdGhlcm1hbF9kYXRhID0gewo+ID4gIAku dmVyc2lvbiA9IE1US19USEVSTUFMX1YxLAo+ID4gIH07Cj4gPiAgCj4gPiArLyoKPiA+ICsgKiBU aGUgTVQ4MzY1IHRoZXJtYWwgY29udHJvbGxlciBoYXMgb25lIGJhbmssIHdoaWNoIGNhbiByZWFk IHVwIHRvCj4gPiArICogZm91ciB0ZW1wZXJhdHVyZSBzZW5zb3JzIHNpbXVsdGFuZW91c2x5LiBU aGUgTVQ4MzY1IGhhcyBhIHRvdGFsIG9mIDMKPiA+ICsgKiB0ZW1wZXJhdHVyZSBzZW5zb3JzLgo+ ID4gKyAqCj4gPiArICogVGhlIHRoZXJtYWwgY29yZSBvbmx5IGdldHMgdGhlIG1heGltdW0gdGVt cGVyYXR1cmUgb2YgdGhpcyBvbmUgYmFuaywKPiA+ICsgKiBzbyB0aGUgYmFuayBjb25jZXB0IHdv dWxkbid0IGJlIG5lY2Vzc2FyeSBoZXJlLiBIb3dldmVyLCB0aGUgU1ZTIChTbWFydAo+ID4gKyAq IFZvbHRhZ2UgU2NhbGluZykgdW5pdCBtYWtlcyBpdHMgZGVjaXNpb25zIGJhc2VkIG9uIHRoZSBz YW1lIGJhbmsKPiA+ICsgKiBkYXRhLgo+ID4gKyAqLwo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg bXRrX3RoZXJtYWxfZGF0YSBtdDgzNjVfdGhlcm1hbF9kYXRhID0gewo+ID4gKwkuYXV4YWRjX2No YW5uZWwgPSBNVDgzNjVfVEVNUF9BVVhBRENfQ0hBTk5FTCwKPiA+ICsJLm51bV9iYW5rcyA9IE1U ODM2NV9OVU1fQkFOS1MsCj4gPiArCS5udW1fc2Vuc29ycyA9IE1UODM2NV9OVU1fU0VOU09SUywK PiA+ICsJLnZ0c19pbmRleCA9IG10ODM2NV92dHNfaW5kZXgsCj4gPiArCS5jYWxpX3ZhbCA9IE1U ODM2NV9DQUxJQlJBVElPTiwKPiA+ICsJLm51bV9jb250cm9sbGVyID0gTVQ4MzY1X05VTV9DT05U Uk9MTEVSLAo+ID4gKwkuY29udHJvbGxlcl9vZmZzZXQgPSBtdDgzNjVfdGNfb2Zmc2V0LAo+ID4g KwkubmVlZF9zd2l0Y2hfYmFuayA9IGZhbHNlLAo+ID4gKwkuYmFua19kYXRhID0gewo+ID4gKwkJ ewo+ID4gKwkJCS5udW1fc2Vuc29ycyA9IE1UODM2NV9OVU1fU0VOU09SUywKPiA+ICsJCQkuc2Vu c29ycyA9IG10ODM2NV9iYW5rX2RhdGEKPiA+ICsJCX0sCj4gPiArCX0sCj4gPiArCS5tc3IgPSBt dDgzNjVfbXNyLAo+ID4gKwkuYWRjcG5wID0gbXQ4MzY1X2FkY3BucCwKPiA+ICsJLnNlbnNvcl9t dXhfdmFsdWVzID0gbXQ4MzY1X211eF92YWx1ZXMsCj4gPiArCS52ZXJzaW9uID0gTVRLX1RIRVJN QUxfVjEsCj4gPiArCS5hcG1peGVkX2J1ZmZlcl9jdGxfcmVnID0gQVBNSVhFRF9TWVNfVFNfQ09O MCwKPiA+ICsJLmFwbWl4ZWRfYnVmZmVyX2N0bF9tYXNrID0gfih1MzIpR0VOTUFTSygyOSwgMjgp LAo+ID4gKwkuYXBtaXhlZF9idWZmZXJfY3RsX3NldCA9IDAsCj4gPiArfTsKPiA+ICsKPiA+ICAv Kgo+ID4gICAqIFRoZSBNVDI3MTIgdGhlcm1hbCBjb250cm9sbGVyIGhhcyBvbmUgYmFuaywgd2hp Y2ggY2FuIHJlYWQgdXAgdG8KPiA+ICAgKiBmb3VyIHRlbXBlcmF0dXJlIHNlbnNvcnMgc2ltdWx0 YW5lb3VzbHkuIFRoZSBNVDI3MTIgaGFzIGEgdG90YWwgb2YgNAo+ID4gQEAgLTUxNCw2ICs1ODEs OSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a190aGVybWFsX2RhdGEgbXQ3NjIyX3RoZXJtYWxf ZGF0YSA9IHsKPiA+ICAJLmFkY3BucCA9IG10NzYyMl9hZGNwbnAsCj4gPiAgCS5zZW5zb3JfbXV4 X3ZhbHVlcyA9IG10NzYyMl9tdXhfdmFsdWVzLAo+ID4gIAkudmVyc2lvbiA9IE1US19USEVSTUFM X1YyLAo+ID4gKwkuYXBtaXhlZF9idWZmZXJfY3RsX3JlZyA9IEFQTUlYRURfU1lTX1RTX0NPTjEs Cj4gPiArCS5hcG1peGVkX2J1ZmZlcl9jdGxfbWFzayA9IH4weDM3LAo+ID4gKwkuYXBtaXhlZF9i dWZmZXJfY3RsX3NldCA9IDB4MSwKPiAKPiBQbGVhc2UgY2hhbmdlIHRob3NlIGxpdGVyYWwgaW50 byBtYWNyb3MKCmRvbmUuCgo+IAo+ID4gIH07Cj4gPiAgCj4gPiAgLyoKPiA+IEBAIC05NTgsMTkg KzEwMjgsMjcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX3RoZXJtYWxf b2ZfbWF0Y2hbXSA9IHsKPiA+ICAJewo+ID4gIAkJLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4 MTgzLXRoZXJtYWwiLAo+ID4gIAkJLmRhdGEgPSAodm9pZCAqKSZtdDgxODNfdGhlcm1hbF9kYXRh LAo+ID4gKwl9LAo+ID4gKwl7Cj4gPiArCQkuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgzNjUt dGhlcm1hbCIsCj4gPiArCQkuZGF0YSA9ICh2b2lkICopJm10ODM2NV90aGVybWFsX2RhdGEsCj4g Cj4gSXMgdGhpcyBjYXN0IHJlYWxseSBuZWVkZWQgPwoKTm8sIHJlbW92ZWQgYW5kIGNyZWF0ZWQg YW5vdGhlciBwYXRjaCB0byBmaXggYWxsIG90aGVyIG9uZXMuIFdvdWxkIGxvb2sKd2VpcmQgb3Ro ZXJ3aXNlLgoKPiAKPiA+ICAJfSwgewo+ID4gIAl9LAo+ID4gIH07Cj4gPiAgTU9EVUxFX0RFVklD RV9UQUJMRShvZiwgbXRrX3RoZXJtYWxfb2ZfbWF0Y2gpOwo+ID4gIAo+ID4gLXN0YXRpYyB2b2lk IG10a190aGVybWFsX3R1cm5fb25fYnVmZmVyKHZvaWQgX19pb21lbSAqYXBtaXhlZF9iYXNlKQo+ ID4gK3N0YXRpYyB2b2lkIG10a190aGVybWFsX3R1cm5fb25fYnVmZmVyKHN0cnVjdCBtdGtfdGhl cm1hbCAqbXQsCj4gPiArCQkJCSAgICAgICB2b2lkIF9faW9tZW0gKmFwbWl4ZWRfYmFzZSkKPiA+ ICB7Cj4gPiAgCWludCB0bXA7Cj4gPiAgCj4gPiAtCXRtcCA9IHJlYWRsKGFwbWl4ZWRfYmFzZSAr IEFQTUlYRURfU1lTX1RTX0NPTjEpOwo+ID4gLQl0bXAgJj0gfigweDM3KTsKPiA+IC0JdG1wIHw9 IDB4MTsKPiA+IC0Jd3JpdGVsKHRtcCwgYXBtaXhlZF9iYXNlICsgQVBNSVhFRF9TWVNfVFNfQ09O MSk7Cj4gPiArCWlmICghbXQtPmNvbmYtPmFwbWl4ZWRfYnVmZmVyX2N0bF9yZWcpCj4gPiArCQly ZXR1cm47Cj4gPiArCj4gPiArCXRtcCA9IHJlYWRsKGFwbWl4ZWRfYmFzZSArIG10LT5jb25mLT5h cG1peGVkX2J1ZmZlcl9jdGxfcmVnKTsKPiA+ICsJdG1wICY9IG10LT5jb25mLT5hcG1peGVkX2J1 ZmZlcl9jdGxfbWFzazsKPiA+ICsJdG1wIHw9IG10LT5jb25mLT5hcG1peGVkX2J1ZmZlcl9jdGxf c2V0Owo+IAo+IFdoYXQgaXMgdGhlIGdvYWwgb2YgdGhlc2UgdHdvIGJpdHMgb3BlcmF0aW9ucyA/ CgptdDc2MjIgbmVlZHMgdG8gdW5zZXQgYSBmZXcgYml0cyBhbmQgc2V0IG9uZSBiaXQgaW4gdGhp cyByZWdpc3Rlci4KbXQ4MzY1IG9ubHkgdW5zZXRzIGJpdHMuIEZvciB0aGlzIHB1cnBvc2UgSSBj cmVhdGVkIGEgX21hc2sgZmllbGQgdG8KdW5zZXQgYml0cyBhbmQgYSBfc2V0IGZpZWxkIHRvIHNl dCBiaXRzLgoKV291bGQgeW91IHN1Z2dlc3QgYSBkaWZmZXJlbnQgd2F5PwoKVGhhbmtzIGZvciB5 b3VyIGZlZWRiYWNrLgoKQmVzdCwKTWFya3VzCgo+IAo+ID4gKwl3cml0ZWwodG1wLCBhcG1peGVk X2Jhc2UgKyBtdC0+Y29uZi0+YXBtaXhlZF9idWZmZXJfY3RsX3JlZyk7Cj4gPiAgCXVkZWxheSgy MDApOwo+ID4gIH0KPiA+ICAKPiA+IEBAIC0xMDcwLDggKzExNDgsOSBAQCBzdGF0aWMgaW50IG10 a190aGVybWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiAgCQlnb3Rv IGVycl9kaXNhYmxlX2Nsa19hdXhhZGM7Cj4gPiAgCX0KPiA+ICAKPiA+ICsJbXRrX3RoZXJtYWxf dHVybl9vbl9idWZmZXIobXQsIGFwbWl4ZWRfYmFzZSk7Cj4gPiArCj4gPiAgCWlmIChtdC0+Y29u Zi0+dmVyc2lvbiA9PSBNVEtfVEhFUk1BTF9WMikgewo+ID4gLQkJbXRrX3RoZXJtYWxfdHVybl9v bl9idWZmZXIoYXBtaXhlZF9iYXNlKTsKPiA+ICAJCW10a190aGVybWFsX3JlbGVhc2VfcGVyaW9k aWNfdHMobXQsIGF1eGFkY19iYXNlKTsKPiA+ICAJfQo+ID4gIAo+ID4gCj4gCj4gCj4gLS0gCj4g PGh0dHA6Ly93d3cubGluYXJvLm9yZy8+IExpbmFyby5vcmcg4pSCIE9wZW4gc291cmNlIHNvZnR3 YXJlIGZvciBBUk0gU29Dcwo+IAo+IEZvbGxvdyBMaW5hcm86ICA8aHR0cDovL3d3dy5mYWNlYm9v ay5jb20vcGFnZXMvTGluYXJvPiBGYWNlYm9vayB8Cj4gPGh0dHA6Ly90d2l0dGVyLmNvbS8jIS9s aW5hcm9vcmc+IFR3aXR0ZXIgfAo+IDxodHRwOi8vd3d3LmxpbmFyby5vcmcvbGluYXJvLWJsb2cv PiBCbG9nCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpM aW51eC1tZWRpYXRlayBtYWlsaW5nIGxpc3QKTGludXgtbWVkaWF0ZWtAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW1l ZGlhdGVrCg== 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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 16903C433F5 for ; Mon, 18 Oct 2021 15:41:31 +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 C0FDD60F8F for ; Mon, 18 Oct 2021 15:41:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org C0FDD60F8F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=hTpr6zyqD7WT2Ndj6UooesfXeOOipdBso2P+PfppOVo=; b=0v5HKWcNKE69dA DBPUwdFawowYVMG076LPLiZ66hCcorsS7JQUK98dSnQFNN5HzFMVpbdkG0fTF2W+FL7Lje8P0SU2O ZNtakkoCVn233+U+oODPJLaP7t0oJ5X7JyzFSyR/ZmKyyr8wVNpcAKHj0EvbkbgZpcItcTTvxqPQn yKvR6T5qiC5+IoSWNHtvcsIyFpOsoeygE3csGDaeCP0R8D5jTgnL/3eN9TTIDYjUpcjIOSAMvrmUx lSnBFgOFss05VgKx1zGuZRG2o5pA2uzOHq0rc6yaSZFHMYf2MKqm3FL6Lv0LTZ8msDuHKcOqjTm3x o2B2AbawKXOVZ+0LaLrA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mcUkG-00GMou-5u; Mon, 18 Oct 2021 15:40:12 +0000 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mcUk9-00GMmx-Tg for linux-arm-kernel@lists.infradead.org; Mon, 18 Oct 2021 15:40:08 +0000 Received: by mail-wr1-x42f.google.com with SMTP id m22so42396671wrb.0 for ; Mon, 18 Oct 2021 08:40:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=pjlDidMjUP54gNnWHEztCEIW6CfLvZ4h/Q6wK7PbSKk=; b=VLCqQd5lCp6WvwDEA5GFEkCQ5+CNUFltDinOxOC907MtLaXIT3zPBANhDsE+kN5JX4 asJTtKUMb1XGdoXVRfyK4r8kfe2BPyAGwlAdr75C9BHOoHk/k5VwaUaE04m2tfo9PunI 6Wzotf50yIxvDiEYI31iRmyuRzp03ORnGdO6j2rgnIPV3iUlFegzOyjH0SLrgudmv238 a03KzWaoVOEJuwS2y37B29deujv3DSwOM/f+KxuW9NQSDGsnBp2UHqg3NyXnWQ+mJtBl 0Np2YQwT8YekFnswy0KfM5FQmgy/LkAKJZmApN3TkmIGxirZYE70F+V6C8cqO2NY0hzW HliA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=pjlDidMjUP54gNnWHEztCEIW6CfLvZ4h/Q6wK7PbSKk=; b=hEkY2xdC/J+9pXt81jPs7eaZ/pxlyet+Xy3aJ2YWLlf4YMRRrXMcYMoNhA7de6+c23 iRwT72D6uksUza4jAAwe3RYbpyU/RlWH3qbQMcIWmBVjB+dNpShwCw04es+rG48eKdi0 lC41HBAmPJFHBzQasOQ0jAEwbayYRT+w7hCybnGF8V9FvuVEHJ+CKs5BP5NN1Z28fpwM oazMxxPlPzkuDbGBkNrtcl9mPjRfdVhy3jLY6RQ6lRfZfFnGmc7yJ8WBBUi5+W7MFhb+ udLztedfdn84C3ZUV2x24dqs+V7jgTEWhBx1RhGwQsK09S1i5jq5A2xRiIhHLVf3R7Ov wTPA== X-Gm-Message-State: AOAM5315wFENJhnzVDxNBF1gxZyFsFcqKchBsMwFXwmOqO4CNy+D+pir v3fP2ZVCLHfs6UpiLfuuqIifRA== X-Google-Smtp-Source: ABdhPJy/pQcdiOs4mcK3rfZtbnFO8PF2JEU9NxxxCX5B3S5ikVNoWX+n9XNbC5OEjQ4lOu/gwDIDPA== X-Received: by 2002:a05:6000:1541:: with SMTP id 1mr35650882wry.273.1634571603956; Mon, 18 Oct 2021 08:40:03 -0700 (PDT) Received: from blmsp ([2a02:2454:3e6:c900:5142:5fbb:5821:5dc3]) by smtp.gmail.com with ESMTPSA id u5sm12227325wmm.39.2021.10.18.08.40.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Oct 2021 08:40:02 -0700 (PDT) Date: Mon, 18 Oct 2021 17:40:01 +0200 From: Markus Schneider-Pargmann To: Daniel Lezcano Cc: Zhang Rui , Matthias Brugger , Rob Herring , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, fparent@baylibre.com, khilman@baylibre.com Subject: Re: [PATCH 3/3] thermal: mediatek: add MT8365 thermal driver support Message-ID: <20211018154001.sj7nc575hln3jkel@blmsp> References: <20211014135636.3644166-1-msp@baylibre.com> <20211014135636.3644166-4-msp@baylibre.com> <33815817-0f64-836a-5417-c614e66e231e@linaro.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <33815817-0f64-836a-5417-c614e66e231e@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211018_084006_066405_739471B1 X-CRM114-Status: GOOD ( 40.17 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgRGFuaWVsLAoKT24gU2F0LCBPY3QgMTYsIDIwMjEgYXQgMTA6MDY6MjhQTSArMDIwMCwgRGFu aWVsIExlemNhbm8gd3JvdGU6Cj4gT24gMTQvMTAvMjAyMSAxNTo1NiwgTWFya3VzIFNjaG5laWRl ci1QYXJnbWFubiB3cm90ZToKPiA+IEZyb206IEZhYmllbiBQYXJlbnQgPGZwYXJlbnRAYmF5bGli cmUuY29tPgo+ID4gCj4gPiBtdDgzNjUgaXMgc2ltaWxhciB0byB0aGUgb3RoZXIgU29DcyBzdXBw b3J0ZWQgYnkgdGhlIGRyaXZlci4gSXQgaGFzIG9ubHkKPiA+IG9uZSBiYW5rIGFuZCAzIHNlbnNv cnMgdGhhdCBjYW4gYmUgbXVsdGlwbGV4ZWQuCj4gPiAKPiA+IEFkZGl0aW9uYWxseSB0aGUgYnVm ZmVyIGhhcyB0byBiZSBlbmFibGVkIGFuZCBjb25uZWN0ZWQgdG8gQVVYQURDCj4gPiBzaW1pbGFy IHRvIHRoZSBWMiB2ZXJzaW9uIGJ1dCBhdCBhIGRpZmZlcmVudCByZWdpc3RlciBvZmZzZXQuIFRo YXQncyB3aHkKPiA+IEkgYWRkZWQgdGhyZWUgbmV3IGNvbmZpZ3VyYXRpb24gdmFsdWVzIHRvIGRl ZmluZSB0aGUgcmVnaXN0ZXIsIG1hc2sgYW5kCj4gPiBiaXRzIHRvIGJlIHNldCB0byBiZSBhYmxl IHRvIHVzZSBpdCBmb3IgYm90aCBWMiBhbmQgbXQ4MzY1Lgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5 OiBGYWJpZW4gUGFyZW50IDxmcGFyZW50QGJheWxpYnJlLmNvbT4KPiA+IFtBZGRlZCBhcG1peGVk IGNvbnRyb2wgcmVnaXN0ZXIgbG9naWNdCj4gPiBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgU2NobmVp ZGVyLVBhcmdtYW5uIDxtc3BAYmF5bGlicmUuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy90aGVy bWFsL210a190aGVybWFsLmMgfCA5MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+ ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL210a190aGVybWFsLmMgYi9kcml2 ZXJzL3RoZXJtYWwvbXRrX3RoZXJtYWwuYwo+ID4gaW5kZXggOTNlZTA0M2Q3MGRhLi43YTc1YWU4 MjMxZjIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3RoZXJtYWwvbXRrX3RoZXJtYWwuYwo+ID4g KysrIGIvZHJpdmVycy90aGVybWFsL210a190aGVybWFsLmMKPiA+IEBAIC0zMSw2ICszMSw3IEBA Cj4gPiAgI2RlZmluZSBBVVhBRENfQ09OMl9WCQkweDAxMAo+ID4gICNkZWZpbmUgQVVYQURDX0RB VEEoY2hhbm5lbCkJKDB4MTQgKyAoY2hhbm5lbCkgKiA0KQo+ID4gIAo+ID4gKyNkZWZpbmUgQVBN SVhFRF9TWVNfVFNfQ09OMAkweDYwMAo+ID4gICNkZWZpbmUgQVBNSVhFRF9TWVNfVFNfQ09OMQkw eDYwNAo+ID4gIAo+ID4gIC8qIFRoZXJtYWwgQ29udHJvbGxlciBSZWdpc3RlcnMgKi8KPiA+IEBA IC0yNDUsNiArMjQ2LDE3IEBAIGVudW0gbXRrX3RoZXJtYWxfdmVyc2lvbiB7Cj4gPiAgLyogVGhl IGNhbGlicmF0aW9uIGNvZWZmaWNpZW50IG9mIHNlbnNvciAgKi8KPiA+ICAjZGVmaW5lIE1UODE4 M19DQUxJQlJBVElPTgkxNTMKPiA+ICAKPiA+ICsvKiBNVDgzNjUgKi8KPiA+ICsjZGVmaW5lIE1U ODM2NV9URU1QX0FVWEFEQ19DSEFOTkVMIDExCj4gPiArI2RlZmluZSBNVDgzNjVfQ0FMSUJSQVRJ T04gMTY0Cj4gPiArI2RlZmluZSBNVDgzNjVfTlVNX0NPTlRST0xMRVIgMQo+ID4gKyNkZWZpbmUg TVQ4MzY1X05VTV9CQU5LUyAxCj4gPiArI2RlZmluZSBNVDgzNjVfTlVNX1NFTlNPUlMgMwo+ID4g KyNkZWZpbmUgTVQ4MzY1X05VTV9TRU5TT1JTX1BFUl9aT05FIDMKPiAKPiBZb3UgY2FuIGdldCBy aWQgb2YgdGhlc2UgbWFjcm9zIGJ5IHVzaW5nIEFSUkFZX1NJWkUuCj4gCj4gZWcuCj4gCj4gc3Rh dGljIGNvbnN0IGludCBtdDgzNjVfYmFua19kYXRhW10gPSB7Cj4gCU1UODM2NV9UUzEsCj4gCU1U ODM2NV9UUzIsCj4gCU1UODM2NV9UUzMKPiB9Owo+IAo+IC4uLgo+IAo+IAkubnVtX3NlbnNvcnMg PSBBUlJBWV9TSVpFKG10ODM2NV9iYW5rX2RhdGEpOwo+IC4uLgo+IAoKVGhhbmtzLCBkb25lLCBJ IGFsc28gdXNlZCBBUlJBWV9TSVpFKCkgb24gdGhlIG90aGVyIGFycmF5IGRlZmluaXRpb25zIHRv CmVuZm9yY2UgdGhhdCB0aGV5IGhhdmUgdGhlIGNvcnJlY3Qgc2l6ZS4KCj4gCj4gPiArI2RlZmlu ZSBNVDgzNjVfVFMxIDAKPiA+ICsjZGVmaW5lIE1UODM2NV9UUzIgMQo+ID4gKyNkZWZpbmUgTVQ4 MzY1X1RTMyAyCj4gPiArCj4gPiAgc3RydWN0IG10a190aGVybWFsOwo+ID4gIAo+ID4gIHN0cnVj dCB0aGVybWFsX2JhbmtfY2ZnIHsKPiA+IEBAIC0yNzEsNiArMjgzLDkgQEAgc3RydWN0IG10a190 aGVybWFsX2RhdGEgewo+ID4gIAlib29sIG5lZWRfc3dpdGNoX2Jhbms7Cj4gPiAgCXN0cnVjdCB0 aGVybWFsX2JhbmtfY2ZnIGJhbmtfZGF0YVtNQVhfTlVNX1pPTkVTXTsKPiA+ICAJZW51bSBtdGtf dGhlcm1hbF92ZXJzaW9uIHZlcnNpb247Cj4gPiArCXUzMiBhcG1peGVkX2J1ZmZlcl9jdGxfcmVn Owo+ID4gKwl1MzIgYXBtaXhlZF9idWZmZXJfY3RsX21hc2s7Cj4gPiArCXUzMiBhcG1peGVkX2J1 ZmZlcl9jdGxfc2V0Owo+ID4gIH07Cj4gPiAgCj4gPiAgc3RydWN0IG10a190aGVybWFsIHsKPiA+ IEBAIC0zODYsNiArNDAxLDI0IEBAIHN0YXRpYyBjb25zdCBpbnQgbXQ3NjIyX211eF92YWx1ZXNb TVQ3NjIyX05VTV9TRU5TT1JTXSA9IHsgMCwgfTsKPiA+ICBzdGF0aWMgY29uc3QgaW50IG10NzYy Ml92dHNfaW5kZXhbTVQ3NjIyX05VTV9TRU5TT1JTXSA9IHsgVlRTMSB9Owo+ID4gIHN0YXRpYyBj b25zdCBpbnQgbXQ3NjIyX3RjX29mZnNldFtNVDc2MjJfTlVNX0NPTlRST0xMRVJdID0geyAweDAs IH07Cj4gPiAgCj4gPiArLyogTVQ4MzY1IHRoZXJtYWwgc2Vuc29yIGRhdGEgKi8KPiA+ICtzdGF0 aWMgY29uc3QgaW50IG10ODM2NV9iYW5rX2RhdGFbTVQ4MzY1X05VTV9TRU5TT1JTXSA9IHsKPiA+ ICsJTVQ4MzY1X1RTMSwgTVQ4MzY1X1RTMiwgTVQ4MzY1X1RTMwo+ID4gK307Cj4gPiArCj4gPiAr c3RhdGljIGNvbnN0IGludCBtdDgzNjVfbXNyW01UODM2NV9OVU1fU0VOU09SU19QRVJfWk9ORV0g PSB7Cj4gPiArCVRFTVBfTVNSMCwgVEVNUF9NU1IxLCBURU1QX01TUjIKPiA+ICt9Owo+ID4gKwo+ ID4gK3N0YXRpYyBjb25zdCBpbnQgbXQ4MzY1X2FkY3BucFtNVDgzNjVfTlVNX1NFTlNPUlNfUEVS X1pPTkVdID0gewo+ID4gKwlURU1QX0FEQ1BOUDAsIFRFTVBfQURDUE5QMSwgVEVNUF9BRENQTlAy Cj4gPiArfTsKPiA+ICsKPiA+ICtzdGF0aWMgY29uc3QgaW50IG10ODM2NV9tdXhfdmFsdWVzW01U ODM2NV9OVU1fU0VOU09SU10gPSB7IDAsIDEsIDIgfTsKPiA+ICtzdGF0aWMgY29uc3QgaW50IG10 ODM2NV90Y19vZmZzZXRbTVQ4MzY1X05VTV9DT05UUk9MTEVSXSA9IHsgMCB9Owo+ID4gKwo+ID4g K3N0YXRpYyBjb25zdCBpbnQgbXQ4MzY1X3Z0c19pbmRleFtNVDgzNjVfTlVNX1NFTlNPUlNdID0g eyBWVFMxLCBWVFMyLCBWVFMzIH07Cj4gPiArCj4gPiAgLyoKPiA+ICAgKiBUaGUgTVQ4MTczIHRo ZXJtYWwgY29udHJvbGxlciBoYXMgZm91ciBiYW5rcy4gRWFjaCBiYW5rIGNhbiByZWFkIHVwIHRv Cj4gPiAgICogZm91ciB0ZW1wZXJhdHVyZSBzZW5zb3JzIHNpbXVsdGFuZW91c2x5LiBUaGUgTVQ4 MTczIGhhcyBhIHRvdGFsIG9mIDUKPiA+IEBAIC00NjAsNiArNDkzLDQwIEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgbXRrX3RoZXJtYWxfZGF0YSBtdDI3MDFfdGhlcm1hbF9kYXRhID0gewo+ID4gIAku dmVyc2lvbiA9IE1US19USEVSTUFMX1YxLAo+ID4gIH07Cj4gPiAgCj4gPiArLyoKPiA+ICsgKiBU aGUgTVQ4MzY1IHRoZXJtYWwgY29udHJvbGxlciBoYXMgb25lIGJhbmssIHdoaWNoIGNhbiByZWFk IHVwIHRvCj4gPiArICogZm91ciB0ZW1wZXJhdHVyZSBzZW5zb3JzIHNpbXVsdGFuZW91c2x5LiBU aGUgTVQ4MzY1IGhhcyBhIHRvdGFsIG9mIDMKPiA+ICsgKiB0ZW1wZXJhdHVyZSBzZW5zb3JzLgo+ ID4gKyAqCj4gPiArICogVGhlIHRoZXJtYWwgY29yZSBvbmx5IGdldHMgdGhlIG1heGltdW0gdGVt cGVyYXR1cmUgb2YgdGhpcyBvbmUgYmFuaywKPiA+ICsgKiBzbyB0aGUgYmFuayBjb25jZXB0IHdv dWxkbid0IGJlIG5lY2Vzc2FyeSBoZXJlLiBIb3dldmVyLCB0aGUgU1ZTIChTbWFydAo+ID4gKyAq IFZvbHRhZ2UgU2NhbGluZykgdW5pdCBtYWtlcyBpdHMgZGVjaXNpb25zIGJhc2VkIG9uIHRoZSBz YW1lIGJhbmsKPiA+ICsgKiBkYXRhLgo+ID4gKyAqLwo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg bXRrX3RoZXJtYWxfZGF0YSBtdDgzNjVfdGhlcm1hbF9kYXRhID0gewo+ID4gKwkuYXV4YWRjX2No YW5uZWwgPSBNVDgzNjVfVEVNUF9BVVhBRENfQ0hBTk5FTCwKPiA+ICsJLm51bV9iYW5rcyA9IE1U ODM2NV9OVU1fQkFOS1MsCj4gPiArCS5udW1fc2Vuc29ycyA9IE1UODM2NV9OVU1fU0VOU09SUywK PiA+ICsJLnZ0c19pbmRleCA9IG10ODM2NV92dHNfaW5kZXgsCj4gPiArCS5jYWxpX3ZhbCA9IE1U ODM2NV9DQUxJQlJBVElPTiwKPiA+ICsJLm51bV9jb250cm9sbGVyID0gTVQ4MzY1X05VTV9DT05U Uk9MTEVSLAo+ID4gKwkuY29udHJvbGxlcl9vZmZzZXQgPSBtdDgzNjVfdGNfb2Zmc2V0LAo+ID4g KwkubmVlZF9zd2l0Y2hfYmFuayA9IGZhbHNlLAo+ID4gKwkuYmFua19kYXRhID0gewo+ID4gKwkJ ewo+ID4gKwkJCS5udW1fc2Vuc29ycyA9IE1UODM2NV9OVU1fU0VOU09SUywKPiA+ICsJCQkuc2Vu c29ycyA9IG10ODM2NV9iYW5rX2RhdGEKPiA+ICsJCX0sCj4gPiArCX0sCj4gPiArCS5tc3IgPSBt dDgzNjVfbXNyLAo+ID4gKwkuYWRjcG5wID0gbXQ4MzY1X2FkY3BucCwKPiA+ICsJLnNlbnNvcl9t dXhfdmFsdWVzID0gbXQ4MzY1X211eF92YWx1ZXMsCj4gPiArCS52ZXJzaW9uID0gTVRLX1RIRVJN QUxfVjEsCj4gPiArCS5hcG1peGVkX2J1ZmZlcl9jdGxfcmVnID0gQVBNSVhFRF9TWVNfVFNfQ09O MCwKPiA+ICsJLmFwbWl4ZWRfYnVmZmVyX2N0bF9tYXNrID0gfih1MzIpR0VOTUFTSygyOSwgMjgp LAo+ID4gKwkuYXBtaXhlZF9idWZmZXJfY3RsX3NldCA9IDAsCj4gPiArfTsKPiA+ICsKPiA+ICAv Kgo+ID4gICAqIFRoZSBNVDI3MTIgdGhlcm1hbCBjb250cm9sbGVyIGhhcyBvbmUgYmFuaywgd2hp Y2ggY2FuIHJlYWQgdXAgdG8KPiA+ICAgKiBmb3VyIHRlbXBlcmF0dXJlIHNlbnNvcnMgc2ltdWx0 YW5lb3VzbHkuIFRoZSBNVDI3MTIgaGFzIGEgdG90YWwgb2YgNAo+ID4gQEAgLTUxNCw2ICs1ODEs OSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a190aGVybWFsX2RhdGEgbXQ3NjIyX3RoZXJtYWxf ZGF0YSA9IHsKPiA+ICAJLmFkY3BucCA9IG10NzYyMl9hZGNwbnAsCj4gPiAgCS5zZW5zb3JfbXV4 X3ZhbHVlcyA9IG10NzYyMl9tdXhfdmFsdWVzLAo+ID4gIAkudmVyc2lvbiA9IE1US19USEVSTUFM X1YyLAo+ID4gKwkuYXBtaXhlZF9idWZmZXJfY3RsX3JlZyA9IEFQTUlYRURfU1lTX1RTX0NPTjEs Cj4gPiArCS5hcG1peGVkX2J1ZmZlcl9jdGxfbWFzayA9IH4weDM3LAo+ID4gKwkuYXBtaXhlZF9i dWZmZXJfY3RsX3NldCA9IDB4MSwKPiAKPiBQbGVhc2UgY2hhbmdlIHRob3NlIGxpdGVyYWwgaW50 byBtYWNyb3MKCmRvbmUuCgo+IAo+ID4gIH07Cj4gPiAgCj4gPiAgLyoKPiA+IEBAIC05NTgsMTkg KzEwMjgsMjcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX3RoZXJtYWxf b2ZfbWF0Y2hbXSA9IHsKPiA+ICAJewo+ID4gIAkJLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4 MTgzLXRoZXJtYWwiLAo+ID4gIAkJLmRhdGEgPSAodm9pZCAqKSZtdDgxODNfdGhlcm1hbF9kYXRh LAo+ID4gKwl9LAo+ID4gKwl7Cj4gPiArCQkuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgzNjUt dGhlcm1hbCIsCj4gPiArCQkuZGF0YSA9ICh2b2lkICopJm10ODM2NV90aGVybWFsX2RhdGEsCj4g Cj4gSXMgdGhpcyBjYXN0IHJlYWxseSBuZWVkZWQgPwoKTm8sIHJlbW92ZWQgYW5kIGNyZWF0ZWQg YW5vdGhlciBwYXRjaCB0byBmaXggYWxsIG90aGVyIG9uZXMuIFdvdWxkIGxvb2sKd2VpcmQgb3Ro ZXJ3aXNlLgoKPiAKPiA+ICAJfSwgewo+ID4gIAl9LAo+ID4gIH07Cj4gPiAgTU9EVUxFX0RFVklD RV9UQUJMRShvZiwgbXRrX3RoZXJtYWxfb2ZfbWF0Y2gpOwo+ID4gIAo+ID4gLXN0YXRpYyB2b2lk IG10a190aGVybWFsX3R1cm5fb25fYnVmZmVyKHZvaWQgX19pb21lbSAqYXBtaXhlZF9iYXNlKQo+ ID4gK3N0YXRpYyB2b2lkIG10a190aGVybWFsX3R1cm5fb25fYnVmZmVyKHN0cnVjdCBtdGtfdGhl cm1hbCAqbXQsCj4gPiArCQkJCSAgICAgICB2b2lkIF9faW9tZW0gKmFwbWl4ZWRfYmFzZSkKPiA+ ICB7Cj4gPiAgCWludCB0bXA7Cj4gPiAgCj4gPiAtCXRtcCA9IHJlYWRsKGFwbWl4ZWRfYmFzZSAr IEFQTUlYRURfU1lTX1RTX0NPTjEpOwo+ID4gLQl0bXAgJj0gfigweDM3KTsKPiA+IC0JdG1wIHw9 IDB4MTsKPiA+IC0Jd3JpdGVsKHRtcCwgYXBtaXhlZF9iYXNlICsgQVBNSVhFRF9TWVNfVFNfQ09O MSk7Cj4gPiArCWlmICghbXQtPmNvbmYtPmFwbWl4ZWRfYnVmZmVyX2N0bF9yZWcpCj4gPiArCQly ZXR1cm47Cj4gPiArCj4gPiArCXRtcCA9IHJlYWRsKGFwbWl4ZWRfYmFzZSArIG10LT5jb25mLT5h cG1peGVkX2J1ZmZlcl9jdGxfcmVnKTsKPiA+ICsJdG1wICY9IG10LT5jb25mLT5hcG1peGVkX2J1 ZmZlcl9jdGxfbWFzazsKPiA+ICsJdG1wIHw9IG10LT5jb25mLT5hcG1peGVkX2J1ZmZlcl9jdGxf c2V0Owo+IAo+IFdoYXQgaXMgdGhlIGdvYWwgb2YgdGhlc2UgdHdvIGJpdHMgb3BlcmF0aW9ucyA/ CgptdDc2MjIgbmVlZHMgdG8gdW5zZXQgYSBmZXcgYml0cyBhbmQgc2V0IG9uZSBiaXQgaW4gdGhp cyByZWdpc3Rlci4KbXQ4MzY1IG9ubHkgdW5zZXRzIGJpdHMuIEZvciB0aGlzIHB1cnBvc2UgSSBj cmVhdGVkIGEgX21hc2sgZmllbGQgdG8KdW5zZXQgYml0cyBhbmQgYSBfc2V0IGZpZWxkIHRvIHNl dCBiaXRzLgoKV291bGQgeW91IHN1Z2dlc3QgYSBkaWZmZXJlbnQgd2F5PwoKVGhhbmtzIGZvciB5 b3VyIGZlZWRiYWNrLgoKQmVzdCwKTWFya3VzCgo+IAo+ID4gKwl3cml0ZWwodG1wLCBhcG1peGVk X2Jhc2UgKyBtdC0+Y29uZi0+YXBtaXhlZF9idWZmZXJfY3RsX3JlZyk7Cj4gPiAgCXVkZWxheSgy MDApOwo+ID4gIH0KPiA+ICAKPiA+IEBAIC0xMDcwLDggKzExNDgsOSBAQCBzdGF0aWMgaW50IG10 a190aGVybWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiAgCQlnb3Rv IGVycl9kaXNhYmxlX2Nsa19hdXhhZGM7Cj4gPiAgCX0KPiA+ICAKPiA+ICsJbXRrX3RoZXJtYWxf dHVybl9vbl9idWZmZXIobXQsIGFwbWl4ZWRfYmFzZSk7Cj4gPiArCj4gPiAgCWlmIChtdC0+Y29u Zi0+dmVyc2lvbiA9PSBNVEtfVEhFUk1BTF9WMikgewo+ID4gLQkJbXRrX3RoZXJtYWxfdHVybl9v bl9idWZmZXIoYXBtaXhlZF9iYXNlKTsKPiA+ICAJCW10a190aGVybWFsX3JlbGVhc2VfcGVyaW9k aWNfdHMobXQsIGF1eGFkY19iYXNlKTsKPiA+ICAJfQo+ID4gIAo+ID4gCj4gCj4gCj4gLS0gCj4g PGh0dHA6Ly93d3cubGluYXJvLm9yZy8+IExpbmFyby5vcmcg4pSCIE9wZW4gc291cmNlIHNvZnR3 YXJlIGZvciBBUk0gU29Dcwo+IAo+IEZvbGxvdyBMaW5hcm86ICA8aHR0cDovL3d3dy5mYWNlYm9v ay5jb20vcGFnZXMvTGluYXJvPiBGYWNlYm9vayB8Cj4gPGh0dHA6Ly90d2l0dGVyLmNvbS8jIS9s aW5hcm9vcmc+IFR3aXR0ZXIgfAo+IDxodHRwOi8vd3d3LmxpbmFyby5vcmcvbGluYXJvLWJsb2cv PiBCbG9nCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg==