From patchwork Thu Apr 30 06:32:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhang Rui X-Patchwork-Id: 215780 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 05FFBC83006 for ; Thu, 30 Apr 2020 06:29:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DB91F2082E for ; Thu, 30 Apr 2020 06:29:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726543AbgD3G3F (ORCPT ); Thu, 30 Apr 2020 02:29:05 -0400 Received: from mga11.intel.com ([192.55.52.93]:25173 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726396AbgD3G3F (ORCPT ); Thu, 30 Apr 2020 02:29:05 -0400 IronPort-SDR: 8tJ0NoLQMLiptGC6qo8SoCnIRiIFXL4wpfSDgkEYvlKQB57lhpTLxVqKqpNm22oRTWoc5tUhk8 mXy0HuPLVrog== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 23:29:05 -0700 IronPort-SDR: X/uXpcJX/nLM4/qqgTQfQC2PsJvrP7P9FeQKTnEo1xLkEnceo/HygM82/K6sZ7VzTZEtRoCAeU DVuNucgxLpag== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,334,1583222400"; d="scan'208";a="282751610" Received: from power-sh.sh.intel.com ([10.239.48.5]) by fmsmga004.fm.intel.com with ESMTP; 29 Apr 2020 23:29:03 -0700 From: Zhang Rui To: linux-pm@vger.kernel.org Cc: linux-wireless@vger.kernel.org, daniel.lezcano@linaro.org, andrzej.p@collabora.com, b.zolnierkie@samsung.com, luca@coelho.fi, rui.zhang@intel.com Subject: [PATCH 1/6] iwlwifi: use thermal_zone_device_update() for temperature change Date: Thu, 30 Apr 2020 14:32:24 +0800 Message-Id: <20200430063229.6182-2-rui.zhang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200430063229.6182-1-rui.zhang@intel.com> References: <20200430063229.6182-1-rui.zhang@intel.com> Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org thermal_notify_framework() is an obsolete API, and iwlwifi is the only user of it. Convert iwlwifi driver to use thermal_zone_device_update() instead. Note that, thermal_zone_device_update() is able to handle the crossed threshold by comparing the current temperature with every trip point, so ths_crossed variant in iwl_mvm_temp_notif() is probably not needed. It is still left there in this patch, in case the debug information is still needed. Signed-off-by: Zhang Rui --- drivers/net/wireless/intel/iwlwifi/mvm/tt.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tt.c b/drivers/net/wireless/intel/iwlwifi/mvm/tt.c index 418e59b..6344b6b 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/tt.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tt.c @@ -203,9 +203,8 @@ void iwl_mvm_temp_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb) if (mvm->tz_device.tzone) { struct iwl_mvm_thermal_device *tz_dev = &mvm->tz_device; - - thermal_notify_framework(tz_dev->tzone, - tz_dev->fw_trips_index[ths_crossed]); + thermal_zone_device_update(tz_dev->tzone, + THERMAL_EVENT_UNSPECIFIED); } #endif /* CONFIG_THERMAL */ } From patchwork Thu Apr 30 06:32:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhang Rui X-Patchwork-Id: 215779 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6F3F3C83001 for ; Thu, 30 Apr 2020 06:29:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 509B12082E for ; Thu, 30 Apr 2020 06:29:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726583AbgD3G3N (ORCPT ); Thu, 30 Apr 2020 02:29:13 -0400 Received: from mga11.intel.com ([192.55.52.93]:25173 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726396AbgD3G3M (ORCPT ); Thu, 30 Apr 2020 02:29:12 -0400 IronPort-SDR: k+tvPD/Goz5oDj1HNmqISglCXRSdJv59qSit0lFpRVkPO0izxtv5eossUpTZzWK3ezEg0Wlg7e Ok/qPOcuuHHA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 23:29:12 -0700 IronPort-SDR: /w7bQ4FpjCNO8fbnM+vD3pMN7d6DOItzX+qaeYekxqCZLPCwIA3pShhJUt7BmW7FruTi2LKbrg 1Icl50AWdWfw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,334,1583222400"; d="scan'208";a="282751640" Received: from power-sh.sh.intel.com ([10.239.48.5]) by fmsmga004.fm.intel.com with ESMTP; 29 Apr 2020 23:29:11 -0700 From: Zhang Rui To: linux-pm@vger.kernel.org Cc: linux-wireless@vger.kernel.org, daniel.lezcano@linaro.org, andrzej.p@collabora.com, b.zolnierkie@samsung.com, luca@coelho.fi, rui.zhang@intel.com Subject: [PATCH 3/6] thermal: core: update polling after all trips handled Date: Thu, 30 Apr 2020 14:32:26 +0800 Message-Id: <20200430063229.6182-4-rui.zhang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200430063229.6182-1-rui.zhang@intel.com> References: <20200430063229.6182-1-rui.zhang@intel.com> Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Move monitor_thermal_zone() from handle_thermal_trip() to thermal_zone_device_update() because updating the polling timers after all trips handled is sufficient. Signed-off-by: Zhang Rui --- drivers/thermal/thermal_core.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index ac70545..04a16a9 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -430,11 +430,6 @@ static void handle_thermal_trip(struct thermal_zone_device *tz, int trip) handle_critical_trips(tz, trip, type); else handle_non_critical_trips(tz, trip); - /* - * Alright, we handled this trip successfully. - * So, start monitoring again. - */ - monitor_thermal_zone(tz); } static void update_temperature(struct thermal_zone_device *tz) @@ -529,6 +524,12 @@ void thermal_zone_device_update(struct thermal_zone_device *tz, for (count = 0; count < tz->trips; count++) handle_thermal_trip(tz, count); + + /* + * Alright, we handled all the trips successfully. + * So, start monitoring again. + */ + monitor_thermal_zone(tz); } EXPORT_SYMBOL_GPL(thermal_zone_device_update); From patchwork Thu Apr 30 06:32:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhang Rui X-Patchwork-Id: 215778 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E0586C83001 for ; Thu, 30 Apr 2020 06:29:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C02CF20784 for ; Thu, 30 Apr 2020 06:29:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726571AbgD3G3U (ORCPT ); Thu, 30 Apr 2020 02:29:20 -0400 Received: from mga11.intel.com ([192.55.52.93]:25173 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726358AbgD3G3U (ORCPT ); Thu, 30 Apr 2020 02:29:20 -0400 IronPort-SDR: xLOt+9/8epBFdLnHNdY1ndA6eD5rAQqKHaDitJDQvEP3F9LKUJCY+pQ0m9ybB8lfkVtwsS5rUd sjxS/34YL9WA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 23:29:20 -0700 IronPort-SDR: I7K1TkccSnlXnj2XU381CfWXGH4whQ968NBWcCrH9BOge+PJGtP5GtPpT3bX9JjjEKoemRqzeQ vYgk5qkmkqTw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,334,1583222400"; d="scan'208";a="282751674" Received: from power-sh.sh.intel.com ([10.239.48.5]) by fmsmga004.fm.intel.com with ESMTP; 29 Apr 2020 23:29:18 -0700 From: Zhang Rui To: linux-pm@vger.kernel.org Cc: linux-wireless@vger.kernel.org, daniel.lezcano@linaro.org, andrzej.p@collabora.com, b.zolnierkie@samsung.com, luca@coelho.fi, rui.zhang@intel.com Subject: [PATCH 5/6] thermal: core: introduce tz_disabled() helper function Date: Thu, 30 Apr 2020 14:32:28 +0800 Message-Id: <20200430063229.6182-6-rui.zhang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200430063229.6182-1-rui.zhang@intel.com> References: <20200430063229.6182-1-rui.zhang@intel.com> Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Rename should_stop_polling() to tz_disabled(), and make it global. Because there are platform thermal drivers which also need this. Signed-off-by: Zhang Rui --- drivers/thermal/thermal_core.c | 17 ++++++++--------- include/linux/thermal.h | 2 ++ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index 5f7a867..1cd5d5d0 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -305,16 +305,9 @@ static void thermal_zone_device_set_polling(struct thermal_zone_device *tz, cancel_delayed_work(&tz->poll_queue); } -static inline bool should_stop_polling(struct thermal_zone_device *tz) -{ - return thermal_zone_device_get_mode(tz) == THERMAL_DEVICE_DISABLED; -} - static void monitor_thermal_zone(struct thermal_zone_device *tz) { - bool stop; - - stop = should_stop_polling(tz); + bool stop = tz_disabled(tz); mutex_lock(&tz->lock); @@ -502,12 +495,18 @@ int thermal_zone_device_set_mode(struct thermal_zone_device *tz, } EXPORT_SYMBOL_GPL(thermal_zone_device_set_mode); +bool tz_disabled(struct thermal_zone_device *tz) +{ + return thermal_zone_device_get_mode(tz) == THERMAL_DEVICE_DISABLED; +} +EXPORT_SYMBOL(tz_disabled); + void thermal_zone_device_update(struct thermal_zone_device *tz, enum thermal_notify_event event) { int count; - if (should_stop_polling(tz)) + if (tz_disabled(tz)) goto update_polling; if (atomic_read(&in_suspend)) diff --git a/include/linux/thermal.h b/include/linux/thermal.h index a87fbaf..0bc62ee 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -479,4 +479,6 @@ static inline int thermal_zone_device_disable(struct thermal_zone_device *tz) return thermal_zone_device_set_mode(tz, THERMAL_DEVICE_DISABLED); } +bool tz_disabled(struct thermal_zone_device *tz); + #endif /* __THERMAL_H__ */