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 D66B2C7EE2E for ; Tue, 28 Feb 2023 11:23:51 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=RWvohD9QSalEeqiDe39Vg0To13ovGm8BHnoRAaZPl6o=; b=gwN1uW0sn+0Eri oQZzT5lI19EFNZcb5f+eoPeFdLTf6/s0Q7iwRT4aaXXnjuGqtCYitaMoxb9T1AWaeI9nNrABsLU00 /rfuA2dS92+Djqr4hDPI7Eo/XMD6GlDKVMpIe/rOdK3yO8ZtQr3HemOHrMRUXlwEQ0Mt6Ra7GbqbP ILcj0FUn4uL2axpQqDkNmghM/OtZIMR4WvR4NHSxJ3dc4oXpzHdnp2yeak9I67QIq2jyW1n4lm276 fJbRnRtOSbjIpzi3drHWpcPpsCf9DClElwMFoUVOdTc6tlYGCO4IZVi7gxnE7LV8L4AGgGdtSo6K0 7f+lvDbjPWBwjEeLok2A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pWy55-00Cx5l-Go; Tue, 28 Feb 2023 11:23:39 +0000 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pWy4e-00Cwqd-Oh for linux-amlogic@lists.infradead.org; Tue, 28 Feb 2023 11:23:25 +0000 Received: by mail-wr1-x42a.google.com with SMTP id v16so6527554wrn.0 for ; Tue, 28 Feb 2023 03:23:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1677583389; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fd/txMs7LSSUOqvjw5UVJFK6TPR235QoSrDvWMN7cfo=; b=LrpgnAeXcE72c9Rt0AXr0yi+uf54rCE4GH6zXys/cXqsYsph879t0N/McAb94jLH+d DaaRJJetEasnRuutVzM2RoNMXq19Kyj5JPbxZk1QyyOlUj00FMcN/+k4M0R4lzcEtepR TpDMPSEYCwum3pw61kWOZ21Q5appvWw8viJ5745l+VdSg4W7YEr3nfJ65zy5r03S1CRP Jdm4sOlM3+KK08ESbV8ZzNI8m1dt/+TSLrxcpob3mLlY+Aqzf+4FUQgUZ3Sh7Zjz958N c0i84e1c2l+mYTG7ILvW1EXfc9DeMmZ+vNCs6SnYlN7I0I9MfxxFEcndNZtM0aKcEf4e RK9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677583389; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fd/txMs7LSSUOqvjw5UVJFK6TPR235QoSrDvWMN7cfo=; b=D4FzLEoj/1fbbERS3tEH0GGsrTKWY8NQM29Ka6WdB1GGqZX+nrXD2FplDc1tjXUDY9 JfIh2IlrVelVZXF9pew6hwW5CymbeOUrFRK/jqCypxAFzA0tJ8OG/ddvS7p4wS0E5QGd LYRjCV3swfEQO8ohhSGG5eQq5DRYVt0ZKQ/LJfSzk1ApYduNmB/1l40ms9iacjTUW3K9 Z7vbGi8ZHg2u/XU0k03HzXYoYZaOnmONX2Nt0vJvt0e2uhGSqgqWPNh5MCKaUTpG0+Z3 iNIvPH4Qjc9m9gpey6uucjT9vkE27QjAV2j3Y1/vC1auJ5NWaBiaoYL3UjThonqDvYS3 7Vgg== X-Gm-Message-State: AO0yUKUfR3uUsTcPmNlRSENSdP/dNneiIfbrxXcYSS5tidB7VRyDkuqg qBUxu7k1JJF/fStXcnkBZ8cNtg== X-Google-Smtp-Source: AK7set+S9VBOgKuilnsctA7+1r4VYM6Khk83zi5KBpGu4yE33CqOoIMmj9FJiGLd1Td8wc6EifyLLQ== X-Received: by 2002:a05:6000:2ca:b0:2c5:561f:fda with SMTP id o10-20020a05600002ca00b002c5561f0fdamr2234741wry.5.1677583388786; Tue, 28 Feb 2023 03:23:08 -0800 (PST) Received: from mai.box.freepro.com ([2a05:6e02:1041:c10:6830:6390:2815:b6a5]) by smtp.gmail.com with ESMTPSA id z5-20020a5d6545000000b002c5501a5803sm9598130wrv.65.2023.02.28.03.23.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Feb 2023 03:23:08 -0800 (PST) From: Daniel Lezcano To: rafael@kernel.org, daniel.lezcano@linaro.org Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Mark Brown , AngeloGioacchino Del Regno , Balsam CHIHI , Adam Ward , Baolin Wang , Jernej Skrabec , "Rafael J . Wysocki" , Florian Fainelli , Guillaume La Roque , Amit Kucheria , Zhang Rui , Miquel Raynal , Broadcom internal kernel review list , Ray Jui , Scott Branden , Markus Mayer , Support Opensource , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Thara Gopinath , Andy Gross , Bjorn Andersson , Konrad Dybcio , =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Heiko Stuebner , Bartlomiej Zolnierkiewicz , Krzysztof Kozlowski , Alim Akhtar , Orson Zhai , Chunyan Zhang , Maxime Coquelin , Alexandre Torgue , Vasily Khoruzhick , Yangtao Li , Chen-Yu Tsai , Samuel Holland , Thierry Reding , Jonathan Hunter , Talel Shenhar , Eduardo Valentin , Keerthy , Kunihiko Hayashi , Masami Hiramatsu , Matthias Brugger , Stefan Wahren , ye xingchen , Zheng Yongjun , Srinivas Pandruvada , Davidlohr Bueso , Sumeet Pawnikar , Kees Cook , Shang XiaoJing , Tim Zimmermann , Yang Li , Jiang Jian , Daniel Golle , Randy Dunlap , Minghao Chi , Johan Hovold , Mikko Perttunen , linux-amlogic@lists.infradead.org (open list:THERMAL DRIVER FOR AMLOGIC SOCS), linux-rpi-kernel@lists.infradead.org (moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE), linux-arm-kernel@lists.infradead.org (moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE), linux-arm-msm@vger.kernel.org (open list:QUALCOMM TSENS THERMAL DRIVER), linux-renesas-soc@vger.kernel.org (open list:RENESAS R-CAR THERMAL DRIVERS), linux-rockchip@lists.infradead.org (open list:ARM/Rockchip SoC support), linux-samsung-soc@vger.kernel.org (open list:SAMSUNG THERMAL DRIVER), linux-stm32@st-md-mailman.stormreply.com (moderated list:ARM/STM32 ARCHITECTURE), linux-sunxi@lists.linux.dev (open list:ARM/Allwinner sunXi SoC support), linux-tegra@vger.kernel.org (open list:TEGRA ARCHITECTURE SUPPORT), linux-omap@vger.kernel.org (open list:TI BANDGAP AND THERMAL DRIVER), linux-mediatek@lists.infradead.org (moderated list:ARM/Mediatek SoC support) Subject: [PATCH v4 02/19] thermal/core: Use the thermal zone 'devdata' accessor in thermal located drivers Date: Tue, 28 Feb 2023 12:22:21 +0100 Message-Id: <20230228112238.2312273-3-daniel.lezcano@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230228112238.2312273-1-daniel.lezcano@linaro.org> References: <20230228112238.2312273-1-daniel.lezcano@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230228_032312_869323_1BFBB85F X-CRM114-Status: GOOD ( 18.35 ) X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org VGhlIHRoZXJtYWwgem9uZSBkZXZpY2Ugc3RydWN0dXJlIGlzIGV4cG9zZWQgdG8gdGhlIGRpZmZl cmVudCBkcml2ZXJzCmFuZCBvYnZpb3VzbHkgdGhleSBhY2Nlc3MgdGhlIGludGVybmFscyB3aGls ZSB0aGF0IHNob3VsZCBiZQpyZXN0cmljdGVkIHRvIHRoZSBjb3JlIHRoZXJtYWwgY29kZS4KCklu IG9yZGVyIHRvIHNlbGYtZW5jYXBzdWxhdGUgdGhlIHRoZXJtYWwgY29yZSBjb2RlLCB3ZSBuZWVk IHRvIHByZXZlbnQKdGhlIGRyaXZlcnMgYWNjZXNzaW5nIGRpcmVjdGx5IHRoZSB0aGVybWFsIHpv bmUgc3RydWN0dXJlIGFuZCBwcm92aWRlCmFjY2Vzc29yIGZ1bmN0aW9ucyB0byBkZWFsIHdpdGgu CgpVc2UgdGhlIGRldmRhdGEgYWNjZXNzb3IgaW50cm9kdWNlZCBpbiB0aGUgcHJldmlvdXMgcGF0 Y2guCgpObyBmdW5jdGlvbmFsIGNoYW5nZXMgaW50ZW5kZWQuCgpTaWduZWQtb2ZmLWJ5OiBEYW5p ZWwgTGV6Y2FubyA8ZGFuaWVsLmxlemNhbm9AbGluYXJvLm9yZz4KUmV2aWV3ZWQtYnk6IE5pa2xh cyBTw7ZkZXJsdW5kIDxuaWtsYXMuc29kZXJsdW5kK3JlbmVzYXNAcmFnbmF0ZWNoLnNlPiAjUi1D YXIKQWNrZWQtYnk6IE1hcmsgQnJvd24gPGJyb29uaWVAa2VybmVsLm9yZz4KUmV2aWV3ZWQtYnk6 IEFuZ2Vsb0dpb2FjY2hpbm8gRGVsIFJlZ25vIDxhbmdlbG9naW9hY2NoaW5vLmRlbHJlZ25vQGNv bGxhYm9yYS5jb20+ICNNZWRpYVRlayBhdXhhZGMgYW5kIGx2dHMKUmV2aWV3ZWQtYnk6IEJhbHNh bSBDSElISSA8YmNoaWhpQGJheWxpYnJlLmNvbT4gI01lZGlhdGVrIGx2dHMKUmV2aWV3ZWQtYnk6 IEFkYW0gV2FyZCA8RExHLUFkYW0uV2FyZC5vcGVuc291cmNlQGRtLnJlbmVzYXMuY29tPiAjZGE5 MDYyClJldmlld2VkLWJ5OiBCYW9saW4gV2FuZyA8YmFvbGluLndhbmdAbGludXguYWxpYmFiYS5j b20+ICAjc3ByZWFkCkFja2VkLWJ5OiBKZXJuZWogU2tyYWJlYyA8amVybmVqLnNrcmFiZWNAZ21h aWwuY29tPiAjc3VuOGlfdGhlcm1hbApBY2tlZC1ieTogUmFmYWVsIEouIFd5c29ja2kgPHJhZmFl bC5qLnd5c29ja2lAaW50ZWwuY29tPgpBY2tlZC1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWlu ZWxsaUBnbWFpbC5jb20+ICNCcm9hZGNvbQotLS0KIGRyaXZlcnMvdGhlcm1hbC9hbWxvZ2ljX3Ro ZXJtYWwuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3RoZXJtYWwvYXJtYWRh X3RoZXJtYWwuYyAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL3RoZXJtYWwv YnJvYWRjb20vYmNtMjcxMV90aGVybWFsLmMgICAgICAgICAgfCAgMiArLQogZHJpdmVycy90aGVy bWFsL2Jyb2FkY29tL2JjbTI4MzVfdGhlcm1hbC5jICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMv dGhlcm1hbC9icm9hZGNvbS9icmNtc3RiX3RoZXJtYWwuYyAgICAgICAgICB8ICA0ICsrLS0KIGRy aXZlcnMvdGhlcm1hbC9icm9hZGNvbS9ucy10aGVybWFsLmMgICAgICAgICAgICAgICB8ICAyICst CiBkcml2ZXJzL3RoZXJtYWwvYnJvYWRjb20vc3ItdGhlcm1hbC5jICAgICAgICAgICAgICAgfCAg MiArLQogZHJpdmVycy90aGVybWFsL2RhOTA2Mi10aGVybWFsLmMgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvdGhlcm1hbC9kYjg1MDBfdGhlcm1hbC5jICAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBkcml2ZXJzL3RoZXJtYWwvZG92ZV90aGVybWFsLmMgICAgICAgICAgICAg ICAgICAgICAgfCAgMiArLQogZHJpdmVycy90aGVybWFsL2hpc2lfdGhlcm1hbC5jICAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGhlcm1hbC9pbXg4bW1fdGhlcm1hbC5jICAg ICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3RoZXJtYWwvaW14X3NjX3RoZXJtYWwu YyAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy90aGVybWFsL2lteF90aGVybWFs LmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0tCiAuLi4vdGhlcm1hbC9pbnRlbC9p bnQzNDB4X3RoZXJtYWwvaW50MzQwMF90aGVybWFsLmMgfCAgMiArLQogLi4uL2ludGVsL2ludDM0 MHhfdGhlcm1hbC9pbnQzNDB4X3RoZXJtYWxfem9uZS5jICAgIHwgIDQgKystLQogLi4uL2ludDM0 MHhfdGhlcm1hbC9wcm9jZXNzb3JfdGhlcm1hbF9kZXZpY2VfcGNpLmMgIHwgIDQgKystLQogZHJp dmVycy90aGVybWFsL2ludGVsL2ludGVsX3BjaF90aGVybWFsLmMgICAgICAgICAgIHwgIDIgKy0K IGRyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnRlbF9xdWFya19kdHNfdGhlcm1hbC5jICAgICB8ICA2 ICsrKy0tLQogZHJpdmVycy90aGVybWFsL2ludGVsL2ludGVsX3NvY19kdHNfaW9zZi5jICAgICAg ICAgIHwgMTMgKysrKystLS0tLS0tLQogZHJpdmVycy90aGVybWFsL2ludGVsL3g4Nl9wa2dfdGVt cF90aGVybWFsLmMgICAgICAgIHwgIDQgKystLQogZHJpdmVycy90aGVybWFsL2szX2JhbmRnYXAu YyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGhlcm1hbC9rM19qNzJ4 eF9iYW5kZ2FwLmMgICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3RoZXJtYWwva2ly a3dvb2RfdGhlcm1hbC5jICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy90aGVybWFs L21heDc3NjIwX3RoZXJtYWwuYyAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGhl cm1hbC9tZWRpYXRlay9hdXhhZGNfdGhlcm1hbC5jICAgICAgICAgICB8ICAyICstCiBkcml2ZXJz L3RoZXJtYWwvbWVkaWF0ZWsvbHZ0c190aGVybWFsLmMgICAgICAgICAgICAgfCAgNCArKy0tCiBk cml2ZXJzL3RoZXJtYWwvcWNvbS9xY29tLXNwbWktYWRjLXRtNS5jICAgICAgICAgICAgfCAgNCAr Ky0tCiBkcml2ZXJzL3RoZXJtYWwvcWNvbS9xY29tLXNwbWktdGVtcC1hbGFybS5jICAgICAgICAg fCAgNCArKy0tCiBkcml2ZXJzL3RoZXJtYWwvcWNvbS90c2Vucy5jICAgICAgICAgICAgICAgICAg ICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL3RoZXJtYWwvcW9yaXFfdGhlcm1hbC5jICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy90aGVybWFsL3JjYXJfZ2VuM190aGVybWFsLmMg ICAgICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy90aGVybWFsL3JjYXJfdGhlcm1hbC5j ICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0tCiBkcml2ZXJzL3RoZXJtYWwvcm9ja2NoaXBf dGhlcm1hbC5jICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL3RoZXJtYWwvcnpn MmxfdGhlcm1hbC5jICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy90aGVybWFs L3NhbXN1bmcvZXh5bm9zX3RtdS5jICAgICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy90 aGVybWFsL3NwZWFyX3RoZXJtYWwuYyAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0K IGRyaXZlcnMvdGhlcm1hbC9zcHJkX3RoZXJtYWwuYyAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBkcml2ZXJzL3RoZXJtYWwvc3Qvc3RfdGhlcm1hbC5jICAgICAgICAgICAgICAgICAgICAg fCAgMiArLQogZHJpdmVycy90aGVybWFsL3N0L3N0bV90aGVybWFsLmMgICAgICAgICAgICAgICAg ICAgIHwgIDQgKystLQogZHJpdmVycy90aGVybWFsL3N1bjhpX3RoZXJtYWwuYyAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGhlcm1hbC90ZWdyYS9zb2N0aGVybS5jICAgICAg ICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogZHJpdmVycy90aGVybWFsL3RlZ3JhL3RlZ3JhLWJw bXAtdGhlcm1hbC5jICAgICAgICAgIHwgIDYgKysrKy0tCiBkcml2ZXJzL3RoZXJtYWwvdGVncmEv dGVncmEzMC10c2Vuc29yLmMgICAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL3RoZXJtYWwv dGhlcm1hbC1nZW5lcmljLWFkYy5jICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy90aGVy bWFsL3RoZXJtYWxfbW1pby5jICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMv dGhlcm1hbC90aS1zb2MtdGhlcm1hbC90aS10aGVybWFsLWNvbW1vbi5jICB8ICA0ICsrLS0KIGRy aXZlcnMvdGhlcm1hbC91bmlwaGllcl90aGVybWFsLmMgICAgICAgICAgICAgICAgICB8ICAyICst CiA0OCBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCA4MSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvYW1sb2dpY190aGVybWFsLmMgYi9kcml2ZXJzL3Ro ZXJtYWwvYW1sb2dpY190aGVybWFsLmMKaW5kZXggOTIzNWZkYTRlYzFlLi5kZmNjOTNlNDVjZGQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9hbWxvZ2ljX3RoZXJtYWwuYworKysgYi9kcml2 ZXJzL3RoZXJtYWwvYW1sb2dpY190aGVybWFsLmMKQEAgLTE4MSw3ICsxODEsNyBAQCBzdGF0aWMg aW50IGFtbG9naWNfdGhlcm1hbF9kaXNhYmxlKHN0cnVjdCBhbWxvZ2ljX3RoZXJtYWwgKmRhdGEp CiBzdGF0aWMgaW50IGFtbG9naWNfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25l X2RldmljZSAqdHosIGludCAqdGVtcCkKIHsKIAl1bnNpZ25lZCBpbnQgdHZhbDsKLQlzdHJ1Y3Qg YW1sb2dpY190aGVybWFsICpwZGF0YSA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBhbWxvZ2ljX3Ro ZXJtYWwgKnBkYXRhID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAogCWlmICghcGRh dGEpCiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2FybWFk YV90aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvYXJtYWRhX3RoZXJtYWwuYwppbmRleCAyZWZj MjIyYTM3OWIuLmViZDYwNjg2MWE2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2FybWFk YV90aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL2FybWFkYV90aGVybWFsLmMKQEAgLTM5 OCw3ICszOTgsNyBAQCBzdGF0aWMgaW50IGFybWFkYV9yZWFkX3NlbnNvcihzdHJ1Y3QgYXJtYWRh X3RoZXJtYWxfcHJpdiAqcHJpdiwgaW50ICp0ZW1wKQogc3RhdGljIGludCBhcm1hZGFfZ2V0X3Rl bXBfbGVnYWN5KHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0aGVybWFsLAogCQkJCSAgaW50 ICp0ZW1wKQogewotCXN0cnVjdCBhcm1hZGFfdGhlcm1hbF9wcml2ICpwcml2ID0gdGhlcm1hbC0+ ZGV2ZGF0YTsKKwlzdHJ1Y3QgYXJtYWRhX3RoZXJtYWxfcHJpdiAqcHJpdiA9IHRoZXJtYWxfem9u ZV9kZXZpY2VfcHJpdih0aGVybWFsKTsKIAlpbnQgcmV0OwogCiAJLyogVmFsaWQgY2hlY2sgKi8K QEAgLTQyMCw3ICs0MjAsNyBAQCBzdGF0aWMgc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2Vfb3Bz IGxlZ2FjeV9vcHMgPSB7CiAKIHN0YXRpYyBpbnQgYXJtYWRhX2dldF90ZW1wKHN0cnVjdCB0aGVy bWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wKQogewotCXN0cnVjdCBhcm1hZGFfdGhlcm1h bF9zZW5zb3IgKnNlbnNvciA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBhcm1hZGFfdGhlcm1hbF9z ZW5zb3IgKnNlbnNvciA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJc3RydWN0IGFy bWFkYV90aGVybWFsX3ByaXYgKnByaXYgPSBzZW5zb3ItPnByaXY7CiAJaW50IHJldDsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2Jyb2FkY29tL2JjbTI3MTFfdGhlcm1hbC5jIGIvZHJp dmVycy90aGVybWFsL2Jyb2FkY29tL2JjbTI3MTFfdGhlcm1hbC5jCmluZGV4IDFmODY1MWQxNTE2 MC4uZmNmY2JiZjA0NGE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvYnJvYWRjb20vYmNt MjcxMV90aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL2Jyb2FkY29tL2JjbTI3MTFfdGhl cm1hbC5jCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCBiY20yNzExX3RoZXJtYWxfcHJpdiB7CiAK IHN0YXRpYyBpbnQgYmNtMjcxMV9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAq dHosIGludCAqdGVtcCkKIHsKLQlzdHJ1Y3QgYmNtMjcxMV90aGVybWFsX3ByaXYgKnByaXYgPSB0 ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgYmNtMjcxMV90aGVybWFsX3ByaXYgKnByaXYgPSB0aGVybWFs X3pvbmVfZGV2aWNlX3ByaXYodHopOwogCWludCBzbG9wZSA9IHRoZXJtYWxfem9uZV9nZXRfc2xv cGUodHopOwogCWludCBvZmZzZXQgPSB0aGVybWFsX3pvbmVfZ2V0X29mZnNldCh0eik7CiAJdTMy IHZhbDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9icm9hZGNvbS9iY20yODM1X3RoZXJt YWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9icm9hZGNvbS9iY20yODM1X3RoZXJtYWwuYwppbmRleCAy MzkxOGJiNzZhZTYuLjg2YWFmNDU5ZGUzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2Jy b2FkY29tL2JjbTI4MzVfdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9icm9hZGNvbS9i Y20yODM1X3RoZXJtYWwuYwpAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgaW50IGJjbTI4MzVfdGhl cm1hbF90ZW1wMmFkYyhpbnQgdGVtcCwgaW50IG9mZnNldCwgaW50IHNsb3BlKQogCiBzdGF0aWMg aW50IGJjbTI4MzVfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAq dHosIGludCAqdGVtcCkKIHsKLQlzdHJ1Y3QgYmNtMjgzNV90aGVybWFsX2RhdGEgKmRhdGEgPSB0 ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgYmNtMjgzNV90aGVybWFsX2RhdGEgKmRhdGEgPSB0aGVybWFs X3pvbmVfZGV2aWNlX3ByaXYodHopOwogCXUzMiB2YWwgPSByZWFkbChkYXRhLT5yZWdzICsgQkNN MjgzNV9UU19UU0VOU1NUQVQpOwogCiAJaWYgKCEodmFsICYgQkNNMjgzNV9UU19UU0VOU1NUQVRf VkFMSUQpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2Jyb2FkY29tL2JyY21zdGJfdGhl cm1hbC5jIGIvZHJpdmVycy90aGVybWFsL2Jyb2FkY29tL2JyY21zdGJfdGhlcm1hbC5jCmluZGV4 IDRkMDJjMjgzMzFlMy4uNjAxNzNjYzgzYzQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwv YnJvYWRjb20vYnJjbXN0Yl90aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL2Jyb2FkY29t L2JyY21zdGJfdGhlcm1hbC5jCkBAIC0xNTIsNyArMTUyLDcgQEAgc3RhdGljIGlubGluZSB1MzIg YXZzX3Rtb25fdGVtcF90b19jb2RlKHN0cnVjdCBicmNtc3RiX3RoZXJtYWxfcHJpdiAqcHJpdiwK IAogc3RhdGljIGludCBicmNtc3RiX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNl ICp0eiwgaW50ICp0ZW1wKQogewotCXN0cnVjdCBicmNtc3RiX3RoZXJtYWxfcHJpdiAqcHJpdiA9 IHR6LT5kZXZkYXRhOworCXN0cnVjdCBicmNtc3RiX3RoZXJtYWxfcHJpdiAqcHJpdiA9IHRoZXJt YWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJdTMyIHZhbDsKIAlsb25nIHQ7CiAKQEAgLTI2Miw3 ICsyNjIsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYnJjbXN0Yl90bW9uX2lycV90aHJlYWQoaW50 IGlycSwgdm9pZCAqZGF0YSkKIAogc3RhdGljIGludCBicmNtc3RiX3NldF90cmlwcyhzdHJ1Y3Qg dGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCBsb3csIGludCBoaWdoKQogewotCXN0cnVjdCBi cmNtc3RiX3RoZXJtYWxfcHJpdiAqcHJpdiA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBicmNtc3Ri X3RoZXJtYWxfcHJpdiAqcHJpdiA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAKIAlk ZXZfZGJnKHByaXYtPmRldiwgInNldCB0cmlwcyAlZCA8LS0+ICVkXG4iLCBsb3csIGhpZ2gpOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvYnJvYWRjb20vbnMtdGhlcm1hbC5jIGIvZHJp dmVycy90aGVybWFsL2Jyb2FkY29tL25zLXRoZXJtYWwuYwppbmRleCAwN2E4YTNmNDliZDAuLmQy NTVhYTg3OWZjMCAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2Jyb2FkY29tL25zLXRoZXJt YWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvYnJvYWRjb20vbnMtdGhlcm1hbC5jCkBAIC0xNiw3 ICsxNiw3IEBACiAKIHN0YXRpYyBpbnQgbnNfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1h bF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKIHsKLQl2b2lkIF9faW9tZW0gKnB2dG1vbiA9 IHR6LT5kZXZkYXRhOworCXZvaWQgX19pb21lbSAqcHZ0bW9uID0gdGhlcm1hbF96b25lX2Rldmlj ZV9wcml2KHR6KTsKIAlpbnQgb2Zmc2V0ID0gdGhlcm1hbF96b25lX2dldF9vZmZzZXQodHopOwog CWludCBzbG9wZSA9IHRoZXJtYWxfem9uZV9nZXRfc2xvcGUodHopOwogCXUzMiB2YWw7CmRpZmYg LS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvYnJvYWRjb20vc3ItdGhlcm1hbC5jIGIvZHJpdmVycy90 aGVybWFsL2Jyb2FkY29tL3NyLXRoZXJtYWwuYwppbmRleCAyYjkzNTAyNTQzZmYuLjc0NzkxNTg5 MDAyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2Jyb2FkY29tL3NyLXRoZXJtYWwuYwor KysgYi9kcml2ZXJzL3RoZXJtYWwvYnJvYWRjb20vc3ItdGhlcm1hbC5jCkBAIC0zMiw3ICszMiw3 IEBAIHN0cnVjdCBzcl90aGVybWFsIHsKIAogc3RhdGljIGludCBzcl9nZXRfdGVtcChzdHJ1Y3Qg dGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKIHsKLQlzdHJ1Y3Qgc3JfdG1vbiAq dG1vbiA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBzcl90bW9uICp0bW9uID0gdGhlcm1hbF96b25l X2RldmljZV9wcml2KHR6KTsKIAlzdHJ1Y3Qgc3JfdGhlcm1hbCAqc3JfdGhlcm1hbCA9IHRtb24t PnByaXY7CiAKIAkqdGVtcCA9IHJlYWRsKHNyX3RoZXJtYWwtPnJlZ3MgKyBTUl9UTU9OX1RFTVBf QkFTRSh0bW9uLT50bW9uX2lkKSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvZGE5MDYy LXRoZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9kYTkwNjItdGhlcm1hbC5jCmluZGV4IGE4MDVh NjY2NmM0NC4uZTcwOTdmMzU0NzUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvZGE5MDYy LXRoZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvZGE5MDYyLXRoZXJtYWwuYwpAQCAtMTIz LDcgKzEyMyw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBkYTkwNjJfdGhlcm1hbF9pcnFfaGFuZGxl cihpbnQgaXJxLCB2b2lkICpkYXRhKQogc3RhdGljIGludCBkYTkwNjJfdGhlcm1hbF9nZXRfdGVt cChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqeiwKIAkJCQkgICBpbnQgKnRlbXApCiB7Ci0J c3RydWN0IGRhOTA2Ml90aGVybWFsICp0aGVybWFsID0gei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgZGE5 MDYyX3RoZXJtYWwgKnRoZXJtYWwgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYoeik7CiAKIAlt dXRleF9sb2NrKCZ0aGVybWFsLT5sb2NrKTsKIAkqdGVtcCA9IHRoZXJtYWwtPnRlbXBlcmF0dXJl OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2RiODUwMF90aGVybWFsLmMgYi9kcml2ZXJz L3RoZXJtYWwvZGI4NTAwX3RoZXJtYWwuYwppbmRleCBjYjEwZTI4MDY4MWYuLmMwNDE4NDk3NTIw YyAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2RiODUwMF90aGVybWFsLmMKKysrIGIvZHJp dmVycy90aGVybWFsL2RiODUwMF90aGVybWFsLmMKQEAgLTYwLDcgKzYwLDcgQEAgc3RydWN0IGRi ODUwMF90aGVybWFsX3pvbmUgewogLyogQ2FsbGJhY2sgdG8gZ2V0IGN1cnJlbnQgdGVtcGVyYXR1 cmUgKi8KIHN0YXRpYyBpbnQgZGI4NTAwX3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxf em9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IGRiODUwMF90aGVybWFsX3pv bmUgKnRoID0gdHotPmRldmRhdGE7CisJc3RydWN0IGRiODUwMF90aGVybWFsX3pvbmUgKnRoID0g dGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAogCS8qCiAJICogVE9ETzogVGhlcmUgaXMg bm8gUFJDTVUgaW50ZXJmYWNlIHRvIGdldCB0ZW1wZXJhdHVyZSBkYXRhIGN1cnJlbnRseSwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9kb3ZlX3RoZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1h bC9kb3ZlX3RoZXJtYWwuYwppbmRleCAwNTY2MjJhNThkMDAuLjZkYjE4ODJlODIyOSAxMDA2NDQK LS0tIGEvZHJpdmVycy90aGVybWFsL2RvdmVfdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMvdGhlcm1h bC9kb3ZlX3RoZXJtYWwuYwpAQCAtODcsNyArODcsNyBAQCBzdGF0aWMgaW50IGRvdmVfZ2V0X3Rl bXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnRoZXJtYWwsCiAJCQkgIGludCAqdGVtcCkK IHsKIAl1bnNpZ25lZCBsb25nIHJlZzsKLQlzdHJ1Y3QgZG92ZV90aGVybWFsX3ByaXYgKnByaXYg PSB0aGVybWFsLT5kZXZkYXRhOworCXN0cnVjdCBkb3ZlX3RoZXJtYWxfcHJpdiAqcHJpdiA9IHRo ZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0aGVybWFsKTsKIAogCS8qIFZhbGlkIGNoZWNrICovCiAJ cmVnID0gcmVhZGxfcmVsYXhlZChwcml2LT5jb250cm9sICsgUE1VX1RFTVBfRElPRF9DVFJMMV9S RUcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2hpc2lfdGhlcm1hbC5jIGIvZHJpdmVy cy90aGVybWFsL2hpc2lfdGhlcm1hbC5jCmluZGV4IDMyYTdjM2NmMDczZC4uZjNhMzc0MjY2ZmEw IDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvaGlzaV90aGVybWFsLmMKKysrIGIvZHJpdmVy cy90aGVybWFsL2hpc2lfdGhlcm1hbC5jCkBAIC00MzEsNyArNDMxLDcgQEAgc3RhdGljIGludCBo aTM2NjBfdGhlcm1hbF9wcm9iZShzdHJ1Y3QgaGlzaV90aGVybWFsX2RhdGEgKmRhdGEpCiAKIHN0 YXRpYyBpbnQgaGlzaV90aGVybWFsX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNl ICp0eiwgaW50ICp0ZW1wKQogewotCXN0cnVjdCBoaXNpX3RoZXJtYWxfc2Vuc29yICpzZW5zb3Ig PSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgaGlzaV90aGVybWFsX3NlbnNvciAqc2Vuc29yID0gdGhl cm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAlzdHJ1Y3QgaGlzaV90aGVybWFsX2RhdGEgKmRh dGEgPSBzZW5zb3ItPmRhdGE7CiAKIAkqdGVtcCA9IGRhdGEtPm9wcy0+Z2V0X3RlbXAoc2Vuc29y KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9pbXg4bW1fdGhlcm1hbC5jIGIvZHJpdmVy cy90aGVybWFsL2lteDhtbV90aGVybWFsLmMKaW5kZXggNzJiNWQ2ZjMxOWMxLi5lZmExYTRmZmMz NjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbXg4bW1fdGhlcm1hbC5jCisrKyBiL2Ry aXZlcnMvdGhlcm1hbC9pbXg4bW1fdGhlcm1hbC5jCkBAIC0xNDEsNyArMTQxLDcgQEAgc3RhdGlj IGludCBpbXg4bXBfdG11X2dldF90ZW1wKHZvaWQgKmRhdGEsIGludCAqdGVtcCkKIAogc3RhdGlj IGludCB0bXVfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRl bXApCiB7Ci0Jc3RydWN0IHRtdV9zZW5zb3IgKnNlbnNvciA9IHR6LT5kZXZkYXRhOworCXN0cnVj dCB0bXVfc2Vuc29yICpzZW5zb3IgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCXN0 cnVjdCBpbXg4bW1fdG11ICp0bXUgPSBzZW5zb3ItPnByaXY7CiAKIAlyZXR1cm4gdG11LT5zb2Nk YXRhLT5nZXRfdGVtcChzZW5zb3IsIHRlbXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFs L2lteF9zY190aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvaW14X3NjX3RoZXJtYWwuYwppbmRl eCBmMzJlNTllNzQ2MjMuLmRkZGU0YmRmYzk0YSAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFs L2lteF9zY190aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL2lteF9zY190aGVybWFsLmMK QEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIGludCBpbXhfc2NfdGhlcm1hbF9nZXRfdGVtcChzdHJ1 Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKIHsKIAlzdHJ1Y3QgaW14X3Nj X21zZ19taXNjX2dldF90ZW1wIG1zZzsKIAlzdHJ1Y3QgaW14X3NjX3JwY19tc2cgKmhkciA9ICZt c2cuaGRyOwotCXN0cnVjdCBpbXhfc2Nfc2Vuc29yICpzZW5zb3IgPSB0ei0+ZGV2ZGF0YTsKKwlz dHJ1Y3QgaW14X3NjX3NlbnNvciAqc2Vuc29yID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6 KTsKIAlpbnQgcmV0OwogCiAJbXNnLmRhdGEucmVxLnJlc291cmNlX2lkID0gc2Vuc29yLT5yZXNv dXJjZV9pZDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9pbXhfdGhlcm1hbC5jIGIvZHJp dmVycy90aGVybWFsL2lteF90aGVybWFsLmMKaW5kZXggZmIwZDVjYWI3MGFmLi5hMjJiODA4NmEy MDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbXhfdGhlcm1hbC5jCisrKyBiL2RyaXZl cnMvdGhlcm1hbC9pbXhfdGhlcm1hbC5jCkBAIC0yNTIsNyArMjUyLDcgQEAgc3RhdGljIHZvaWQg aW14X3NldF9hbGFybV90ZW1wKHN0cnVjdCBpbXhfdGhlcm1hbF9kYXRhICpkYXRhLAogCiBzdGF0 aWMgaW50IGlteF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAq dGVtcCkKIHsKLQlzdHJ1Y3QgaW14X3RoZXJtYWxfZGF0YSAqZGF0YSA9IHR6LT5kZXZkYXRhOwor CXN0cnVjdCBpbXhfdGhlcm1hbF9kYXRhICpkYXRhID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2 KHR6KTsKIAljb25zdCBzdHJ1Y3QgdGhlcm1hbF9zb2NfZGF0YSAqc29jX2RhdGEgPSBkYXRhLT5z b2NkYXRhOwogCXN0cnVjdCByZWdtYXAgKm1hcCA9IGRhdGEtPnRlbXBtb247CiAJdW5zaWduZWQg aW50IG5fbWVhczsKQEAgLTMxMSw3ICszMTEsNyBAQCBzdGF0aWMgaW50IGlteF9nZXRfdGVtcChz dHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKIHN0YXRpYyBpbnQgaW14 X2NoYW5nZV9tb2RlKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwKIAkJCSAgIGVudW0g dGhlcm1hbF9kZXZpY2VfbW9kZSBtb2RlKQogewotCXN0cnVjdCBpbXhfdGhlcm1hbF9kYXRhICpk YXRhID0gdHotPmRldmRhdGE7CisJc3RydWN0IGlteF90aGVybWFsX2RhdGEgKmRhdGEgPSB0aGVy bWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCiAJaWYgKG1vZGUgPT0gVEhFUk1BTF9ERVZJQ0Vf RU5BQkxFRCkgewogCQlwbV9ydW50aW1lX2dldChkYXRhLT5kZXYpOwpAQCAtMzQyLDcgKzM0Miw3 IEBAIHN0YXRpYyBpbnQgaW14X2dldF9jcml0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZp Y2UgKnR6LCBpbnQgKnRlbXApCiBzdGF0aWMgaW50IGlteF9zZXRfdHJpcF90ZW1wKHN0cnVjdCB0 aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50IHRyaXAsCiAJCQkgICAgIGludCB0ZW1wKQogewot CXN0cnVjdCBpbXhfdGhlcm1hbF9kYXRhICpkYXRhID0gdHotPmRldmRhdGE7CisJc3RydWN0IGlt eF90aGVybWFsX2RhdGEgKmRhdGEgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCWlu dCByZXQ7CiAKIAlyZXQgPSBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KGRhdGEtPmRldik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2ludDM0MDBf dGhlcm1hbC5jIGIvZHJpdmVycy90aGVybWFsL2ludGVsL2ludDM0MHhfdGhlcm1hbC9pbnQzNDAw X3RoZXJtYWwuYwppbmRleCBkMDI5NTEyM2NjM2UuLjgxMDIzMWI1OWRjZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy90aGVybWFsL2ludGVsL2ludDM0MHhfdGhlcm1hbC9pbnQzNDAwX3RoZXJtYWwuYwor KysgYi9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2ludDM0MDBfdGhlcm1h bC5jCkBAIC00OTcsNyArNDk3LDcgQEAgc3RhdGljIGludCBpbnQzNDAwX3RoZXJtYWxfZ2V0X3Rl bXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnRoZXJtYWwsCiBzdGF0aWMgaW50IGludDM0 MDBfdGhlcm1hbF9jaGFuZ2VfbW9kZShzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdGhlcm1h bCwKIAkJCQkgICAgICAgZW51bSB0aGVybWFsX2RldmljZV9tb2RlIG1vZGUpCiB7Ci0Jc3RydWN0 IGludDM0MDBfdGhlcm1hbF9wcml2ICpwcml2ID0gdGhlcm1hbC0+ZGV2ZGF0YTsKKwlzdHJ1Y3Qg aW50MzQwMF90aGVybWFsX3ByaXYgKnByaXYgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodGhl cm1hbCk7CiAJaW50IHJlc3VsdCA9IDA7CiAKIAlpZiAoIXByaXYpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2ludDM0MHhfdGhlcm1hbF96b25lLmMg Yi9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2ludDM0MHhfdGhlcm1hbF96 b25lLmMKaW5kZXggMDA2NjU5NjdjYTUyLi44OWNmMDA3MTQ2ZWEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvdGhlcm1hbC9pbnRlbC9pbnQzNDB4X3RoZXJtYWwvaW50MzQweF90aGVybWFsX3pvbmUuYwor KysgYi9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2ludDM0MHhfdGhlcm1h bF96b25lLmMKQEAgLTE0LDcgKzE0LDcgQEAKIHN0YXRpYyBpbnQgaW50MzQweF90aGVybWFsX2dl dF96b25lX3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnpvbmUsCiAJCQkJCSBpbnQg KnRlbXApCiB7Ci0Jc3RydWN0IGludDM0eF90aGVybWFsX3pvbmUgKmQgPSB6b25lLT5kZXZkYXRh OworCXN0cnVjdCBpbnQzNHhfdGhlcm1hbF96b25lICpkID0gdGhlcm1hbF96b25lX2RldmljZV9w cml2KHpvbmUpOwogCXVuc2lnbmVkIGxvbmcgbG9uZyB0bXA7CiAJYWNwaV9zdGF0dXMgc3RhdHVz OwogCkBAIC00MSw3ICs0MSw3IEBAIHN0YXRpYyBpbnQgaW50MzQweF90aGVybWFsX2dldF96b25l X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnpvbmUsCiBzdGF0aWMgaW50IGludDM0 MHhfdGhlcm1hbF9zZXRfdHJpcF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp6b25l LAogCQkJCQkgaW50IHRyaXAsIGludCB0ZW1wKQogewotCXN0cnVjdCBpbnQzNHhfdGhlcm1hbF96 b25lICpkID0gem9uZS0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgaW50MzR4X3RoZXJtYWxfem9uZSAqZCA9 IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih6b25lKTsKIAljaGFyIG5hbWVbXSA9IHsnUCcsICdB JywgJ1QnLCAnMCcgKyB0cmlwLCAnXDAnfTsKIAlhY3BpX3N0YXR1cyBzdGF0dXM7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnQzNDB4X3RoZXJtYWwvcHJvY2Vzc29yX3Ro ZXJtYWxfZGV2aWNlX3BjaS5jIGIvZHJpdmVycy90aGVybWFsL2ludGVsL2ludDM0MHhfdGhlcm1h bC9wcm9jZXNzb3JfdGhlcm1hbF9kZXZpY2VfcGNpLmMKaW5kZXggNDA3MjVjYmM2ZWIwLi4wNDA0 ZDRkYjcwZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnQzNDB4X3RoZXJt YWwvcHJvY2Vzc29yX3RoZXJtYWxfZGV2aWNlX3BjaS5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9p bnRlbC9pbnQzNDB4X3RoZXJtYWwvcHJvY2Vzc29yX3RoZXJtYWxfZGV2aWNlX3BjaS5jCkBAIC0x MzUsNyArMTM1LDcgQEAgc3RhdGljIGlycXJldHVybl90IHByb2NfdGhlcm1hbF9pcnFfaGFuZGxl cihpbnQgaXJxLCB2b2lkICpkZXZpZCkKIAogc3RhdGljIGludCBzeXNfZ2V0X2N1cnJfdGVtcChz dHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpkLCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IHBy b2NfdGhlcm1hbF9wY2kgKnBjaV9pbmZvID0gdHpkLT5kZXZkYXRhOworCXN0cnVjdCBwcm9jX3Ro ZXJtYWxfcGNpICpwY2lfaW5mbyA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0emQpOwogCXUz MiBfdGVtcDsKIAogCXByb2NfdGhlcm1hbF9tbWlvX3JlYWQocGNpX2luZm8sIFBST0NfVEhFUk1B TF9NTUlPX1BLR19URU1QLCAmX3RlbXApOwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHN0YXRpYyBpbnQg c3lzX2dldF9jdXJyX3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6ZCwgaW50ICp0 ZW1wKQogCiBzdGF0aWMgaW50IHN5c19zZXRfdHJpcF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVf ZGV2aWNlICp0emQsIGludCB0cmlwLCBpbnQgdGVtcCkKIHsKLQlzdHJ1Y3QgcHJvY190aGVybWFs X3BjaSAqcGNpX2luZm8gPSB0emQtPmRldmRhdGE7CisJc3RydWN0IHByb2NfdGhlcm1hbF9wY2kg KnBjaV9pbmZvID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6ZCk7CiAJaW50IHRqbWF4LCBf dGVtcDsKIAogCWlmICh0ZW1wIDw9IDApIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9p bnRlbC9pbnRlbF9wY2hfdGhlcm1hbC5jIGIvZHJpdmVycy90aGVybWFsL2ludGVsL2ludGVsX3Bj aF90aGVybWFsLmMKaW5kZXggYjg1NWQwMzFhODU1Li5kY2U1MGQyMzkzNTcgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnRlbF9wY2hfdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMv dGhlcm1hbC9pbnRlbC9pbnRlbF9wY2hfdGhlcm1hbC5jCkBAIC0xMTksNyArMTE5LDcgQEAgc3Rh dGljIGludCBwY2hfd3B0X2FkZF9hY3BpX3Bzdl90cmlwKHN0cnVjdCBwY2hfdGhlcm1hbF9kZXZp Y2UgKnB0ZCwgaW50IHRyaXApCiAKIHN0YXRpYyBpbnQgcGNoX3RoZXJtYWxfZ2V0X3RlbXAoc3Ry dWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6ZCwgaW50ICp0ZW1wKQogewotCXN0cnVjdCBwY2hf dGhlcm1hbF9kZXZpY2UgKnB0ZCA9IHR6ZC0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgcGNoX3RoZXJtYWxf ZGV2aWNlICpwdGQgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHpkKTsKIAogCSp0ZW1wID0g R0VUX1dQVF9URU1QKFdQVF9URU1QX1RTUiAmIHJlYWR3KHB0ZC0+aHdfYmFzZSArIFdQVF9URU1Q KSk7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50ZWxf cXVhcmtfZHRzX3RoZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnRlbF9xdWFya19k dHNfdGhlcm1hbC5jCmluZGV4IDk3Yjg0M2ZhNzU2OC4uNjM1NjkxODVlZDgyIDEwMDY0NAotLS0g YS9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50ZWxfcXVhcmtfZHRzX3RoZXJtYWwuYworKysgYi9k cml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50ZWxfcXVhcmtfZHRzX3RoZXJtYWwuYwpAQCAtMTIwLDcg KzEyMCw3IEBAIHN0YXRpYyBERUZJTkVfTVVURVgoZHRzX3VwZGF0ZV9tdXRleCk7CiBzdGF0aWMg aW50IHNvY19kdHNfZW5hYmxlKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0emQpCiB7CiAJ dTMyIG91dDsKLQlzdHJ1Y3Qgc29jX3NlbnNvcl9lbnRyeSAqYXV4X2VudHJ5ID0gdHpkLT5kZXZk YXRhOworCXN0cnVjdCBzb2Nfc2Vuc29yX2VudHJ5ICphdXhfZW50cnkgPSB0aGVybWFsX3pvbmVf ZGV2aWNlX3ByaXYodHpkKTsKIAlpbnQgcmV0OwogCiAJcmV0ID0gaW9zZl9tYmlfcmVhZChRUktf TUJJX1VOSVRfUk1VLCBNQklfUkVHX1JFQUQsCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RhdGljIGlu dCBzb2NfZHRzX2VuYWJsZShzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpkKQogc3RhdGlj IGludCBzb2NfZHRzX2Rpc2FibGUoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6ZCkKIHsK IAl1MzIgb3V0OwotCXN0cnVjdCBzb2Nfc2Vuc29yX2VudHJ5ICphdXhfZW50cnkgPSB0emQtPmRl dmRhdGE7CisJc3RydWN0IHNvY19zZW5zb3JfZW50cnkgKmF1eF9lbnRyeSA9IHRoZXJtYWxfem9u ZV9kZXZpY2VfcHJpdih0emQpOwogCWludCByZXQ7CiAKIAlyZXQgPSBpb3NmX21iaV9yZWFkKFFS S19NQklfVU5JVF9STVUsIE1CSV9SRUdfUkVBRCwKQEAgLTI1MCw3ICsyNTAsNyBAQCBzdGF0aWMg aW50IHVwZGF0ZV90cmlwX3RlbXAoc3RydWN0IHNvY19zZW5zb3JfZW50cnkgKmF1eF9lbnRyeSwK IHN0YXRpYyBpbmxpbmUgaW50IHN5c19zZXRfdHJpcF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVf ZGV2aWNlICp0emQsIGludCB0cmlwLAogCQkJCWludCB0ZW1wKQogewotCXJldHVybiB1cGRhdGVf dHJpcF90ZW1wKHR6ZC0+ZGV2ZGF0YSwgdHJpcCwgdGVtcCk7CisJcmV0dXJuIHVwZGF0ZV90cmlw X3RlbXAodGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6ZCksIHRyaXAsIHRlbXApOwogfQogCiBz dGF0aWMgaW50IHN5c19nZXRfY3Vycl90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0 emQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50ZWxfc29jX2R0c19pb3Nm LmMgYi9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50ZWxfc29jX2R0c19pb3NmLmMKaW5kZXggOGMy NmY3YjIzMTZiLi5mOTlkYzdlNGFlODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbnRl bC9pbnRlbF9zb2NfZHRzX2lvc2YuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50ZWxf c29jX2R0c19pb3NmLmMKQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIGludCBzeXNfZ2V0X3RyaXBf dGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpkLCBpbnQgdHJpcCwKIAlzdHJ1Y3Qg aW50ZWxfc29jX2R0c19zZW5zb3JfZW50cnkgKmR0czsKIAlzdHJ1Y3QgaW50ZWxfc29jX2R0c19z ZW5zb3JzICpzZW5zb3JzOwogCi0JZHRzID0gdHpkLT5kZXZkYXRhOworCWR0cyA9IHRoZXJtYWxf em9uZV9kZXZpY2VfcHJpdih0emQpOwogCXNlbnNvcnMgPSBkdHMtPnNlbnNvcnM7CiAJbXV0ZXhf bG9jaygmc2Vuc29ycy0+ZHRzX3VwZGF0ZV9sb2NrKTsKIAlzdGF0dXMgPSBpb3NmX21iaV9yZWFk KEJUX01CSV9VTklUX1BNQywgTUJJX1JFR19SRUFELApAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRp YyBpbnQgdXBkYXRlX3RyaXBfdGVtcChzdHJ1Y3QgaW50ZWxfc29jX2R0c19zZW5zb3JfZW50cnkg KmR0cywKIHN0YXRpYyBpbnQgc3lzX3NldF90cmlwX3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9k ZXZpY2UgKnR6ZCwgaW50IHRyaXAsCiAJCQkgICAgIGludCB0ZW1wKQogewotCXN0cnVjdCBpbnRl bF9zb2NfZHRzX3NlbnNvcl9lbnRyeSAqZHRzID0gdHpkLT5kZXZkYXRhOworCXN0cnVjdCBpbnRl bF9zb2NfZHRzX3NlbnNvcl9lbnRyeSAqZHRzID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6 ZCk7CiAJc3RydWN0IGludGVsX3NvY19kdHNfc2Vuc29ycyAqc2Vuc29ycyA9IGR0cy0+c2Vuc29y czsKIAlpbnQgc3RhdHVzOwogCkBAIC0xNzYsNyArMTc2LDcgQEAgc3RhdGljIGludCBzeXNfc2V0 X3RyaXBfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpkLCBpbnQgdHJpcCwKIAkJ cmV0dXJuIC1FSU5WQUw7CiAKIAltdXRleF9sb2NrKCZzZW5zb3JzLT5kdHNfdXBkYXRlX2xvY2sp OwotCXN0YXR1cyA9IHVwZGF0ZV90cmlwX3RlbXAodHpkLT5kZXZkYXRhLCB0cmlwLCB0ZW1wLAor CXN0YXR1cyA9IHVwZGF0ZV90cmlwX3RlbXAoZHRzLCB0cmlwLCB0ZW1wLAogCQkJCSAgZHRzLT50 cmlwX3R5cGVzW3RyaXBdKTsKIAltdXRleF91bmxvY2soJnNlbnNvcnMtPmR0c191cGRhdGVfbG9j ayk7CiAKQEAgLTE4Niw5ICsxODYsNyBAQCBzdGF0aWMgaW50IHN5c19zZXRfdHJpcF90ZW1wKHN0 cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0emQsIGludCB0cmlwLAogc3RhdGljIGludCBzeXNf Z2V0X3RyaXBfdHlwZShzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpkLAogCQkJICAgICBp bnQgdHJpcCwgZW51bSB0aGVybWFsX3RyaXBfdHlwZSAqdHlwZSkKIHsKLQlzdHJ1Y3QgaW50ZWxf c29jX2R0c19zZW5zb3JfZW50cnkgKmR0czsKLQotCWR0cyA9IHR6ZC0+ZGV2ZGF0YTsKKwlzdHJ1 Y3QgaW50ZWxfc29jX2R0c19zZW5zb3JfZW50cnkgKmR0cyA9IHRoZXJtYWxfem9uZV9kZXZpY2Vf cHJpdih0emQpOwogCiAJKnR5cGUgPSBkdHMtPnRyaXBfdHlwZXNbdHJpcF07CiAKQEAgLTIwMCwx MSArMTk4LDEwIEBAIHN0YXRpYyBpbnQgc3lzX2dldF9jdXJyX3RlbXAoc3RydWN0IHRoZXJtYWxf em9uZV9kZXZpY2UgKnR6ZCwKIHsKIAlpbnQgc3RhdHVzOwogCXUzMiBvdXQ7Ci0Jc3RydWN0IGlu dGVsX3NvY19kdHNfc2Vuc29yX2VudHJ5ICpkdHM7CisJc3RydWN0IGludGVsX3NvY19kdHNfc2Vu c29yX2VudHJ5ICpkdHMgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHpkKTsKIAlzdHJ1Y3Qg aW50ZWxfc29jX2R0c19zZW5zb3JzICpzZW5zb3JzOwogCXVuc2lnbmVkIGxvbmcgcmF3OwogCi0J ZHRzID0gdHpkLT5kZXZkYXRhOwogCXNlbnNvcnMgPSBkdHMtPnNlbnNvcnM7CiAJc3RhdHVzID0g aW9zZl9tYmlfcmVhZChCVF9NQklfVU5JVF9QTUMsIE1CSV9SRUdfUkVBRCwKIAkJCSAgICAgICBT T0NfRFRTX09GRlNFVF9URU1QLCAmb3V0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9p bnRlbC94ODZfcGtnX3RlbXBfdGhlcm1hbC5jIGIvZHJpdmVycy90aGVybWFsL2ludGVsL3g4Nl9w a2dfdGVtcF90aGVybWFsLmMKaW5kZXggMWMyZGU4NDc0MmRmLi5jNGVjMzE0NDQxYmUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC94ODZfcGtnX3RlbXBfdGhlcm1hbC5jCisrKyBi L2RyaXZlcnMvdGhlcm1hbC9pbnRlbC94ODZfcGtnX3RlbXBfdGhlcm1hbC5jCkBAIC0xMDcsNyAr MTA3LDcgQEAgc3RhdGljIHN0cnVjdCB6b25lX2RldmljZSAqcGtnX3RlbXBfdGhlcm1hbF9nZXRf ZGV2KHVuc2lnbmVkIGludCBjcHUpCiAKIHN0YXRpYyBpbnQgc3lzX2dldF9jdXJyX3RlbXAoc3Ry dWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6ZCwgaW50ICp0ZW1wKQogewotCXN0cnVjdCB6b25l X2RldmljZSAqem9uZWRldiA9IHR6ZC0+ZGV2ZGF0YTsKKwlzdHJ1Y3Qgem9uZV9kZXZpY2UgKnpv bmVkZXYgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHpkKTsKIAlpbnQgdmFsOwogCiAJdmFs ID0gaW50ZWxfdGNjX2dldF90ZW1wKHpvbmVkZXYtPmNwdSwgdHJ1ZSk7CkBAIC0xMjIsNyArMTIy LDcgQEAgc3RhdGljIGludCBzeXNfZ2V0X2N1cnJfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2Rl dmljZSAqdHpkLCBpbnQgKnRlbXApCiBzdGF0aWMgaW50CiBzeXNfc2V0X3RyaXBfdGVtcChzdHJ1 Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpkLCBpbnQgdHJpcCwgaW50IHRlbXApCiB7Ci0Jc3Ry dWN0IHpvbmVfZGV2aWNlICp6b25lZGV2ID0gdHpkLT5kZXZkYXRhOworCXN0cnVjdCB6b25lX2Rl dmljZSAqem9uZWRldiA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0emQpOwogCXUzMiBsLCBo LCBtYXNrLCBzaGlmdCwgaW50cjsKIAlpbnQgdGpfbWF4LCByZXQ7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdGhlcm1hbC9rM19iYW5kZ2FwLmMgYi9kcml2ZXJzL3RoZXJtYWwvazNfYmFuZGdhcC5j CmluZGV4IDIyYzliY2I4OTljMy4uYjVjZDJjODVlMGMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Ro ZXJtYWwvazNfYmFuZGdhcC5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9rM19iYW5kZ2FwLmMKQEAg LTE0MSw3ICsxNDEsNyBAQCBzdGF0aWMgaW50IGszX2JncF9yZWFkX3RlbXAoc3RydWN0IGszX3Ro ZXJtYWxfZGF0YSAqZGV2ZGF0YSwKIAogc3RhdGljIGludCBrM190aGVybWFsX2dldF90ZW1wKHN0 cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wKQogewotCXN0cnVjdCBrM190 aGVybWFsX2RhdGEgKmRhdGEgPSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgazNfdGhlcm1hbF9kYXRh ICpkYXRhID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAlpbnQgcmV0ID0gMDsKIAog CXJldCA9IGszX2JncF9yZWFkX3RlbXAoZGF0YSwgdGVtcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L3RoZXJtYWwvazNfajcyeHhfYmFuZGdhcC5jIGIvZHJpdmVycy90aGVybWFsL2szX2o3Mnh4X2Jh bmRnYXAuYwppbmRleCAwMzFlYTEwOTE5MDkuLjViZTFmMDllZWIyYyAxMDA2NDQKLS0tIGEvZHJp dmVycy90aGVybWFsL2szX2o3Mnh4X2JhbmRnYXAuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvazNf ajcyeHhfYmFuZGdhcC5jCkBAIC0yNDgsNyArMjQ4LDcgQEAgc3RhdGljIGlubGluZSBpbnQgazNf YmdwX3JlYWRfdGVtcChzdHJ1Y3QgazNfdGhlcm1hbF9kYXRhICpkZXZkYXRhLAogLyogR2V0IHRl bXBlcmF0dXJlIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGVybWFsIHpvbmUgKi8KIHN0YXRpYyBp bnQgazNfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGlu dCAqdGVtcCkKIHsKLQlyZXR1cm4gazNfYmdwX3JlYWRfdGVtcCh0ei0+ZGV2ZGF0YSwgdGVtcCk7 CisJcmV0dXJuIGszX2JncF9yZWFkX3RlbXAodGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KSwg dGVtcCk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMg azNfb2ZfdGhlcm1hbF9vcHMgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwva2lya3dv b2RfdGhlcm1hbC5jIGIvZHJpdmVycy90aGVybWFsL2tpcmt3b29kX3RoZXJtYWwuYwppbmRleCBi ZWM3ZWMyMGU3OWQuLjkyYjNjZTQyNmI5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2tp cmt3b29kX3RoZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwva2lya3dvb2RfdGhlcm1hbC5j CkBAIC0yNyw3ICsyNyw3IEBAIHN0YXRpYyBpbnQga2lya3dvb2RfZ2V0X3RlbXAoc3RydWN0IHRo ZXJtYWxfem9uZV9kZXZpY2UgKnRoZXJtYWwsCiAJCQkgIGludCAqdGVtcCkKIHsKIAl1bnNpZ25l ZCBsb25nIHJlZzsKLQlzdHJ1Y3Qga2lya3dvb2RfdGhlcm1hbF9wcml2ICpwcml2ID0gdGhlcm1h bC0+ZGV2ZGF0YTsKKwlzdHJ1Y3Qga2lya3dvb2RfdGhlcm1hbF9wcml2ICpwcml2ID0gdGhlcm1h bF96b25lX2RldmljZV9wcml2KHRoZXJtYWwpOwogCiAJcmVnID0gcmVhZGxfcmVsYXhlZChwcml2 LT5zZW5zb3IpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvbWF4Nzc2MjBfdGhlcm1h bC5jIGIvZHJpdmVycy90aGVybWFsL21heDc3NjIwX3RoZXJtYWwuYwppbmRleCA2NDUxYTU1ZWI1 ODIuLmJmMTY3OTc2NWYxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL21heDc3NjIwX3Ro ZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvbWF4Nzc2MjBfdGhlcm1hbC5jCkBAIC00Niw3 ICs0Niw3IEBAIHN0cnVjdCBtYXg3NzYyMF90aGVybV9pbmZvIHsKIAogc3RhdGljIGludCBtYXg3 NzYyMF90aGVybWFsX3JlYWRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGlu dCAqdGVtcCkKIHsKLQlzdHJ1Y3QgbWF4Nzc2MjBfdGhlcm1faW5mbyAqbXRoZXJtID0gdHotPmRl dmRhdGE7CisJc3RydWN0IG1heDc3NjIwX3RoZXJtX2luZm8gKm10aGVybSA9IHRoZXJtYWxfem9u ZV9kZXZpY2VfcHJpdih0eik7CiAJdW5zaWduZWQgaW50IHZhbDsKIAlpbnQgcmV0OwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvbWVkaWF0ZWsvYXV4YWRjX3RoZXJtYWwuYyBiL2RyaXZl cnMvdGhlcm1hbC9tZWRpYXRlay9hdXhhZGNfdGhlcm1hbC5jCmluZGV4IGFiNzMwZjk1NTJkMC4u NzU1YmFhNGU1YmQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvbWVkaWF0ZWsvYXV4YWRj X3RoZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvbWVkaWF0ZWsvYXV4YWRjX3RoZXJtYWwu YwpAQCAtNzYzLDcgKzc2Myw3IEBAIHN0YXRpYyBpbnQgbXRrX3RoZXJtYWxfYmFua190ZW1wZXJh dHVyZShzdHJ1Y3QgbXRrX3RoZXJtYWxfYmFuayAqYmFuaykKIAogc3RhdGljIGludCBtdGtfcmVh ZF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wZXJhdHVyZSkK IHsKLQlzdHJ1Y3QgbXRrX3RoZXJtYWwgKm10ID0gdHotPmRldmRhdGE7CisJc3RydWN0IG10a190 aGVybWFsICptdCA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJaW50IGk7CiAJaW50 IHRlbXBtYXggPSBJTlRfTUlOOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvbWVkaWF0 ZWsvbHZ0c190aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvbWVkaWF0ZWsvbHZ0c190aGVybWFs LmMKaW5kZXggODRiYTY1YTI3YWNmLi5mYjRiMWI0ZGIyNDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dGhlcm1hbC9tZWRpYXRlay9sdnRzX3RoZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvbWVk aWF0ZWsvbHZ0c190aGVybWFsLmMKQEAgLTI1Miw3ICsyNTIsNyBAQCBzdGF0aWMgdTMyIGx2dHNf dGVtcF90b19yYXcoaW50IHRlbXBlcmF0dXJlKQogCiBzdGF0aWMgaW50IGx2dHNfZ2V0X3RlbXAo c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IGx2 dHNfc2Vuc29yICpsdnRzX3NlbnNvciA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBsdnRzX3NlbnNv ciAqbHZ0c19zZW5zb3IgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCXZvaWQgX19p b21lbSAqbXNyID0gbHZ0c19zZW5zb3ItPm1zcjsKIAl1MzIgdmFsdWU7CiAKQEAgLTI5MCw3ICsy OTAsNyBAQCBzdGF0aWMgaW50IGx2dHNfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZp Y2UgKnR6LCBpbnQgKnRlbXApCiAKIHN0YXRpYyBpbnQgbHZ0c19zZXRfdHJpcHMoc3RydWN0IHRo ZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgbG93LCBpbnQgaGlnaCkKIHsKLQlzdHJ1Y3QgbHZ0 c19zZW5zb3IgKmx2dHNfc2Vuc29yID0gdHotPmRldmRhdGE7CisJc3RydWN0IGx2dHNfc2Vuc29y ICpsdnRzX3NlbnNvciA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJdm9pZCBfX2lv bWVtICpiYXNlID0gbHZ0c19zZW5zb3ItPmJhc2U7CiAJdTMyIHJhd19sb3cgPSBsdnRzX3RlbXBf dG9fcmF3KGxvdyk7CiAJdTMyIHJhd19oaWdoID0gbHZ0c190ZW1wX3RvX3JhdyhoaWdoKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9xY29tL3Fjb20tc3BtaS1hZGMtdG01LmMgYi9kcml2 ZXJzL3RoZXJtYWwvcWNvbS9xY29tLXNwbWktYWRjLXRtNS5jCmluZGV4IDMxMTY0YWRlMmRkMS4u ZWQyMDQ0ODlhOTUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvcWNvbS9xY29tLXNwbWkt YWRjLXRtNS5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9xY29tL3Fjb20tc3BtaS1hZGMtdG01LmMK QEAgLTM2MCw3ICszNjAsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYWRjX3RtNV9nZW4yX2lzcihp bnQgaXJxLCB2b2lkICpkYXRhKQogCiBzdGF0aWMgaW50IGFkY190bTVfZ2V0X3RlbXAoc3RydWN0 IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IGFkY190bTVf Y2hhbm5lbCAqY2hhbm5lbCA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBhZGNfdG01X2NoYW5uZWwg KmNoYW5uZWwgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCWludCByZXQ7CiAKIAlp ZiAoIWNoYW5uZWwgfHwgIWNoYW5uZWwtPmlpbykKQEAgLTY0Miw3ICs2NDIsNyBAQCBzdGF0aWMg aW50IGFkY190bTVfZ2VuMl9jb25maWd1cmUoc3RydWN0IGFkY190bTVfY2hhbm5lbCAqY2hhbm5l bCwgaW50IGxvdywgaW50CiAKIHN0YXRpYyBpbnQgYWRjX3RtNV9zZXRfdHJpcHMoc3RydWN0IHRo ZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgbG93LCBpbnQgaGlnaCkKIHsKLQlzdHJ1Y3QgYWRj X3RtNV9jaGFubmVsICpjaGFubmVsID0gdHotPmRldmRhdGE7CisJc3RydWN0IGFkY190bTVfY2hh bm5lbCAqY2hhbm5lbCA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJc3RydWN0IGFk Y190bTVfY2hpcCAqY2hpcDsKIAlpbnQgcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJt YWwvcWNvbS9xY29tLXNwbWktdGVtcC1hbGFybS5jIGIvZHJpdmVycy90aGVybWFsL3Fjb20vcWNv bS1zcG1pLXRlbXAtYWxhcm0uYwppbmRleCAxMDFjNzVkMGUxM2YuLmIxOTZkOGQwMTcyNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3Fjb20vcWNvbS1zcG1pLXRlbXAtYWxhcm0uYworKysg Yi9kcml2ZXJzL3RoZXJtYWwvcWNvbS9xY29tLXNwbWktdGVtcC1hbGFybS5jCkBAIC0xODcsNyAr MTg3LDcgQEAgc3RhdGljIGludCBxcG5wX3RtX3VwZGF0ZV90ZW1wX25vX2FkYyhzdHJ1Y3QgcXBu cF90bV9jaGlwICpjaGlwKQogCiBzdGF0aWMgaW50IHFwbnBfdG1fZ2V0X3RlbXAoc3RydWN0IHRo ZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IHFwbnBfdG1fY2hp cCAqY2hpcCA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBxcG5wX3RtX2NoaXAgKmNoaXAgPSB0aGVy bWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCWludCByZXQsIG1pbGlfY2Vsc2l1czsKIAogCWlm ICghdGVtcCkKQEAgLTI2NSw3ICsyNjUsNyBAQCBzdGF0aWMgaW50IHFwbnBfdG1fdXBkYXRlX2Ny aXRpY2FsX3RyaXBfdGVtcChzdHJ1Y3QgcXBucF90bV9jaGlwICpjaGlwLAogCiBzdGF0aWMgaW50 IHFwbnBfdG1fc2V0X3RyaXBfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGlu dCB0cmlwX2lkLCBpbnQgdGVtcCkKIHsKLQlzdHJ1Y3QgcXBucF90bV9jaGlwICpjaGlwID0gdHot PmRldmRhdGE7CisJc3RydWN0IHFwbnBfdG1fY2hpcCAqY2hpcCA9IHRoZXJtYWxfem9uZV9kZXZp Y2VfcHJpdih0eik7CiAJc3RydWN0IHRoZXJtYWxfdHJpcCB0cmlwOwogCWludCByZXQ7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9xY29tL3RzZW5zLmMgYi9kcml2ZXJzL3RoZXJtYWwv cWNvbS90c2Vucy5jCmluZGV4IDgwMjBlYWQyNzk0ZS4uNmNjOTM1Mzc5ZjAwIDEwMDY0NAotLS0g YS9kcml2ZXJzL3RoZXJtYWwvcWNvbS90c2Vucy5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9xY29t L3RzZW5zLmMKQEAgLTY3Myw3ICs2NzMsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgdHNlbnNfY29t YmluZWRfaXJxX3RocmVhZChpbnQgaXJxLCB2b2lkICpkYXRhKQogCiBzdGF0aWMgaW50IHRzZW5z X3NldF90cmlwcyhzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCBsb3csIGludCBo aWdoKQogewotCXN0cnVjdCB0c2Vuc19zZW5zb3IgKnMgPSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3Qg dHNlbnNfc2Vuc29yICpzID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAlzdHJ1Y3Qg dHNlbnNfcHJpdiAqcHJpdiA9IHMtPnByaXY7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gcHJpdi0+ ZGV2OwogCXN0cnVjdCB0c2Vuc19pcnFfZGF0YSBkOwpAQCAtMTA1Nyw3ICsxMDU3LDcgQEAgaW50 IF9faW5pdCBpbml0X2NvbW1vbihzdHJ1Y3QgdHNlbnNfcHJpdiAqcHJpdikKIAogc3RhdGljIGlu dCB0c2Vuc19nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVt cCkKIHsKLQlzdHJ1Y3QgdHNlbnNfc2Vuc29yICpzID0gdHotPmRldmRhdGE7CisJc3RydWN0IHRz ZW5zX3NlbnNvciAqcyA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJc3RydWN0IHRz ZW5zX3ByaXYgKnByaXYgPSBzLT5wcml2OwogCiAJcmV0dXJuIHByaXYtPm9wcy0+Z2V0X3RlbXAo cywgdGVtcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvcW9yaXFfdGhlcm1hbC5jIGIv ZHJpdmVycy90aGVybWFsL3FvcmlxX3RoZXJtYWwuYwppbmRleCA0MzFjMjljMDg5OGEuLmQyZGM5 OTI0N2Y2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3FvcmlxX3RoZXJtYWwuYworKysg Yi9kcml2ZXJzL3RoZXJtYWwvcW9yaXFfdGhlcm1hbC5jCkBAIC04Myw3ICs4Myw3IEBAIHN0YXRp YyBzdHJ1Y3QgcW9yaXFfdG11X2RhdGEgKnFvcmlxX3NlbnNvcl90b19kYXRhKHN0cnVjdCBxb3Jp cV9zZW5zb3IgKnMpCiAKIHN0YXRpYyBpbnQgdG11X2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pv bmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wKQogewotCXN0cnVjdCBxb3JpcV9zZW5zb3IgKnFzZW5z b3IgPSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgcW9yaXFfc2Vuc29yICpxc2Vuc29yID0gdGhlcm1h bF96b25lX2RldmljZV9wcml2KHR6KTsKIAlzdHJ1Y3QgcW9yaXFfdG11X2RhdGEgKnFkYXRhID0g cW9yaXFfc2Vuc29yX3RvX2RhdGEocXNlbnNvcik7CiAJdTMyIHZhbDsKIAkvKgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy90aGVybWFsL3JjYXJfZ2VuM190aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwv cmNhcl9nZW4zX3RoZXJtYWwuYwppbmRleCBkNmI1YjU5YzVjNTMuLjJiNzUzN2VmMTQxZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3JjYXJfZ2VuM190aGVybWFsLmMKKysrIGIvZHJpdmVy cy90aGVybWFsL3JjYXJfZ2VuM190aGVybWFsLmMKQEAgLTE2Nyw3ICsxNjcsNyBAQCBzdGF0aWMg aW50IHJjYXJfZ2VuM190aGVybWFsX3JvdW5kKGludCB0ZW1wKQogCiBzdGF0aWMgaW50IHJjYXJf Z2VuM190aGVybWFsX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50 ICp0ZW1wKQogewotCXN0cnVjdCByY2FyX2dlbjNfdGhlcm1hbF90c2MgKnRzYyA9IHR6LT5kZXZk YXRhOworCXN0cnVjdCByY2FyX2dlbjNfdGhlcm1hbF90c2MgKnRzYyA9IHRoZXJtYWxfem9uZV9k ZXZpY2VfcHJpdih0eik7CiAJaW50IG1jZWxzaXVzLCB2YWw7CiAJaW50IHJlZzsKIApAQCAtMjA2 LDcgKzIwNiw3IEBAIHN0YXRpYyBpbnQgcmNhcl9nZW4zX3RoZXJtYWxfbWNlbHNpdXNfdG9fdGVt cChzdHJ1Y3QgcmNhcl9nZW4zX3RoZXJtYWxfdHNjICp0c2MsCiAKIHN0YXRpYyBpbnQgcmNhcl9n ZW4zX3RoZXJtYWxfc2V0X3RyaXBzKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50 IGxvdywgaW50IGhpZ2gpCiB7Ci0Jc3RydWN0IHJjYXJfZ2VuM190aGVybWFsX3RzYyAqdHNjID0g dHotPmRldmRhdGE7CisJc3RydWN0IHJjYXJfZ2VuM190aGVybWFsX3RzYyAqdHNjID0gdGhlcm1h bF96b25lX2RldmljZV9wcml2KHR6KTsKIAl1MzIgaXJxbXNrID0gMDsKIAogCWlmIChsb3cgIT0g LUlOVF9NQVgpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9yY2FyX3RoZXJtYWwuYyBi L2RyaXZlcnMvdGhlcm1hbC9yY2FyX3RoZXJtYWwuYwppbmRleCA0MzZmNWY5Y2Y3MjkuLmUwNDQw ZjYzYWU3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3JjYXJfdGhlcm1hbC5jCisrKyBi L2RyaXZlcnMvdGhlcm1hbC9yY2FyX3RoZXJtYWwuYwpAQCAtMTAxLDcgKzEwMSw2IEBAIHN0cnVj dCByY2FyX3RoZXJtYWxfcHJpdiB7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShwb3MsICZjb21tb24t PmhlYWQsIGxpc3QpCiAKICNkZWZpbmUgTUNFTFNJVVModGVtcCkJCQkoKHRlbXApICogMTAwMCkK LSNkZWZpbmUgcmNhcl96b25lX3RvX3ByaXYoem9uZSkJCSgoem9uZSktPmRldmRhdGEpCiAjZGVm aW5lIHJjYXJfcHJpdl90b19kZXYocHJpdikJCSgocHJpdiktPmNvbW1vbi0+ZGV2KQogI2RlZmlu ZSByY2FyX2hhc19pcnFfc3VwcG9ydChwcml2KQkoKHByaXYpLT5jb21tb24tPmJhc2UpCiAjZGVm aW5lIHJjYXJfaWRfdG9fc2hpZnQocHJpdikJCSgocHJpdiktPmlkICogOCkKQEAgLTI3Myw3ICsy NzIsNyBAQCBzdGF0aWMgaW50IHJjYXJfdGhlcm1hbF9nZXRfY3VycmVudF90ZW1wKHN0cnVjdCBy Y2FyX3RoZXJtYWxfcHJpdiAqcHJpdiwKIAogc3RhdGljIGludCByY2FyX3RoZXJtYWxfZ2V0X3Rl bXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnpvbmUsIGludCAqdGVtcCkKIHsKLQlzdHJ1 Y3QgcmNhcl90aGVybWFsX3ByaXYgKnByaXYgPSByY2FyX3pvbmVfdG9fcHJpdih6b25lKTsKKwlz dHJ1Y3QgcmNhcl90aGVybWFsX3ByaXYgKnByaXYgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYo em9uZSk7CiAKIAlyZXR1cm4gcmNhcl90aGVybWFsX2dldF9jdXJyZW50X3RlbXAocHJpdiwgdGVt cCk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvcm9ja2NoaXBfdGhlcm1hbC5jIGIv ZHJpdmVycy90aGVybWFsL3JvY2tjaGlwX3RoZXJtYWwuYwppbmRleCA0YjdjNDNmMzRkMWEuLjhh NTFlYjI2ZTc5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3JvY2tjaGlwX3RoZXJtYWwu YworKysgYi9kcml2ZXJzL3RoZXJtYWwvcm9ja2NoaXBfdGhlcm1hbC5jCkBAIC0xMjEzLDcgKzEy MTMsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qgcm9ja2NoaXBfdGhlcm1hbF9hbGFybV9pcnFfdGhy ZWFkKGludCBpcnEsIHZvaWQgKmRldikKIAogc3RhdGljIGludCByb2NrY2hpcF90aGVybWFsX3Nl dF90cmlwcyhzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCBsb3csIGludCBoaWdo KQogewotCXN0cnVjdCByb2NrY2hpcF90aGVybWFsX3NlbnNvciAqc2Vuc29yID0gdHotPmRldmRh dGE7CisJc3RydWN0IHJvY2tjaGlwX3RoZXJtYWxfc2Vuc29yICpzZW5zb3IgPSB0aGVybWFsX3pv bmVfZGV2aWNlX3ByaXYodHopOwogCXN0cnVjdCByb2NrY2hpcF90aGVybWFsX2RhdGEgKnRoZXJt YWwgPSBzZW5zb3ItPnRoZXJtYWw7CiAJY29uc3Qgc3RydWN0IHJvY2tjaGlwX3RzYWRjX2NoaXAg KnRzYWRjID0gdGhlcm1hbC0+Y2hpcDsKIApAQCAtMTIyNiw3ICsxMjI2LDcgQEAgc3RhdGljIGlu dCByb2NrY2hpcF90aGVybWFsX3NldF90cmlwcyhzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAq dHosIGludCBsb3csIGkKIAogc3RhdGljIGludCByb2NrY2hpcF90aGVybWFsX2dldF90ZW1wKHN0 cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICpvdXRfdGVtcCkKIHsKLQlzdHJ1Y3Qg cm9ja2NoaXBfdGhlcm1hbF9zZW5zb3IgKnNlbnNvciA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBy b2NrY2hpcF90aGVybWFsX3NlbnNvciAqc2Vuc29yID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2 KHR6KTsKIAlzdHJ1Y3Qgcm9ja2NoaXBfdGhlcm1hbF9kYXRhICp0aGVybWFsID0gc2Vuc29yLT50 aGVybWFsOwogCWNvbnN0IHN0cnVjdCByb2NrY2hpcF90c2FkY19jaGlwICp0c2FkYyA9IHNlbnNv ci0+dGhlcm1hbC0+Y2hpcDsKIAlpbnQgcmV0dmFsOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVy bWFsL3J6ZzJsX3RoZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9yemcybF90aGVybWFsLmMKaW5k ZXggMmUwNjQ5ZjM4NTA2Li43NjMxNDMwY2U4YTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1h bC9yemcybF90aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL3J6ZzJsX3RoZXJtYWwuYwpA QCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcnpnMmxfdGhlcm1hbF93cml0ZShz dHJ1Y3QgcnpnMmxfdGhlcm1hbF9wcml2ICpwcml2LCB1MzIgcmVnLAogCiBzdGF0aWMgaW50IHJ6 ZzJsX3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQg KnRlbXApCiB7Ci0Jc3RydWN0IHJ6ZzJsX3RoZXJtYWxfcHJpdiAqcHJpdiA9IHR6LT5kZXZkYXRh OworCXN0cnVjdCByemcybF90aGVybWFsX3ByaXYgKnByaXYgPSB0aGVybWFsX3pvbmVfZGV2aWNl X3ByaXYodHopOwogCXUzMiByZXN1bHQgPSAwLCBkc2Vuc29yLCB0c19jb2RlX2F2ZTsKIAlpbnQg dmFsLCBpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvc2Ftc3VuZy9leHlub3NfdG11 LmMgYi9kcml2ZXJzL3RoZXJtYWwvc2Ftc3VuZy9leHlub3NfdG11LmMKaW5kZXggNTI3ZDFlYjA2 NjNhLi40NWU1Yzg0MGQxMzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9zYW1zdW5nL2V4 eW5vc190bXUuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvc2Ftc3VuZy9leHlub3NfdG11LmMKQEAg LTY0NSw3ICs2NDUsNyBAQCBzdGF0aWMgdm9pZCBleHlub3M3X3RtdV9jb250cm9sKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYsIGJvb2wgb24pCiAKIHN0YXRpYyBpbnQgZXh5bm9zX2dldF90 ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wKQogewotCXN0cnVj dCBleHlub3NfdG11X2RhdGEgKmRhdGEgPSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgZXh5bm9zX3Rt dV9kYXRhICpkYXRhID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAlpbnQgdmFsdWUs IHJldCA9IDA7CiAKIAlpZiAoIWRhdGEgfHwgIWRhdGEtPnRtdV9yZWFkKQpAQCAtNzIzLDcgKzcy Myw3IEBAIHN0YXRpYyB2b2lkIGV4eW5vczQ0MTJfdG11X3NldF9lbXVsYXRpb24oc3RydWN0IGV4 eW5vc190bXVfZGF0YSAqZGF0YSwKIAogc3RhdGljIGludCBleHlub3NfdG11X3NldF9lbXVsYXRp b24oc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgdGVtcCkKIHsKLQlzdHJ1Y3Qg ZXh5bm9zX3RtdV9kYXRhICpkYXRhID0gdHotPmRldmRhdGE7CisJc3RydWN0IGV4eW5vc190bXVf ZGF0YSAqZGF0YSA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJaW50IHJldCA9IC1F SU5WQUw7CiAKIAlpZiAoZGF0YS0+c29jID09IFNPQ19BUkNIX0VYWU5PUzQyMTApCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3RoZXJtYWwvc3BlYXJfdGhlcm1hbC5jIGIvZHJpdmVycy90aGVybWFsL3Nw ZWFyX3RoZXJtYWwuYwppbmRleCA2YTcyMmIxMGQ3MzguLjY1MzQzOWI5NjVjOCAxMDA2NDQKLS0t IGEvZHJpdmVycy90aGVybWFsL3NwZWFyX3RoZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwv c3BlYXJfdGhlcm1hbC5jCkBAIC0zMSw3ICszMSw3IEBAIHN0cnVjdCBzcGVhcl90aGVybWFsX2Rl diB7CiBzdGF0aWMgaW5saW5lIGludCB0aGVybWFsX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pv bmVfZGV2aWNlICp0aGVybWFsLAogCQkJCWludCAqdGVtcCkKIHsKLQlzdHJ1Y3Qgc3BlYXJfdGhl cm1hbF9kZXYgKnN0ZGV2ID0gdGhlcm1hbC0+ZGV2ZGF0YTsKKwlzdHJ1Y3Qgc3BlYXJfdGhlcm1h bF9kZXYgKnN0ZGV2ID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHRoZXJtYWwpOwogCiAJLyoK IAkgKiBEYXRhIGFyZSByZWFkeSB0byBiZSByZWFkIGFmdGVyIDYyOCB1c2VjIGZyb20gUE9XRVJE T1dOIHNpZ25hbApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgc3RydWN0IHRoZXJtYWxfem9uZV9k ZXZpY2Vfb3BzIG9wcyA9IHsKIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgc3BlYXJfdGhlcm1h bF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgdGhlcm1hbF96b25lX2Rl dmljZSAqc3BlYXJfdGhlcm1hbCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCXN0cnVjdCBzcGVh cl90aGVybWFsX2RldiAqc3RkZXYgPSBzcGVhcl90aGVybWFsLT5kZXZkYXRhOworCXN0cnVjdCBz cGVhcl90aGVybWFsX2RldiAqc3RkZXYgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYoc3BlYXJf dGhlcm1hbCk7CiAJdW5zaWduZWQgaW50IGFjdHVhbF9tYXNrID0gMDsKIAogCS8qIERpc2FibGUg U1BFQXIgVGhlcm1hbCBTZW5zb3IgKi8KQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIGludCBfX21h eWJlX3VudXNlZCBzcGVhcl90aGVybWFsX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogc3Rh dGljIGludCBfX21heWJlX3VudXNlZCBzcGVhcl90aGVybWFsX3Jlc3VtZShzdHJ1Y3QgZGV2aWNl ICpkZXYpCiB7CiAJc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnNwZWFyX3RoZXJtYWwgPSBk ZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQlzdHJ1Y3Qgc3BlYXJfdGhlcm1hbF9kZXYgKnN0ZGV2ID0g c3BlYXJfdGhlcm1hbC0+ZGV2ZGF0YTsKKwlzdHJ1Y3Qgc3BlYXJfdGhlcm1hbF9kZXYgKnN0ZGV2 ID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHNwZWFyX3RoZXJtYWwpOwogCXVuc2lnbmVkIGlu dCBhY3R1YWxfbWFzayA9IDA7CiAJaW50IHJldCA9IDA7CiAKQEAgLTE1NCw3ICsxNTQsNyBAQCBz dGF0aWMgaW50IHNwZWFyX3RoZXJtYWxfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQogewogCXVuc2lnbmVkIGludCBhY3R1YWxfbWFzayA9IDA7CiAJc3RydWN0IHRoZXJtYWxfem9u ZV9kZXZpY2UgKnNwZWFyX3RoZXJtYWwgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKLQlz dHJ1Y3Qgc3BlYXJfdGhlcm1hbF9kZXYgKnN0ZGV2ID0gc3BlYXJfdGhlcm1hbC0+ZGV2ZGF0YTsK KwlzdHJ1Y3Qgc3BlYXJfdGhlcm1hbF9kZXYgKnN0ZGV2ID0gdGhlcm1hbF96b25lX2RldmljZV9w cml2KHNwZWFyX3RoZXJtYWwpOwogCiAJdGhlcm1hbF96b25lX2RldmljZV91bnJlZ2lzdGVyKHNw ZWFyX3RoZXJtYWwpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvc3ByZF90aGVybWFs LmMgYi9kcml2ZXJzL3RoZXJtYWwvc3ByZF90aGVybWFsLmMKaW5kZXggYWM4ODQ1MTRmMTE2Li4y ZmI5MGZkYWQ3NmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9zcHJkX3RoZXJtYWwuYwor KysgYi9kcml2ZXJzL3RoZXJtYWwvc3ByZF90aGVybWFsLmMKQEAgLTIwNiw3ICsyMDYsNyBAQCBz dGF0aWMgaW50IHNwcmRfdGhtX3RlbXBfdG9fcmF3ZGF0YShpbnQgdGVtcCwgc3RydWN0IHNwcmRf dGhlcm1hbF9zZW5zb3IgKnNlbikKIAogc3RhdGljIGludCBzcHJkX3RobV9yZWFkX3RlbXAoc3Ry dWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IHNwcmRf dGhlcm1hbF9zZW5zb3IgKnNlbiA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBzcHJkX3RoZXJtYWxf c2Vuc29yICpzZW4gPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCXUzMiBkYXRhOwog CiAJZGF0YSA9IHJlYWRsKHNlbi0+ZGF0YS0+YmFzZSArIFNQUkRfVEhNX1RFTVAoc2VuLT5pZCkp ICYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9zdC9zdF90aGVybWFsLmMgYi9kcml2ZXJz L3RoZXJtYWwvc3Qvc3RfdGhlcm1hbC5jCmluZGV4IDEwMDlmMDhlNjRlMy4uNmVkMzkzMjE4ZWI4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvc3Qvc3RfdGhlcm1hbC5jCisrKyBiL2RyaXZl cnMvdGhlcm1hbC9zdC9zdF90aGVybWFsLmMKQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgaW50 IHN0X3RoZXJtYWxfY2FsaWJyYXRpb24oc3RydWN0IHN0X3RoZXJtYWxfc2Vuc29yICpzZW5zb3Ip CiAvKiBDYWxsYmFjayB0byBnZXQgdGVtcGVyYXR1cmUgZnJvbSBIVyovCiBzdGF0aWMgaW50IHN0 X3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnRoLCBpbnQgKnRl bXBlcmF0dXJlKQogewotCXN0cnVjdCBzdF90aGVybWFsX3NlbnNvciAqc2Vuc29yID0gdGgtPmRl dmRhdGE7CisJc3RydWN0IHN0X3RoZXJtYWxfc2Vuc29yICpzZW5zb3IgPSB0aGVybWFsX3pvbmVf ZGV2aWNlX3ByaXYodGgpOwogCXN0cnVjdCBkZXZpY2UgKmRldiA9IHNlbnNvci0+ZGV2OwogCXVu c2lnbmVkIGludCB0ZW1wOwogCXVuc2lnbmVkIGludCBvdmVyZmxvdzsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdGhlcm1hbC9zdC9zdG1fdGhlcm1hbC5jIGIvZHJpdmVycy90aGVybWFsL3N0L3N0bV90 aGVybWFsLmMKaW5kZXggNzM1NDAxOTU4ZjAxLi42ZjJiYWQ4ZWY4MmYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdGhlcm1hbC9zdC9zdG1fdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9zdC9z dG1fdGhlcm1hbC5jCkBAIC0zMDMsNyArMzAzLDcgQEAgc3RhdGljIGludCBzdG1fZGlzYWJsZV9p cnEoc3RydWN0IHN0bV90aGVybWFsX3NlbnNvciAqc2Vuc29yKQogCiBzdGF0aWMgaW50IHN0bV90 aGVybWFsX3NldF90cmlwcyhzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCBsb3cs IGludCBoaWdoKQogewotCXN0cnVjdCBzdG1fdGhlcm1hbF9zZW5zb3IgKnNlbnNvciA9IHR6LT5k ZXZkYXRhOworCXN0cnVjdCBzdG1fdGhlcm1hbF9zZW5zb3IgKnNlbnNvciA9IHRoZXJtYWxfem9u ZV9kZXZpY2VfcHJpdih0eik7CiAJdTMyIGl0cjEsIHRoOwogCWludCByZXQ7CiAKQEAgLTM1MSw3 ICszNTEsNyBAQCBzdGF0aWMgaW50IHN0bV90aGVybWFsX3NldF90cmlwcyhzdHJ1Y3QgdGhlcm1h bF96b25lX2RldmljZSAqdHosIGludCBsb3csIGludCBoaQogLyogQ2FsbGJhY2sgdG8gZ2V0IHRl bXBlcmF0dXJlIGZyb20gSFcgKi8KIHN0YXRpYyBpbnQgc3RtX3RoZXJtYWxfZ2V0X3RlbXAoc3Ry dWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IHN0bV90 aGVybWFsX3NlbnNvciAqc2Vuc29yID0gdHotPmRldmRhdGE7CisJc3RydWN0IHN0bV90aGVybWFs X3NlbnNvciAqc2Vuc29yID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAl1MzIgcGVy aW9kczsKIAlpbnQgZnJlcU0sIHJldDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL3N1 bjhpX3RoZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9zdW44aV90aGVybWFsLmMKaW5kZXggNDk3 YmVhYzYzZTVkLi42YjU1MGYwZjkwYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9zdW44 aV90aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL3N1bjhpX3RoZXJtYWwuYwpAQCAtMTEw LDcgKzExMCw3IEBAIHN0YXRpYyBpbnQgc3VuNTBpX2g1X2NhbGNfdGVtcChzdHJ1Y3QgdGhzX2Rl dmljZSAqdG1kZXYsCiAKIHN0YXRpYyBpbnQgc3VuOGlfdGhzX2dldF90ZW1wKHN0cnVjdCB0aGVy bWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wKQogewotCXN0cnVjdCB0c2Vuc29yICpzID0g dHotPmRldmRhdGE7CisJc3RydWN0IHRzZW5zb3IgKnMgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3By aXYodHopOwogCXN0cnVjdCB0aHNfZGV2aWNlICp0bWRldiA9IHMtPnRtZGV2OwogCWludCB2YWwg PSAwOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvdGVncmEvc29jdGhlcm0uYyBiL2Ry aXZlcnMvdGhlcm1hbC90ZWdyYS9zb2N0aGVybS5jCmluZGV4IDIyMDg3MzI5OGQ3Ny4uZWE2NmNi YTA5ZTU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvdGVncmEvc29jdGhlcm0uYworKysg Yi9kcml2ZXJzL3RoZXJtYWwvdGVncmEvc29jdGhlcm0uYwpAQCAtNDIzLDcgKzQyMyw3IEBAIHN0 YXRpYyBpbnQgdHJhbnNsYXRlX3RlbXAodTE2IHZhbCkKIAogc3RhdGljIGludCB0ZWdyYV90aGVy bWN0bF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqb3V0X3Rl bXApCiB7Ci0Jc3RydWN0IHRlZ3JhX3RoZXJtY3RsX3pvbmUgKnpvbmUgPSB0ei0+ZGV2ZGF0YTsK KwlzdHJ1Y3QgdGVncmFfdGhlcm1jdGxfem9uZSAqem9uZSA9IHRoZXJtYWxfem9uZV9kZXZpY2Vf cHJpdih0eik7CiAJdTMyIHZhbDsKIAogCXZhbCA9IHJlYWRsKHpvbmUtPnJlZyk7CkBAIC01ODQs NyArNTg0LDcgQEAgc3RhdGljIGludCB0c2Vuc29yX2dyb3VwX3RoZXJtdHJpcF9nZXQoc3RydWN0 IHRlZ3JhX3NvY3RoZXJtICp0cywgaW50IGlkKQogCiBzdGF0aWMgaW50IHRlZ3JhX3RoZXJtY3Rs X3NldF90cmlwX3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgdHJpcF9p ZCwgaW50IHRlbXApCiB7Ci0Jc3RydWN0IHRlZ3JhX3RoZXJtY3RsX3pvbmUgKnpvbmUgPSB0ei0+ ZGV2ZGF0YTsKKwlzdHJ1Y3QgdGVncmFfdGhlcm1jdGxfem9uZSAqem9uZSA9IHRoZXJtYWxfem9u ZV9kZXZpY2VfcHJpdih0eik7CiAJc3RydWN0IHRlZ3JhX3NvY3RoZXJtICp0cyA9IHpvbmUtPnRz OwogCXN0cnVjdCB0aGVybWFsX3RyaXAgdHJpcDsKIAljb25zdCBzdHJ1Y3QgdGVncmFfdHNlbnNv cl9ncm91cCAqc2cgPSB6b25lLT5zZzsKQEAgLTY1OCw3ICs2NTgsNyBAQCBzdGF0aWMgdm9pZCB0 aGVybWFsX2lycV9kaXNhYmxlKHN0cnVjdCB0ZWdyYV90aGVybWN0bF96b25lICp6bikKIAogc3Rh dGljIGludCB0ZWdyYV90aGVybWN0bF9zZXRfdHJpcHMoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZp Y2UgKnR6LCBpbnQgbG8sIGludCBoaSkKIHsKLQlzdHJ1Y3QgdGVncmFfdGhlcm1jdGxfem9uZSAq em9uZSA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCB0ZWdyYV90aGVybWN0bF96b25lICp6b25lID0g dGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAl1MzIgcjsKIAogCXRoZXJtYWxfaXJxX2Rp c2FibGUoem9uZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvdGVncmEvdGVncmEtYnBt cC10aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvdGVncmEvdGVncmEtYnBtcC10aGVybWFsLmMK aW5kZXggMGI3YTFhMTk0OGNiLi43YmQ4ZWE3NzBmYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhl cm1hbC90ZWdyYS90ZWdyYS1icG1wLXRoZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvdGVn cmEvdGVncmEtYnBtcC10aGVybWFsLmMKQEAgLTYyLDEyICs2MiwxNCBAQCBzdGF0aWMgaW50IF9f dGVncmFfYnBtcF90aGVybWFsX2dldF90ZW1wKHN0cnVjdCB0ZWdyYV9icG1wX3RoZXJtYWxfem9u ZSAqem9uZSwKIAogc3RhdGljIGludCB0ZWdyYV9icG1wX3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0 IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKm91dF90ZW1wKQogewotCXJldHVybiBfX3Rl Z3JhX2JwbXBfdGhlcm1hbF9nZXRfdGVtcCh0ei0+ZGV2ZGF0YSwgb3V0X3RlbXApOworCXN0cnVj dCB0ZWdyYV9icG1wX3RoZXJtYWxfem9uZSAqem9uZSA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJp dih0eik7CisJCisJcmV0dXJuIF9fdGVncmFfYnBtcF90aGVybWFsX2dldF90ZW1wKHpvbmUsIG91 dF90ZW1wKTsKIH0KIAogc3RhdGljIGludCB0ZWdyYV9icG1wX3RoZXJtYWxfc2V0X3RyaXBzKHN0 cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50IGxvdywgaW50IGhpZ2gpCiB7Ci0Jc3Ry dWN0IHRlZ3JhX2JwbXBfdGhlcm1hbF96b25lICp6b25lID0gdHotPmRldmRhdGE7CisJc3RydWN0 IHRlZ3JhX2JwbXBfdGhlcm1hbF96b25lICp6b25lID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2 KHR6KTsKIAlzdHJ1Y3QgbXJxX3RoZXJtYWxfaG9zdF90b19icG1wX3JlcXVlc3QgcmVxOwogCXN0 cnVjdCB0ZWdyYV9icG1wX21lc3NhZ2UgbXNnOwogCWludCBlcnI7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL3RoZXJtYWwvdGVncmEvdGVncmEzMC10c2Vuc29yLmMgYi9kcml2ZXJzL3RoZXJtYWwvdGVn cmEvdGVncmEzMC10c2Vuc29yLmMKaW5kZXggYjMyMThiNzFiNmQ5Li40MmM2ZmI0OTRkZDkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC90ZWdyYS90ZWdyYTMwLXRzZW5zb3IuYworKysgYi9k cml2ZXJzL3RoZXJtYWwvdGVncmEvdGVncmEzMC10c2Vuc29yLmMKQEAgLTE2MCw3ICsxNjAsNyBA QCBzdGF0aWMgdm9pZCBkZXZtX3RlZ3JhX3RzZW5zb3JfaHdfZGlzYWJsZSh2b2lkICpkYXRhKQog CiBzdGF0aWMgaW50IHRlZ3JhX3RzZW5zb3JfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9k ZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0JY29uc3Qgc3RydWN0IHRlZ3JhX3RzZW5zb3JfY2hh bm5lbCAqdHNjID0gdHotPmRldmRhdGE7CisJY29uc3Qgc3RydWN0IHRlZ3JhX3RzZW5zb3JfY2hh bm5lbCAqdHNjID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAljb25zdCBzdHJ1Y3Qg dGVncmFfdHNlbnNvciAqdHMgPSB0c2MtPnRzOwogCWludCBlcnIsIGMxLCBjMiwgYzMsIGM0LCBj b3VudGVyOwogCXUzMiB2YWw7CkBAIC0yMTgsNyArMjE4LDcgQEAgc3RhdGljIGludCB0ZWdyYV90 c2Vuc29yX3RlbXBfdG9fY291bnRlcihjb25zdCBzdHJ1Y3QgdGVncmFfdHNlbnNvciAqdHMsIGlu dCB0ZW0KIAogc3RhdGljIGludCB0ZWdyYV90c2Vuc29yX3NldF90cmlwcyhzdHJ1Y3QgdGhlcm1h bF96b25lX2RldmljZSAqdHosIGludCBsb3csIGludCBoaWdoKQogewotCWNvbnN0IHN0cnVjdCB0 ZWdyYV90c2Vuc29yX2NoYW5uZWwgKnRzYyA9IHR6LT5kZXZkYXRhOworCWNvbnN0IHN0cnVjdCB0 ZWdyYV90c2Vuc29yX2NoYW5uZWwgKnRzYyA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7 CiAJY29uc3Qgc3RydWN0IHRlZ3JhX3RzZW5zb3IgKnRzID0gdHNjLT50czsKIAl1MzIgdmFsOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbC1nZW5lcmljLWFkYy5jIGIvZHJp dmVycy90aGVybWFsL3RoZXJtYWwtZ2VuZXJpYy1hZGMuYwppbmRleCAzMjNlMjczZTMyOTguLjJj MjgzZTc2MmQ4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3RoZXJtYWwtZ2VuZXJpYy1h ZGMuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbC1nZW5lcmljLWFkYy5jCkBAIC01NCw3 ICs1NCw3IEBAIHN0YXRpYyBpbnQgZ2FkY190aGVybWFsX2FkY190b190ZW1wKHN0cnVjdCBnYWRj X3RoZXJtYWxfaW5mbyAqZ3RpLCBpbnQgdmFsKQogCiBzdGF0aWMgaW50IGdhZGNfdGhlcm1hbF9n ZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKIHsKLQlz dHJ1Y3QgZ2FkY190aGVybWFsX2luZm8gKmd0aSA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBnYWRj X3RoZXJtYWxfaW5mbyAqZ3RpID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAlpbnQg dmFsOwogCWludCByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC90aGVybWFsX21t aW8uYyBiL2RyaXZlcnMvdGhlcm1hbC90aGVybWFsX21taW8uYwppbmRleCBlYTYxNjczMTA2NmMu LjY4NDU3NTZhZDVlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3RoZXJtYWxfbW1pby5j CisrKyBiL2RyaXZlcnMvdGhlcm1hbC90aGVybWFsX21taW8uYwpAQCAtMjMsNyArMjMsNyBAQCBz dGF0aWMgdTMyIHRoZXJtYWxfbW1pb19yZWFkYih2b2lkIF9faW9tZW0gKm1taW9fYmFzZSkKIHN0 YXRpYyBpbnQgdGhlcm1hbF9tbWlvX2dldF90ZW1wZXJhdHVyZShzdHJ1Y3QgdGhlcm1hbF96b25l X2RldmljZSAqdHosIGludCAqdGVtcCkKIHsKIAlpbnQgdDsKLQlzdHJ1Y3QgdGhlcm1hbF9tbWlv ICpzZW5zb3IgPSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgdGhlcm1hbF9tbWlvICpzZW5zb3IgPSB0 aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCiAJdCA9IHNlbnNvci0+cmVhZF9tbWlvKHNl bnNvci0+bW1pb19iYXNlKSAmIHNlbnNvci0+bWFzazsKIAl0ICo9IHNlbnNvci0+ZmFjdG9yOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL3RpLXNvYy10aGVybWFsL3RpLXRoZXJtYWwtY29t bW9uLmMgYi9kcml2ZXJzL3RoZXJtYWwvdGktc29jLXRoZXJtYWwvdGktdGhlcm1hbC1jb21tb24u YwppbmRleCA4YTkwNTViZDM3NmUuLjNlOTk4Yzk3OTliYiAxMDA2NDQKLS0tIGEvZHJpdmVycy90 aGVybWFsL3RpLXNvYy10aGVybWFsL3RpLXRoZXJtYWwtY29tbW9uLmMKKysrIGIvZHJpdmVycy90 aGVybWFsL3RpLXNvYy10aGVybWFsL3RpLXRoZXJtYWwtY29tbW9uLmMKQEAgLTY4LDcgKzY4LDcg QEAgc3RhdGljIGlubGluZSBpbnQgdGlfdGhlcm1hbF9ob3RzcG90X3RlbXBlcmF0dXJlKGludCB0 LCBpbnQgcywgaW50IGMpCiBzdGF0aWMgaW5saW5lIGludCBfX3RpX3RoZXJtYWxfZ2V0X3RlbXAo c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7CiAJc3RydWN0IHRo ZXJtYWxfem9uZV9kZXZpY2UgKnBjYl90eiA9IE5VTEw7Ci0Jc3RydWN0IHRpX3RoZXJtYWxfZGF0 YSAqZGF0YSA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCB0aV90aGVybWFsX2RhdGEgKmRhdGEgPSB0 aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCXN0cnVjdCB0aV9iYW5kZ2FwICpiZ3A7CiAJ Y29uc3Qgc3RydWN0IHRpX3RlbXBfc2Vuc29yICpzOwogCWludCByZXQsIHRtcCwgc2xvcGUsIGNv bnN0YW50OwpAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IF9fdGlfdGhlcm1h bF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtCiAKIHN0 YXRpYyBpbnQgX190aV90aGVybWFsX2dldF90cmVuZChzdHJ1Y3QgdGhlcm1hbF96b25lX2Rldmlj ZSAqdHosIGludCB0cmlwLCBlbnVtIHRoZXJtYWxfdHJlbmQgKnRyZW5kKQogewotCXN0cnVjdCB0 aV90aGVybWFsX2RhdGEgKmRhdGEgPSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgdGlfdGhlcm1hbF9k YXRhICpkYXRhID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAlzdHJ1Y3QgdGlfYmFu ZGdhcCAqYmdwOwogCWludCBpZCwgdHIsIHJldCA9IDA7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv dGhlcm1hbC91bmlwaGllcl90aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvdW5pcGhpZXJfdGhl cm1hbC5jCmluZGV4IDQ3ODAxODQxYjNmNS4uYWVmNjExOWNjMDA0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL3RoZXJtYWwvdW5pcGhpZXJfdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC91bmlw aGllcl90aGVybWFsLmMKQEAgLTE4Nyw3ICsxODcsNyBAQCBzdGF0aWMgdm9pZCB1bmlwaGllcl90 bV9kaXNhYmxlX3NlbnNvcihzdHJ1Y3QgdW5pcGhpZXJfdG1fZGV2ICp0ZGV2KQogCiBzdGF0aWMg aW50IHVuaXBoaWVyX3RtX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwg aW50ICpvdXRfdGVtcCkKIHsKLQlzdHJ1Y3QgdW5pcGhpZXJfdG1fZGV2ICp0ZGV2ID0gdHotPmRl dmRhdGE7CisJc3RydWN0IHVuaXBoaWVyX3RtX2RldiAqdGRldiA9IHRoZXJtYWxfem9uZV9kZXZp Y2VfcHJpdih0eik7CiAJc3RydWN0IHJlZ21hcCAqbWFwID0gdGRldi0+cmVnbWFwOwogCWludCBy ZXQ7CiAJdTMyIHRlbXA7Ci0tIAoyLjM0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51eC1hbWxv Z2ljQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1h bi9saXN0aW5mby9saW51eC1hbWxvZ2ljCg== 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 C4F4DC64EC7 for ; Tue, 28 Feb 2023 11:23:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231540AbjB1LXg (ORCPT ); Tue, 28 Feb 2023 06:23:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43348 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231270AbjB1LX2 (ORCPT ); Tue, 28 Feb 2023 06:23:28 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7E75B93D0 for ; Tue, 28 Feb 2023 03:23:10 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id v16so6527560wrn.0 for ; Tue, 28 Feb 2023 03:23:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1677583389; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fd/txMs7LSSUOqvjw5UVJFK6TPR235QoSrDvWMN7cfo=; b=LrpgnAeXcE72c9Rt0AXr0yi+uf54rCE4GH6zXys/cXqsYsph879t0N/McAb94jLH+d DaaRJJetEasnRuutVzM2RoNMXq19Kyj5JPbxZk1QyyOlUj00FMcN/+k4M0R4lzcEtepR TpDMPSEYCwum3pw61kWOZ21Q5appvWw8viJ5745l+VdSg4W7YEr3nfJ65zy5r03S1CRP Jdm4sOlM3+KK08ESbV8ZzNI8m1dt/+TSLrxcpob3mLlY+Aqzf+4FUQgUZ3Sh7Zjz958N c0i84e1c2l+mYTG7ILvW1EXfc9DeMmZ+vNCs6SnYlN7I0I9MfxxFEcndNZtM0aKcEf4e RK9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677583389; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fd/txMs7LSSUOqvjw5UVJFK6TPR235QoSrDvWMN7cfo=; b=4ap+3uNUr82wliWpztwindXKduw8xJQv64a6/KvZvPwZNDJDj6BxWEEnNfwWQ0HM7S p/Dzru2g6KDq6Jh3dhp/iuh4tIc7yGOnPZ+LC8FraCmDoJMTcGB9tUbo8zJGWSaR9NZq UxqZ9Sl0w5HjZS1deaz19rDAlcQMzSsU+ed6bwAoy33E5DecTtUpQ6RwefQ4eoSngTQY tYQc3CVGDvzI1uZ8sfH0qDslBsUS7UZPa5IU5iyowaQRVzagqlFqKuwLOICjGFRYrGbb Hgb0Cjxkq8fp393vTHz9sW94yHzVK4RjBYNdVMAHMFXpuh00pnUfLL3+P11MVOXnP9lp B4mQ== X-Gm-Message-State: AO0yUKWB1m4+uHH9tUsQYTB4VSrO4XAqUqqqwsOB+aOrWl+cHmc3vxwb CReu1PReY2xajZn4ZB3aapVovg== X-Google-Smtp-Source: AK7set+S9VBOgKuilnsctA7+1r4VYM6Khk83zi5KBpGu4yE33CqOoIMmj9FJiGLd1Td8wc6EifyLLQ== X-Received: by 2002:a05:6000:2ca:b0:2c5:561f:fda with SMTP id o10-20020a05600002ca00b002c5561f0fdamr2234741wry.5.1677583388786; Tue, 28 Feb 2023 03:23:08 -0800 (PST) Received: from mai.box.freepro.com ([2a05:6e02:1041:c10:6830:6390:2815:b6a5]) by smtp.gmail.com with ESMTPSA id z5-20020a5d6545000000b002c5501a5803sm9598130wrv.65.2023.02.28.03.23.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Feb 2023 03:23:08 -0800 (PST) From: Daniel Lezcano To: rafael@kernel.org, daniel.lezcano@linaro.org Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Mark Brown , AngeloGioacchino Del Regno , Balsam CHIHI , Adam Ward , Baolin Wang , Jernej Skrabec , "Rafael J . Wysocki" , Florian Fainelli , Guillaume La Roque , Amit Kucheria , Zhang Rui , Miquel Raynal , Broadcom internal kernel review list , Ray Jui , Scott Branden , Markus Mayer , Support Opensource , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Thara Gopinath , Andy Gross , Bjorn Andersson , Konrad Dybcio , =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Heiko Stuebner , Bartlomiej Zolnierkiewicz , Krzysztof Kozlowski , Alim Akhtar , Orson Zhai , Chunyan Zhang , Maxime Coquelin , Alexandre Torgue , Vasily Khoruzhick , Yangtao Li , Chen-Yu Tsai , Samuel Holland , Thierry Reding , Jonathan Hunter , Talel Shenhar , Eduardo Valentin , Keerthy , Kunihiko Hayashi , Masami Hiramatsu , Matthias Brugger , Stefan Wahren , ye xingchen , Zheng Yongjun , Srinivas Pandruvada , Davidlohr Bueso , Sumeet Pawnikar , Kees Cook , Shang XiaoJing , Tim Zimmermann , Yang Li , Jiang Jian , Daniel Golle , Randy Dunlap , Minghao Chi , Johan Hovold , Mikko Perttunen , linux-amlogic@lists.infradead.org (open list:THERMAL DRIVER FOR AMLOGIC SOCS), linux-rpi-kernel@lists.infradead.org (moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE), linux-arm-kernel@lists.infradead.org (moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE), linux-arm-msm@vger.kernel.org (open list:QUALCOMM TSENS THERMAL DRIVER), linux-renesas-soc@vger.kernel.org (open list:RENESAS R-CAR THERMAL DRIVERS), linux-rockchip@lists.infradead.org (open list:ARM/Rockchip SoC support), linux-samsung-soc@vger.kernel.org (open list:SAMSUNG THERMAL DRIVER), linux-stm32@st-md-mailman.stormreply.com (moderated list:ARM/STM32 ARCHITECTURE), linux-sunxi@lists.linux.dev (open list:ARM/Allwinner sunXi SoC support), linux-tegra@vger.kernel.org (open list:TEGRA ARCHITECTURE SUPPORT), linux-omap@vger.kernel.org (open list:TI BANDGAP AND THERMAL DRIVER), linux-mediatek@lists.infradead.org (moderated list:ARM/Mediatek SoC support) Subject: [PATCH v4 02/19] thermal/core: Use the thermal zone 'devdata' accessor in thermal located drivers Date: Tue, 28 Feb 2023 12:22:21 +0100 Message-Id: <20230228112238.2312273-3-daniel.lezcano@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230228112238.2312273-1-daniel.lezcano@linaro.org> References: <20230228112238.2312273-1-daniel.lezcano@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org The thermal zone device structure is exposed to the different drivers and obviously they access the internals while that should be restricted to the core thermal code. In order to self-encapsulate the thermal core code, we need to prevent the drivers accessing directly the thermal zone structure and provide accessor functions to deal with. Use the devdata accessor introduced in the previous patch. No functional changes intended. Signed-off-by: Daniel Lezcano Reviewed-by: Niklas Söderlund #R-Car Acked-by: Mark Brown Reviewed-by: AngeloGioacchino Del Regno #MediaTek auxadc and lvts Reviewed-by: Balsam CHIHI #Mediatek lvts Reviewed-by: Adam Ward #da9062 Reviewed-by: Baolin Wang #spread Acked-by: Jernej Skrabec #sun8i_thermal Acked-by: Rafael J. Wysocki Acked-by: Florian Fainelli #Broadcom --- drivers/thermal/amlogic_thermal.c | 2 +- drivers/thermal/armada_thermal.c | 4 ++-- drivers/thermal/broadcom/bcm2711_thermal.c | 2 +- drivers/thermal/broadcom/bcm2835_thermal.c | 2 +- drivers/thermal/broadcom/brcmstb_thermal.c | 4 ++-- drivers/thermal/broadcom/ns-thermal.c | 2 +- drivers/thermal/broadcom/sr-thermal.c | 2 +- drivers/thermal/da9062-thermal.c | 2 +- drivers/thermal/db8500_thermal.c | 2 +- drivers/thermal/dove_thermal.c | 2 +- drivers/thermal/hisi_thermal.c | 2 +- drivers/thermal/imx8mm_thermal.c | 2 +- drivers/thermal/imx_sc_thermal.c | 2 +- drivers/thermal/imx_thermal.c | 6 +++--- .../thermal/intel/int340x_thermal/int3400_thermal.c | 2 +- .../intel/int340x_thermal/int340x_thermal_zone.c | 4 ++-- .../int340x_thermal/processor_thermal_device_pci.c | 4 ++-- drivers/thermal/intel/intel_pch_thermal.c | 2 +- drivers/thermal/intel/intel_quark_dts_thermal.c | 6 +++--- drivers/thermal/intel/intel_soc_dts_iosf.c | 13 +++++-------- drivers/thermal/intel/x86_pkg_temp_thermal.c | 4 ++-- drivers/thermal/k3_bandgap.c | 2 +- drivers/thermal/k3_j72xx_bandgap.c | 2 +- drivers/thermal/kirkwood_thermal.c | 2 +- drivers/thermal/max77620_thermal.c | 2 +- drivers/thermal/mediatek/auxadc_thermal.c | 2 +- drivers/thermal/mediatek/lvts_thermal.c | 4 ++-- drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 4 ++-- drivers/thermal/qcom/qcom-spmi-temp-alarm.c | 4 ++-- drivers/thermal/qcom/tsens.c | 4 ++-- drivers/thermal/qoriq_thermal.c | 2 +- drivers/thermal/rcar_gen3_thermal.c | 4 ++-- drivers/thermal/rcar_thermal.c | 3 +-- drivers/thermal/rockchip_thermal.c | 4 ++-- drivers/thermal/rzg2l_thermal.c | 2 +- drivers/thermal/samsung/exynos_tmu.c | 4 ++-- drivers/thermal/spear_thermal.c | 8 ++++---- drivers/thermal/sprd_thermal.c | 2 +- drivers/thermal/st/st_thermal.c | 2 +- drivers/thermal/st/stm_thermal.c | 4 ++-- drivers/thermal/sun8i_thermal.c | 2 +- drivers/thermal/tegra/soctherm.c | 6 +++--- drivers/thermal/tegra/tegra-bpmp-thermal.c | 6 ++++-- drivers/thermal/tegra/tegra30-tsensor.c | 4 ++-- drivers/thermal/thermal-generic-adc.c | 2 +- drivers/thermal/thermal_mmio.c | 2 +- drivers/thermal/ti-soc-thermal/ti-thermal-common.c | 4 ++-- drivers/thermal/uniphier_thermal.c | 2 +- 48 files changed, 79 insertions(+), 81 deletions(-) diff --git a/drivers/thermal/amlogic_thermal.c b/drivers/thermal/amlogic_thermal.c index 9235fda4ec1e..dfcc93e45cdd 100644 --- a/drivers/thermal/amlogic_thermal.c +++ b/drivers/thermal/amlogic_thermal.c @@ -181,7 +181,7 @@ static int amlogic_thermal_disable(struct amlogic_thermal *data) static int amlogic_thermal_get_temp(struct thermal_zone_device *tz, int *temp) { unsigned int tval; - struct amlogic_thermal *pdata = tz->devdata; + struct amlogic_thermal *pdata = thermal_zone_device_priv(tz); if (!pdata) return -EINVAL; diff --git a/drivers/thermal/armada_thermal.c b/drivers/thermal/armada_thermal.c index 2efc222a379b..ebd606861a61 100644 --- a/drivers/thermal/armada_thermal.c +++ b/drivers/thermal/armada_thermal.c @@ -398,7 +398,7 @@ static int armada_read_sensor(struct armada_thermal_priv *priv, int *temp) static int armada_get_temp_legacy(struct thermal_zone_device *thermal, int *temp) { - struct armada_thermal_priv *priv = thermal->devdata; + struct armada_thermal_priv *priv = thermal_zone_device_priv(thermal); int ret; /* Valid check */ @@ -420,7 +420,7 @@ static struct thermal_zone_device_ops legacy_ops = { static int armada_get_temp(struct thermal_zone_device *tz, int *temp) { - struct armada_thermal_sensor *sensor = tz->devdata; + struct armada_thermal_sensor *sensor = thermal_zone_device_priv(tz); struct armada_thermal_priv *priv = sensor->priv; int ret; diff --git a/drivers/thermal/broadcom/bcm2711_thermal.c b/drivers/thermal/broadcom/bcm2711_thermal.c index 1f8651d15160..fcfcbbf044a4 100644 --- a/drivers/thermal/broadcom/bcm2711_thermal.c +++ b/drivers/thermal/broadcom/bcm2711_thermal.c @@ -33,7 +33,7 @@ struct bcm2711_thermal_priv { static int bcm2711_get_temp(struct thermal_zone_device *tz, int *temp) { - struct bcm2711_thermal_priv *priv = tz->devdata; + struct bcm2711_thermal_priv *priv = thermal_zone_device_priv(tz); int slope = thermal_zone_get_slope(tz); int offset = thermal_zone_get_offset(tz); u32 val; diff --git a/drivers/thermal/broadcom/bcm2835_thermal.c b/drivers/thermal/broadcom/bcm2835_thermal.c index 23918bb76ae6..86aaf459de37 100644 --- a/drivers/thermal/broadcom/bcm2835_thermal.c +++ b/drivers/thermal/broadcom/bcm2835_thermal.c @@ -90,7 +90,7 @@ static int bcm2835_thermal_temp2adc(int temp, int offset, int slope) static int bcm2835_thermal_get_temp(struct thermal_zone_device *tz, int *temp) { - struct bcm2835_thermal_data *data = tz->devdata; + struct bcm2835_thermal_data *data = thermal_zone_device_priv(tz); u32 val = readl(data->regs + BCM2835_TS_TSENSSTAT); if (!(val & BCM2835_TS_TSENSSTAT_VALID)) diff --git a/drivers/thermal/broadcom/brcmstb_thermal.c b/drivers/thermal/broadcom/brcmstb_thermal.c index 4d02c28331e3..60173cc83c46 100644 --- a/drivers/thermal/broadcom/brcmstb_thermal.c +++ b/drivers/thermal/broadcom/brcmstb_thermal.c @@ -152,7 +152,7 @@ static inline u32 avs_tmon_temp_to_code(struct brcmstb_thermal_priv *priv, static int brcmstb_get_temp(struct thermal_zone_device *tz, int *temp) { - struct brcmstb_thermal_priv *priv = tz->devdata; + struct brcmstb_thermal_priv *priv = thermal_zone_device_priv(tz); u32 val; long t; @@ -262,7 +262,7 @@ static irqreturn_t brcmstb_tmon_irq_thread(int irq, void *data) static int brcmstb_set_trips(struct thermal_zone_device *tz, int low, int high) { - struct brcmstb_thermal_priv *priv = tz->devdata; + struct brcmstb_thermal_priv *priv = thermal_zone_device_priv(tz); dev_dbg(priv->dev, "set trips %d <--> %d\n", low, high); diff --git a/drivers/thermal/broadcom/ns-thermal.c b/drivers/thermal/broadcom/ns-thermal.c index 07a8a3f49bd0..d255aa879fc0 100644 --- a/drivers/thermal/broadcom/ns-thermal.c +++ b/drivers/thermal/broadcom/ns-thermal.c @@ -16,7 +16,7 @@ static int ns_thermal_get_temp(struct thermal_zone_device *tz, int *temp) { - void __iomem *pvtmon = tz->devdata; + void __iomem *pvtmon = thermal_zone_device_priv(tz); int offset = thermal_zone_get_offset(tz); int slope = thermal_zone_get_slope(tz); u32 val; diff --git a/drivers/thermal/broadcom/sr-thermal.c b/drivers/thermal/broadcom/sr-thermal.c index 2b93502543ff..747915890022 100644 --- a/drivers/thermal/broadcom/sr-thermal.c +++ b/drivers/thermal/broadcom/sr-thermal.c @@ -32,7 +32,7 @@ struct sr_thermal { static int sr_get_temp(struct thermal_zone_device *tz, int *temp) { - struct sr_tmon *tmon = tz->devdata; + struct sr_tmon *tmon = thermal_zone_device_priv(tz); struct sr_thermal *sr_thermal = tmon->priv; *temp = readl(sr_thermal->regs + SR_TMON_TEMP_BASE(tmon->tmon_id)); diff --git a/drivers/thermal/da9062-thermal.c b/drivers/thermal/da9062-thermal.c index a805a6666c44..e7097f354750 100644 --- a/drivers/thermal/da9062-thermal.c +++ b/drivers/thermal/da9062-thermal.c @@ -123,7 +123,7 @@ static irqreturn_t da9062_thermal_irq_handler(int irq, void *data) static int da9062_thermal_get_temp(struct thermal_zone_device *z, int *temp) { - struct da9062_thermal *thermal = z->devdata; + struct da9062_thermal *thermal = thermal_zone_device_priv(z); mutex_lock(&thermal->lock); *temp = thermal->temperature; diff --git a/drivers/thermal/db8500_thermal.c b/drivers/thermal/db8500_thermal.c index cb10e280681f..c0418497520c 100644 --- a/drivers/thermal/db8500_thermal.c +++ b/drivers/thermal/db8500_thermal.c @@ -60,7 +60,7 @@ struct db8500_thermal_zone { /* Callback to get current temperature */ static int db8500_thermal_get_temp(struct thermal_zone_device *tz, int *temp) { - struct db8500_thermal_zone *th = tz->devdata; + struct db8500_thermal_zone *th = thermal_zone_device_priv(tz); /* * TODO: There is no PRCMU interface to get temperature data currently, diff --git a/drivers/thermal/dove_thermal.c b/drivers/thermal/dove_thermal.c index 056622a58d00..6db1882e8229 100644 --- a/drivers/thermal/dove_thermal.c +++ b/drivers/thermal/dove_thermal.c @@ -87,7 +87,7 @@ static int dove_get_temp(struct thermal_zone_device *thermal, int *temp) { unsigned long reg; - struct dove_thermal_priv *priv = thermal->devdata; + struct dove_thermal_priv *priv = thermal_zone_device_priv(thermal); /* Valid check */ reg = readl_relaxed(priv->control + PMU_TEMP_DIOD_CTRL1_REG); diff --git a/drivers/thermal/hisi_thermal.c b/drivers/thermal/hisi_thermal.c index 32a7c3cf073d..f3a374266fa0 100644 --- a/drivers/thermal/hisi_thermal.c +++ b/drivers/thermal/hisi_thermal.c @@ -431,7 +431,7 @@ static int hi3660_thermal_probe(struct hisi_thermal_data *data) static int hisi_thermal_get_temp(struct thermal_zone_device *tz, int *temp) { - struct hisi_thermal_sensor *sensor = tz->devdata; + struct hisi_thermal_sensor *sensor = thermal_zone_device_priv(tz); struct hisi_thermal_data *data = sensor->data; *temp = data->ops->get_temp(sensor); diff --git a/drivers/thermal/imx8mm_thermal.c b/drivers/thermal/imx8mm_thermal.c index 72b5d6f319c1..efa1a4ffc368 100644 --- a/drivers/thermal/imx8mm_thermal.c +++ b/drivers/thermal/imx8mm_thermal.c @@ -141,7 +141,7 @@ static int imx8mp_tmu_get_temp(void *data, int *temp) static int tmu_get_temp(struct thermal_zone_device *tz, int *temp) { - struct tmu_sensor *sensor = tz->devdata; + struct tmu_sensor *sensor = thermal_zone_device_priv(tz); struct imx8mm_tmu *tmu = sensor->priv; return tmu->socdata->get_temp(sensor, temp); diff --git a/drivers/thermal/imx_sc_thermal.c b/drivers/thermal/imx_sc_thermal.c index f32e59e74623..ddde4bdfc94a 100644 --- a/drivers/thermal/imx_sc_thermal.c +++ b/drivers/thermal/imx_sc_thermal.c @@ -46,7 +46,7 @@ static int imx_sc_thermal_get_temp(struct thermal_zone_device *tz, int *temp) { struct imx_sc_msg_misc_get_temp msg; struct imx_sc_rpc_msg *hdr = &msg.hdr; - struct imx_sc_sensor *sensor = tz->devdata; + struct imx_sc_sensor *sensor = thermal_zone_device_priv(tz); int ret; msg.data.req.resource_id = sensor->resource_id; diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c index fb0d5cab70af..a22b8086a209 100644 --- a/drivers/thermal/imx_thermal.c +++ b/drivers/thermal/imx_thermal.c @@ -252,7 +252,7 @@ static void imx_set_alarm_temp(struct imx_thermal_data *data, static int imx_get_temp(struct thermal_zone_device *tz, int *temp) { - struct imx_thermal_data *data = tz->devdata; + struct imx_thermal_data *data = thermal_zone_device_priv(tz); const struct thermal_soc_data *soc_data = data->socdata; struct regmap *map = data->tempmon; unsigned int n_meas; @@ -311,7 +311,7 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp) static int imx_change_mode(struct thermal_zone_device *tz, enum thermal_device_mode mode) { - struct imx_thermal_data *data = tz->devdata; + struct imx_thermal_data *data = thermal_zone_device_priv(tz); if (mode == THERMAL_DEVICE_ENABLED) { pm_runtime_get(data->dev); @@ -342,7 +342,7 @@ static int imx_get_crit_temp(struct thermal_zone_device *tz, int *temp) static int imx_set_trip_temp(struct thermal_zone_device *tz, int trip, int temp) { - struct imx_thermal_data *data = tz->devdata; + struct imx_thermal_data *data = thermal_zone_device_priv(tz); int ret; ret = pm_runtime_resume_and_get(data->dev); diff --git a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c index d0295123cc3e..810231b59dcd 100644 --- a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c +++ b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c @@ -497,7 +497,7 @@ static int int3400_thermal_get_temp(struct thermal_zone_device *thermal, static int int3400_thermal_change_mode(struct thermal_zone_device *thermal, enum thermal_device_mode mode) { - struct int3400_thermal_priv *priv = thermal->devdata; + struct int3400_thermal_priv *priv = thermal_zone_device_priv(thermal); int result = 0; if (!priv) diff --git a/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c b/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c index 00665967ca52..89cf007146ea 100644 --- a/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c +++ b/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c @@ -14,7 +14,7 @@ static int int340x_thermal_get_zone_temp(struct thermal_zone_device *zone, int *temp) { - struct int34x_thermal_zone *d = zone->devdata; + struct int34x_thermal_zone *d = thermal_zone_device_priv(zone); unsigned long long tmp; acpi_status status; @@ -41,7 +41,7 @@ static int int340x_thermal_get_zone_temp(struct thermal_zone_device *zone, static int int340x_thermal_set_trip_temp(struct thermal_zone_device *zone, int trip, int temp) { - struct int34x_thermal_zone *d = zone->devdata; + struct int34x_thermal_zone *d = thermal_zone_device_priv(zone); char name[] = {'P', 'A', 'T', '0' + trip, '\0'}; acpi_status status; diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c index 40725cbc6eb0..0404d4db70f0 100644 --- a/drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c +++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c @@ -135,7 +135,7 @@ static irqreturn_t proc_thermal_irq_handler(int irq, void *devid) static int sys_get_curr_temp(struct thermal_zone_device *tzd, int *temp) { - struct proc_thermal_pci *pci_info = tzd->devdata; + struct proc_thermal_pci *pci_info = thermal_zone_device_priv(tzd); u32 _temp; proc_thermal_mmio_read(pci_info, PROC_THERMAL_MMIO_PKG_TEMP, &_temp); @@ -146,7 +146,7 @@ static int sys_get_curr_temp(struct thermal_zone_device *tzd, int *temp) static int sys_set_trip_temp(struct thermal_zone_device *tzd, int trip, int temp) { - struct proc_thermal_pci *pci_info = tzd->devdata; + struct proc_thermal_pci *pci_info = thermal_zone_device_priv(tzd); int tjmax, _temp; if (temp <= 0) { diff --git a/drivers/thermal/intel/intel_pch_thermal.c b/drivers/thermal/intel/intel_pch_thermal.c index b855d031a855..dce50d239357 100644 --- a/drivers/thermal/intel/intel_pch_thermal.c +++ b/drivers/thermal/intel/intel_pch_thermal.c @@ -119,7 +119,7 @@ static int pch_wpt_add_acpi_psv_trip(struct pch_thermal_device *ptd, int trip) static int pch_thermal_get_temp(struct thermal_zone_device *tzd, int *temp) { - struct pch_thermal_device *ptd = tzd->devdata; + struct pch_thermal_device *ptd = thermal_zone_device_priv(tzd); *temp = GET_WPT_TEMP(WPT_TEMP_TSR & readw(ptd->hw_base + WPT_TEMP)); return 0; diff --git a/drivers/thermal/intel/intel_quark_dts_thermal.c b/drivers/thermal/intel/intel_quark_dts_thermal.c index 97b843fa7568..63569185ed82 100644 --- a/drivers/thermal/intel/intel_quark_dts_thermal.c +++ b/drivers/thermal/intel/intel_quark_dts_thermal.c @@ -120,7 +120,7 @@ static DEFINE_MUTEX(dts_update_mutex); static int soc_dts_enable(struct thermal_zone_device *tzd) { u32 out; - struct soc_sensor_entry *aux_entry = tzd->devdata; + struct soc_sensor_entry *aux_entry = thermal_zone_device_priv(tzd); int ret; ret = iosf_mbi_read(QRK_MBI_UNIT_RMU, MBI_REG_READ, @@ -148,7 +148,7 @@ static int soc_dts_enable(struct thermal_zone_device *tzd) static int soc_dts_disable(struct thermal_zone_device *tzd) { u32 out; - struct soc_sensor_entry *aux_entry = tzd->devdata; + struct soc_sensor_entry *aux_entry = thermal_zone_device_priv(tzd); int ret; ret = iosf_mbi_read(QRK_MBI_UNIT_RMU, MBI_REG_READ, @@ -250,7 +250,7 @@ static int update_trip_temp(struct soc_sensor_entry *aux_entry, static inline int sys_set_trip_temp(struct thermal_zone_device *tzd, int trip, int temp) { - return update_trip_temp(tzd->devdata, trip, temp); + return update_trip_temp(thermal_zone_device_priv(tzd), trip, temp); } static int sys_get_curr_temp(struct thermal_zone_device *tzd, diff --git a/drivers/thermal/intel/intel_soc_dts_iosf.c b/drivers/thermal/intel/intel_soc_dts_iosf.c index 8c26f7b2316b..f99dc7e4ae89 100644 --- a/drivers/thermal/intel/intel_soc_dts_iosf.c +++ b/drivers/thermal/intel/intel_soc_dts_iosf.c @@ -54,7 +54,7 @@ static int sys_get_trip_temp(struct thermal_zone_device *tzd, int trip, struct intel_soc_dts_sensor_entry *dts; struct intel_soc_dts_sensors *sensors; - dts = tzd->devdata; + dts = thermal_zone_device_priv(tzd); sensors = dts->sensors; mutex_lock(&sensors->dts_update_lock); status = iosf_mbi_read(BT_MBI_UNIT_PMC, MBI_REG_READ, @@ -168,7 +168,7 @@ static int update_trip_temp(struct intel_soc_dts_sensor_entry *dts, static int sys_set_trip_temp(struct thermal_zone_device *tzd, int trip, int temp) { - struct intel_soc_dts_sensor_entry *dts = tzd->devdata; + struct intel_soc_dts_sensor_entry *dts = thermal_zone_device_priv(tzd); struct intel_soc_dts_sensors *sensors = dts->sensors; int status; @@ -176,7 +176,7 @@ static int sys_set_trip_temp(struct thermal_zone_device *tzd, int trip, return -EINVAL; mutex_lock(&sensors->dts_update_lock); - status = update_trip_temp(tzd->devdata, trip, temp, + status = update_trip_temp(dts, trip, temp, dts->trip_types[trip]); mutex_unlock(&sensors->dts_update_lock); @@ -186,9 +186,7 @@ static int sys_set_trip_temp(struct thermal_zone_device *tzd, int trip, static int sys_get_trip_type(struct thermal_zone_device *tzd, int trip, enum thermal_trip_type *type) { - struct intel_soc_dts_sensor_entry *dts; - - dts = tzd->devdata; + struct intel_soc_dts_sensor_entry *dts = thermal_zone_device_priv(tzd); *type = dts->trip_types[trip]; @@ -200,11 +198,10 @@ static int sys_get_curr_temp(struct thermal_zone_device *tzd, { int status; u32 out; - struct intel_soc_dts_sensor_entry *dts; + struct intel_soc_dts_sensor_entry *dts = thermal_zone_device_priv(tzd); struct intel_soc_dts_sensors *sensors; unsigned long raw; - dts = tzd->devdata; sensors = dts->sensors; status = iosf_mbi_read(BT_MBI_UNIT_PMC, MBI_REG_READ, SOC_DTS_OFFSET_TEMP, &out); diff --git a/drivers/thermal/intel/x86_pkg_temp_thermal.c b/drivers/thermal/intel/x86_pkg_temp_thermal.c index 1c2de84742df..c4ec314441be 100644 --- a/drivers/thermal/intel/x86_pkg_temp_thermal.c +++ b/drivers/thermal/intel/x86_pkg_temp_thermal.c @@ -107,7 +107,7 @@ static struct zone_device *pkg_temp_thermal_get_dev(unsigned int cpu) static int sys_get_curr_temp(struct thermal_zone_device *tzd, int *temp) { - struct zone_device *zonedev = tzd->devdata; + struct zone_device *zonedev = thermal_zone_device_priv(tzd); int val; val = intel_tcc_get_temp(zonedev->cpu, true); @@ -122,7 +122,7 @@ static int sys_get_curr_temp(struct thermal_zone_device *tzd, int *temp) static int sys_set_trip_temp(struct thermal_zone_device *tzd, int trip, int temp) { - struct zone_device *zonedev = tzd->devdata; + struct zone_device *zonedev = thermal_zone_device_priv(tzd); u32 l, h, mask, shift, intr; int tj_max, ret; diff --git a/drivers/thermal/k3_bandgap.c b/drivers/thermal/k3_bandgap.c index 22c9bcb899c3..b5cd2c85e0c3 100644 --- a/drivers/thermal/k3_bandgap.c +++ b/drivers/thermal/k3_bandgap.c @@ -141,7 +141,7 @@ static int k3_bgp_read_temp(struct k3_thermal_data *devdata, static int k3_thermal_get_temp(struct thermal_zone_device *tz, int *temp) { - struct k3_thermal_data *data = tz->devdata; + struct k3_thermal_data *data = thermal_zone_device_priv(tz); int ret = 0; ret = k3_bgp_read_temp(data, temp); diff --git a/drivers/thermal/k3_j72xx_bandgap.c b/drivers/thermal/k3_j72xx_bandgap.c index 031ea1091909..5be1f09eeb2c 100644 --- a/drivers/thermal/k3_j72xx_bandgap.c +++ b/drivers/thermal/k3_j72xx_bandgap.c @@ -248,7 +248,7 @@ static inline int k3_bgp_read_temp(struct k3_thermal_data *devdata, /* Get temperature callback function for thermal zone */ static int k3_thermal_get_temp(struct thermal_zone_device *tz, int *temp) { - return k3_bgp_read_temp(tz->devdata, temp); + return k3_bgp_read_temp(thermal_zone_device_priv(tz), temp); } static const struct thermal_zone_device_ops k3_of_thermal_ops = { diff --git a/drivers/thermal/kirkwood_thermal.c b/drivers/thermal/kirkwood_thermal.c index bec7ec20e79d..92b3ce426b9d 100644 --- a/drivers/thermal/kirkwood_thermal.c +++ b/drivers/thermal/kirkwood_thermal.c @@ -27,7 +27,7 @@ static int kirkwood_get_temp(struct thermal_zone_device *thermal, int *temp) { unsigned long reg; - struct kirkwood_thermal_priv *priv = thermal->devdata; + struct kirkwood_thermal_priv *priv = thermal_zone_device_priv(thermal); reg = readl_relaxed(priv->sensor); diff --git a/drivers/thermal/max77620_thermal.c b/drivers/thermal/max77620_thermal.c index 6451a55eb582..bf1679765f1b 100644 --- a/drivers/thermal/max77620_thermal.c +++ b/drivers/thermal/max77620_thermal.c @@ -46,7 +46,7 @@ struct max77620_therm_info { static int max77620_thermal_read_temp(struct thermal_zone_device *tz, int *temp) { - struct max77620_therm_info *mtherm = tz->devdata; + struct max77620_therm_info *mtherm = thermal_zone_device_priv(tz); unsigned int val; int ret; diff --git a/drivers/thermal/mediatek/auxadc_thermal.c b/drivers/thermal/mediatek/auxadc_thermal.c index ab730f9552d0..755baa4e5bd2 100644 --- a/drivers/thermal/mediatek/auxadc_thermal.c +++ b/drivers/thermal/mediatek/auxadc_thermal.c @@ -763,7 +763,7 @@ static int mtk_thermal_bank_temperature(struct mtk_thermal_bank *bank) static int mtk_read_temp(struct thermal_zone_device *tz, int *temperature) { - struct mtk_thermal *mt = tz->devdata; + struct mtk_thermal *mt = thermal_zone_device_priv(tz); int i; int tempmax = INT_MIN; diff --git a/drivers/thermal/mediatek/lvts_thermal.c b/drivers/thermal/mediatek/lvts_thermal.c index 84ba65a27acf..fb4b1b4db245 100644 --- a/drivers/thermal/mediatek/lvts_thermal.c +++ b/drivers/thermal/mediatek/lvts_thermal.c @@ -252,7 +252,7 @@ static u32 lvts_temp_to_raw(int temperature) static int lvts_get_temp(struct thermal_zone_device *tz, int *temp) { - struct lvts_sensor *lvts_sensor = tz->devdata; + struct lvts_sensor *lvts_sensor = thermal_zone_device_priv(tz); void __iomem *msr = lvts_sensor->msr; u32 value; @@ -290,7 +290,7 @@ static int lvts_get_temp(struct thermal_zone_device *tz, int *temp) static int lvts_set_trips(struct thermal_zone_device *tz, int low, int high) { - struct lvts_sensor *lvts_sensor = tz->devdata; + struct lvts_sensor *lvts_sensor = thermal_zone_device_priv(tz); void __iomem *base = lvts_sensor->base; u32 raw_low = lvts_temp_to_raw(low); u32 raw_high = lvts_temp_to_raw(high); diff --git a/drivers/thermal/qcom/qcom-spmi-adc-tm5.c b/drivers/thermal/qcom/qcom-spmi-adc-tm5.c index 31164ade2dd1..ed204489a950 100644 --- a/drivers/thermal/qcom/qcom-spmi-adc-tm5.c +++ b/drivers/thermal/qcom/qcom-spmi-adc-tm5.c @@ -360,7 +360,7 @@ static irqreturn_t adc_tm5_gen2_isr(int irq, void *data) static int adc_tm5_get_temp(struct thermal_zone_device *tz, int *temp) { - struct adc_tm5_channel *channel = tz->devdata; + struct adc_tm5_channel *channel = thermal_zone_device_priv(tz); int ret; if (!channel || !channel->iio) @@ -642,7 +642,7 @@ static int adc_tm5_gen2_configure(struct adc_tm5_channel *channel, int low, int static int adc_tm5_set_trips(struct thermal_zone_device *tz, int low, int high) { - struct adc_tm5_channel *channel = tz->devdata; + struct adc_tm5_channel *channel = thermal_zone_device_priv(tz); struct adc_tm5_chip *chip; int ret; diff --git a/drivers/thermal/qcom/qcom-spmi-temp-alarm.c b/drivers/thermal/qcom/qcom-spmi-temp-alarm.c index 101c75d0e13f..b196d8d01726 100644 --- a/drivers/thermal/qcom/qcom-spmi-temp-alarm.c +++ b/drivers/thermal/qcom/qcom-spmi-temp-alarm.c @@ -187,7 +187,7 @@ static int qpnp_tm_update_temp_no_adc(struct qpnp_tm_chip *chip) static int qpnp_tm_get_temp(struct thermal_zone_device *tz, int *temp) { - struct qpnp_tm_chip *chip = tz->devdata; + struct qpnp_tm_chip *chip = thermal_zone_device_priv(tz); int ret, mili_celsius; if (!temp) @@ -265,7 +265,7 @@ static int qpnp_tm_update_critical_trip_temp(struct qpnp_tm_chip *chip, static int qpnp_tm_set_trip_temp(struct thermal_zone_device *tz, int trip_id, int temp) { - struct qpnp_tm_chip *chip = tz->devdata; + struct qpnp_tm_chip *chip = thermal_zone_device_priv(tz); struct thermal_trip trip; int ret; diff --git a/drivers/thermal/qcom/tsens.c b/drivers/thermal/qcom/tsens.c index 8020ead2794e..6cc935379f00 100644 --- a/drivers/thermal/qcom/tsens.c +++ b/drivers/thermal/qcom/tsens.c @@ -673,7 +673,7 @@ static irqreturn_t tsens_combined_irq_thread(int irq, void *data) static int tsens_set_trips(struct thermal_zone_device *tz, int low, int high) { - struct tsens_sensor *s = tz->devdata; + struct tsens_sensor *s = thermal_zone_device_priv(tz); struct tsens_priv *priv = s->priv; struct device *dev = priv->dev; struct tsens_irq_data d; @@ -1057,7 +1057,7 @@ int __init init_common(struct tsens_priv *priv) static int tsens_get_temp(struct thermal_zone_device *tz, int *temp) { - struct tsens_sensor *s = tz->devdata; + struct tsens_sensor *s = thermal_zone_device_priv(tz); struct tsens_priv *priv = s->priv; return priv->ops->get_temp(s, temp); diff --git a/drivers/thermal/qoriq_thermal.c b/drivers/thermal/qoriq_thermal.c index 431c29c0898a..d2dc99247f61 100644 --- a/drivers/thermal/qoriq_thermal.c +++ b/drivers/thermal/qoriq_thermal.c @@ -83,7 +83,7 @@ static struct qoriq_tmu_data *qoriq_sensor_to_data(struct qoriq_sensor *s) static int tmu_get_temp(struct thermal_zone_device *tz, int *temp) { - struct qoriq_sensor *qsensor = tz->devdata; + struct qoriq_sensor *qsensor = thermal_zone_device_priv(tz); struct qoriq_tmu_data *qdata = qoriq_sensor_to_data(qsensor); u32 val; /* diff --git a/drivers/thermal/rcar_gen3_thermal.c b/drivers/thermal/rcar_gen3_thermal.c index d6b5b59c5c53..2b7537ef141d 100644 --- a/drivers/thermal/rcar_gen3_thermal.c +++ b/drivers/thermal/rcar_gen3_thermal.c @@ -167,7 +167,7 @@ static int rcar_gen3_thermal_round(int temp) static int rcar_gen3_thermal_get_temp(struct thermal_zone_device *tz, int *temp) { - struct rcar_gen3_thermal_tsc *tsc = tz->devdata; + struct rcar_gen3_thermal_tsc *tsc = thermal_zone_device_priv(tz); int mcelsius, val; int reg; @@ -206,7 +206,7 @@ static int rcar_gen3_thermal_mcelsius_to_temp(struct rcar_gen3_thermal_tsc *tsc, static int rcar_gen3_thermal_set_trips(struct thermal_zone_device *tz, int low, int high) { - struct rcar_gen3_thermal_tsc *tsc = tz->devdata; + struct rcar_gen3_thermal_tsc *tsc = thermal_zone_device_priv(tz); u32 irqmsk = 0; if (low != -INT_MAX) { diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index 436f5f9cf729..e0440f63ae77 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -101,7 +101,6 @@ struct rcar_thermal_priv { list_for_each_entry(pos, &common->head, list) #define MCELSIUS(temp) ((temp) * 1000) -#define rcar_zone_to_priv(zone) ((zone)->devdata) #define rcar_priv_to_dev(priv) ((priv)->common->dev) #define rcar_has_irq_support(priv) ((priv)->common->base) #define rcar_id_to_shift(priv) ((priv)->id * 8) @@ -273,7 +272,7 @@ static int rcar_thermal_get_current_temp(struct rcar_thermal_priv *priv, static int rcar_thermal_get_temp(struct thermal_zone_device *zone, int *temp) { - struct rcar_thermal_priv *priv = rcar_zone_to_priv(zone); + struct rcar_thermal_priv *priv = thermal_zone_device_priv(zone); return rcar_thermal_get_current_temp(priv, temp); } diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockchip_thermal.c index 4b7c43f34d1a..8a51eb26e798 100644 --- a/drivers/thermal/rockchip_thermal.c +++ b/drivers/thermal/rockchip_thermal.c @@ -1213,7 +1213,7 @@ static irqreturn_t rockchip_thermal_alarm_irq_thread(int irq, void *dev) static int rockchip_thermal_set_trips(struct thermal_zone_device *tz, int low, int high) { - struct rockchip_thermal_sensor *sensor = tz->devdata; + struct rockchip_thermal_sensor *sensor = thermal_zone_device_priv(tz); struct rockchip_thermal_data *thermal = sensor->thermal; const struct rockchip_tsadc_chip *tsadc = thermal->chip; @@ -1226,7 +1226,7 @@ static int rockchip_thermal_set_trips(struct thermal_zone_device *tz, int low, i static int rockchip_thermal_get_temp(struct thermal_zone_device *tz, int *out_temp) { - struct rockchip_thermal_sensor *sensor = tz->devdata; + struct rockchip_thermal_sensor *sensor = thermal_zone_device_priv(tz); struct rockchip_thermal_data *thermal = sensor->thermal; const struct rockchip_tsadc_chip *tsadc = sensor->thermal->chip; int retval; diff --git a/drivers/thermal/rzg2l_thermal.c b/drivers/thermal/rzg2l_thermal.c index 2e0649f38506..7631430ce8a9 100644 --- a/drivers/thermal/rzg2l_thermal.c +++ b/drivers/thermal/rzg2l_thermal.c @@ -75,7 +75,7 @@ static inline void rzg2l_thermal_write(struct rzg2l_thermal_priv *priv, u32 reg, static int rzg2l_thermal_get_temp(struct thermal_zone_device *tz, int *temp) { - struct rzg2l_thermal_priv *priv = tz->devdata; + struct rzg2l_thermal_priv *priv = thermal_zone_device_priv(tz); u32 result = 0, dsensor, ts_code_ave; int val, i; diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c index 527d1eb0663a..45e5c840d130 100644 --- a/drivers/thermal/samsung/exynos_tmu.c +++ b/drivers/thermal/samsung/exynos_tmu.c @@ -645,7 +645,7 @@ static void exynos7_tmu_control(struct platform_device *pdev, bool on) static int exynos_get_temp(struct thermal_zone_device *tz, int *temp) { - struct exynos_tmu_data *data = tz->devdata; + struct exynos_tmu_data *data = thermal_zone_device_priv(tz); int value, ret = 0; if (!data || !data->tmu_read) @@ -723,7 +723,7 @@ static void exynos4412_tmu_set_emulation(struct exynos_tmu_data *data, static int exynos_tmu_set_emulation(struct thermal_zone_device *tz, int temp) { - struct exynos_tmu_data *data = tz->devdata; + struct exynos_tmu_data *data = thermal_zone_device_priv(tz); int ret = -EINVAL; if (data->soc == SOC_ARCH_EXYNOS4210) diff --git a/drivers/thermal/spear_thermal.c b/drivers/thermal/spear_thermal.c index 6a722b10d738..653439b965c8 100644 --- a/drivers/thermal/spear_thermal.c +++ b/drivers/thermal/spear_thermal.c @@ -31,7 +31,7 @@ struct spear_thermal_dev { static inline int thermal_get_temp(struct thermal_zone_device *thermal, int *temp) { - struct spear_thermal_dev *stdev = thermal->devdata; + struct spear_thermal_dev *stdev = thermal_zone_device_priv(thermal); /* * Data are ready to be read after 628 usec from POWERDOWN signal @@ -48,7 +48,7 @@ static struct thermal_zone_device_ops ops = { static int __maybe_unused spear_thermal_suspend(struct device *dev) { struct thermal_zone_device *spear_thermal = dev_get_drvdata(dev); - struct spear_thermal_dev *stdev = spear_thermal->devdata; + struct spear_thermal_dev *stdev = thermal_zone_device_priv(spear_thermal); unsigned int actual_mask = 0; /* Disable SPEAr Thermal Sensor */ @@ -64,7 +64,7 @@ static int __maybe_unused spear_thermal_suspend(struct device *dev) static int __maybe_unused spear_thermal_resume(struct device *dev) { struct thermal_zone_device *spear_thermal = dev_get_drvdata(dev); - struct spear_thermal_dev *stdev = spear_thermal->devdata; + struct spear_thermal_dev *stdev = thermal_zone_device_priv(spear_thermal); unsigned int actual_mask = 0; int ret = 0; @@ -154,7 +154,7 @@ static int spear_thermal_exit(struct platform_device *pdev) { unsigned int actual_mask = 0; struct thermal_zone_device *spear_thermal = platform_get_drvdata(pdev); - struct spear_thermal_dev *stdev = spear_thermal->devdata; + struct spear_thermal_dev *stdev = thermal_zone_device_priv(spear_thermal); thermal_zone_device_unregister(spear_thermal); diff --git a/drivers/thermal/sprd_thermal.c b/drivers/thermal/sprd_thermal.c index ac884514f116..2fb90fdad76e 100644 --- a/drivers/thermal/sprd_thermal.c +++ b/drivers/thermal/sprd_thermal.c @@ -206,7 +206,7 @@ static int sprd_thm_temp_to_rawdata(int temp, struct sprd_thermal_sensor *sen) static int sprd_thm_read_temp(struct thermal_zone_device *tz, int *temp) { - struct sprd_thermal_sensor *sen = tz->devdata; + struct sprd_thermal_sensor *sen = thermal_zone_device_priv(tz); u32 data; data = readl(sen->data->base + SPRD_THM_TEMP(sen->id)) & diff --git a/drivers/thermal/st/st_thermal.c b/drivers/thermal/st/st_thermal.c index 1009f08e64e3..6ed393218eb8 100644 --- a/drivers/thermal/st/st_thermal.c +++ b/drivers/thermal/st/st_thermal.c @@ -108,7 +108,7 @@ static int st_thermal_calibration(struct st_thermal_sensor *sensor) /* Callback to get temperature from HW*/ static int st_thermal_get_temp(struct thermal_zone_device *th, int *temperature) { - struct st_thermal_sensor *sensor = th->devdata; + struct st_thermal_sensor *sensor = thermal_zone_device_priv(th); struct device *dev = sensor->dev; unsigned int temp; unsigned int overflow; diff --git a/drivers/thermal/st/stm_thermal.c b/drivers/thermal/st/stm_thermal.c index 735401958f01..6f2bad8ef82f 100644 --- a/drivers/thermal/st/stm_thermal.c +++ b/drivers/thermal/st/stm_thermal.c @@ -303,7 +303,7 @@ static int stm_disable_irq(struct stm_thermal_sensor *sensor) static int stm_thermal_set_trips(struct thermal_zone_device *tz, int low, int high) { - struct stm_thermal_sensor *sensor = tz->devdata; + struct stm_thermal_sensor *sensor = thermal_zone_device_priv(tz); u32 itr1, th; int ret; @@ -351,7 +351,7 @@ static int stm_thermal_set_trips(struct thermal_zone_device *tz, int low, int hi /* Callback to get temperature from HW */ static int stm_thermal_get_temp(struct thermal_zone_device *tz, int *temp) { - struct stm_thermal_sensor *sensor = tz->devdata; + struct stm_thermal_sensor *sensor = thermal_zone_device_priv(tz); u32 periods; int freqM, ret; diff --git a/drivers/thermal/sun8i_thermal.c b/drivers/thermal/sun8i_thermal.c index 497beac63e5d..6b550f0f90bf 100644 --- a/drivers/thermal/sun8i_thermal.c +++ b/drivers/thermal/sun8i_thermal.c @@ -110,7 +110,7 @@ static int sun50i_h5_calc_temp(struct ths_device *tmdev, static int sun8i_ths_get_temp(struct thermal_zone_device *tz, int *temp) { - struct tsensor *s = tz->devdata; + struct tsensor *s = thermal_zone_device_priv(tz); struct ths_device *tmdev = s->tmdev; int val = 0; diff --git a/drivers/thermal/tegra/soctherm.c b/drivers/thermal/tegra/soctherm.c index 220873298d77..ea66cba09e56 100644 --- a/drivers/thermal/tegra/soctherm.c +++ b/drivers/thermal/tegra/soctherm.c @@ -423,7 +423,7 @@ static int translate_temp(u16 val) static int tegra_thermctl_get_temp(struct thermal_zone_device *tz, int *out_temp) { - struct tegra_thermctl_zone *zone = tz->devdata; + struct tegra_thermctl_zone *zone = thermal_zone_device_priv(tz); u32 val; val = readl(zone->reg); @@ -584,7 +584,7 @@ static int tsensor_group_thermtrip_get(struct tegra_soctherm *ts, int id) static int tegra_thermctl_set_trip_temp(struct thermal_zone_device *tz, int trip_id, int temp) { - struct tegra_thermctl_zone *zone = tz->devdata; + struct tegra_thermctl_zone *zone = thermal_zone_device_priv(tz); struct tegra_soctherm *ts = zone->ts; struct thermal_trip trip; const struct tegra_tsensor_group *sg = zone->sg; @@ -658,7 +658,7 @@ static void thermal_irq_disable(struct tegra_thermctl_zone *zn) static int tegra_thermctl_set_trips(struct thermal_zone_device *tz, int lo, int hi) { - struct tegra_thermctl_zone *zone = tz->devdata; + struct tegra_thermctl_zone *zone = thermal_zone_device_priv(tz); u32 r; thermal_irq_disable(zone); diff --git a/drivers/thermal/tegra/tegra-bpmp-thermal.c b/drivers/thermal/tegra/tegra-bpmp-thermal.c index 0b7a1a1948cb..7bd8ea770fa1 100644 --- a/drivers/thermal/tegra/tegra-bpmp-thermal.c +++ b/drivers/thermal/tegra/tegra-bpmp-thermal.c @@ -62,12 +62,14 @@ static int __tegra_bpmp_thermal_get_temp(struct tegra_bpmp_thermal_zone *zone, static int tegra_bpmp_thermal_get_temp(struct thermal_zone_device *tz, int *out_temp) { - return __tegra_bpmp_thermal_get_temp(tz->devdata, out_temp); + struct tegra_bpmp_thermal_zone *zone = thermal_zone_device_priv(tz); + + return __tegra_bpmp_thermal_get_temp(zone, out_temp); } static int tegra_bpmp_thermal_set_trips(struct thermal_zone_device *tz, int low, int high) { - struct tegra_bpmp_thermal_zone *zone = tz->devdata; + struct tegra_bpmp_thermal_zone *zone = thermal_zone_device_priv(tz); struct mrq_thermal_host_to_bpmp_request req; struct tegra_bpmp_message msg; int err; diff --git a/drivers/thermal/tegra/tegra30-tsensor.c b/drivers/thermal/tegra/tegra30-tsensor.c index b3218b71b6d9..42c6fb494dd9 100644 --- a/drivers/thermal/tegra/tegra30-tsensor.c +++ b/drivers/thermal/tegra/tegra30-tsensor.c @@ -160,7 +160,7 @@ static void devm_tegra_tsensor_hw_disable(void *data) static int tegra_tsensor_get_temp(struct thermal_zone_device *tz, int *temp) { - const struct tegra_tsensor_channel *tsc = tz->devdata; + const struct tegra_tsensor_channel *tsc = thermal_zone_device_priv(tz); const struct tegra_tsensor *ts = tsc->ts; int err, c1, c2, c3, c4, counter; u32 val; @@ -218,7 +218,7 @@ static int tegra_tsensor_temp_to_counter(const struct tegra_tsensor *ts, int tem static int tegra_tsensor_set_trips(struct thermal_zone_device *tz, int low, int high) { - const struct tegra_tsensor_channel *tsc = tz->devdata; + const struct tegra_tsensor_channel *tsc = thermal_zone_device_priv(tz); const struct tegra_tsensor *ts = tsc->ts; u32 val; diff --git a/drivers/thermal/thermal-generic-adc.c b/drivers/thermal/thermal-generic-adc.c index 323e273e3298..2c283e762d81 100644 --- a/drivers/thermal/thermal-generic-adc.c +++ b/drivers/thermal/thermal-generic-adc.c @@ -54,7 +54,7 @@ static int gadc_thermal_adc_to_temp(struct gadc_thermal_info *gti, int val) static int gadc_thermal_get_temp(struct thermal_zone_device *tz, int *temp) { - struct gadc_thermal_info *gti = tz->devdata; + struct gadc_thermal_info *gti = thermal_zone_device_priv(tz); int val; int ret; diff --git a/drivers/thermal/thermal_mmio.c b/drivers/thermal/thermal_mmio.c index ea616731066c..6845756ad5e7 100644 --- a/drivers/thermal/thermal_mmio.c +++ b/drivers/thermal/thermal_mmio.c @@ -23,7 +23,7 @@ static u32 thermal_mmio_readb(void __iomem *mmio_base) static int thermal_mmio_get_temperature(struct thermal_zone_device *tz, int *temp) { int t; - struct thermal_mmio *sensor = tz->devdata; + struct thermal_mmio *sensor = thermal_zone_device_priv(tz); t = sensor->read_mmio(sensor->mmio_base) & sensor->mask; t *= sensor->factor; diff --git a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c index 8a9055bd376e..3e998c9799bb 100644 --- a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c +++ b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c @@ -68,7 +68,7 @@ static inline int ti_thermal_hotspot_temperature(int t, int s, int c) static inline int __ti_thermal_get_temp(struct thermal_zone_device *tz, int *temp) { struct thermal_zone_device *pcb_tz = NULL; - struct ti_thermal_data *data = tz->devdata; + struct ti_thermal_data *data = thermal_zone_device_priv(tz); struct ti_bandgap *bgp; const struct ti_temp_sensor *s; int ret, tmp, slope, constant; @@ -109,7 +109,7 @@ static inline int __ti_thermal_get_temp(struct thermal_zone_device *tz, int *tem static int __ti_thermal_get_trend(struct thermal_zone_device *tz, int trip, enum thermal_trend *trend) { - struct ti_thermal_data *data = tz->devdata; + struct ti_thermal_data *data = thermal_zone_device_priv(tz); struct ti_bandgap *bgp; int id, tr, ret = 0; diff --git a/drivers/thermal/uniphier_thermal.c b/drivers/thermal/uniphier_thermal.c index 47801841b3f5..aef6119cc004 100644 --- a/drivers/thermal/uniphier_thermal.c +++ b/drivers/thermal/uniphier_thermal.c @@ -187,7 +187,7 @@ static void uniphier_tm_disable_sensor(struct uniphier_tm_dev *tdev) static int uniphier_tm_get_temp(struct thermal_zone_device *tz, int *out_temp) { - struct uniphier_tm_dev *tdev = tz->devdata; + struct uniphier_tm_dev *tdev = thermal_zone_device_priv(tz); struct regmap *map = tdev->regmap; int ret; u32 temp; -- 2.34.1