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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C4DF7C61D9D for ; Wed, 25 Jan 2023 10:02:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229573AbjAYKCL (ORCPT ); Wed, 25 Jan 2023 05:02:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46522 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233829AbjAYKCJ (ORCPT ); Wed, 25 Jan 2023 05:02:09 -0500 Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A0BCD53B2C for ; Wed, 25 Jan 2023 02:02:07 -0800 (PST) Received: by mail-wm1-x331.google.com with SMTP id j17so13344981wms.0 for ; Wed, 25 Jan 2023 02:02:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=Ez1jIiTv9nX1Skc1wM1E/PnmqK6jZZdjJqYTYBY0xHY=; b=HxmBkWhRZanAM19gbjD/LEt8+fEINkj3ywKLosQLQbJQNZsXfqnXpDbmIAv4vAZn+h Rp/oupBFgjLiKjSMJn0GJqR2OhyItaYDqy9fwTsHSNcLN4EsLbpzBTzwF7Eru0Dyz4MS YHXwLS9ae2cRkytyAYZtRsKZGPO+vvwpEVDhVGWnjZn8WvObuOjAIj7unsoEpdiX6wsG ig6NlHG+XmKN3XjOp67HzuQsrDjiAHGpq3gf5Dkone9+k/HByHdp2SKXjlBhOEtRsPlG brxwTlr9t101guYLnvtRfX0DOYLo0tR56e+9YXEZV8ZDADgbSaQ7KpV5J73e+I9NvoCe WuXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Ez1jIiTv9nX1Skc1wM1E/PnmqK6jZZdjJqYTYBY0xHY=; b=LsYAvCgSVwvA/wqy73zSh/4/xzEaJBM/2sT8FuIMi/PV8vJ8Ep1C1so5Z+386AaO0D 6QI+xPEV7Txisyr5tiP0gRCY62So3IXHypblWqJMb9k+h/yY7XrMspPW1xhXgUqrieLT bJveV6B08QGeh53gzCYf/ToDBtpFinfIJ1eHPGeTQImNu4NR32dPTM/NqrlEGhgns3vg 29OGFxAlDUdUJHg+U23xL2Fi8CLfFT5zukkZH7toDtSQXYPmUoFHDm7UzImL7L8WCrk8 E0PXy3rUftDZPe0HDj8gNSLDuyAUcbXky2zgmSbw5mJtVbDrLFhO5fgfcx7e53iVjDGL p2+A== X-Gm-Message-State: AFqh2kr+OC/ftcw+G+uCTMd3gxCikmbRXP59qRZAG6r1fPcmTjNzH71a WWOwNZG5BLz3t7lT1oIoB4b/hQ== X-Google-Smtp-Source: AMrXdXsWI+Xn0CCZaPu7nEc4G6KvXleAVgMRzL7EE29YVtnKarz3Jdw/b+2Wh3ptAxw9WtwVxtljUg== X-Received: by 2002:a1c:4b19:0:b0:3da:fb5c:8754 with SMTP id y25-20020a1c4b19000000b003dafb5c8754mr28049633wma.2.1674640925987; Wed, 25 Jan 2023 02:02:05 -0800 (PST) Received: from [192.168.10.46] (146725694.box.freepro.com. [130.180.211.218]) by smtp.googlemail.com with ESMTPSA id h20-20020a05600c351400b003dc1300eab0sm1460677wmq.33.2023.01.25.02.02.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Jan 2023 02:02:05 -0800 (PST) Message-ID: <0df50d0f-de3a-a2be-9363-2b3c65599f96@linaro.org> Date: Wed, 25 Jan 2023 11:02:03 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH v7 4/4] thermal: mediatek: add another get_temp ops for thermal sensors Content-Language: en-US To: Amjad Ouled-Ameur , "Rafael J. Wysocki" , Amit Kucheria , Rob Herring , Krzysztof Kozlowski , Zhang Rui Cc: AngeloGioacchino Del Regno , Fabien Parent , Matthias Brugger , Markus Schneider-Pargmann , linux-pm@vger.kernel.org, Rob Herring , Michael Kao , linux-kernel@vger.kernel.org, Hsin-Yi Wang , linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, devicetree@vger.kernel.org References: <20221018-up-i350-thermal-bringup-v7-0-ebf08ff2eddb@baylibre.com> <20221018-up-i350-thermal-bringup-v7-4-ebf08ff2eddb@baylibre.com> <4121bb6b-30db-7a23-f4c8-40afdda7a0b5@linaro.org> <0644aede-c281-3919-50e0-4466f6587d81@linaro.org> <187b0fe1-1f14-d8b8-c827-1e824da0b1d3@baylibre.com> <9f9547a2-69dd-f91d-c587-289156bf9d55@linaro.org> <2950b824-ad2f-2579-a956-a03d157453eb@baylibre.com> <0b5e3a14-fd23-4646-d4cb-df255eb8fa20@baylibre.com> From: Daniel Lezcano In-Reply-To: <0b5e3a14-fd23-4646-d4cb-df255eb8fa20@baylibre.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 24/01/2023 23:27, Amjad Ouled-Ameur wrote: > > On 1/24/23 18:55, Daniel Lezcano wrote: >> On 24/01/2023 18:46, Amjad Ouled-Ameur wrote: >>> >>> On 1/24/23 17:54, Daniel Lezcano wrote: >>>> >>>> Hi Amjad, >>>> >>>> On 24/01/2023 11:08, Amjad Ouled-Ameur wrote: >>>> >>>> [ ... ] >>>> >>>>>>> >>>>>>> IIUC, there is a sensor per couple of cores. 1 x 2Bigs, 1 x >>>>>>> 2Bigs, 1 x 4 Little, right ? >>>>>> >>>>>> MT8365 SoC has 4 x A53 CPUs. The SoC has 4 thermal zones per >>>>>> sensor. Thermal zone 0 corresponds >>>>>> >>>>>> to all 4 x A53 CPUs, the other thermal zones (1, 2 and 3) has >>>>>> nothing to do with CPUs. The cooling device type >>>>>> >>>>>> used for CPUs is passive. FYI, thermal zones 1, 2 and 3 are >>>>>> present in the SoC for debug-purpose only, they are not supposed >>>>>> >>>>>> to be used for production. >>>>>> >>>>> After reconsidering the fact that zones 1, 2 and 3 are only used >>>>> for dev/debug, it might be best to avo > >>>>> aggregation as you suggested, and keep only support for zone 0 in >>>>> this driver. Thus I suggest I send a V8 >>>>> >>>>> where I keep only below fixes for this patch if that's okay with you: >>>>> >>>>> - Define "raw_to_mcelsius" function pointer for "struct >>>>> thermal_bank_cfg". >>>>> >>>>> - Fix "mtk_thermal" variable in mtk_read_temp(). >>>>> >>>>> - Set "mt->raw_to_mcelsius" in probe(). >>>>> >>>>> >>>>> For zones 1, 2 and 3 we can later add a different driver specific >>>>> for dev/debug to probe them to >>>>> >>>>> avoid confusion. >>>> >>>> You can add them in the driver and in the device tree, but just add >>>> the cooling device for the thermal zone 0. >>> >>> Thermal zone 0 uses CPU{0..3} for passive cooling, in this case we >>> should register cooling device with >>> >>> cpufreq_cooling_register() for each CPU right ? >> >> No, the OF code device tree does already that. You just have to >> register the different thermal zones. >> >> Do you have a pointer to a device tree for this board and the thermal >> setup ? > > Sure, here is a dtsi for MT8365 SoC which contains thermal nodes [0]. From my POV, there are two different setup with the DT but only one implementation with the driver. The driver should register all the thermal zones for each CPUs. For that, make things nice with the defines for the dt-bindings like [1]. Then the device tree: setup1: Describe all the thermal zones in the DT which will be similar to [2]. Each CPU has a thermal zone, trip points and the same cooling device. The first thermal zone reaching the trip temperature threshold will start the mitigation. The thermal framework takes care of multiple thermal zones sharing the same cooling device. The result will be the same as the max temperature aggregation you did previously. setup2: Describe all the thermal zones in the DT [3], but add the cooling device only on the sensor you are interested in mitigating. And finally, if the sensors should be used to describe a kind of temperature gradient, a linear equation could be used but that is not implemented yet in the thermal framework. Hope that helps -- Daniel [1] https://lore.kernel.org/linux-arm-kernel/5dd5c795-5e67-146d-7132-30fc90171d4c@collabora.com/T/#Z2e.:..:20230124131717.128660-3-bchihi::40baylibre.com:1include:dt-bindings:thermal:mediatek-lvts.h [2] https://lore.kernel.org/linux-arm-kernel/5dd5c795-5e67-146d-7132-30fc90171d4c@collabora.com/T/#m303240c4da71f6f37831e5d1b6f3da771ae8dd90 [3] https://lore.kernel.org/linux-arm-kernel/5dd5c795-5e67-146d-7132-30fc90171d4c@collabora.com/T/#Z2e.:..:20230124131717.128660-6-bchihi::40baylibre.com:1arch:arm64:boot:dts:mediatek:mt8195.dtsi -- 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 383ABC54E94 for ; Wed, 25 Jan 2023 10:05:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=9nQReAh367ZYdtNyKVtqT4rh0XTdt1vMd3+i0j2SurY=; b=W502vnIMKeRNUq mK3VH04AhdTu0uoEGaFvln//dP9lnGH1c1N7i2QMW6Q4yjndQ7hTNn+MJ5nUnPDEJRjzm2j2BcNQS 0ktpQFXo+3M41Z8rmbldRvqKe59FskTxfESKZ93yZ1/ZCKk/umyShCQrH6W2A6+qufDgABkIxGcYh Nv4EtetT5o9LoWU6yaEr9zigpj6evq5rH5wJAj5ynb1bJlgxi70lOpPjiYqRD+THn08ctuBYW0aH4 Z8TSYlUmxUj4jJS1wo/+QiUMgzbo4LSxkkzEynAaI6j3J43YKwmm2m9bJbr58T+STYJZh7w6q6v/L bDaewBr5bVo0LWNIiA4A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pKcdL-006o2Q-HA; Wed, 25 Jan 2023 10:04:00 +0000 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pKcbX-006nJm-Rr for linux-arm-kernel@lists.infradead.org; Wed, 25 Jan 2023 10:02:11 +0000 Received: by mail-wm1-x331.google.com with SMTP id q8so13305211wmo.5 for ; Wed, 25 Jan 2023 02:02:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=Ez1jIiTv9nX1Skc1wM1E/PnmqK6jZZdjJqYTYBY0xHY=; b=HxmBkWhRZanAM19gbjD/LEt8+fEINkj3ywKLosQLQbJQNZsXfqnXpDbmIAv4vAZn+h Rp/oupBFgjLiKjSMJn0GJqR2OhyItaYDqy9fwTsHSNcLN4EsLbpzBTzwF7Eru0Dyz4MS YHXwLS9ae2cRkytyAYZtRsKZGPO+vvwpEVDhVGWnjZn8WvObuOjAIj7unsoEpdiX6wsG ig6NlHG+XmKN3XjOp67HzuQsrDjiAHGpq3gf5Dkone9+k/HByHdp2SKXjlBhOEtRsPlG brxwTlr9t101guYLnvtRfX0DOYLo0tR56e+9YXEZV8ZDADgbSaQ7KpV5J73e+I9NvoCe WuXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Ez1jIiTv9nX1Skc1wM1E/PnmqK6jZZdjJqYTYBY0xHY=; b=c8QvBhBt/9QplAV5D4csqRwadKKggjNJ7CneiNX2ydwVt1R/Az73/RJA6/tULL2iFW yK5AEycKtrpR1036WNAJeX3VbHuryexd4rfEX/S1wL6Rr1dQjDRRPcppnsQnWKpqedaJ 6zmQft5MdmVBEZhH+SdwsGQ1FPJn2DH5OvWrg4/6pH2sLOoG5riP7r1eycxx9bo+yMuC aMlzQaqOiHQbkfUZWxUMNjXNOTgz4o5yrcFRfvB78cnL9AxDdnnSqY/5/HtO/i/YgVji lRGUSFkKjH+W+gQqpkDq7/DuGMnKoTbvAi7rTAROFLM2HZ2q1WPyXW5zAkew7f/UdpI2 O9xA== X-Gm-Message-State: AFqh2kq+wagOqG/E7QJ54kW5ZmUKQn+/nlo3n96d0H9OdR666PRKnlj6 iEk2UrR9CLJH/Uih6y6Qh1j5jw== X-Google-Smtp-Source: AMrXdXsWI+Xn0CCZaPu7nEc4G6KvXleAVgMRzL7EE29YVtnKarz3Jdw/b+2Wh3ptAxw9WtwVxtljUg== X-Received: by 2002:a1c:4b19:0:b0:3da:fb5c:8754 with SMTP id y25-20020a1c4b19000000b003dafb5c8754mr28049633wma.2.1674640925987; Wed, 25 Jan 2023 02:02:05 -0800 (PST) Received: from [192.168.10.46] (146725694.box.freepro.com. [130.180.211.218]) by smtp.googlemail.com with ESMTPSA id h20-20020a05600c351400b003dc1300eab0sm1460677wmq.33.2023.01.25.02.02.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Jan 2023 02:02:05 -0800 (PST) Message-ID: <0df50d0f-de3a-a2be-9363-2b3c65599f96@linaro.org> Date: Wed, 25 Jan 2023 11:02:03 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH v7 4/4] thermal: mediatek: add another get_temp ops for thermal sensors Content-Language: en-US To: Amjad Ouled-Ameur , "Rafael J. Wysocki" , Amit Kucheria , Rob Herring , Krzysztof Kozlowski , Zhang Rui Cc: AngeloGioacchino Del Regno , Fabien Parent , Matthias Brugger , Markus Schneider-Pargmann , linux-pm@vger.kernel.org, Rob Herring , Michael Kao , linux-kernel@vger.kernel.org, Hsin-Yi Wang , linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, devicetree@vger.kernel.org References: <20221018-up-i350-thermal-bringup-v7-0-ebf08ff2eddb@baylibre.com> <20221018-up-i350-thermal-bringup-v7-4-ebf08ff2eddb@baylibre.com> <4121bb6b-30db-7a23-f4c8-40afdda7a0b5@linaro.org> <0644aede-c281-3919-50e0-4466f6587d81@linaro.org> <187b0fe1-1f14-d8b8-c827-1e824da0b1d3@baylibre.com> <9f9547a2-69dd-f91d-c587-289156bf9d55@linaro.org> <2950b824-ad2f-2579-a956-a03d157453eb@baylibre.com> <0b5e3a14-fd23-4646-d4cb-df255eb8fa20@baylibre.com> From: Daniel Lezcano In-Reply-To: <0b5e3a14-fd23-4646-d4cb-df255eb8fa20@baylibre.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230125_020208_010455_5D6FE6CA X-CRM114-Status: GOOD ( 22.44 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMjQvMDEvMjAyMyAyMzoyNywgQW1qYWQgT3VsZWQtQW1ldXIgd3JvdGU6Cj4gCj4gT24gMS8y NC8yMyAxODo1NSwgRGFuaWVsIExlemNhbm8gd3JvdGU6Cj4+IE9uIDI0LzAxLzIwMjMgMTg6NDYs IEFtamFkIE91bGVkLUFtZXVyIHdyb3RlOgo+Pj4KPj4+IE9uIDEvMjQvMjMgMTc6NTQsIERhbmll bCBMZXpjYW5vIHdyb3RlOgo+Pj4+Cj4+Pj4gSGkgQW1qYWQsCj4+Pj4KPj4+PiBPbiAyNC8wMS8y MDIzIDExOjA4LCBBbWphZCBPdWxlZC1BbWV1ciB3cm90ZToKPj4+Pgo+Pj4+IFsgLi4uIF0KPj4+ Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gSUlVQywgdGhlcmUgaXMgYSBzZW5zb3IgcGVyIGNvdXBsZSBvZiBj b3Jlcy4gMSB4IDJCaWdzLCAxIHggCj4+Pj4+Pj4gMkJpZ3MsIDEgeCA0IExpdHRsZSwgcmlnaHQg Pwo+Pj4+Pj4KPj4+Pj4+IE1UODM2NSBTb0MgaGFzIDQgeCBBNTMgQ1BVcy4gVGhlIFNvQyBoYXMg NCB0aGVybWFsIHpvbmVzIHBlciAKPj4+Pj4+IHNlbnNvci4gVGhlcm1hbCB6b25lIDAgY29ycmVz cG9uZHMKPj4+Pj4+Cj4+Pj4+PiB0byBhbGwgNCB4IEE1MyBDUFVzLCB0aGUgb3RoZXIgdGhlcm1h bCB6b25lcyAoMSwgMiBhbmQgMykgaGFzIAo+Pj4+Pj4gbm90aGluZyB0byBkbyB3aXRoIENQVXMu IFRoZSBjb29saW5nIGRldmljZSB0eXBlCj4+Pj4+Pgo+Pj4+Pj4gdXNlZCBmb3IgQ1BVcyBpcyBw YXNzaXZlLiBGWUksIHRoZXJtYWwgem9uZXMgMSwgMiBhbmQgMyBhcmUgCj4+Pj4+PiBwcmVzZW50 IGluIHRoZSBTb0MgZm9yIGRlYnVnLXB1cnBvc2Ugb25seSwgdGhleSBhcmUgbm90IHN1cHBvc2Vk Cj4+Pj4+Pgo+Pj4+Pj4gdG8gYmUgdXNlZCBmb3IgcHJvZHVjdGlvbi4KPj4+Pj4+Cj4+Pj4+IEFm dGVyIHJlY29uc2lkZXJpbmcgdGhlIGZhY3QgdGhhdCB6b25lcyAxLCAyIGFuZCAzIGFyZSBvbmx5 IHVzZWQgCj4+Pj4+IGZvciBkZXYvZGVidWcsIGl0IG1pZ2h0IGJlIGJlc3QgdG8gYXZvID4KPj4+ Pj4gYWdncmVnYXRpb24gYXMgeW91IHN1Z2dlc3RlZCwgYW5kIGtlZXAgb25seSBzdXBwb3J0IGZv ciB6b25lIDAgaW4gCj4+Pj4+IHRoaXMgZHJpdmVyLiBUaHVzIEkgc3VnZ2VzdCBJIHNlbmQgYSBW OAo+Pj4+Pgo+Pj4+PiB3aGVyZSBJIGtlZXAgb25seSBiZWxvdyBmaXhlcyBmb3IgdGhpcyBwYXRj aCBpZiB0aGF0J3Mgb2theSB3aXRoIHlvdToKPj4+Pj4KPj4+Pj4gLSBEZWZpbmUgInJhd190b19t Y2Vsc2l1cyIgZnVuY3Rpb24gcG9pbnRlciBmb3IgInN0cnVjdCAKPj4+Pj4gdGhlcm1hbF9iYW5r X2NmZyIuCj4+Pj4+Cj4+Pj4+IC0gRml4ICJtdGtfdGhlcm1hbCIgdmFyaWFibGUgaW4gbXRrX3Jl YWRfdGVtcCgpLgo+Pj4+Pgo+Pj4+PiAtIFNldCAibXQtPnJhd190b19tY2Vsc2l1cyIgaW4gcHJv YmUoKS4KPj4+Pj4KPj4+Pj4KPj4+Pj4gRm9yIHpvbmVzIDEsIDIgYW5kIDMgd2UgY2FuIGxhdGVy IGFkZCBhIGRpZmZlcmVudCBkcml2ZXIgc3BlY2lmaWMgCj4+Pj4+IGZvciBkZXYvZGVidWcgdG8g cHJvYmUgdGhlbSB0bwo+Pj4+Pgo+Pj4+PiBhdm9pZCBjb25mdXNpb24uCj4+Pj4KPj4+PiBZb3Ug Y2FuIGFkZCB0aGVtIGluIHRoZSBkcml2ZXIgYW5kIGluIHRoZSBkZXZpY2UgdHJlZSwgYnV0IGp1 c3QgYWRkIAo+Pj4+IHRoZSBjb29saW5nIGRldmljZSBmb3IgdGhlIHRoZXJtYWwgem9uZSAwLgo+ Pj4KPj4+IFRoZXJtYWwgem9uZSAwIHVzZXMgQ1BVezAuLjN9IGZvciBwYXNzaXZlIGNvb2xpbmcs IGluIHRoaXMgY2FzZSB3ZSAKPj4+IHNob3VsZCByZWdpc3RlciBjb29saW5nIGRldmljZSB3aXRo Cj4+Pgo+Pj4gY3B1ZnJlcV9jb29saW5nX3JlZ2lzdGVyKCkgZm9yIGVhY2ggQ1BVIHJpZ2h0ID8K Pj4KPj4gTm8sIHRoZSBPRiBjb2RlIGRldmljZSB0cmVlIGRvZXMgYWxyZWFkeSB0aGF0LiBZb3Ug anVzdCBoYXZlIHRvIAo+PiByZWdpc3RlciB0aGUgZGlmZmVyZW50IHRoZXJtYWwgem9uZXMuCj4+ Cj4+IERvIHlvdSBoYXZlIGEgcG9pbnRlciB0byBhIGRldmljZSB0cmVlIGZvciB0aGlzIGJvYXJk IGFuZCB0aGUgdGhlcm1hbCAKPj4gc2V0dXAgPwo+IAo+IFN1cmUsIGhlcmUgaXMgYSBkdHNpIGZv ciBNVDgzNjUgU29DIHdoaWNoIGNvbnRhaW5zIHRoZXJtYWwgbm9kZXMgWzBdLgoKIEZyb20gbXkg UE9WLCB0aGVyZSBhcmUgdHdvIGRpZmZlcmVudCBzZXR1cCB3aXRoIHRoZSBEVCBidXQgb25seSBv bmUgCmltcGxlbWVudGF0aW9uIHdpdGggdGhlIGRyaXZlci4KClRoZSBkcml2ZXIgc2hvdWxkIHJl Z2lzdGVyIGFsbCB0aGUgdGhlcm1hbCB6b25lcyBmb3IgZWFjaCBDUFVzLiBGb3IgCnRoYXQsIG1h a2UgdGhpbmdzIG5pY2Ugd2l0aCB0aGUgZGVmaW5lcyBmb3IgdGhlIGR0LWJpbmRpbmdzIGxpa2Ug WzFdLgoKVGhlbiB0aGUgZGV2aWNlIHRyZWU6CgpzZXR1cDE6CgpEZXNjcmliZSBhbGwgdGhlIHRo ZXJtYWwgem9uZXMgaW4gdGhlIERUIHdoaWNoIHdpbGwgYmUgc2ltaWxhciB0byBbMl0uIApFYWNo IENQVSBoYXMgYSB0aGVybWFsIHpvbmUsIHRyaXAgcG9pbnRzIGFuZCB0aGUgc2FtZSBjb29saW5n IGRldmljZS4KClRoZSBmaXJzdCB0aGVybWFsIHpvbmUgcmVhY2hpbmcgdGhlIHRyaXAgdGVtcGVy YXR1cmUgdGhyZXNob2xkIHdpbGwgCnN0YXJ0IHRoZSBtaXRpZ2F0aW9uLiBUaGUgdGhlcm1hbCBm cmFtZXdvcmsgdGFrZXMgY2FyZSBvZiBtdWx0aXBsZSAKdGhlcm1hbCB6b25lcyBzaGFyaW5nIHRo ZSBzYW1lIGNvb2xpbmcgZGV2aWNlLgoKVGhlIHJlc3VsdCB3aWxsIGJlIHRoZSBzYW1lIGFzIHRo ZSBtYXggdGVtcGVyYXR1cmUgYWdncmVnYXRpb24geW91IGRpZCAKcHJldmlvdXNseS4KCnNldHVw MjoKCkRlc2NyaWJlIGFsbCB0aGUgdGhlcm1hbCB6b25lcyBpbiB0aGUgRFQgWzNdLCBidXQgYWRk IHRoZSBjb29saW5nIGRldmljZSAKb25seSBvbiB0aGUgc2Vuc29yIHlvdSBhcmUgaW50ZXJlc3Rl ZCBpbiBtaXRpZ2F0aW5nLgoKCkFuZCBmaW5hbGx5LCBpZiB0aGUgc2Vuc29ycyBzaG91bGQgYmUg dXNlZCB0byBkZXNjcmliZSBhIGtpbmQgb2YgCnRlbXBlcmF0dXJlIGdyYWRpZW50LCBhIGxpbmVh ciBlcXVhdGlvbiBjb3VsZCBiZSB1c2VkIGJ1dCB0aGF0IGlzIG5vdCAKaW1wbGVtZW50ZWQgeWV0 IGluIHRoZSB0aGVybWFsIGZyYW1ld29yay4KCkhvcGUgdGhhdCBoZWxwcwoKICAgLS0gRGFuaWVs CgpbMV0gCmh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWFybS1rZXJuZWwvNWRkNWM3OTUt NWU2Ny0xNDZkLTcxMzItMzBmYzkwMTcxZDRjQGNvbGxhYm9yYS5jb20vVC8jWjJlLjouLjoyMDIz MDEyNDEzMTcxNy4xMjg2NjAtMy1iY2hpaGk6OjQwYmF5bGlicmUuY29tOjFpbmNsdWRlOmR0LWJp bmRpbmdzOnRoZXJtYWw6bWVkaWF0ZWstbHZ0cy5oCgpbMl0gCmh0dHBzOi8vbG9yZS5rZXJuZWwu b3JnL2xpbnV4LWFybS1rZXJuZWwvNWRkNWM3OTUtNWU2Ny0xNDZkLTcxMzItMzBmYzkwMTcxZDRj QGNvbGxhYm9yYS5jb20vVC8jbTMwMzI0MGM0ZGE3MWY2ZjM3ODMxZTVkMWI2ZjNkYTc3MWFlOGRk OTAKClszXSAKaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGludXgtYXJtLWtlcm5lbC81ZGQ1Yzc5 NS01ZTY3LTE0NmQtNzEzMi0zMGZjOTAxNzFkNGNAY29sbGFib3JhLmNvbS9ULyNaMmUuOi4uOjIw MjMwMTI0MTMxNzE3LjEyODY2MC02LWJjaGloaTo6NDBiYXlsaWJyZS5jb206MWFyY2g6YXJtNjQ6 Ym9vdDpkdHM6bWVkaWF0ZWs6bXQ4MTk1LmR0c2kKCgotLSAKPGh0dHA6Ly93d3cubGluYXJvLm9y Zy8+IExpbmFyby5vcmcg4pSCIE9wZW4gc291cmNlIHNvZnR3YXJlIGZvciBBUk0gU29DcwoKRm9s bG93IExpbmFybzogIDxodHRwOi8vd3d3LmZhY2Vib29rLmNvbS9wYWdlcy9MaW5hcm8+IEZhY2Vi b29rIHwKPGh0dHA6Ly90d2l0dGVyLmNvbS8jIS9saW5hcm9vcmc+IFR3aXR0ZXIgfAo8aHR0cDov L3d3dy5saW5hcm8ub3JnL2xpbmFyby1ibG9nLz4gQmxvZwoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0 CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK