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 6884DC678D4 for ; Wed, 1 Mar 2023 20:15:48 +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=EqHWEAErPdtsmwshWaxbCZH1xi/TKlckWjPIDPJvG+A=; b=bVD5v7FoeAVe8o l5Fd29HNMwyX1jaJ7XclMtbpAGH33Q5lAtjYXpwJReciOJzN/g9GZSG120tvx4J8wlqRQSOH4P8Iu arOSjNRX6CHMZHF6cLChlimVt48QLSbYtPhuWcb6p/bPDsA3Y7Y6YwgsldBgs9YJVvhokfui8iVpG ziU+VKLctaP0TuJ4ATh4M3qS/lzNt9D8RIwerCf7nPEoQlP+K1rQX4tXrzO1qcsWkc40/VIEfdsoh uXNFeHgH//Q4MOFIamuwMNIgvEVSzWuBwYotV9CmoDFWj4Kd/JxXsYhXhCZvr4YlXYZxnxGqSh2Cc 1bsVcwotYqv4935g7QkA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pXSrL-00HT4m-1r; Wed, 01 Mar 2023 20:15:31 +0000 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pXSrA-00HSyZ-Gu for linux-amlogic@lists.infradead.org; Wed, 01 Mar 2023 20:15:28 +0000 Received: by mail-wm1-x32c.google.com with SMTP id t25-20020a1c7719000000b003eb052cc5ccso294496wmi.4 for ; Wed, 01 Mar 2023 12:15:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1677701717; 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=0HjbdoBjX6c5UeLhSG1rbDyM1zgsqlgq1fI+l+tcxLM=; b=PZThdnWgYCnM5QXUT5KQw/HJDXu3kU8O0fC6EifT3rkN47u/7ud/jFm2qGlEg2cATp bf9xV8Yt4F76ICcpwuLl9c9lEdU1wufZhwg4dPSfxxlL4DM6fAh3tiGJi9VUjtvKiaBb 6Uf1Ph3jxB5ALc3LhUsf3yKCAJ+mhbkpqq0RpVw41ThwEzoyDqcHOdVQAkxXVZV0NLxy lcR82YvEPfu7UKzO8/pwWZwW2hOsVMYhzGZRhtIT7CwpMM5H8aW6l107MGHkYFLn4LUR 2hgAoQRKozTWGpfClJhlQCpULRvkUiirT2xPYFa0H9Pr4LB0MRh73Si5c6kI2Xiwskzo EuHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677701717; 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=0HjbdoBjX6c5UeLhSG1rbDyM1zgsqlgq1fI+l+tcxLM=; b=XIdRneAA4Xx3GkQ35wTFFRPBly61pKsGRGeq+A2JqiZlYCBVVNPHfSv8WisBIjIUE4 Omm2DRUwmEgVXYTbM+84WAE0xob3KTaoNnBl21lmksyQtwI9Mr91KL0d6FIvIqRtn1Vl PgYZFQaCurMQ0PoaZTj11s8uU8kbvjaxofEsMslDa/dUlnv2uKrBWuCtUEXkqnTXSaNn 3Wjvz/Wxjh/NmXlkJi2/oeGKf2o4A9deiGkGzeHJ9m2SNyWrzkyjxEzu98v92pjXh9of B0T4x1mDQPJJLzUF+9ZtCVBJ0EDyFjPtsZ5c/6ejq86vynAruiReOnu1eCqqQSiLpGeh DFzw== X-Gm-Message-State: AO0yUKXvBkbvPyOn5rOxr0vGk6mJSHaWFsdvvoUHMp0N06UlJrVH3nfa 1ZL2C31L8Lqq+bQv/8X7K0BETQ== X-Google-Smtp-Source: AK7set/t7hT2+c9eutqwVC2JnnYWqL+Fl4wrXn9xFR1MX66CpVZungkpfz9/cNEycvs7GsCw7W5XfQ== X-Received: by 2002:a05:600c:a293:b0:3eb:3e24:59e2 with SMTP id hu19-20020a05600ca29300b003eb3e2459e2mr5845407wmb.25.1677701716503; Wed, 01 Mar 2023 12:15:16 -0800 (PST) Received: from mai.box.freepro.com ([2a05:6e02:1041:c10:6ffe:ce4f:bd31:1e6d]) by smtp.gmail.com with ESMTPSA id x16-20020a1c7c10000000b003e70a7c1b73sm576546wmc.16.2023.03.01.12.15.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Mar 2023 12:15:15 -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 , Dhruva Gole , 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 , Neil Armstrong , ye xingchen , Zheng Yongjun , Srinivas Pandruvada , Davidlohr Bueso , Sumeet Pawnikar , "Lee, Chun-Yi" , Shang XiaoJing , Tim Zimmermann , Yang Li , Jiang Jian , Daniel Golle , Randy Dunlap , Ido Schimmel , 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 v5 02/18] thermal/core: Use the thermal zone 'devdata' accessor in thermal located drivers Date: Wed, 1 Mar 2023 21:14:30 +0100 Message-Id: <20230301201446.3713334-3-daniel.lezcano@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230301201446.3713334-1-daniel.lezcano@linaro.org> References: <20230301201446.3713334-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-20230301_121520_729793_F95B040C X-CRM114-Status: GOOD ( 18.32 ) 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+ICNCcm9hZGNvbQpSZXZpZXdlZC1ieTogRGhydXZhIEdvbGUgPGQtZ29s ZUB0aS5jb20+ICMgSzMgYmFuZGdhcAotLS0KIGRyaXZlcnMvdGhlcm1hbC9hbWxvZ2ljX3RoZXJt YWwuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3RoZXJtYWwvYXJtYWRhX3Ro ZXJtYWwuYyAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL3RoZXJtYWwvYnJv YWRjb20vYmNtMjcxMV90aGVybWFsLmMgICAgICAgICAgfCAgMiArLQogZHJpdmVycy90aGVybWFs L2Jyb2FkY29tL2JjbTI4MzVfdGhlcm1hbC5jICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGhl cm1hbC9icm9hZGNvbS9icmNtc3RiX3RoZXJtYWwuYyAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZl cnMvdGhlcm1hbC9icm9hZGNvbS9ucy10aGVybWFsLmMgICAgICAgICAgICAgICB8ICAyICstCiBk cml2ZXJzL3RoZXJtYWwvYnJvYWRjb20vc3ItdGhlcm1hbC5jICAgICAgICAgICAgICAgfCAgMiAr LQogZHJpdmVycy90aGVybWFsL2RhOTA2Mi10aGVybWFsLmMgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGRyaXZlcnMvdGhlcm1hbC9kYjg1MDBfdGhlcm1hbC5jICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBkcml2ZXJzL3RoZXJtYWwvZG92ZV90aGVybWFsLmMgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogZHJpdmVycy90aGVybWFsL2hpc2lfdGhlcm1hbC5jICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGhlcm1hbC9pbXg4bW1fdGhlcm1hbC5jICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3RoZXJtYWwvaW14X3NjX3RoZXJtYWwuYyAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy90aGVybWFsL2lteF90aGVybWFsLmMg ICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0tCiAuLi4vdGhlcm1hbC9pbnRlbC9pbnQz NDB4X3RoZXJtYWwvaW50MzQwMF90aGVybWFsLmMgfCAgMiArLQogLi4uL2ludGVsL2ludDM0MHhf dGhlcm1hbC9pbnQzNDB4X3RoZXJtYWxfem9uZS5jICAgIHwgIDQgKystLQogLi4uL2ludDM0MHhf dGhlcm1hbC9wcm9jZXNzb3JfdGhlcm1hbF9kZXZpY2VfcGNpLmMgIHwgIDQgKystLQogZHJpdmVy cy90aGVybWFsL2ludGVsL2ludGVsX3BjaF90aGVybWFsLmMgICAgICAgICAgIHwgIDIgKy0KIGRy aXZlcnMvdGhlcm1hbC9pbnRlbC9pbnRlbF9xdWFya19kdHNfdGhlcm1hbC5jICAgICB8ICA2ICsr Ky0tLQogZHJpdmVycy90aGVybWFsL2ludGVsL2ludGVsX3NvY19kdHNfaW9zZi5jICAgICAgICAg IHwgMTMgKysrKystLS0tLS0tLQogZHJpdmVycy90aGVybWFsL2ludGVsL3g4Nl9wa2dfdGVtcF90 aGVybWFsLmMgICAgICAgIHwgIDQgKystLQogZHJpdmVycy90aGVybWFsL2szX2JhbmRnYXAuYyAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGhlcm1hbC9rM19qNzJ4eF9i YW5kZ2FwLmMgICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3RoZXJtYWwva2lya3dv b2RfdGhlcm1hbC5jICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy90aGVybWFsL21h eDc3NjIwX3RoZXJtYWwuYyAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGhlcm1h bC9tZWRpYXRlay9hdXhhZGNfdGhlcm1hbC5jICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3Ro ZXJtYWwvbWVkaWF0ZWsvbHZ0c190aGVybWFsLmMgICAgICAgICAgICAgfCAgNCArKy0tCiBkcml2 ZXJzL3RoZXJtYWwvcWNvbS9xY29tLXNwbWktYWRjLXRtNS5jICAgICAgICAgICAgfCAgNCArKy0t CiBkcml2ZXJzL3RoZXJtYWwvcWNvbS9xY29tLXNwbWktdGVtcC1hbGFybS5jICAgICAgICAgfCAg NCArKy0tCiBkcml2ZXJzL3RoZXJtYWwvcWNvbS90c2Vucy5jICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNCArKy0tCiBkcml2ZXJzL3RoZXJtYWwvcW9yaXFfdGhlcm1hbC5jICAgICAgICAgICAg ICAgICAgICAgfCAgMiArLQogZHJpdmVycy90aGVybWFsL3JjYXJfZ2VuM190aGVybWFsLmMgICAg ICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy90aGVybWFsL3JjYXJfdGhlcm1hbC5jICAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0tCiBkcml2ZXJzL3RoZXJtYWwvcm9ja2NoaXBfdGhl cm1hbC5jICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL3RoZXJtYWwvcnpnMmxf dGhlcm1hbC5jICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy90aGVybWFsL3Nh bXN1bmcvZXh5bm9zX3RtdS5jICAgICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy90aGVy bWFsL3NwZWFyX3RoZXJtYWwuYyAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0KIGRy aXZlcnMvdGhlcm1hbC9zcHJkX3RoZXJtYWwuYyAgICAgICAgICAgICAgICAgICAgICB8ICAyICst CiBkcml2ZXJzL3RoZXJtYWwvc3Qvc3RfdGhlcm1hbC5jICAgICAgICAgICAgICAgICAgICAgfCAg MiArLQogZHJpdmVycy90aGVybWFsL3N0L3N0bV90aGVybWFsLmMgICAgICAgICAgICAgICAgICAg IHwgIDQgKystLQogZHJpdmVycy90aGVybWFsL3N1bjhpX3RoZXJtYWwuYyAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGhlcm1hbC90ZWdyYS9zb2N0aGVybS5jICAgICAgICAg ICAgICAgICAgICB8ICA2ICsrKy0tLQogZHJpdmVycy90aGVybWFsL3RlZ3JhL3RlZ3JhLWJwbXAt dGhlcm1hbC5jICAgICAgICAgIHwgIDYgKysrKy0tCiBkcml2ZXJzL3RoZXJtYWwvdGVncmEvdGVn cmEzMC10c2Vuc29yLmMgICAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL3RoZXJtYWwvdGhl cm1hbC1nZW5lcmljLWFkYy5jICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy90aGVybWFs L3RoZXJtYWxfbW1pby5jICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGhl cm1hbC90aS1zb2MtdGhlcm1hbC90aS10aGVybWFsLWNvbW1vbi5jICB8ICA0ICsrLS0KIGRyaXZl cnMvdGhlcm1hbC91bmlwaGllcl90aGVybWFsLmMgICAgICAgICAgICAgICAgICB8ICAyICstCiA0 OCBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCA4MSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvYW1sb2dpY190aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJt YWwvYW1sb2dpY190aGVybWFsLmMKaW5kZXggOTIzNWZkYTRlYzFlLi5kZmNjOTNlNDVjZGQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9hbWxvZ2ljX3RoZXJtYWwuYworKysgYi9kcml2ZXJz L3RoZXJtYWwvYW1sb2dpY190aGVybWFsLmMKQEAgLTE4MSw3ICsxODEsNyBAQCBzdGF0aWMgaW50 IGFtbG9naWNfdGhlcm1hbF9kaXNhYmxlKHN0cnVjdCBhbWxvZ2ljX3RoZXJtYWwgKmRhdGEpCiBz dGF0aWMgaW50IGFtbG9naWNfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2Rl dmljZSAqdHosIGludCAqdGVtcCkKIHsKIAl1bnNpZ25lZCBpbnQgdHZhbDsKLQlzdHJ1Y3QgYW1s b2dpY190aGVybWFsICpwZGF0YSA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBhbWxvZ2ljX3RoZXJt YWwgKnBkYXRhID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAogCWlmICghcGRhdGEp CiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2FybWFkYV90 aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvYXJtYWRhX3RoZXJtYWwuYwppbmRleCAyZWZjMjIy YTM3OWIuLmViZDYwNjg2MWE2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2FybWFkYV90 aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL2FybWFkYV90aGVybWFsLmMKQEAgLTM5OCw3 ICszOTgsNyBAQCBzdGF0aWMgaW50IGFybWFkYV9yZWFkX3NlbnNvcihzdHJ1Y3QgYXJtYWRhX3Ro ZXJtYWxfcHJpdiAqcHJpdiwgaW50ICp0ZW1wKQogc3RhdGljIGludCBhcm1hZGFfZ2V0X3RlbXBf bGVnYWN5KHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0aGVybWFsLAogCQkJCSAgaW50ICp0 ZW1wKQogewotCXN0cnVjdCBhcm1hZGFfdGhlcm1hbF9wcml2ICpwcml2ID0gdGhlcm1hbC0+ZGV2 ZGF0YTsKKwlzdHJ1Y3QgYXJtYWRhX3RoZXJtYWxfcHJpdiAqcHJpdiA9IHRoZXJtYWxfem9uZV9k ZXZpY2VfcHJpdih0aGVybWFsKTsKIAlpbnQgcmV0OwogCiAJLyogVmFsaWQgY2hlY2sgKi8KQEAg LTQyMCw3ICs0MjAsNyBAQCBzdGF0aWMgc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2Vfb3BzIGxl Z2FjeV9vcHMgPSB7CiAKIHN0YXRpYyBpbnQgYXJtYWRhX2dldF90ZW1wKHN0cnVjdCB0aGVybWFs X3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wKQogewotCXN0cnVjdCBhcm1hZGFfdGhlcm1hbF9z ZW5zb3IgKnNlbnNvciA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBhcm1hZGFfdGhlcm1hbF9zZW5z b3IgKnNlbnNvciA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJc3RydWN0IGFybWFk YV90aGVybWFsX3ByaXYgKnByaXYgPSBzZW5zb3ItPnByaXY7CiAJaW50IHJldDsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy90aGVybWFsL2Jyb2FkY29tL2JjbTI3MTFfdGhlcm1hbC5jIGIvZHJpdmVy cy90aGVybWFsL2Jyb2FkY29tL2JjbTI3MTFfdGhlcm1hbC5jCmluZGV4IDFmODY1MWQxNTE2MC4u ZmNmY2JiZjA0NGE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvYnJvYWRjb20vYmNtMjcx MV90aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL2Jyb2FkY29tL2JjbTI3MTFfdGhlcm1h bC5jCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCBiY20yNzExX3RoZXJtYWxfcHJpdiB7CiAKIHN0 YXRpYyBpbnQgYmNtMjcxMV9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHos IGludCAqdGVtcCkKIHsKLQlzdHJ1Y3QgYmNtMjcxMV90aGVybWFsX3ByaXYgKnByaXYgPSB0ei0+ ZGV2ZGF0YTsKKwlzdHJ1Y3QgYmNtMjcxMV90aGVybWFsX3ByaXYgKnByaXYgPSB0aGVybWFsX3pv bmVfZGV2aWNlX3ByaXYodHopOwogCWludCBzbG9wZSA9IHRoZXJtYWxfem9uZV9nZXRfc2xvcGUo dHopOwogCWludCBvZmZzZXQgPSB0aGVybWFsX3pvbmVfZ2V0X29mZnNldCh0eik7CiAJdTMyIHZh bDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9icm9hZGNvbS9iY20yODM1X3RoZXJtYWwu YyBiL2RyaXZlcnMvdGhlcm1hbC9icm9hZGNvbS9iY20yODM1X3RoZXJtYWwuYwppbmRleCAyMzkx OGJiNzZhZTYuLjg2YWFmNDU5ZGUzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2Jyb2Fk Y29tL2JjbTI4MzVfdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9icm9hZGNvbS9iY20y ODM1X3RoZXJtYWwuYwpAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgaW50IGJjbTI4MzVfdGhlcm1h bF90ZW1wMmFkYyhpbnQgdGVtcCwgaW50IG9mZnNldCwgaW50IHNsb3BlKQogCiBzdGF0aWMgaW50 IGJjbTI4MzVfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHos IGludCAqdGVtcCkKIHsKLQlzdHJ1Y3QgYmNtMjgzNV90aGVybWFsX2RhdGEgKmRhdGEgPSB0ei0+ ZGV2ZGF0YTsKKwlzdHJ1Y3QgYmNtMjgzNV90aGVybWFsX2RhdGEgKmRhdGEgPSB0aGVybWFsX3pv bmVfZGV2aWNlX3ByaXYodHopOwogCXUzMiB2YWwgPSByZWFkbChkYXRhLT5yZWdzICsgQkNNMjgz NV9UU19UU0VOU1NUQVQpOwogCiAJaWYgKCEodmFsICYgQkNNMjgzNV9UU19UU0VOU1NUQVRfVkFM SUQpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2Jyb2FkY29tL2JyY21zdGJfdGhlcm1h bC5jIGIvZHJpdmVycy90aGVybWFsL2Jyb2FkY29tL2JyY21zdGJfdGhlcm1hbC5jCmluZGV4IDRk MDJjMjgzMzFlMy4uNjAxNzNjYzgzYzQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvYnJv YWRjb20vYnJjbXN0Yl90aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL2Jyb2FkY29tL2Jy Y21zdGJfdGhlcm1hbC5jCkBAIC0xNTIsNyArMTUyLDcgQEAgc3RhdGljIGlubGluZSB1MzIgYXZz X3Rtb25fdGVtcF90b19jb2RlKHN0cnVjdCBicmNtc3RiX3RoZXJtYWxfcHJpdiAqcHJpdiwKIAog c3RhdGljIGludCBicmNtc3RiX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0 eiwgaW50ICp0ZW1wKQogewotCXN0cnVjdCBicmNtc3RiX3RoZXJtYWxfcHJpdiAqcHJpdiA9IHR6 LT5kZXZkYXRhOworCXN0cnVjdCBicmNtc3RiX3RoZXJtYWxfcHJpdiAqcHJpdiA9IHRoZXJtYWxf em9uZV9kZXZpY2VfcHJpdih0eik7CiAJdTMyIHZhbDsKIAlsb25nIHQ7CiAKQEAgLTI2Miw3ICsy NjIsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYnJjbXN0Yl90bW9uX2lycV90aHJlYWQoaW50IGly cSwgdm9pZCAqZGF0YSkKIAogc3RhdGljIGludCBicmNtc3RiX3NldF90cmlwcyhzdHJ1Y3QgdGhl cm1hbF96b25lX2RldmljZSAqdHosIGludCBsb3csIGludCBoaWdoKQogewotCXN0cnVjdCBicmNt c3RiX3RoZXJtYWxfcHJpdiAqcHJpdiA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBicmNtc3RiX3Ro ZXJtYWxfcHJpdiAqcHJpdiA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAKIAlkZXZf ZGJnKHByaXYtPmRldiwgInNldCB0cmlwcyAlZCA8LS0+ICVkXG4iLCBsb3csIGhpZ2gpOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvYnJvYWRjb20vbnMtdGhlcm1hbC5jIGIvZHJpdmVy cy90aGVybWFsL2Jyb2FkY29tL25zLXRoZXJtYWwuYwppbmRleCAwN2E4YTNmNDliZDAuLmQyNTVh YTg3OWZjMCAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2Jyb2FkY29tL25zLXRoZXJtYWwu YworKysgYi9kcml2ZXJzL3RoZXJtYWwvYnJvYWRjb20vbnMtdGhlcm1hbC5jCkBAIC0xNiw3ICsx Niw3IEBACiAKIHN0YXRpYyBpbnQgbnNfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96 b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKIHsKLQl2b2lkIF9faW9tZW0gKnB2dG1vbiA9IHR6 LT5kZXZkYXRhOworCXZvaWQgX19pb21lbSAqcHZ0bW9uID0gdGhlcm1hbF96b25lX2RldmljZV9w cml2KHR6KTsKIAlpbnQgb2Zmc2V0ID0gdGhlcm1hbF96b25lX2dldF9vZmZzZXQodHopOwogCWlu dCBzbG9wZSA9IHRoZXJtYWxfem9uZV9nZXRfc2xvcGUodHopOwogCXUzMiB2YWw7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL3RoZXJtYWwvYnJvYWRjb20vc3ItdGhlcm1hbC5jIGIvZHJpdmVycy90aGVy bWFsL2Jyb2FkY29tL3NyLXRoZXJtYWwuYwppbmRleCAyYjkzNTAyNTQzZmYuLjc0NzkxNTg5MDAy MiAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2Jyb2FkY29tL3NyLXRoZXJtYWwuYworKysg Yi9kcml2ZXJzL3RoZXJtYWwvYnJvYWRjb20vc3ItdGhlcm1hbC5jCkBAIC0zMiw3ICszMiw3IEBA IHN0cnVjdCBzcl90aGVybWFsIHsKIAogc3RhdGljIGludCBzcl9nZXRfdGVtcChzdHJ1Y3QgdGhl cm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKIHsKLQlzdHJ1Y3Qgc3JfdG1vbiAqdG1v biA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBzcl90bW9uICp0bW9uID0gdGhlcm1hbF96b25lX2Rl dmljZV9wcml2KHR6KTsKIAlzdHJ1Y3Qgc3JfdGhlcm1hbCAqc3JfdGhlcm1hbCA9IHRtb24tPnBy aXY7CiAKIAkqdGVtcCA9IHJlYWRsKHNyX3RoZXJtYWwtPnJlZ3MgKyBTUl9UTU9OX1RFTVBfQkFT RSh0bW9uLT50bW9uX2lkKSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvZGE5MDYyLXRo ZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9kYTkwNjItdGhlcm1hbC5jCmluZGV4IGE4MDVhNjY2 NmM0NC4uZTcwOTdmMzU0NzUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvZGE5MDYyLXRo ZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvZGE5MDYyLXRoZXJtYWwuYwpAQCAtMTIzLDcg KzEyMyw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBkYTkwNjJfdGhlcm1hbF9pcnFfaGFuZGxlcihp bnQgaXJxLCB2b2lkICpkYXRhKQogc3RhdGljIGludCBkYTkwNjJfdGhlcm1hbF9nZXRfdGVtcChz dHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqeiwKIAkJCQkgICBpbnQgKnRlbXApCiB7Ci0Jc3Ry dWN0IGRhOTA2Ml90aGVybWFsICp0aGVybWFsID0gei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgZGE5MDYy X3RoZXJtYWwgKnRoZXJtYWwgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYoeik7CiAKIAltdXRl eF9sb2NrKCZ0aGVybWFsLT5sb2NrKTsKIAkqdGVtcCA9IHRoZXJtYWwtPnRlbXBlcmF0dXJlOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2RiODUwMF90aGVybWFsLmMgYi9kcml2ZXJzL3Ro ZXJtYWwvZGI4NTAwX3RoZXJtYWwuYwppbmRleCBjYjEwZTI4MDY4MWYuLmMwNDE4NDk3NTIwYyAx MDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2RiODUwMF90aGVybWFsLmMKKysrIGIvZHJpdmVy cy90aGVybWFsL2RiODUwMF90aGVybWFsLmMKQEAgLTYwLDcgKzYwLDcgQEAgc3RydWN0IGRiODUw MF90aGVybWFsX3pvbmUgewogLyogQ2FsbGJhY2sgdG8gZ2V0IGN1cnJlbnQgdGVtcGVyYXR1cmUg Ki8KIHN0YXRpYyBpbnQgZGI4NTAwX3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9u ZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IGRiODUwMF90aGVybWFsX3pvbmUg KnRoID0gdHotPmRldmRhdGE7CisJc3RydWN0IGRiODUwMF90aGVybWFsX3pvbmUgKnRoID0gdGhl cm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAogCS8qCiAJICogVE9ETzogVGhlcmUgaXMgbm8g UFJDTVUgaW50ZXJmYWNlIHRvIGdldCB0ZW1wZXJhdHVyZSBkYXRhIGN1cnJlbnRseSwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9kb3ZlX3RoZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9k b3ZlX3RoZXJtYWwuYwppbmRleCAwNTY2MjJhNThkMDAuLjZkYjE4ODJlODIyOSAxMDA2NDQKLS0t IGEvZHJpdmVycy90aGVybWFsL2RvdmVfdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9k b3ZlX3RoZXJtYWwuYwpAQCAtODcsNyArODcsNyBAQCBzdGF0aWMgaW50IGRvdmVfZ2V0X3RlbXAo c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnRoZXJtYWwsCiAJCQkgIGludCAqdGVtcCkKIHsK IAl1bnNpZ25lZCBsb25nIHJlZzsKLQlzdHJ1Y3QgZG92ZV90aGVybWFsX3ByaXYgKnByaXYgPSB0 aGVybWFsLT5kZXZkYXRhOworCXN0cnVjdCBkb3ZlX3RoZXJtYWxfcHJpdiAqcHJpdiA9IHRoZXJt YWxfem9uZV9kZXZpY2VfcHJpdih0aGVybWFsKTsKIAogCS8qIFZhbGlkIGNoZWNrICovCiAJcmVn ID0gcmVhZGxfcmVsYXhlZChwcml2LT5jb250cm9sICsgUE1VX1RFTVBfRElPRF9DVFJMMV9SRUcp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2hpc2lfdGhlcm1hbC5jIGIvZHJpdmVycy90 aGVybWFsL2hpc2lfdGhlcm1hbC5jCmluZGV4IDMyYTdjM2NmMDczZC4uZjNhMzc0MjY2ZmEwIDEw MDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvaGlzaV90aGVybWFsLmMKKysrIGIvZHJpdmVycy90 aGVybWFsL2hpc2lfdGhlcm1hbC5jCkBAIC00MzEsNyArNDMxLDcgQEAgc3RhdGljIGludCBoaTM2 NjBfdGhlcm1hbF9wcm9iZShzdHJ1Y3QgaGlzaV90aGVybWFsX2RhdGEgKmRhdGEpCiAKIHN0YXRp YyBpbnQgaGlzaV90aGVybWFsX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0 eiwgaW50ICp0ZW1wKQogewotCXN0cnVjdCBoaXNpX3RoZXJtYWxfc2Vuc29yICpzZW5zb3IgPSB0 ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgaGlzaV90aGVybWFsX3NlbnNvciAqc2Vuc29yID0gdGhlcm1h bF96b25lX2RldmljZV9wcml2KHR6KTsKIAlzdHJ1Y3QgaGlzaV90aGVybWFsX2RhdGEgKmRhdGEg PSBzZW5zb3ItPmRhdGE7CiAKIAkqdGVtcCA9IGRhdGEtPm9wcy0+Z2V0X3RlbXAoc2Vuc29yKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9pbXg4bW1fdGhlcm1hbC5jIGIvZHJpdmVycy90 aGVybWFsL2lteDhtbV90aGVybWFsLmMKaW5kZXggNzJiNWQ2ZjMxOWMxLi5lZmExYTRmZmMzNjgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbXg4bW1fdGhlcm1hbC5jCisrKyBiL2RyaXZl cnMvdGhlcm1hbC9pbXg4bW1fdGhlcm1hbC5jCkBAIC0xNDEsNyArMTQxLDcgQEAgc3RhdGljIGlu dCBpbXg4bXBfdG11X2dldF90ZW1wKHZvaWQgKmRhdGEsIGludCAqdGVtcCkKIAogc3RhdGljIGlu dCB0bXVfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXAp CiB7Ci0Jc3RydWN0IHRtdV9zZW5zb3IgKnNlbnNvciA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCB0 bXVfc2Vuc29yICpzZW5zb3IgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCXN0cnVj dCBpbXg4bW1fdG11ICp0bXUgPSBzZW5zb3ItPnByaXY7CiAKIAlyZXR1cm4gdG11LT5zb2NkYXRh LT5nZXRfdGVtcChzZW5zb3IsIHRlbXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2lt eF9zY190aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvaW14X3NjX3RoZXJtYWwuYwppbmRleCBm MzJlNTllNzQ2MjMuLmRkZGU0YmRmYzk0YSAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2lt eF9zY190aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL2lteF9zY190aGVybWFsLmMKQEAg LTQ2LDcgKzQ2LDcgQEAgc3RhdGljIGludCBpbXhfc2NfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3Qg dGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKIHsKIAlzdHJ1Y3QgaW14X3NjX21z Z19taXNjX2dldF90ZW1wIG1zZzsKIAlzdHJ1Y3QgaW14X3NjX3JwY19tc2cgKmhkciA9ICZtc2cu aGRyOwotCXN0cnVjdCBpbXhfc2Nfc2Vuc29yICpzZW5zb3IgPSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1 Y3QgaW14X3NjX3NlbnNvciAqc2Vuc29yID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsK IAlpbnQgcmV0OwogCiAJbXNnLmRhdGEucmVxLnJlc291cmNlX2lkID0gc2Vuc29yLT5yZXNvdXJj ZV9pZDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9pbXhfdGhlcm1hbC5jIGIvZHJpdmVy cy90aGVybWFsL2lteF90aGVybWFsLmMKaW5kZXggZmIwZDVjYWI3MGFmLi5hMjJiODA4NmEyMDkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbXhfdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMv dGhlcm1hbC9pbXhfdGhlcm1hbC5jCkBAIC0yNTIsNyArMjUyLDcgQEAgc3RhdGljIHZvaWQgaW14 X3NldF9hbGFybV90ZW1wKHN0cnVjdCBpbXhfdGhlcm1hbF9kYXRhICpkYXRhLAogCiBzdGF0aWMg aW50IGlteF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVt cCkKIHsKLQlzdHJ1Y3QgaW14X3RoZXJtYWxfZGF0YSAqZGF0YSA9IHR6LT5kZXZkYXRhOworCXN0 cnVjdCBpbXhfdGhlcm1hbF9kYXRhICpkYXRhID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6 KTsKIAljb25zdCBzdHJ1Y3QgdGhlcm1hbF9zb2NfZGF0YSAqc29jX2RhdGEgPSBkYXRhLT5zb2Nk YXRhOwogCXN0cnVjdCByZWdtYXAgKm1hcCA9IGRhdGEtPnRlbXBtb247CiAJdW5zaWduZWQgaW50 IG5fbWVhczsKQEAgLTMxMSw3ICszMTEsNyBAQCBzdGF0aWMgaW50IGlteF9nZXRfdGVtcChzdHJ1 Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKIHN0YXRpYyBpbnQgaW14X2No YW5nZV9tb2RlKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwKIAkJCSAgIGVudW0gdGhl cm1hbF9kZXZpY2VfbW9kZSBtb2RlKQogewotCXN0cnVjdCBpbXhfdGhlcm1hbF9kYXRhICpkYXRh ID0gdHotPmRldmRhdGE7CisJc3RydWN0IGlteF90aGVybWFsX2RhdGEgKmRhdGEgPSB0aGVybWFs X3pvbmVfZGV2aWNlX3ByaXYodHopOwogCiAJaWYgKG1vZGUgPT0gVEhFUk1BTF9ERVZJQ0VfRU5B QkxFRCkgewogCQlwbV9ydW50aW1lX2dldChkYXRhLT5kZXYpOwpAQCAtMzQyLDcgKzM0Miw3IEBA IHN0YXRpYyBpbnQgaW14X2dldF9jcml0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2Ug KnR6LCBpbnQgKnRlbXApCiBzdGF0aWMgaW50IGlteF9zZXRfdHJpcF90ZW1wKHN0cnVjdCB0aGVy bWFsX3pvbmVfZGV2aWNlICp0eiwgaW50IHRyaXAsCiAJCQkgICAgIGludCB0ZW1wKQogewotCXN0 cnVjdCBpbXhfdGhlcm1hbF9kYXRhICpkYXRhID0gdHotPmRldmRhdGE7CisJc3RydWN0IGlteF90 aGVybWFsX2RhdGEgKmRhdGEgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCWludCBy ZXQ7CiAKIAlyZXQgPSBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KGRhdGEtPmRldik7CmRpZmYg LS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2ludDM0MDBfdGhl cm1hbC5jIGIvZHJpdmVycy90aGVybWFsL2ludGVsL2ludDM0MHhfdGhlcm1hbC9pbnQzNDAwX3Ro ZXJtYWwuYwppbmRleCBkMDI5NTEyM2NjM2UuLjgxMDIzMWI1OWRjZCAxMDA2NDQKLS0tIGEvZHJp dmVycy90aGVybWFsL2ludGVsL2ludDM0MHhfdGhlcm1hbC9pbnQzNDAwX3RoZXJtYWwuYworKysg Yi9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2ludDM0MDBfdGhlcm1hbC5j CkBAIC00OTcsNyArNDk3LDcgQEAgc3RhdGljIGludCBpbnQzNDAwX3RoZXJtYWxfZ2V0X3RlbXAo c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnRoZXJtYWwsCiBzdGF0aWMgaW50IGludDM0MDBf dGhlcm1hbF9jaGFuZ2VfbW9kZShzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdGhlcm1hbCwK IAkJCQkgICAgICAgZW51bSB0aGVybWFsX2RldmljZV9tb2RlIG1vZGUpCiB7Ci0Jc3RydWN0IGlu dDM0MDBfdGhlcm1hbF9wcml2ICpwcml2ID0gdGhlcm1hbC0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgaW50 MzQwMF90aGVybWFsX3ByaXYgKnByaXYgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodGhlcm1h bCk7CiAJaW50IHJlc3VsdCA9IDA7CiAKIAlpZiAoIXByaXYpCmRpZmYgLS1naXQgYS9kcml2ZXJz L3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2ludDM0MHhfdGhlcm1hbF96b25lLmMgYi9k cml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2ludDM0MHhfdGhlcm1hbF96b25l LmMKaW5kZXggMDA2NjU5NjdjYTUyLi44OWNmMDA3MTQ2ZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dGhlcm1hbC9pbnRlbC9pbnQzNDB4X3RoZXJtYWwvaW50MzQweF90aGVybWFsX3pvbmUuYworKysg Yi9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50MzQweF90aGVybWFsL2ludDM0MHhfdGhlcm1hbF96 b25lLmMKQEAgLTE0LDcgKzE0LDcgQEAKIHN0YXRpYyBpbnQgaW50MzQweF90aGVybWFsX2dldF96 b25lX3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnpvbmUsCiAJCQkJCSBpbnQgKnRl bXApCiB7Ci0Jc3RydWN0IGludDM0eF90aGVybWFsX3pvbmUgKmQgPSB6b25lLT5kZXZkYXRhOwor CXN0cnVjdCBpbnQzNHhfdGhlcm1hbF96b25lICpkID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2 KHpvbmUpOwogCXVuc2lnbmVkIGxvbmcgbG9uZyB0bXA7CiAJYWNwaV9zdGF0dXMgc3RhdHVzOwog CkBAIC00MSw3ICs0MSw3IEBAIHN0YXRpYyBpbnQgaW50MzQweF90aGVybWFsX2dldF96b25lX3Rl bXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnpvbmUsCiBzdGF0aWMgaW50IGludDM0MHhf dGhlcm1hbF9zZXRfdHJpcF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp6b25lLAog CQkJCQkgaW50IHRyaXAsIGludCB0ZW1wKQogewotCXN0cnVjdCBpbnQzNHhfdGhlcm1hbF96b25l ICpkID0gem9uZS0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgaW50MzR4X3RoZXJtYWxfem9uZSAqZCA9IHRo ZXJtYWxfem9uZV9kZXZpY2VfcHJpdih6b25lKTsKIAljaGFyIG5hbWVbXSA9IHsnUCcsICdBJywg J1QnLCAnMCcgKyB0cmlwLCAnXDAnfTsKIAlhY3BpX3N0YXR1cyBzdGF0dXM7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnQzNDB4X3RoZXJtYWwvcHJvY2Vzc29yX3RoZXJt YWxfZGV2aWNlX3BjaS5jIGIvZHJpdmVycy90aGVybWFsL2ludGVsL2ludDM0MHhfdGhlcm1hbC9w cm9jZXNzb3JfdGhlcm1hbF9kZXZpY2VfcGNpLmMKaW5kZXggNDA3MjVjYmM2ZWIwLi4wNDA0ZDRk YjcwZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnQzNDB4X3RoZXJtYWwv cHJvY2Vzc29yX3RoZXJtYWxfZGV2aWNlX3BjaS5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9pbnRl bC9pbnQzNDB4X3RoZXJtYWwvcHJvY2Vzc29yX3RoZXJtYWxfZGV2aWNlX3BjaS5jCkBAIC0xMzUs NyArMTM1LDcgQEAgc3RhdGljIGlycXJldHVybl90IHByb2NfdGhlcm1hbF9pcnFfaGFuZGxlcihp bnQgaXJxLCB2b2lkICpkZXZpZCkKIAogc3RhdGljIGludCBzeXNfZ2V0X2N1cnJfdGVtcChzdHJ1 Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpkLCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IHByb2Nf dGhlcm1hbF9wY2kgKnBjaV9pbmZvID0gdHpkLT5kZXZkYXRhOworCXN0cnVjdCBwcm9jX3RoZXJt YWxfcGNpICpwY2lfaW5mbyA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0emQpOwogCXUzMiBf dGVtcDsKIAogCXByb2NfdGhlcm1hbF9tbWlvX3JlYWQocGNpX2luZm8sIFBST0NfVEhFUk1BTF9N TUlPX1BLR19URU1QLCAmX3RlbXApOwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHN0YXRpYyBpbnQgc3lz X2dldF9jdXJyX3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6ZCwgaW50ICp0ZW1w KQogCiBzdGF0aWMgaW50IHN5c19zZXRfdHJpcF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2 aWNlICp0emQsIGludCB0cmlwLCBpbnQgdGVtcCkKIHsKLQlzdHJ1Y3QgcHJvY190aGVybWFsX3Bj aSAqcGNpX2luZm8gPSB0emQtPmRldmRhdGE7CisJc3RydWN0IHByb2NfdGhlcm1hbF9wY2kgKnBj aV9pbmZvID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6ZCk7CiAJaW50IHRqbWF4LCBfdGVt cDsKIAogCWlmICh0ZW1wIDw9IDApIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9pbnRl bC9pbnRlbF9wY2hfdGhlcm1hbC5jIGIvZHJpdmVycy90aGVybWFsL2ludGVsL2ludGVsX3BjaF90 aGVybWFsLmMKaW5kZXggYjg1NWQwMzFhODU1Li5kY2U1MGQyMzkzNTcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdGhlcm1hbC9pbnRlbC9pbnRlbF9wY2hfdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMvdGhl cm1hbC9pbnRlbC9pbnRlbF9wY2hfdGhlcm1hbC5jCkBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGlj IGludCBwY2hfd3B0X2FkZF9hY3BpX3Bzdl90cmlwKHN0cnVjdCBwY2hfdGhlcm1hbF9kZXZpY2Ug KnB0ZCwgaW50IHRyaXApCiAKIHN0YXRpYyBpbnQgcGNoX3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0 IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6ZCwgaW50ICp0ZW1wKQogewotCXN0cnVjdCBwY2hfdGhl cm1hbF9kZXZpY2UgKnB0ZCA9IHR6ZC0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgcGNoX3RoZXJtYWxfZGV2 aWNlICpwdGQgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHpkKTsKIAogCSp0ZW1wID0gR0VU X1dQVF9URU1QKFdQVF9URU1QX1RTUiAmIHJlYWR3KHB0ZC0+aHdfYmFzZSArIFdQVF9URU1QKSk7 CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50ZWxfcXVh cmtfZHRzX3RoZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9pbnRlbF9xdWFya19kdHNf dGhlcm1hbC5jCmluZGV4IDk3Yjg0M2ZhNzU2OC4uNjM1NjkxODVlZDgyIDEwMDY0NAotLS0gYS9k cml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50ZWxfcXVhcmtfZHRzX3RoZXJtYWwuYworKysgYi9kcml2 ZXJzL3RoZXJtYWwvaW50ZWwvaW50ZWxfcXVhcmtfZHRzX3RoZXJtYWwuYwpAQCAtMTIwLDcgKzEy MCw3IEBAIHN0YXRpYyBERUZJTkVfTVVURVgoZHRzX3VwZGF0ZV9tdXRleCk7CiBzdGF0aWMgaW50 IHNvY19kdHNfZW5hYmxlKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0emQpCiB7CiAJdTMy IG91dDsKLQlzdHJ1Y3Qgc29jX3NlbnNvcl9lbnRyeSAqYXV4X2VudHJ5ID0gdHpkLT5kZXZkYXRh OworCXN0cnVjdCBzb2Nfc2Vuc29yX2VudHJ5ICphdXhfZW50cnkgPSB0aGVybWFsX3pvbmVfZGV2 aWNlX3ByaXYodHpkKTsKIAlpbnQgcmV0OwogCiAJcmV0ID0gaW9zZl9tYmlfcmVhZChRUktfTUJJ X1VOSVRfUk1VLCBNQklfUkVHX1JFQUQsCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RhdGljIGludCBz b2NfZHRzX2VuYWJsZShzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpkKQogc3RhdGljIGlu dCBzb2NfZHRzX2Rpc2FibGUoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6ZCkKIHsKIAl1 MzIgb3V0OwotCXN0cnVjdCBzb2Nfc2Vuc29yX2VudHJ5ICphdXhfZW50cnkgPSB0emQtPmRldmRh dGE7CisJc3RydWN0IHNvY19zZW5zb3JfZW50cnkgKmF1eF9lbnRyeSA9IHRoZXJtYWxfem9uZV9k ZXZpY2VfcHJpdih0emQpOwogCWludCByZXQ7CiAKIAlyZXQgPSBpb3NmX21iaV9yZWFkKFFSS19N QklfVU5JVF9STVUsIE1CSV9SRUdfUkVBRCwKQEAgLTI1MCw3ICsyNTAsNyBAQCBzdGF0aWMgaW50 IHVwZGF0ZV90cmlwX3RlbXAoc3RydWN0IHNvY19zZW5zb3JfZW50cnkgKmF1eF9lbnRyeSwKIHN0 YXRpYyBpbmxpbmUgaW50IHN5c19zZXRfdHJpcF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2 aWNlICp0emQsIGludCB0cmlwLAogCQkJCWludCB0ZW1wKQogewotCXJldHVybiB1cGRhdGVfdHJp cF90ZW1wKHR6ZC0+ZGV2ZGF0YSwgdHJpcCwgdGVtcCk7CisJcmV0dXJuIHVwZGF0ZV90cmlwX3Rl bXAodGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6ZCksIHRyaXAsIHRlbXApOwogfQogCiBzdGF0 aWMgaW50IHN5c19nZXRfY3Vycl90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0emQs CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50ZWxfc29jX2R0c19pb3NmLmMg Yi9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50ZWxfc29jX2R0c19pb3NmLmMKaW5kZXggOGMyNmY3 YjIzMTZiLi5mOTlkYzdlNGFlODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC9p bnRlbF9zb2NfZHRzX2lvc2YuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50ZWxfc29j X2R0c19pb3NmLmMKQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIGludCBzeXNfZ2V0X3RyaXBfdGVt cChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpkLCBpbnQgdHJpcCwKIAlzdHJ1Y3QgaW50 ZWxfc29jX2R0c19zZW5zb3JfZW50cnkgKmR0czsKIAlzdHJ1Y3QgaW50ZWxfc29jX2R0c19zZW5z b3JzICpzZW5zb3JzOwogCi0JZHRzID0gdHpkLT5kZXZkYXRhOworCWR0cyA9IHRoZXJtYWxfem9u ZV9kZXZpY2VfcHJpdih0emQpOwogCXNlbnNvcnMgPSBkdHMtPnNlbnNvcnM7CiAJbXV0ZXhfbG9j aygmc2Vuc29ycy0+ZHRzX3VwZGF0ZV9sb2NrKTsKIAlzdGF0dXMgPSBpb3NmX21iaV9yZWFkKEJU X01CSV9VTklUX1BNQywgTUJJX1JFR19SRUFELApAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRpYyBp bnQgdXBkYXRlX3RyaXBfdGVtcChzdHJ1Y3QgaW50ZWxfc29jX2R0c19zZW5zb3JfZW50cnkgKmR0 cywKIHN0YXRpYyBpbnQgc3lzX3NldF90cmlwX3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZp Y2UgKnR6ZCwgaW50IHRyaXAsCiAJCQkgICAgIGludCB0ZW1wKQogewotCXN0cnVjdCBpbnRlbF9z b2NfZHRzX3NlbnNvcl9lbnRyeSAqZHRzID0gdHpkLT5kZXZkYXRhOworCXN0cnVjdCBpbnRlbF9z b2NfZHRzX3NlbnNvcl9lbnRyeSAqZHRzID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6ZCk7 CiAJc3RydWN0IGludGVsX3NvY19kdHNfc2Vuc29ycyAqc2Vuc29ycyA9IGR0cy0+c2Vuc29yczsK IAlpbnQgc3RhdHVzOwogCkBAIC0xNzYsNyArMTc2LDcgQEAgc3RhdGljIGludCBzeXNfc2V0X3Ry aXBfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpkLCBpbnQgdHJpcCwKIAkJcmV0 dXJuIC1FSU5WQUw7CiAKIAltdXRleF9sb2NrKCZzZW5zb3JzLT5kdHNfdXBkYXRlX2xvY2spOwot CXN0YXR1cyA9IHVwZGF0ZV90cmlwX3RlbXAodHpkLT5kZXZkYXRhLCB0cmlwLCB0ZW1wLAorCXN0 YXR1cyA9IHVwZGF0ZV90cmlwX3RlbXAoZHRzLCB0cmlwLCB0ZW1wLAogCQkJCSAgZHRzLT50cmlw X3R5cGVzW3RyaXBdKTsKIAltdXRleF91bmxvY2soJnNlbnNvcnMtPmR0c191cGRhdGVfbG9jayk7 CiAKQEAgLTE4Niw5ICsxODYsNyBAQCBzdGF0aWMgaW50IHN5c19zZXRfdHJpcF90ZW1wKHN0cnVj dCB0aGVybWFsX3pvbmVfZGV2aWNlICp0emQsIGludCB0cmlwLAogc3RhdGljIGludCBzeXNfZ2V0 X3RyaXBfdHlwZShzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpkLAogCQkJICAgICBpbnQg dHJpcCwgZW51bSB0aGVybWFsX3RyaXBfdHlwZSAqdHlwZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfc29j X2R0c19zZW5zb3JfZW50cnkgKmR0czsKLQotCWR0cyA9IHR6ZC0+ZGV2ZGF0YTsKKwlzdHJ1Y3Qg aW50ZWxfc29jX2R0c19zZW5zb3JfZW50cnkgKmR0cyA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJp dih0emQpOwogCiAJKnR5cGUgPSBkdHMtPnRyaXBfdHlwZXNbdHJpcF07CiAKQEAgLTIwMCwxMSAr MTk4LDEwIEBAIHN0YXRpYyBpbnQgc3lzX2dldF9jdXJyX3RlbXAoc3RydWN0IHRoZXJtYWxfem9u ZV9kZXZpY2UgKnR6ZCwKIHsKIAlpbnQgc3RhdHVzOwogCXUzMiBvdXQ7Ci0Jc3RydWN0IGludGVs X3NvY19kdHNfc2Vuc29yX2VudHJ5ICpkdHM7CisJc3RydWN0IGludGVsX3NvY19kdHNfc2Vuc29y X2VudHJ5ICpkdHMgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHpkKTsKIAlzdHJ1Y3QgaW50 ZWxfc29jX2R0c19zZW5zb3JzICpzZW5zb3JzOwogCXVuc2lnbmVkIGxvbmcgcmF3OwogCi0JZHRz ID0gdHpkLT5kZXZkYXRhOwogCXNlbnNvcnMgPSBkdHMtPnNlbnNvcnM7CiAJc3RhdHVzID0gaW9z Zl9tYmlfcmVhZChCVF9NQklfVU5JVF9QTUMsIE1CSV9SRUdfUkVBRCwKIAkJCSAgICAgICBTT0Nf RFRTX09GRlNFVF9URU1QLCAmb3V0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9pbnRl bC94ODZfcGtnX3RlbXBfdGhlcm1hbC5jIGIvZHJpdmVycy90aGVybWFsL2ludGVsL3g4Nl9wa2df dGVtcF90aGVybWFsLmMKaW5kZXggMWMyZGU4NDc0MmRmLi5jNGVjMzE0NDQxYmUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvdGhlcm1hbC9pbnRlbC94ODZfcGtnX3RlbXBfdGhlcm1hbC5jCisrKyBiL2Ry aXZlcnMvdGhlcm1hbC9pbnRlbC94ODZfcGtnX3RlbXBfdGhlcm1hbC5jCkBAIC0xMDcsNyArMTA3 LDcgQEAgc3RhdGljIHN0cnVjdCB6b25lX2RldmljZSAqcGtnX3RlbXBfdGhlcm1hbF9nZXRfZGV2 KHVuc2lnbmVkIGludCBjcHUpCiAKIHN0YXRpYyBpbnQgc3lzX2dldF9jdXJyX3RlbXAoc3RydWN0 IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6ZCwgaW50ICp0ZW1wKQogewotCXN0cnVjdCB6b25lX2Rl dmljZSAqem9uZWRldiA9IHR6ZC0+ZGV2ZGF0YTsKKwlzdHJ1Y3Qgem9uZV9kZXZpY2UgKnpvbmVk ZXYgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHpkKTsKIAlpbnQgdmFsOwogCiAJdmFsID0g aW50ZWxfdGNjX2dldF90ZW1wKHpvbmVkZXYtPmNwdSwgdHJ1ZSk7CkBAIC0xMjIsNyArMTIyLDcg QEAgc3RhdGljIGludCBzeXNfZ2V0X2N1cnJfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2Rldmlj ZSAqdHpkLCBpbnQgKnRlbXApCiBzdGF0aWMgaW50CiBzeXNfc2V0X3RyaXBfdGVtcChzdHJ1Y3Qg dGhlcm1hbF96b25lX2RldmljZSAqdHpkLCBpbnQgdHJpcCwgaW50IHRlbXApCiB7Ci0Jc3RydWN0 IHpvbmVfZGV2aWNlICp6b25lZGV2ID0gdHpkLT5kZXZkYXRhOworCXN0cnVjdCB6b25lX2Rldmlj ZSAqem9uZWRldiA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0emQpOwogCXUzMiBsLCBoLCBt YXNrLCBzaGlmdCwgaW50cjsKIAlpbnQgdGpfbWF4LCByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvdGhlcm1hbC9rM19iYW5kZ2FwLmMgYi9kcml2ZXJzL3RoZXJtYWwvazNfYmFuZGdhcC5jCmlu ZGV4IDIyYzliY2I4OTljMy4uYjVjZDJjODVlMGMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJt YWwvazNfYmFuZGdhcC5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9rM19iYW5kZ2FwLmMKQEAgLTE0 MSw3ICsxNDEsNyBAQCBzdGF0aWMgaW50IGszX2JncF9yZWFkX3RlbXAoc3RydWN0IGszX3RoZXJt YWxfZGF0YSAqZGV2ZGF0YSwKIAogc3RhdGljIGludCBrM190aGVybWFsX2dldF90ZW1wKHN0cnVj dCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wKQogewotCXN0cnVjdCBrM190aGVy bWFsX2RhdGEgKmRhdGEgPSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgazNfdGhlcm1hbF9kYXRhICpk YXRhID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAlpbnQgcmV0ID0gMDsKIAogCXJl dCA9IGszX2JncF9yZWFkX3RlbXAoZGF0YSwgdGVtcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Ro ZXJtYWwvazNfajcyeHhfYmFuZGdhcC5jIGIvZHJpdmVycy90aGVybWFsL2szX2o3Mnh4X2JhbmRn YXAuYwppbmRleCAwMzFlYTEwOTE5MDkuLjViZTFmMDllZWIyYyAxMDA2NDQKLS0tIGEvZHJpdmVy cy90aGVybWFsL2szX2o3Mnh4X2JhbmRnYXAuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvazNfajcy eHhfYmFuZGdhcC5jCkBAIC0yNDgsNyArMjQ4LDcgQEAgc3RhdGljIGlubGluZSBpbnQgazNfYmdw X3JlYWRfdGVtcChzdHJ1Y3QgazNfdGhlcm1hbF9kYXRhICpkZXZkYXRhLAogLyogR2V0IHRlbXBl cmF0dXJlIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGVybWFsIHpvbmUgKi8KIHN0YXRpYyBpbnQg azNfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAq dGVtcCkKIHsKLQlyZXR1cm4gazNfYmdwX3JlYWRfdGVtcCh0ei0+ZGV2ZGF0YSwgdGVtcCk7CisJ cmV0dXJuIGszX2JncF9yZWFkX3RlbXAodGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KSwgdGVt cCk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgazNf b2ZfdGhlcm1hbF9vcHMgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwva2lya3dvb2Rf dGhlcm1hbC5jIGIvZHJpdmVycy90aGVybWFsL2tpcmt3b29kX3RoZXJtYWwuYwppbmRleCBiZWM3 ZWMyMGU3OWQuLjkyYjNjZTQyNmI5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL2tpcmt3 b29kX3RoZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwva2lya3dvb2RfdGhlcm1hbC5jCkBA IC0yNyw3ICsyNyw3IEBAIHN0YXRpYyBpbnQga2lya3dvb2RfZ2V0X3RlbXAoc3RydWN0IHRoZXJt YWxfem9uZV9kZXZpY2UgKnRoZXJtYWwsCiAJCQkgIGludCAqdGVtcCkKIHsKIAl1bnNpZ25lZCBs b25nIHJlZzsKLQlzdHJ1Y3Qga2lya3dvb2RfdGhlcm1hbF9wcml2ICpwcml2ID0gdGhlcm1hbC0+ ZGV2ZGF0YTsKKwlzdHJ1Y3Qga2lya3dvb2RfdGhlcm1hbF9wcml2ICpwcml2ID0gdGhlcm1hbF96 b25lX2RldmljZV9wcml2KHRoZXJtYWwpOwogCiAJcmVnID0gcmVhZGxfcmVsYXhlZChwcml2LT5z ZW5zb3IpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvbWF4Nzc2MjBfdGhlcm1hbC5j IGIvZHJpdmVycy90aGVybWFsL21heDc3NjIwX3RoZXJtYWwuYwppbmRleCA2NDUxYTU1ZWI1ODIu LmJmMTY3OTc2NWYxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL21heDc3NjIwX3RoZXJt YWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvbWF4Nzc2MjBfdGhlcm1hbC5jCkBAIC00Niw3ICs0 Niw3IEBAIHN0cnVjdCBtYXg3NzYyMF90aGVybV9pbmZvIHsKIAogc3RhdGljIGludCBtYXg3NzYy MF90aGVybWFsX3JlYWRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAq dGVtcCkKIHsKLQlzdHJ1Y3QgbWF4Nzc2MjBfdGhlcm1faW5mbyAqbXRoZXJtID0gdHotPmRldmRh dGE7CisJc3RydWN0IG1heDc3NjIwX3RoZXJtX2luZm8gKm10aGVybSA9IHRoZXJtYWxfem9uZV9k ZXZpY2VfcHJpdih0eik7CiAJdW5zaWduZWQgaW50IHZhbDsKIAlpbnQgcmV0OwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3RoZXJtYWwvbWVkaWF0ZWsvYXV4YWRjX3RoZXJtYWwuYyBiL2RyaXZlcnMv dGhlcm1hbC9tZWRpYXRlay9hdXhhZGNfdGhlcm1hbC5jCmluZGV4IGFiNzMwZjk1NTJkMC4uNzU1 YmFhNGU1YmQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvbWVkaWF0ZWsvYXV4YWRjX3Ro ZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvbWVkaWF0ZWsvYXV4YWRjX3RoZXJtYWwuYwpA QCAtNzYzLDcgKzc2Myw3IEBAIHN0YXRpYyBpbnQgbXRrX3RoZXJtYWxfYmFua190ZW1wZXJhdHVy ZShzdHJ1Y3QgbXRrX3RoZXJtYWxfYmFuayAqYmFuaykKIAogc3RhdGljIGludCBtdGtfcmVhZF90 ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wZXJhdHVyZSkKIHsK LQlzdHJ1Y3QgbXRrX3RoZXJtYWwgKm10ID0gdHotPmRldmRhdGE7CisJc3RydWN0IG10a190aGVy bWFsICptdCA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJaW50IGk7CiAJaW50IHRl bXBtYXggPSBJTlRfTUlOOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvbWVkaWF0ZWsv bHZ0c190aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvbWVkaWF0ZWsvbHZ0c190aGVybWFsLmMK aW5kZXggODRiYTY1YTI3YWNmLi5mYjRiMWI0ZGIyNDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhl cm1hbC9tZWRpYXRlay9sdnRzX3RoZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvbWVkaWF0 ZWsvbHZ0c190aGVybWFsLmMKQEAgLTI1Miw3ICsyNTIsNyBAQCBzdGF0aWMgdTMyIGx2dHNfdGVt cF90b19yYXcoaW50IHRlbXBlcmF0dXJlKQogCiBzdGF0aWMgaW50IGx2dHNfZ2V0X3RlbXAoc3Ry dWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IGx2dHNf c2Vuc29yICpsdnRzX3NlbnNvciA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBsdnRzX3NlbnNvciAq bHZ0c19zZW5zb3IgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCXZvaWQgX19pb21l bSAqbXNyID0gbHZ0c19zZW5zb3ItPm1zcjsKIAl1MzIgdmFsdWU7CiAKQEAgLTI5MCw3ICsyOTAs NyBAQCBzdGF0aWMgaW50IGx2dHNfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2Ug KnR6LCBpbnQgKnRlbXApCiAKIHN0YXRpYyBpbnQgbHZ0c19zZXRfdHJpcHMoc3RydWN0IHRoZXJt YWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgbG93LCBpbnQgaGlnaCkKIHsKLQlzdHJ1Y3QgbHZ0c19z ZW5zb3IgKmx2dHNfc2Vuc29yID0gdHotPmRldmRhdGE7CisJc3RydWN0IGx2dHNfc2Vuc29yICps dnRzX3NlbnNvciA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJdm9pZCBfX2lvbWVt ICpiYXNlID0gbHZ0c19zZW5zb3ItPmJhc2U7CiAJdTMyIHJhd19sb3cgPSBsdnRzX3RlbXBfdG9f cmF3KGxvdyk7CiAJdTMyIHJhd19oaWdoID0gbHZ0c190ZW1wX3RvX3JhdyhoaWdoKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9xY29tL3Fjb20tc3BtaS1hZGMtdG01LmMgYi9kcml2ZXJz L3RoZXJtYWwvcWNvbS9xY29tLXNwbWktYWRjLXRtNS5jCmluZGV4IDMxMTY0YWRlMmRkMS4uZWQy MDQ0ODlhOTUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvcWNvbS9xY29tLXNwbWktYWRj LXRtNS5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9xY29tL3Fjb20tc3BtaS1hZGMtdG01LmMKQEAg LTM2MCw3ICszNjAsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYWRjX3RtNV9nZW4yX2lzcihpbnQg aXJxLCB2b2lkICpkYXRhKQogCiBzdGF0aWMgaW50IGFkY190bTVfZ2V0X3RlbXAoc3RydWN0IHRo ZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IGFkY190bTVfY2hh bm5lbCAqY2hhbm5lbCA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBhZGNfdG01X2NoYW5uZWwgKmNo YW5uZWwgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCWludCByZXQ7CiAKIAlpZiAo IWNoYW5uZWwgfHwgIWNoYW5uZWwtPmlpbykKQEAgLTY0Miw3ICs2NDIsNyBAQCBzdGF0aWMgaW50 IGFkY190bTVfZ2VuMl9jb25maWd1cmUoc3RydWN0IGFkY190bTVfY2hhbm5lbCAqY2hhbm5lbCwg aW50IGxvdywgaW50CiAKIHN0YXRpYyBpbnQgYWRjX3RtNV9zZXRfdHJpcHMoc3RydWN0IHRoZXJt YWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgbG93LCBpbnQgaGlnaCkKIHsKLQlzdHJ1Y3QgYWRjX3Rt NV9jaGFubmVsICpjaGFubmVsID0gdHotPmRldmRhdGE7CisJc3RydWN0IGFkY190bTVfY2hhbm5l bCAqY2hhbm5lbCA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJc3RydWN0IGFkY190 bTVfY2hpcCAqY2hpcDsKIAlpbnQgcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwv cWNvbS9xY29tLXNwbWktdGVtcC1hbGFybS5jIGIvZHJpdmVycy90aGVybWFsL3Fjb20vcWNvbS1z cG1pLXRlbXAtYWxhcm0uYwppbmRleCAxMDFjNzVkMGUxM2YuLmIxOTZkOGQwMTcyNiAxMDA2NDQK LS0tIGEvZHJpdmVycy90aGVybWFsL3Fjb20vcWNvbS1zcG1pLXRlbXAtYWxhcm0uYworKysgYi9k cml2ZXJzL3RoZXJtYWwvcWNvbS9xY29tLXNwbWktdGVtcC1hbGFybS5jCkBAIC0xODcsNyArMTg3 LDcgQEAgc3RhdGljIGludCBxcG5wX3RtX3VwZGF0ZV90ZW1wX25vX2FkYyhzdHJ1Y3QgcXBucF90 bV9jaGlwICpjaGlwKQogCiBzdGF0aWMgaW50IHFwbnBfdG1fZ2V0X3RlbXAoc3RydWN0IHRoZXJt YWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IHFwbnBfdG1fY2hpcCAq Y2hpcCA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBxcG5wX3RtX2NoaXAgKmNoaXAgPSB0aGVybWFs X3pvbmVfZGV2aWNlX3ByaXYodHopOwogCWludCByZXQsIG1pbGlfY2Vsc2l1czsKIAogCWlmICgh dGVtcCkKQEAgLTI2NSw3ICsyNjUsNyBAQCBzdGF0aWMgaW50IHFwbnBfdG1fdXBkYXRlX2NyaXRp Y2FsX3RyaXBfdGVtcChzdHJ1Y3QgcXBucF90bV9jaGlwICpjaGlwLAogCiBzdGF0aWMgaW50IHFw bnBfdG1fc2V0X3RyaXBfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCB0 cmlwX2lkLCBpbnQgdGVtcCkKIHsKLQlzdHJ1Y3QgcXBucF90bV9jaGlwICpjaGlwID0gdHotPmRl dmRhdGE7CisJc3RydWN0IHFwbnBfdG1fY2hpcCAqY2hpcCA9IHRoZXJtYWxfem9uZV9kZXZpY2Vf cHJpdih0eik7CiAJc3RydWN0IHRoZXJtYWxfdHJpcCB0cmlwOwogCWludCByZXQ7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9xY29tL3RzZW5zLmMgYi9kcml2ZXJzL3RoZXJtYWwvcWNv bS90c2Vucy5jCmluZGV4IDgwMjBlYWQyNzk0ZS4uNmNjOTM1Mzc5ZjAwIDEwMDY0NAotLS0gYS9k cml2ZXJzL3RoZXJtYWwvcWNvbS90c2Vucy5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9xY29tL3Rz ZW5zLmMKQEAgLTY3Myw3ICs2NzMsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgdHNlbnNfY29tYmlu ZWRfaXJxX3RocmVhZChpbnQgaXJxLCB2b2lkICpkYXRhKQogCiBzdGF0aWMgaW50IHRzZW5zX3Nl dF90cmlwcyhzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCBsb3csIGludCBoaWdo KQogewotCXN0cnVjdCB0c2Vuc19zZW5zb3IgKnMgPSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgdHNl bnNfc2Vuc29yICpzID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAlzdHJ1Y3QgdHNl bnNfcHJpdiAqcHJpdiA9IHMtPnByaXY7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gcHJpdi0+ZGV2 OwogCXN0cnVjdCB0c2Vuc19pcnFfZGF0YSBkOwpAQCAtMTA1Nyw3ICsxMDU3LDcgQEAgaW50IF9f aW5pdCBpbml0X2NvbW1vbihzdHJ1Y3QgdHNlbnNfcHJpdiAqcHJpdikKIAogc3RhdGljIGludCB0 c2Vuc19nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkK IHsKLQlzdHJ1Y3QgdHNlbnNfc2Vuc29yICpzID0gdHotPmRldmRhdGE7CisJc3RydWN0IHRzZW5z X3NlbnNvciAqcyA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJc3RydWN0IHRzZW5z X3ByaXYgKnByaXYgPSBzLT5wcml2OwogCiAJcmV0dXJuIHByaXYtPm9wcy0+Z2V0X3RlbXAocywg dGVtcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvcW9yaXFfdGhlcm1hbC5jIGIvZHJp dmVycy90aGVybWFsL3FvcmlxX3RoZXJtYWwuYwppbmRleCA0MzFjMjljMDg5OGEuLmQyZGM5OTI0 N2Y2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3FvcmlxX3RoZXJtYWwuYworKysgYi9k cml2ZXJzL3RoZXJtYWwvcW9yaXFfdGhlcm1hbC5jCkBAIC04Myw3ICs4Myw3IEBAIHN0YXRpYyBz dHJ1Y3QgcW9yaXFfdG11X2RhdGEgKnFvcmlxX3NlbnNvcl90b19kYXRhKHN0cnVjdCBxb3JpcV9z ZW5zb3IgKnMpCiAKIHN0YXRpYyBpbnQgdG11X2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVf ZGV2aWNlICp0eiwgaW50ICp0ZW1wKQogewotCXN0cnVjdCBxb3JpcV9zZW5zb3IgKnFzZW5zb3Ig PSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgcW9yaXFfc2Vuc29yICpxc2Vuc29yID0gdGhlcm1hbF96 b25lX2RldmljZV9wcml2KHR6KTsKIAlzdHJ1Y3QgcW9yaXFfdG11X2RhdGEgKnFkYXRhID0gcW9y aXFfc2Vuc29yX3RvX2RhdGEocXNlbnNvcik7CiAJdTMyIHZhbDsKIAkvKgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy90aGVybWFsL3JjYXJfZ2VuM190aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvcmNh cl9nZW4zX3RoZXJtYWwuYwppbmRleCBkNmI1YjU5YzVjNTMuLjJiNzUzN2VmMTQxZCAxMDA2NDQK LS0tIGEvZHJpdmVycy90aGVybWFsL3JjYXJfZ2VuM190aGVybWFsLmMKKysrIGIvZHJpdmVycy90 aGVybWFsL3JjYXJfZ2VuM190aGVybWFsLmMKQEAgLTE2Nyw3ICsxNjcsNyBAQCBzdGF0aWMgaW50 IHJjYXJfZ2VuM190aGVybWFsX3JvdW5kKGludCB0ZW1wKQogCiBzdGF0aWMgaW50IHJjYXJfZ2Vu M190aGVybWFsX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICp0 ZW1wKQogewotCXN0cnVjdCByY2FyX2dlbjNfdGhlcm1hbF90c2MgKnRzYyA9IHR6LT5kZXZkYXRh OworCXN0cnVjdCByY2FyX2dlbjNfdGhlcm1hbF90c2MgKnRzYyA9IHRoZXJtYWxfem9uZV9kZXZp Y2VfcHJpdih0eik7CiAJaW50IG1jZWxzaXVzLCB2YWw7CiAJaW50IHJlZzsKIApAQCAtMjA2LDcg KzIwNiw3IEBAIHN0YXRpYyBpbnQgcmNhcl9nZW4zX3RoZXJtYWxfbWNlbHNpdXNfdG9fdGVtcChz dHJ1Y3QgcmNhcl9nZW4zX3RoZXJtYWxfdHNjICp0c2MsCiAKIHN0YXRpYyBpbnQgcmNhcl9nZW4z X3RoZXJtYWxfc2V0X3RyaXBzKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50IGxv dywgaW50IGhpZ2gpCiB7Ci0Jc3RydWN0IHJjYXJfZ2VuM190aGVybWFsX3RzYyAqdHNjID0gdHot PmRldmRhdGE7CisJc3RydWN0IHJjYXJfZ2VuM190aGVybWFsX3RzYyAqdHNjID0gdGhlcm1hbF96 b25lX2RldmljZV9wcml2KHR6KTsKIAl1MzIgaXJxbXNrID0gMDsKIAogCWlmIChsb3cgIT0gLUlO VF9NQVgpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9yY2FyX3RoZXJtYWwuYyBiL2Ry aXZlcnMvdGhlcm1hbC9yY2FyX3RoZXJtYWwuYwppbmRleCA0MzZmNWY5Y2Y3MjkuLmUwNDQwZjYz YWU3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3JjYXJfdGhlcm1hbC5jCisrKyBiL2Ry aXZlcnMvdGhlcm1hbC9yY2FyX3RoZXJtYWwuYwpAQCAtMTAxLDcgKzEwMSw2IEBAIHN0cnVjdCBy Y2FyX3RoZXJtYWxfcHJpdiB7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShwb3MsICZjb21tb24tPmhl YWQsIGxpc3QpCiAKICNkZWZpbmUgTUNFTFNJVVModGVtcCkJCQkoKHRlbXApICogMTAwMCkKLSNk ZWZpbmUgcmNhcl96b25lX3RvX3ByaXYoem9uZSkJCSgoem9uZSktPmRldmRhdGEpCiAjZGVmaW5l IHJjYXJfcHJpdl90b19kZXYocHJpdikJCSgocHJpdiktPmNvbW1vbi0+ZGV2KQogI2RlZmluZSBy Y2FyX2hhc19pcnFfc3VwcG9ydChwcml2KQkoKHByaXYpLT5jb21tb24tPmJhc2UpCiAjZGVmaW5l IHJjYXJfaWRfdG9fc2hpZnQocHJpdikJCSgocHJpdiktPmlkICogOCkKQEAgLTI3Myw3ICsyNzIs NyBAQCBzdGF0aWMgaW50IHJjYXJfdGhlcm1hbF9nZXRfY3VycmVudF90ZW1wKHN0cnVjdCByY2Fy X3RoZXJtYWxfcHJpdiAqcHJpdiwKIAogc3RhdGljIGludCByY2FyX3RoZXJtYWxfZ2V0X3RlbXAo c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnpvbmUsIGludCAqdGVtcCkKIHsKLQlzdHJ1Y3Qg cmNhcl90aGVybWFsX3ByaXYgKnByaXYgPSByY2FyX3pvbmVfdG9fcHJpdih6b25lKTsKKwlzdHJ1 Y3QgcmNhcl90aGVybWFsX3ByaXYgKnByaXYgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYoem9u ZSk7CiAKIAlyZXR1cm4gcmNhcl90aGVybWFsX2dldF9jdXJyZW50X3RlbXAocHJpdiwgdGVtcCk7 CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvcm9ja2NoaXBfdGhlcm1hbC5jIGIvZHJp dmVycy90aGVybWFsL3JvY2tjaGlwX3RoZXJtYWwuYwppbmRleCA0YjdjNDNmMzRkMWEuLjhhNTFl YjI2ZTc5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3JvY2tjaGlwX3RoZXJtYWwuYwor KysgYi9kcml2ZXJzL3RoZXJtYWwvcm9ja2NoaXBfdGhlcm1hbC5jCkBAIC0xMjEzLDcgKzEyMTMs NyBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qgcm9ja2NoaXBfdGhlcm1hbF9hbGFybV9pcnFfdGhyZWFk KGludCBpcnEsIHZvaWQgKmRldikKIAogc3RhdGljIGludCByb2NrY2hpcF90aGVybWFsX3NldF90 cmlwcyhzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCBsb3csIGludCBoaWdoKQog ewotCXN0cnVjdCByb2NrY2hpcF90aGVybWFsX3NlbnNvciAqc2Vuc29yID0gdHotPmRldmRhdGE7 CisJc3RydWN0IHJvY2tjaGlwX3RoZXJtYWxfc2Vuc29yICpzZW5zb3IgPSB0aGVybWFsX3pvbmVf ZGV2aWNlX3ByaXYodHopOwogCXN0cnVjdCByb2NrY2hpcF90aGVybWFsX2RhdGEgKnRoZXJtYWwg PSBzZW5zb3ItPnRoZXJtYWw7CiAJY29uc3Qgc3RydWN0IHJvY2tjaGlwX3RzYWRjX2NoaXAgKnRz YWRjID0gdGhlcm1hbC0+Y2hpcDsKIApAQCAtMTIyNiw3ICsxMjI2LDcgQEAgc3RhdGljIGludCBy b2NrY2hpcF90aGVybWFsX3NldF90cmlwcyhzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHos IGludCBsb3csIGkKIAogc3RhdGljIGludCByb2NrY2hpcF90aGVybWFsX2dldF90ZW1wKHN0cnVj dCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICpvdXRfdGVtcCkKIHsKLQlzdHJ1Y3Qgcm9j a2NoaXBfdGhlcm1hbF9zZW5zb3IgKnNlbnNvciA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCByb2Nr Y2hpcF90aGVybWFsX3NlbnNvciAqc2Vuc29yID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6 KTsKIAlzdHJ1Y3Qgcm9ja2NoaXBfdGhlcm1hbF9kYXRhICp0aGVybWFsID0gc2Vuc29yLT50aGVy bWFsOwogCWNvbnN0IHN0cnVjdCByb2NrY2hpcF90c2FkY19jaGlwICp0c2FkYyA9IHNlbnNvci0+ dGhlcm1hbC0+Y2hpcDsKIAlpbnQgcmV0dmFsOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFs L3J6ZzJsX3RoZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9yemcybF90aGVybWFsLmMKaW5kZXgg MmUwNjQ5ZjM4NTA2Li43NjMxNDMwY2U4YTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9y emcybF90aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL3J6ZzJsX3RoZXJtYWwuYwpAQCAt NzUsNyArNzUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcnpnMmxfdGhlcm1hbF93cml0ZShzdHJ1 Y3QgcnpnMmxfdGhlcm1hbF9wcml2ICpwcml2LCB1MzIgcmVnLAogCiBzdGF0aWMgaW50IHJ6ZzJs X3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRl bXApCiB7Ci0Jc3RydWN0IHJ6ZzJsX3RoZXJtYWxfcHJpdiAqcHJpdiA9IHR6LT5kZXZkYXRhOwor CXN0cnVjdCByemcybF90aGVybWFsX3ByaXYgKnByaXYgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3By aXYodHopOwogCXUzMiByZXN1bHQgPSAwLCBkc2Vuc29yLCB0c19jb2RlX2F2ZTsKIAlpbnQgdmFs LCBpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvc2Ftc3VuZy9leHlub3NfdG11LmMg Yi9kcml2ZXJzL3RoZXJtYWwvc2Ftc3VuZy9leHlub3NfdG11LmMKaW5kZXggNTI3ZDFlYjA2NjNh Li40NWU1Yzg0MGQxMzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9zYW1zdW5nL2V4eW5v c190bXUuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvc2Ftc3VuZy9leHlub3NfdG11LmMKQEAgLTY0 NSw3ICs2NDUsNyBAQCBzdGF0aWMgdm9pZCBleHlub3M3X3RtdV9jb250cm9sKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYsIGJvb2wgb24pCiAKIHN0YXRpYyBpbnQgZXh5bm9zX2dldF90ZW1w KHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wKQogewotCXN0cnVjdCBl eHlub3NfdG11X2RhdGEgKmRhdGEgPSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgZXh5bm9zX3RtdV9k YXRhICpkYXRhID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAlpbnQgdmFsdWUsIHJl dCA9IDA7CiAKIAlpZiAoIWRhdGEgfHwgIWRhdGEtPnRtdV9yZWFkKQpAQCAtNzIzLDcgKzcyMyw3 IEBAIHN0YXRpYyB2b2lkIGV4eW5vczQ0MTJfdG11X3NldF9lbXVsYXRpb24oc3RydWN0IGV4eW5v c190bXVfZGF0YSAqZGF0YSwKIAogc3RhdGljIGludCBleHlub3NfdG11X3NldF9lbXVsYXRpb24o c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgdGVtcCkKIHsKLQlzdHJ1Y3QgZXh5 bm9zX3RtdV9kYXRhICpkYXRhID0gdHotPmRldmRhdGE7CisJc3RydWN0IGV4eW5vc190bXVfZGF0 YSAqZGF0YSA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJaW50IHJldCA9IC1FSU5W QUw7CiAKIAlpZiAoZGF0YS0+c29jID09IFNPQ19BUkNIX0VYWU5PUzQyMTApCmRpZmYgLS1naXQg YS9kcml2ZXJzL3RoZXJtYWwvc3BlYXJfdGhlcm1hbC5jIGIvZHJpdmVycy90aGVybWFsL3NwZWFy X3RoZXJtYWwuYwppbmRleCA2YTcyMmIxMGQ3MzguLjY1MzQzOWI5NjVjOCAxMDA2NDQKLS0tIGEv ZHJpdmVycy90aGVybWFsL3NwZWFyX3RoZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvc3Bl YXJfdGhlcm1hbC5jCkBAIC0zMSw3ICszMSw3IEBAIHN0cnVjdCBzcGVhcl90aGVybWFsX2RldiB7 CiBzdGF0aWMgaW5saW5lIGludCB0aGVybWFsX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVf ZGV2aWNlICp0aGVybWFsLAogCQkJCWludCAqdGVtcCkKIHsKLQlzdHJ1Y3Qgc3BlYXJfdGhlcm1h bF9kZXYgKnN0ZGV2ID0gdGhlcm1hbC0+ZGV2ZGF0YTsKKwlzdHJ1Y3Qgc3BlYXJfdGhlcm1hbF9k ZXYgKnN0ZGV2ID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHRoZXJtYWwpOwogCiAJLyoKIAkg KiBEYXRhIGFyZSByZWFkeSB0byBiZSByZWFkIGFmdGVyIDYyOCB1c2VjIGZyb20gUE9XRVJET1dO IHNpZ25hbApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgc3RydWN0IHRoZXJtYWxfem9uZV9kZXZp Y2Vfb3BzIG9wcyA9IHsKIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgc3BlYXJfdGhlcm1hbF9z dXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgdGhlcm1hbF96b25lX2Rldmlj ZSAqc3BlYXJfdGhlcm1hbCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCXN0cnVjdCBzcGVhcl90 aGVybWFsX2RldiAqc3RkZXYgPSBzcGVhcl90aGVybWFsLT5kZXZkYXRhOworCXN0cnVjdCBzcGVh cl90aGVybWFsX2RldiAqc3RkZXYgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYoc3BlYXJfdGhl cm1hbCk7CiAJdW5zaWduZWQgaW50IGFjdHVhbF9tYXNrID0gMDsKIAogCS8qIERpc2FibGUgU1BF QXIgVGhlcm1hbCBTZW5zb3IgKi8KQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIGludCBfX21heWJl X3VudXNlZCBzcGVhcl90aGVybWFsX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogc3RhdGlj IGludCBfX21heWJlX3VudXNlZCBzcGVhcl90aGVybWFsX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpk ZXYpCiB7CiAJc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnNwZWFyX3RoZXJtYWwgPSBkZXZf Z2V0X2RydmRhdGEoZGV2KTsKLQlzdHJ1Y3Qgc3BlYXJfdGhlcm1hbF9kZXYgKnN0ZGV2ID0gc3Bl YXJfdGhlcm1hbC0+ZGV2ZGF0YTsKKwlzdHJ1Y3Qgc3BlYXJfdGhlcm1hbF9kZXYgKnN0ZGV2ID0g dGhlcm1hbF96b25lX2RldmljZV9wcml2KHNwZWFyX3RoZXJtYWwpOwogCXVuc2lnbmVkIGludCBh Y3R1YWxfbWFzayA9IDA7CiAJaW50IHJldCA9IDA7CiAKQEAgLTE1NCw3ICsxNTQsNyBAQCBzdGF0 aWMgaW50IHNwZWFyX3RoZXJtYWxfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQog ewogCXVuc2lnbmVkIGludCBhY3R1YWxfbWFzayA9IDA7CiAJc3RydWN0IHRoZXJtYWxfem9uZV9k ZXZpY2UgKnNwZWFyX3RoZXJtYWwgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKLQlzdHJ1 Y3Qgc3BlYXJfdGhlcm1hbF9kZXYgKnN0ZGV2ID0gc3BlYXJfdGhlcm1hbC0+ZGV2ZGF0YTsKKwlz dHJ1Y3Qgc3BlYXJfdGhlcm1hbF9kZXYgKnN0ZGV2ID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2 KHNwZWFyX3RoZXJtYWwpOwogCiAJdGhlcm1hbF96b25lX2RldmljZV91bnJlZ2lzdGVyKHNwZWFy X3RoZXJtYWwpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvc3ByZF90aGVybWFsLmMg Yi9kcml2ZXJzL3RoZXJtYWwvc3ByZF90aGVybWFsLmMKaW5kZXggYWM4ODQ1MTRmMTE2Li4yZmI5 MGZkYWQ3NmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9zcHJkX3RoZXJtYWwuYworKysg Yi9kcml2ZXJzL3RoZXJtYWwvc3ByZF90aGVybWFsLmMKQEAgLTIwNiw3ICsyMDYsNyBAQCBzdGF0 aWMgaW50IHNwcmRfdGhtX3RlbXBfdG9fcmF3ZGF0YShpbnQgdGVtcCwgc3RydWN0IHNwcmRfdGhl cm1hbF9zZW5zb3IgKnNlbikKIAogc3RhdGljIGludCBzcHJkX3RobV9yZWFkX3RlbXAoc3RydWN0 IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IHNwcmRfdGhl cm1hbF9zZW5zb3IgKnNlbiA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBzcHJkX3RoZXJtYWxfc2Vu c29yICpzZW4gPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCXUzMiBkYXRhOwogCiAJ ZGF0YSA9IHJlYWRsKHNlbi0+ZGF0YS0+YmFzZSArIFNQUkRfVEhNX1RFTVAoc2VuLT5pZCkpICYK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9zdC9zdF90aGVybWFsLmMgYi9kcml2ZXJzL3Ro ZXJtYWwvc3Qvc3RfdGhlcm1hbC5jCmluZGV4IDEwMDlmMDhlNjRlMy4uNmVkMzkzMjE4ZWI4IDEw MDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvc3Qvc3RfdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMv dGhlcm1hbC9zdC9zdF90aGVybWFsLmMKQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgaW50IHN0 X3RoZXJtYWxfY2FsaWJyYXRpb24oc3RydWN0IHN0X3RoZXJtYWxfc2Vuc29yICpzZW5zb3IpCiAv KiBDYWxsYmFjayB0byBnZXQgdGVtcGVyYXR1cmUgZnJvbSBIVyovCiBzdGF0aWMgaW50IHN0X3Ro ZXJtYWxfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnRoLCBpbnQgKnRlbXBl cmF0dXJlKQogewotCXN0cnVjdCBzdF90aGVybWFsX3NlbnNvciAqc2Vuc29yID0gdGgtPmRldmRh dGE7CisJc3RydWN0IHN0X3RoZXJtYWxfc2Vuc29yICpzZW5zb3IgPSB0aGVybWFsX3pvbmVfZGV2 aWNlX3ByaXYodGgpOwogCXN0cnVjdCBkZXZpY2UgKmRldiA9IHNlbnNvci0+ZGV2OwogCXVuc2ln bmVkIGludCB0ZW1wOwogCXVuc2lnbmVkIGludCBvdmVyZmxvdzsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvdGhlcm1hbC9zdC9zdG1fdGhlcm1hbC5jIGIvZHJpdmVycy90aGVybWFsL3N0L3N0bV90aGVy bWFsLmMKaW5kZXggNzM1NDAxOTU4ZjAxLi42ZjJiYWQ4ZWY4MmYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvdGhlcm1hbC9zdC9zdG1fdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9zdC9zdG1f dGhlcm1hbC5jCkBAIC0zMDMsNyArMzAzLDcgQEAgc3RhdGljIGludCBzdG1fZGlzYWJsZV9pcnEo c3RydWN0IHN0bV90aGVybWFsX3NlbnNvciAqc2Vuc29yKQogCiBzdGF0aWMgaW50IHN0bV90aGVy bWFsX3NldF90cmlwcyhzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCBsb3csIGlu dCBoaWdoKQogewotCXN0cnVjdCBzdG1fdGhlcm1hbF9zZW5zb3IgKnNlbnNvciA9IHR6LT5kZXZk YXRhOworCXN0cnVjdCBzdG1fdGhlcm1hbF9zZW5zb3IgKnNlbnNvciA9IHRoZXJtYWxfem9uZV9k ZXZpY2VfcHJpdih0eik7CiAJdTMyIGl0cjEsIHRoOwogCWludCByZXQ7CiAKQEAgLTM1MSw3ICsz NTEsNyBAQCBzdGF0aWMgaW50IHN0bV90aGVybWFsX3NldF90cmlwcyhzdHJ1Y3QgdGhlcm1hbF96 b25lX2RldmljZSAqdHosIGludCBsb3csIGludCBoaQogLyogQ2FsbGJhY2sgdG8gZ2V0IHRlbXBl cmF0dXJlIGZyb20gSFcgKi8KIHN0YXRpYyBpbnQgc3RtX3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0 IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0Jc3RydWN0IHN0bV90aGVy bWFsX3NlbnNvciAqc2Vuc29yID0gdHotPmRldmRhdGE7CisJc3RydWN0IHN0bV90aGVybWFsX3Nl bnNvciAqc2Vuc29yID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAl1MzIgcGVyaW9k czsKIAlpbnQgZnJlcU0sIHJldDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL3N1bjhp X3RoZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9zdW44aV90aGVybWFsLmMKaW5kZXggNDk3YmVh YzYzZTVkLi42YjU1MGYwZjkwYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9zdW44aV90 aGVybWFsLmMKKysrIGIvZHJpdmVycy90aGVybWFsL3N1bjhpX3RoZXJtYWwuYwpAQCAtMTEwLDcg KzExMCw3IEBAIHN0YXRpYyBpbnQgc3VuNTBpX2g1X2NhbGNfdGVtcChzdHJ1Y3QgdGhzX2Rldmlj ZSAqdG1kZXYsCiAKIHN0YXRpYyBpbnQgc3VuOGlfdGhzX2dldF90ZW1wKHN0cnVjdCB0aGVybWFs X3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wKQogewotCXN0cnVjdCB0c2Vuc29yICpzID0gdHot PmRldmRhdGE7CisJc3RydWN0IHRzZW5zb3IgKnMgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYo dHopOwogCXN0cnVjdCB0aHNfZGV2aWNlICp0bWRldiA9IHMtPnRtZGV2OwogCWludCB2YWwgPSAw OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvdGVncmEvc29jdGhlcm0uYyBiL2RyaXZl cnMvdGhlcm1hbC90ZWdyYS9zb2N0aGVybS5jCmluZGV4IDIyMDg3MzI5OGQ3Ny4uZWE2NmNiYTA5 ZTU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvdGVncmEvc29jdGhlcm0uYworKysgYi9k cml2ZXJzL3RoZXJtYWwvdGVncmEvc29jdGhlcm0uYwpAQCAtNDIzLDcgKzQyMyw3IEBAIHN0YXRp YyBpbnQgdHJhbnNsYXRlX3RlbXAodTE2IHZhbCkKIAogc3RhdGljIGludCB0ZWdyYV90aGVybWN0 bF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqb3V0X3RlbXAp CiB7Ci0Jc3RydWN0IHRlZ3JhX3RoZXJtY3RsX3pvbmUgKnpvbmUgPSB0ei0+ZGV2ZGF0YTsKKwlz dHJ1Y3QgdGVncmFfdGhlcm1jdGxfem9uZSAqem9uZSA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJp dih0eik7CiAJdTMyIHZhbDsKIAogCXZhbCA9IHJlYWRsKHpvbmUtPnJlZyk7CkBAIC01ODQsNyAr NTg0LDcgQEAgc3RhdGljIGludCB0c2Vuc29yX2dyb3VwX3RoZXJtdHJpcF9nZXQoc3RydWN0IHRl Z3JhX3NvY3RoZXJtICp0cywgaW50IGlkKQogCiBzdGF0aWMgaW50IHRlZ3JhX3RoZXJtY3RsX3Nl dF90cmlwX3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgdHJpcF9pZCwg aW50IHRlbXApCiB7Ci0Jc3RydWN0IHRlZ3JhX3RoZXJtY3RsX3pvbmUgKnpvbmUgPSB0ei0+ZGV2 ZGF0YTsKKwlzdHJ1Y3QgdGVncmFfdGhlcm1jdGxfem9uZSAqem9uZSA9IHRoZXJtYWxfem9uZV9k ZXZpY2VfcHJpdih0eik7CiAJc3RydWN0IHRlZ3JhX3NvY3RoZXJtICp0cyA9IHpvbmUtPnRzOwog CXN0cnVjdCB0aGVybWFsX3RyaXAgdHJpcDsKIAljb25zdCBzdHJ1Y3QgdGVncmFfdHNlbnNvcl9n cm91cCAqc2cgPSB6b25lLT5zZzsKQEAgLTY1OCw3ICs2NTgsNyBAQCBzdGF0aWMgdm9pZCB0aGVy bWFsX2lycV9kaXNhYmxlKHN0cnVjdCB0ZWdyYV90aGVybWN0bF96b25lICp6bikKIAogc3RhdGlj IGludCB0ZWdyYV90aGVybWN0bF9zZXRfdHJpcHMoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2Ug KnR6LCBpbnQgbG8sIGludCBoaSkKIHsKLQlzdHJ1Y3QgdGVncmFfdGhlcm1jdGxfem9uZSAqem9u ZSA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCB0ZWdyYV90aGVybWN0bF96b25lICp6b25lID0gdGhl cm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAl1MzIgcjsKIAogCXRoZXJtYWxfaXJxX2Rpc2Fi bGUoem9uZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvdGVncmEvdGVncmEtYnBtcC10 aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvdGVncmEvdGVncmEtYnBtcC10aGVybWFsLmMKaW5k ZXggMGI3YTFhMTk0OGNiLi43YmQ4ZWE3NzBmYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1h bC90ZWdyYS90ZWdyYS1icG1wLXRoZXJtYWwuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvdGVncmEv dGVncmEtYnBtcC10aGVybWFsLmMKQEAgLTYyLDEyICs2MiwxNCBAQCBzdGF0aWMgaW50IF9fdGVn cmFfYnBtcF90aGVybWFsX2dldF90ZW1wKHN0cnVjdCB0ZWdyYV9icG1wX3RoZXJtYWxfem9uZSAq em9uZSwKIAogc3RhdGljIGludCB0ZWdyYV9icG1wX3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0IHRo ZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKm91dF90ZW1wKQogewotCXJldHVybiBfX3RlZ3Jh X2JwbXBfdGhlcm1hbF9nZXRfdGVtcCh0ei0+ZGV2ZGF0YSwgb3V0X3RlbXApOworCXN0cnVjdCB0 ZWdyYV9icG1wX3RoZXJtYWxfem9uZSAqem9uZSA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0 eik7CisJCisJcmV0dXJuIF9fdGVncmFfYnBtcF90aGVybWFsX2dldF90ZW1wKHpvbmUsIG91dF90 ZW1wKTsKIH0KIAogc3RhdGljIGludCB0ZWdyYV9icG1wX3RoZXJtYWxfc2V0X3RyaXBzKHN0cnVj dCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50IGxvdywgaW50IGhpZ2gpCiB7Ci0Jc3RydWN0 IHRlZ3JhX2JwbXBfdGhlcm1hbF96b25lICp6b25lID0gdHotPmRldmRhdGE7CisJc3RydWN0IHRl Z3JhX2JwbXBfdGhlcm1hbF96b25lICp6b25lID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6 KTsKIAlzdHJ1Y3QgbXJxX3RoZXJtYWxfaG9zdF90b19icG1wX3JlcXVlc3QgcmVxOwogCXN0cnVj dCB0ZWdyYV9icG1wX21lc3NhZ2UgbXNnOwogCWludCBlcnI7CmRpZmYgLS1naXQgYS9kcml2ZXJz L3RoZXJtYWwvdGVncmEvdGVncmEzMC10c2Vuc29yLmMgYi9kcml2ZXJzL3RoZXJtYWwvdGVncmEv dGVncmEzMC10c2Vuc29yLmMKaW5kZXggYjMyMThiNzFiNmQ5Li40MmM2ZmI0OTRkZDkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC90ZWdyYS90ZWdyYTMwLXRzZW5zb3IuYworKysgYi9kcml2 ZXJzL3RoZXJtYWwvdGVncmEvdGVncmEzMC10c2Vuc29yLmMKQEAgLTE2MCw3ICsxNjAsNyBAQCBz dGF0aWMgdm9pZCBkZXZtX3RlZ3JhX3RzZW5zb3JfaHdfZGlzYWJsZSh2b2lkICpkYXRhKQogCiBz dGF0aWMgaW50IHRlZ3JhX3RzZW5zb3JfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZp Y2UgKnR6LCBpbnQgKnRlbXApCiB7Ci0JY29uc3Qgc3RydWN0IHRlZ3JhX3RzZW5zb3JfY2hhbm5l bCAqdHNjID0gdHotPmRldmRhdGE7CisJY29uc3Qgc3RydWN0IHRlZ3JhX3RzZW5zb3JfY2hhbm5l bCAqdHNjID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAljb25zdCBzdHJ1Y3QgdGVn cmFfdHNlbnNvciAqdHMgPSB0c2MtPnRzOwogCWludCBlcnIsIGMxLCBjMiwgYzMsIGM0LCBjb3Vu dGVyOwogCXUzMiB2YWw7CkBAIC0yMTgsNyArMjE4LDcgQEAgc3RhdGljIGludCB0ZWdyYV90c2Vu c29yX3RlbXBfdG9fY291bnRlcihjb25zdCBzdHJ1Y3QgdGVncmFfdHNlbnNvciAqdHMsIGludCB0 ZW0KIAogc3RhdGljIGludCB0ZWdyYV90c2Vuc29yX3NldF90cmlwcyhzdHJ1Y3QgdGhlcm1hbF96 b25lX2RldmljZSAqdHosIGludCBsb3csIGludCBoaWdoKQogewotCWNvbnN0IHN0cnVjdCB0ZWdy YV90c2Vuc29yX2NoYW5uZWwgKnRzYyA9IHR6LT5kZXZkYXRhOworCWNvbnN0IHN0cnVjdCB0ZWdy YV90c2Vuc29yX2NoYW5uZWwgKnRzYyA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiAJ Y29uc3Qgc3RydWN0IHRlZ3JhX3RzZW5zb3IgKnRzID0gdHNjLT50czsKIAl1MzIgdmFsOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbC1nZW5lcmljLWFkYy5jIGIvZHJpdmVy cy90aGVybWFsL3RoZXJtYWwtZ2VuZXJpYy1hZGMuYwppbmRleCAzMjNlMjczZTMyOTguLjJjMjgz ZTc2MmQ4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3RoZXJtYWwtZ2VuZXJpYy1hZGMu YworKysgYi9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbC1nZW5lcmljLWFkYy5jCkBAIC01NCw3ICs1 NCw3IEBAIHN0YXRpYyBpbnQgZ2FkY190aGVybWFsX2FkY190b190ZW1wKHN0cnVjdCBnYWRjX3Ro ZXJtYWxfaW5mbyAqZ3RpLCBpbnQgdmFsKQogCiBzdGF0aWMgaW50IGdhZGNfdGhlcm1hbF9nZXRf dGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKIHsKLQlzdHJ1 Y3QgZ2FkY190aGVybWFsX2luZm8gKmd0aSA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCBnYWRjX3Ro ZXJtYWxfaW5mbyAqZ3RpID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAlpbnQgdmFs OwogCWludCByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC90aGVybWFsX21taW8u YyBiL2RyaXZlcnMvdGhlcm1hbC90aGVybWFsX21taW8uYwppbmRleCBlYTYxNjczMTA2NmMuLjY4 NDU3NTZhZDVlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVybWFsL3RoZXJtYWxfbW1pby5jCisr KyBiL2RyaXZlcnMvdGhlcm1hbC90aGVybWFsX21taW8uYwpAQCAtMjMsNyArMjMsNyBAQCBzdGF0 aWMgdTMyIHRoZXJtYWxfbW1pb19yZWFkYih2b2lkIF9faW9tZW0gKm1taW9fYmFzZSkKIHN0YXRp YyBpbnQgdGhlcm1hbF9tbWlvX2dldF90ZW1wZXJhdHVyZShzdHJ1Y3QgdGhlcm1hbF96b25lX2Rl dmljZSAqdHosIGludCAqdGVtcCkKIHsKIAlpbnQgdDsKLQlzdHJ1Y3QgdGhlcm1hbF9tbWlvICpz ZW5zb3IgPSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgdGhlcm1hbF9tbWlvICpzZW5zb3IgPSB0aGVy bWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCiAJdCA9IHNlbnNvci0+cmVhZF9tbWlvKHNlbnNv ci0+bW1pb19iYXNlKSAmIHNlbnNvci0+bWFzazsKIAl0ICo9IHNlbnNvci0+ZmFjdG9yOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL3RpLXNvYy10aGVybWFsL3RpLXRoZXJtYWwtY29tbW9u LmMgYi9kcml2ZXJzL3RoZXJtYWwvdGktc29jLXRoZXJtYWwvdGktdGhlcm1hbC1jb21tb24uYwpp bmRleCA4YTkwNTViZDM3NmUuLjNlOTk4Yzk3OTliYiAxMDA2NDQKLS0tIGEvZHJpdmVycy90aGVy bWFsL3RpLXNvYy10aGVybWFsL3RpLXRoZXJtYWwtY29tbW9uLmMKKysrIGIvZHJpdmVycy90aGVy bWFsL3RpLXNvYy10aGVybWFsL3RpLXRoZXJtYWwtY29tbW9uLmMKQEAgLTY4LDcgKzY4LDcgQEAg c3RhdGljIGlubGluZSBpbnQgdGlfdGhlcm1hbF9ob3RzcG90X3RlbXBlcmF0dXJlKGludCB0LCBp bnQgcywgaW50IGMpCiBzdGF0aWMgaW5saW5lIGludCBfX3RpX3RoZXJtYWxfZ2V0X3RlbXAoc3Ry dWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7CiAJc3RydWN0IHRoZXJt YWxfem9uZV9kZXZpY2UgKnBjYl90eiA9IE5VTEw7Ci0Jc3RydWN0IHRpX3RoZXJtYWxfZGF0YSAq ZGF0YSA9IHR6LT5kZXZkYXRhOworCXN0cnVjdCB0aV90aGVybWFsX2RhdGEgKmRhdGEgPSB0aGVy bWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwogCXN0cnVjdCB0aV9iYW5kZ2FwICpiZ3A7CiAJY29u c3Qgc3RydWN0IHRpX3RlbXBfc2Vuc29yICpzOwogCWludCByZXQsIHRtcCwgc2xvcGUsIGNvbnN0 YW50OwpAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IF9fdGlfdGhlcm1hbF9n ZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtCiAKIHN0YXRp YyBpbnQgX190aV90aGVybWFsX2dldF90cmVuZChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAq dHosIGludCB0cmlwLCBlbnVtIHRoZXJtYWxfdHJlbmQgKnRyZW5kKQogewotCXN0cnVjdCB0aV90 aGVybWFsX2RhdGEgKmRhdGEgPSB0ei0+ZGV2ZGF0YTsKKwlzdHJ1Y3QgdGlfdGhlcm1hbF9kYXRh ICpkYXRhID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTsKIAlzdHJ1Y3QgdGlfYmFuZGdh cCAqYmdwOwogCWludCBpZCwgdHIsIHJldCA9IDA7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhl cm1hbC91bmlwaGllcl90aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvdW5pcGhpZXJfdGhlcm1h bC5jCmluZGV4IDQ3ODAxODQxYjNmNS4uYWVmNjExOWNjMDA0IDEwMDY0NAotLS0gYS9kcml2ZXJz L3RoZXJtYWwvdW5pcGhpZXJfdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC91bmlwaGll cl90aGVybWFsLmMKQEAgLTE4Nyw3ICsxODcsNyBAQCBzdGF0aWMgdm9pZCB1bmlwaGllcl90bV9k aXNhYmxlX3NlbnNvcihzdHJ1Y3QgdW5pcGhpZXJfdG1fZGV2ICp0ZGV2KQogCiBzdGF0aWMgaW50 IHVuaXBoaWVyX3RtX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50 ICpvdXRfdGVtcCkKIHsKLQlzdHJ1Y3QgdW5pcGhpZXJfdG1fZGV2ICp0ZGV2ID0gdHotPmRldmRh dGE7CisJc3RydWN0IHVuaXBoaWVyX3RtX2RldiAqdGRldiA9IHRoZXJtYWxfem9uZV9kZXZpY2Vf cHJpdih0eik7CiAJc3RydWN0IHJlZ21hcCAqbWFwID0gdGRldi0+cmVnbWFwOwogCWludCByZXQ7 CiAJdTMyIHRlbXA7Ci0tIAoyLjM0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51eC1hbWxvZ2lj QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1hbWxvZ2ljCg== 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 12B70C678D4 for ; Wed, 1 Mar 2023 20:15:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229618AbjCAUPg (ORCPT ); Wed, 1 Mar 2023 15:15:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49832 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229708AbjCAUP2 (ORCPT ); Wed, 1 Mar 2023 15:15:28 -0500 Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [IPv6:2a00:1450:4864:20::32c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A77D457D1 for ; Wed, 1 Mar 2023 12:15:18 -0800 (PST) Received: by mail-wm1-x32c.google.com with SMTP id k37so9417737wms.0 for ; Wed, 01 Mar 2023 12:15:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1677701717; 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=0HjbdoBjX6c5UeLhSG1rbDyM1zgsqlgq1fI+l+tcxLM=; b=PZThdnWgYCnM5QXUT5KQw/HJDXu3kU8O0fC6EifT3rkN47u/7ud/jFm2qGlEg2cATp bf9xV8Yt4F76ICcpwuLl9c9lEdU1wufZhwg4dPSfxxlL4DM6fAh3tiGJi9VUjtvKiaBb 6Uf1Ph3jxB5ALc3LhUsf3yKCAJ+mhbkpqq0RpVw41ThwEzoyDqcHOdVQAkxXVZV0NLxy lcR82YvEPfu7UKzO8/pwWZwW2hOsVMYhzGZRhtIT7CwpMM5H8aW6l107MGHkYFLn4LUR 2hgAoQRKozTWGpfClJhlQCpULRvkUiirT2xPYFa0H9Pr4LB0MRh73Si5c6kI2Xiwskzo EuHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677701717; 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=0HjbdoBjX6c5UeLhSG1rbDyM1zgsqlgq1fI+l+tcxLM=; b=HosOZqD2KuqxzCn55e/bVVwZKvBzpZwaQF4kboxI2Zra/8v4uXMYfW7teSLFAly6Ot xrNsYotyBHWO0xryMOR+3/ACpaGQi11UQT4mFMk9pJ5Kj7zLCXVhWYkmWjOZRwV+onLN YcJGwUojBvEPg/g+ErZ4fKxvVd4JBrCyRJg2XhTe/jmTAvN9FOO1pRr0+GHXIKnugfcP g34Bn405A5fhyLWK0CKpsjIAYJd4JE501k5xwmmcNG434J12asqnlXd+gddfySWYqDrC XlEKa4tEHwJhlJhuGWvKcjy7o43q4gJFCoNQ5lQvOQC7hxTYz3e1PP/F1M4gcbICVMlP 2l8g== X-Gm-Message-State: AO0yUKU0Ch9yoIJqxRXsC3hTbMcHySgursrivPAfvS3mU0PtqZ9gf6aC yv0CXeAQidsk44eK1WnLjZWnjA== X-Google-Smtp-Source: AK7set/t7hT2+c9eutqwVC2JnnYWqL+Fl4wrXn9xFR1MX66CpVZungkpfz9/cNEycvs7GsCw7W5XfQ== X-Received: by 2002:a05:600c:a293:b0:3eb:3e24:59e2 with SMTP id hu19-20020a05600ca29300b003eb3e2459e2mr5845407wmb.25.1677701716503; Wed, 01 Mar 2023 12:15:16 -0800 (PST) Received: from mai.box.freepro.com ([2a05:6e02:1041:c10:6ffe:ce4f:bd31:1e6d]) by smtp.gmail.com with ESMTPSA id x16-20020a1c7c10000000b003e70a7c1b73sm576546wmc.16.2023.03.01.12.15.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Mar 2023 12:15:15 -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 , Dhruva Gole , 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 , Neil Armstrong , ye xingchen , Zheng Yongjun , Srinivas Pandruvada , Davidlohr Bueso , Sumeet Pawnikar , "Lee, Chun-Yi" , Shang XiaoJing , Tim Zimmermann , Yang Li , Jiang Jian , Daniel Golle , Randy Dunlap , Ido Schimmel , 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 v5 02/18] thermal/core: Use the thermal zone 'devdata' accessor in thermal located drivers Date: Wed, 1 Mar 2023 21:14:30 +0100 Message-Id: <20230301201446.3713334-3-daniel.lezcano@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230301201446.3713334-1-daniel.lezcano@linaro.org> References: <20230301201446.3713334-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 Reviewed-by: Dhruva Gole # K3 bandgap --- 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