From patchwork Wed Dec 16 22:03:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Lezcano X-Patchwork-Id: 344524 Delivered-To: patch@linaro.org Received: by 2002:a02:85a7:0:0:0:0:0 with SMTP id d36csp642438jai; Wed, 16 Dec 2020 14:05:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJwVfnAaBBItPG9qaY8BLKPg7a4DhAafA2aKzsPEK9eX0iCT5joSnrPjM18iuLacdOqI6js/ X-Received: by 2002:a05:6402:b9a:: with SMTP id cf26mr35318346edb.372.1608156353485; Wed, 16 Dec 2020 14:05:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608156353; cv=none; d=google.com; s=arc-20160816; b=vpWV3LkIeP6BmzD8iR/3wuxJ6D0eF6JQjO3iSO5h0cIJmGg53pmAfZxFSR/v3lGbJM xKmg0+Xm6ClhfwXcrfDhSX+1vSY7xg8ciPjAwmhAlOkHH3znPUNhI7uPglSzfHP9+HvM ohcyrNAETYbcxNHhYaPMk43K4ofDAt0ltcd5boUAvSJsOkjBTmqV+suFqbYLUZnjzAT6 XTEORrMNMyNbOKBtfCfRNj3M3GS2MCcfIrtwgdWoh7z22d0lo64hP/ojAkkg2tzSxY0E drr42w0a1UovqxzISHqQwiEaXdGqrv7d4+ntOtcYSpZt2aOgcfrZWaeWeGbWeUun7Bm1 tZQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=HQ2hOfI0dzYX8OoDPqs1f4i7ZZhNl5HguLcf9GaVfOw=; b=O3d38U1yWD7JLXd2q9zUL3YloK6E41Qk+XQC2tChR9K0XZAfMwc+D0Gef6c575RJh8 Cg3PwTKqy0pTbsVYERIuKSwFxRVIIhzcrBE8YUaHtybieMGbNdRFW4plwMF7S877z4hC GBXLYANxRnrGrN6Hkp31m5Q4ADUh7gOukCY5xPrhEwQNgdEW4OnexibgWbhHBKg5O84u /EBICA63gCFRavKeRerdvDyGI/ZC90yQOa2fEuBaRtKkUKcAjsYJzOrcj5ltOJLZrbKq z/0rQ+Y3v9N1gq5yVeeAHNeU+W93FqEn15zaye02Jsz7kc2xnrfbRzosjITRMAmjKVlE b5tA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YHWHFPxc; spf=pass (google.com: domain of linux-pm-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-pm-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k15si1574944ejp.554.2020.12.16.14.05.52; Wed, 16 Dec 2020 14:05:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-pm-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YHWHFPxc; spf=pass (google.com: domain of linux-pm-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-pm-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730037AbgLPWEh (ORCPT + 8 others); Wed, 16 Dec 2020 17:04:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54268 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727769AbgLPWEg (ORCPT ); Wed, 16 Dec 2020 17:04:36 -0500 Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0A7CBC061794 for ; Wed, 16 Dec 2020 14:03:56 -0800 (PST) Received: by mail-wr1-x42b.google.com with SMTP id 91so24619238wrj.7 for ; Wed, 16 Dec 2020 14:03:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=HQ2hOfI0dzYX8OoDPqs1f4i7ZZhNl5HguLcf9GaVfOw=; b=YHWHFPxcMCKDHvCMyAdpsNCWoaQL9MlYQn4/DVfR9dt2e4Yjz3pd0KMsmapEdptFfL erXAGBi2f8z04bSSQ4AgAHNywOvFfetMsgm7MQtn+KwGOzK6+9EGL1TlF9lMWf+ArjTM ar4e4u52DWrL2c98jLSFsYCql9kKWGxFrLz+/EAXLpz+gO5pScrboqZ0k0un5rBiiF2l /bQL33DLbML9zVPSecQrXc/+Mt+TURgv1Q7aDuM2SryLDUDsBvqhPAEdNKYhBQEOAhHg SlvqMyTb1/mEY3+XdI084jzfQh83yL9CPFoythPke/Xfc9Jqy3tF+jLXY0ULHp652GW3 ro2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=HQ2hOfI0dzYX8OoDPqs1f4i7ZZhNl5HguLcf9GaVfOw=; b=I8Loc05Z/F4vDd/xs19NcxjbGNVdsFdrmzu1tbajOzXobbKk+3TwYT5ZJqwZgaokQb dFEIZYdNzDrKQnmyFVHhFCJfzr8Hv5ks0KuvM6DrY4PCLzebwnkOSjhA7LwLTUUBk2Ni 5TwifYpIEq7GjFceKpz9ZMV5dqX4jt5eabYQEZPYDKgXFiFiCRIyac53BlidTzmjit/h KP5QeTT7fL2EaSYj6HCE6kHU/NCSEEIU6/Vvir9Dn+ka0p14hCEvPQaG5iGD7yIW+kyj LLsxyFB7qdv2erkWJkWnafSW7Y6pBtB5yEDEuKKewHwAI+NP/NdjJK3ElfQvn4hAdMUL hoOQ== X-Gm-Message-State: AOAM5332G/R5JJuMehtTgQxwbDnV+2eQxbLw4gCcY+d4nla1rYHzjFdL voxfE2rm/fDpfZGsmRpFRa+g1w== X-Received: by 2002:a5d:4bc2:: with SMTP id l2mr24594609wrt.204.1608156234512; Wed, 16 Dec 2020 14:03:54 -0800 (PST) Received: from mai.imgcgcw.net ([2a01:e34:ed2f:f020:601a:58a2:ee98:f8a1]) by smtp.gmail.com with ESMTPSA id a17sm5277933wrs.20.2020.12.16.14.03.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 14:03:53 -0800 (PST) From: Daniel Lezcano To: daniel.lezcano@linaro.org, rui.zhang@intel.com Cc: amitk@kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Thara Gopinath , Lukasz Luba Subject: [PATCH v2 1/3] thermal/core: Precompute the delays from msecs to jiffies Date: Wed, 16 Dec 2020 23:03:35 +0100 Message-Id: <20201216220337.839878-1-daniel.lezcano@linaro.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org The delays are stored in ms units and when the polling function is called this delay is converted into jiffies at each call. Instead of doing the conversion again and again, compute the jiffies at init time and use the value directly when setting the polling. Cc: Thara Gopinath Signed-off-by: Daniel Lezcano Reviewed-by: Lukasz Luba --- drivers/thermal/thermal_core.c | 3 +++ drivers/thermal/thermal_core.h | 1 + drivers/thermal/thermal_helpers.c | 7 +++++++ include/linux/thermal.h | 7 +++++++ 4 files changed, 18 insertions(+) -- 2.25.1 Reviewed-by: Peter Kästle Reviewed-by: Thara Gopinath diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index bcc2ea4f5482..2c41d4a0923f 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -1315,6 +1315,9 @@ thermal_zone_device_register(const char *type, int trips, int mask, tz->passive_delay = passive_delay; tz->polling_delay = polling_delay; + thermal_set_delay_jiffies(&tz->passive_delay_jiffies, passive_delay); + thermal_set_delay_jiffies(&tz->polling_delay_jiffies, polling_delay); + /* sys I/F */ /* Add nodes that are always present via .groups */ result = thermal_zone_create_device_groups(tz, mask); diff --git a/drivers/thermal/thermal_core.h b/drivers/thermal/thermal_core.h index e50c6b2909fe..90f9a80c8b23 100644 --- a/drivers/thermal/thermal_core.h +++ b/drivers/thermal/thermal_core.h @@ -123,6 +123,7 @@ int thermal_build_list_of_policies(char *buf); /* Helpers */ void thermal_zone_set_trips(struct thermal_zone_device *tz); +void thermal_set_delay_jiffies(unsigned long *delay_jiffies, int delay_ms); /* sysfs I/F */ int thermal_zone_create_device_groups(struct thermal_zone_device *, int); diff --git a/drivers/thermal/thermal_helpers.c b/drivers/thermal/thermal_helpers.c index c94bc824e5d3..7f50f412e02a 100644 --- a/drivers/thermal/thermal_helpers.c +++ b/drivers/thermal/thermal_helpers.c @@ -175,6 +175,13 @@ void thermal_zone_set_trips(struct thermal_zone_device *tz) mutex_unlock(&tz->lock); } +void thermal_set_delay_jiffies(unsigned long *delay_jiffies, int delay_ms) +{ + *delay_jiffies = msecs_to_jiffies(delay_ms); + if (delay_ms > 1000) + *delay_jiffies = round_jiffies(*delay_jiffies); +} + static void thermal_cdev_set_cur_state(struct thermal_cooling_device *cdev, int target) { diff --git a/include/linux/thermal.h b/include/linux/thermal.h index 060a2160add4..d1b82c70de69 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -117,9 +117,14 @@ struct thermal_cooling_device { * @trips_disabled; bitmap for disabled trips * @passive_delay: number of milliseconds to wait between polls when * performing passive cooling. + * @passive_delay_jiffies: number of jiffies to wait between polls when + * performing passive cooling. * @polling_delay: number of milliseconds to wait between polls when * checking whether trip points have been crossed (0 for * interrupt driven systems) + * @polling_delay_jiffies: number of jiffies to wait between polls when + * checking whether trip points have been crossed (0 for + * interrupt driven systems) * @temperature: current temperature. This is only for core code, * drivers should use thermal_zone_get_temp() to get the * current temperature @@ -155,6 +160,8 @@ struct thermal_zone_device { void *devdata; int trips; unsigned long trips_disabled; /* bitmap for disabled trips */ + unsigned long passive_delay_jiffies; + unsigned long polling_delay_jiffies; int passive_delay; int polling_delay; int temperature; From patchwork Wed Dec 16 22:03:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Lezcano X-Patchwork-Id: 344525 Delivered-To: patch@linaro.org Received: by 2002:a02:85a7:0:0:0:0:0 with SMTP id d36csp642454jai; Wed, 16 Dec 2020 14:05:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJzpJD1AFM0BBKn0QAdN9ADBDFtUsjd1+ujEBGnqqIUa/U/JbNEMCvVJK2QU3wL3nXrqk3De X-Received: by 2002:a50:fe8d:: with SMTP id d13mr34320377edt.132.1608156354884; Wed, 16 Dec 2020 14:05:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608156354; cv=none; d=google.com; s=arc-20160816; b=NQ5SHD/vw4EZdjlKGPXvxLGqn4sQ1tZAWeCqj45JPwgHFoS5oz/dWXKaXmNvYUTvzH FU7QOaTsGHrfJgjtoZcJmRSPjUeMCl57gvtaIjZT2kloqeHSsFUfZynopJKgcy628TXo ipPsYLx1hpkWt4S34+S8T1L2WRt3WTMGcxZZYCgJkNWIks1ilpZzEzi1/Oysvznzfz9L COf0w2FD4wA/PSHdEtozQvh13mWVFh/Bwiolzy5y5fePErgWVKIhX1UUqcJApl4gWOi5 BUlFq3+MpaewlKYFlaYit2mPHu6ENdQc7DImzDUs8pJMGQ1r00hAzzbjWDO1ToDghJTA 7E1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=jgs8r4lXT96VdPjv2ZhhWufDRA2IuacaLllCLFcigSg=; b=EuajJfOFD5ugFc3jFN6Kk/9DuB+pHDJSRIRe7tRAu7HZ5DQaO7Gdc2jHckbFV8qQAE YjCTqUSQQZ7ppS1iH2CLSaXAKoMdLmaAbbvbWgwKIwGMBRJ1FoVQu0noZ6Coh7puXygo ouLb4TtVTR1ui9+aS0TDdYuuY+PiOBoocg8/9DPNCkitKpy6hGSIr9HuuGCihL0j+8sU As1DSIhy9BT31/T3bz7LHzHUsgYkzl90hoBqgPBc5xTEztThF8rU+TobvCa1EQ9UG9En amwxre+rBY0SudYYnEVtxRtXKpS1DLYvQU85NhGiefuyioY9Z2qhjgRyY0DIg2v7RwFk 5OMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=oz2cHKMu; spf=pass (google.com: domain of linux-pm-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-pm-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k15si1574944ejp.554.2020.12.16.14.05.54; Wed, 16 Dec 2020 14:05:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-pm-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=oz2cHKMu; spf=pass (google.com: domain of linux-pm-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-pm-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730038AbgLPWEi (ORCPT + 8 others); Wed, 16 Dec 2020 17:04:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54276 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730041AbgLPWEi (ORCPT ); Wed, 16 Dec 2020 17:04:38 -0500 Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [IPv6:2a00:1450:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 86FE8C0617A6 for ; Wed, 16 Dec 2020 14:03:57 -0800 (PST) Received: by mail-wr1-x42c.google.com with SMTP id w5so20887185wrm.11 for ; Wed, 16 Dec 2020 14:03:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jgs8r4lXT96VdPjv2ZhhWufDRA2IuacaLllCLFcigSg=; b=oz2cHKMuCn8EHihsUlyEe0vEqvX9ES021uVO0KXuO0CB9kq/cdxWmcIBPqTm8Bva6F s24w5WaAXXv2mNckrnstFZtffAV9hHgH1oMyAxW4GBDP0rfwWNycxN3l8TZBHMpRsN9d RO04oRMI0dfot6v0wNYbjSwsvRO7NSicVNMj/r9CevwHbgNR8KRsEhvZeqAyHUTe5Lqp Xt4RqVMtllwOgLYuAJQTVCVfxFqruXrcWeer5iLNOtQ0O2KSUYFeqmB2OItffGRhFLVV OUckMgaQJhJx6z0fny2OdlzoyiovpRB869e0whI1Nt6xugslbiE+y+V+7GeRXHCTxJ/l kfgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jgs8r4lXT96VdPjv2ZhhWufDRA2IuacaLllCLFcigSg=; b=sz5N/aIJ7KMX0BAe04+07qmJsPLoh/vcn6+chy4eQVzLjjQEENR40rkIXv+xBAHNtR wkT7AXLshB9YwQySdrO0SGXaND68N41ZkCCJvmrS0k0pJOHXsGJYKtfzwsg23y7XY2ub TQ3dGlt48tkIyMr5OGp6NlrBMgcIUXhkdFqIFh2RKTQ7VOK12M70McwL6ahyYuez2iDN zbpYZOnpKKVWIj4mEtno8rcyNQDpJ0QPmOetFp5Oit0SpboJyV5tDklKVw5e5/22dcuq PhUqSOHSGWrn8DIRriFSRyAa2EnVLeg8vepIDwSL38YohWI/m00V/fkBI7HiHVCAfwzT rAzQ== X-Gm-Message-State: AOAM5334+z0HeROE+0mXYbCgE581GR0syg1gpHaYLM0W3o8EelFhFoe+ eNXAfllqU60ceNx6PPKPIc6ntA== X-Received: by 2002:adf:ab4b:: with SMTP id r11mr23937497wrc.282.1608156236012; Wed, 16 Dec 2020 14:03:56 -0800 (PST) Received: from mai.imgcgcw.net ([2a01:e34:ed2f:f020:601a:58a2:ee98:f8a1]) by smtp.gmail.com with ESMTPSA id a17sm5277933wrs.20.2020.12.16.14.03.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 14:03:55 -0800 (PST) From: Daniel Lezcano To: daniel.lezcano@linaro.org, rui.zhang@intel.com Cc: amitk@kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Thara Gopinath , Lukasz Luba Subject: [PATCH v2 2/3] thermal/core: Use precomputed jiffies for the polling Date: Wed, 16 Dec 2020 23:03:36 +0100 Message-Id: <20201216220337.839878-2-daniel.lezcano@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201216220337.839878-1-daniel.lezcano@linaro.org> References: <20201216220337.839878-1-daniel.lezcano@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org The delays are also stored in jiffies based unit. Use them instead of the ms. Cc: Thara Gopinath Signed-off-by: Daniel Lezcano Reviewed-by: Lukasz Luba --- drivers/thermal/thermal_core.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) -- 2.25.1 Reviewed-by: Thara Gopinath diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index 2c41d4a0923f..d96c515af3cb 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -289,16 +289,11 @@ static int __init thermal_register_governors(void) * - Critical trip point will cause a system shutdown. */ static void thermal_zone_device_set_polling(struct thermal_zone_device *tz, - int delay) + unsigned long delay) { - if (delay > 1000) + if (delay) mod_delayed_work(system_freezable_power_efficient_wq, - &tz->poll_queue, - round_jiffies(msecs_to_jiffies(delay))); - else if (delay) - mod_delayed_work(system_freezable_power_efficient_wq, - &tz->poll_queue, - msecs_to_jiffies(delay)); + &tz->poll_queue, delay); else cancel_delayed_work(&tz->poll_queue); } @@ -317,9 +312,9 @@ static void monitor_thermal_zone(struct thermal_zone_device *tz) mutex_lock(&tz->lock); if (!stop && tz->passive) - thermal_zone_device_set_polling(tz, tz->passive_delay); + thermal_zone_device_set_polling(tz, tz->passive_delay_jiffies); else if (!stop && tz->polling_delay) - thermal_zone_device_set_polling(tz, tz->polling_delay); + thermal_zone_device_set_polling(tz, tz->polling_delay_jiffies); else thermal_zone_device_set_polling(tz, 0); From patchwork Wed Dec 16 22:03:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Lezcano X-Patchwork-Id: 344727 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=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, 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 AFAF9C2BBCA for ; Wed, 16 Dec 2020 22:05:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 96B7323442 for ; Wed, 16 Dec 2020 22:05:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730068AbgLPWFS (ORCPT ); Wed, 16 Dec 2020 17:05:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730077AbgLPWFR (ORCPT ); Wed, 16 Dec 2020 17:05:17 -0500 Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C250CC061285 for ; Wed, 16 Dec 2020 14:03:59 -0800 (PST) Received: by mail-wr1-x42f.google.com with SMTP id y17so24607708wrr.10 for ; Wed, 16 Dec 2020 14:03:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uFgXPJfjD7GeFy7r1aNbCblOGwmVkP2fCvjV5sFWQVs=; b=N//iL0qvMkM0Utn3XGW/DDwZKo1Pqhsxj9g55/jjA6eTsq7OWprE1A+hlwObC3j4YG UKVth+jr8dLa5rF1NxXgceugn+T5E+bQYE7q3D0Mm1Hmm99B4cERmLM2o2OSV3sc5wV9 LDl3HsMnQKOtpKfK8kppLwXLSmwTE5gAxfdU9WrwzkAjF8mKC2TC7sUCsjEoNnUmBN6+ YQy+oWS256SpX3G2qY9gG+Qu4xLVEOFplbZNmNrPoAatRZsruVky6bdvVZgOFMQnLDlT u0Nnmdrm1W9vfyPS5pkdTjYlmbQ3IQYKUiS6uXdECDYKSzKuJBY9hp/XJ+pAsXPwjmeN X+5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uFgXPJfjD7GeFy7r1aNbCblOGwmVkP2fCvjV5sFWQVs=; b=pqv1h6VbJpgmll7Boqn3cZSNvexJVDoO9PnowE8vWO6I0VlLJ3MNXH38v2GfRWQEhQ iiRhx8UIASBhm4F0oVIUljW35RQhH5V8eo+qphP9l2gvE0jVFallsPC7jRWB/hGhBsF1 OW0vZQwSoQlJhrJoiU6TNgJncOe8riWG/xXv25o+NKIT96ZXTQLG2t+8496E3jj3mfyT NfHYeU13Th20hS6znzam8CYoL/NmXbIrNXMIBWOUO36q4CCBesU09IxqJpgny6ZjCIS/ CRNr1JRxy8n3K62GZ3u8+jM4xo9gCwJ8UHjMtRdTXmF6CRBZCd6RNWNThe5/Xr1ooubY wz9w== X-Gm-Message-State: AOAM532vamj4LjgQObxm3P3BopOLHxfxshwyG7qTFGMiYHzBfBpgfG5n GMQNXSZErqKXJiw91/+4EONT8g== X-Google-Smtp-Source: ABdhPJzRlBrP1Gt6pfGYHMtTrFWaZBlGy41UgcCO9oorV/UieHGo5rhYF50u8hVIgHR0SKfY8v7o+A== X-Received: by 2002:adf:e443:: with SMTP id t3mr4687971wrm.366.1608156238097; Wed, 16 Dec 2020 14:03:58 -0800 (PST) Received: from mai.imgcgcw.net ([2a01:e34:ed2f:f020:601a:58a2:ee98:f8a1]) by smtp.gmail.com with ESMTPSA id a17sm5277933wrs.20.2020.12.16.14.03.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 14:03:57 -0800 (PST) From: Daniel Lezcano To: daniel.lezcano@linaro.org, rui.zhang@intel.com Cc: amitk@kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Thara Gopinath , Lukasz Luba , Peter Kaestle , Hans de Goede , Mark Gross , Support Opensource , Eduardo Valentin , Keerthy , platform-driver-x86@vger.kernel.org (open list:ACER ASPIRE ONE TEMPERATURE AND FAN DRIVER), linux-omap@vger.kernel.org (open list:TI BANDGAP AND THERMAL DRIVER) Subject: [PATCH v2 3/3] thermal/core: Remove ms based delay fields Date: Wed, 16 Dec 2020 23:03:37 +0100 Message-Id: <20201216220337.839878-3-daniel.lezcano@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201216220337.839878-1-daniel.lezcano@linaro.org> References: <20201216220337.839878-1-daniel.lezcano@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org The code does no longer use the ms unit based fields to set the delays as they are replaced by the jiffies. Remove them and replace their user to use the jiffies version instead. Cc: Thara Gopinath Signed-off-by: Daniel Lezcano Reviewed-by: Lukasz Luba Reviewed-by: Peter Kästle Reported-by: kernel test robot Reported-by: kernel test robot Acked-by: Hans de Goede --- drivers/platform/x86/acerhdf.c | 3 ++- drivers/thermal/da9062-thermal.c | 4 ++-- drivers/thermal/gov_power_allocator.c | 2 +- drivers/thermal/thermal_core.c | 4 +--- drivers/thermal/ti-soc-thermal/ti-thermal-common.c | 6 ++++-- include/linux/thermal.h | 7 ------- 6 files changed, 10 insertions(+), 16 deletions(-) diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c index b6aa6e5514f4..6b8b3ab8db48 100644 --- a/drivers/platform/x86/acerhdf.c +++ b/drivers/platform/x86/acerhdf.c @@ -336,7 +336,8 @@ static void acerhdf_check_param(struct thermal_zone_device *thermal) pr_notice("interval changed to: %d\n", interval); if (thermal) - thermal->polling_delay = interval*1000; + thermal->polling_delay_jiffies = + round_jiffies(msecs_to_jiffies(interval * 1000)); prev_interval = interval; } diff --git a/drivers/thermal/da9062-thermal.c b/drivers/thermal/da9062-thermal.c index 4d74994f160a..180edec34e07 100644 --- a/drivers/thermal/da9062-thermal.c +++ b/drivers/thermal/da9062-thermal.c @@ -95,7 +95,7 @@ static void da9062_thermal_poll_on(struct work_struct *work) thermal_zone_device_update(thermal->zone, THERMAL_EVENT_UNSPECIFIED); - delay = msecs_to_jiffies(thermal->zone->passive_delay); + delay = thermal->zone->passive_delay_jiffies; queue_delayed_work(system_freezable_wq, &thermal->work, delay); return; } @@ -245,7 +245,7 @@ static int da9062_thermal_probe(struct platform_device *pdev) dev_dbg(&pdev->dev, "TJUNC temperature polling period set at %d ms\n", - thermal->zone->passive_delay); + jiffies_to_msecs(thermal->zone->passive_delay_jiffies)); ret = platform_get_irq_byname(pdev, "THERMAL"); if (ret < 0) { diff --git a/drivers/thermal/gov_power_allocator.c b/drivers/thermal/gov_power_allocator.c index 7a4170a0b51f..f8c3d1e40b86 100644 --- a/drivers/thermal/gov_power_allocator.c +++ b/drivers/thermal/gov_power_allocator.c @@ -258,7 +258,7 @@ static u32 pid_controller(struct thermal_zone_device *tz, * power being applied, slowing down the controller) */ d = mul_frac(tz->tzp->k_d, err - params->prev_err); - d = div_frac(d, tz->passive_delay); + d = div_frac(d, jiffies_to_msecs(tz->passive_delay_jiffies)); params->prev_err = err; power_range = p + i + d; diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index d96c515af3cb..b2615449b18f 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -313,7 +313,7 @@ static void monitor_thermal_zone(struct thermal_zone_device *tz) if (!stop && tz->passive) thermal_zone_device_set_polling(tz, tz->passive_delay_jiffies); - else if (!stop && tz->polling_delay) + else if (!stop && tz->polling_delay_jiffies) thermal_zone_device_set_polling(tz, tz->polling_delay_jiffies); else thermal_zone_device_set_polling(tz, 0); @@ -1307,8 +1307,6 @@ thermal_zone_device_register(const char *type, int trips, int mask, tz->device.class = &thermal_class; tz->devdata = devdata; tz->trips = trips; - tz->passive_delay = passive_delay; - tz->polling_delay = polling_delay; thermal_set_delay_jiffies(&tz->passive_delay_jiffies, passive_delay); thermal_set_delay_jiffies(&tz->polling_delay_jiffies, polling_delay); diff --git a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c index 2ce4b19f312a..f84375865c97 100644 --- a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c +++ b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c @@ -166,6 +166,7 @@ int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id, char *domain) { struct ti_thermal_data *data; + int interval; data = ti_bandgap_get_sensor_data(bgp, id); @@ -183,9 +184,10 @@ int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id, return PTR_ERR(data->ti_thermal); } + interval = jiffies_to_msecs(data->ti_thermal->polling_delay_jiffies); + ti_bandgap_set_sensor_data(bgp, id, data); - ti_bandgap_write_update_interval(bgp, data->sensor_id, - data->ti_thermal->polling_delay); + ti_bandgap_write_update_interval(bgp, data->sensor_id, interval); return 0; } diff --git a/include/linux/thermal.h b/include/linux/thermal.h index d1b82c70de69..1e686404951b 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -115,13 +115,8 @@ struct thermal_cooling_device { * @devdata: private pointer for device private data * @trips: number of trip points the thermal zone supports * @trips_disabled; bitmap for disabled trips - * @passive_delay: number of milliseconds to wait between polls when - * performing passive cooling. * @passive_delay_jiffies: number of jiffies to wait between polls when * performing passive cooling. - * @polling_delay: number of milliseconds to wait between polls when - * checking whether trip points have been crossed (0 for - * interrupt driven systems) * @polling_delay_jiffies: number of jiffies to wait between polls when * checking whether trip points have been crossed (0 for * interrupt driven systems) @@ -162,8 +157,6 @@ struct thermal_zone_device { unsigned long trips_disabled; /* bitmap for disabled trips */ unsigned long passive_delay_jiffies; unsigned long polling_delay_jiffies; - int passive_delay; - int polling_delay; int temperature; int last_temperature; int emul_temperature;