Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp5368704pxj; Tue, 22 Jun 2021 23:02:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwcxTIMeCBcvEaaceCJRmolIinaLBuZ0bUKnXR3OBzPYZR39ydrjNBPnUlNdOQ4mhPF481f X-Received: by 2002:a17:907:7789:: with SMTP id ky9mr8317374ejc.191.1624428165071; Tue, 22 Jun 2021 23:02:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624428165; cv=none; d=google.com; s=arc-20160816; b=BXfu4fkL4MrEQxBMlV/83pNco4KeKZB2SMSmGQ0SVQKQ04iy6yPdiDVSQ1E5hRbQEM ACBGh9nzBrVNkC0rFCcNCHcw9NX2uQOWckv0ioKcnwSSD2CMeCEUJIEDf2yCzdj4UmKL Rj6Zvanx/aR4u6BvgOU2ycSiq+cIV416/Jgqd3EEgayaXr23xwIh0NiglxGETR4RrRAl bSjx25KF/jb8wnt3MBfPw3WuVy3X/P6+L/OMx7OBalUBvn0HYD1aZk6bBFmUZNkIdN3z I3puxLlFMzA2p/sd5bTike4HVJqKi/kXHzZ2hSh62UXYhTGg5CS8c4GEosEz8Ie/thmo Lrhw== 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=vmGY3Ot51goPk1p3Lpw0VjAdttnKcLZKJGX8mraQh2o=; b=n4wdYd1Si3EzmW4QkAp0lSZ0LyH35bUbWmR4rnKz00/bLBgG7dvkBik4W5qAKJNVws OZsysrp3pTT5ykoFIeowbmvWFrq3Wy+mVL5BCer45cRfSwCXRpew7/gG4nlLt4g15d3N Z3dTWtDWGGuCb8UTjaPs5Z3UWQcxDTGsu97ffnYE2nvdOLEd5DN4zTEgsXx+iXJnGANE lIgm9znMjsSKdhwiZu8eiiONUK7tTN7TdQRelt2oNaH9pcqxvl6RiMXp1Ia5gASrV7jY 6QewGJo1UzEPSrAJNIwRjESTczHy9Xk6pE/m7tSzmIWF2EBLMNTZTg2xCg2ajNP4Bls7 k5fQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=xiOA5cyT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-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 k13si2432559edq.390.2021.06.22.23.02.22; Tue, 22 Jun 2021 23:02:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-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=xiOA5cyT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-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 S229812AbhFWGDo (ORCPT + 99 others); Wed, 23 Jun 2021 02:03:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57346 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229660AbhFWGDn (ORCPT ); Wed, 23 Jun 2021 02:03:43 -0400 Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 56439C061756 for ; Tue, 22 Jun 2021 23:01:25 -0700 (PDT) Received: by mail-pl1-x629.google.com with SMTP id m17so591538plx.7 for ; Tue, 22 Jun 2021 23:01:25 -0700 (PDT) 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=vmGY3Ot51goPk1p3Lpw0VjAdttnKcLZKJGX8mraQh2o=; b=xiOA5cyTFfc7S50F/mYLiqzVw1IFhFzB9y/ImgSmau0rWxS23AkEhsBHcXg75Y1iF9 MVVrrKTQ89JaDL72+ucoBqraZHPUx5IR4o2U3oob+lry76W5SVF4GmHCN7T3OABWCk0S X3ZWZTkbpww41Hw/mIoSM6Ouyx7r2WJN6e1H3ToMQnfX8bS2/VtW4zN8S4uREHvB7Tdt o/uLYdYmbP6xWREgQMFHwiaCV9UkQ1o+zCphSE1EDYg87osTGIeC8HnvOt/6JVaopqoa oT6OVjWnvK+CDAuYQKY9bYPt5XMvMPc/MWYke0ZfX4kuMa2Uy2bAv9EFBfxNAvAC9CEM k7iA== 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=vmGY3Ot51goPk1p3Lpw0VjAdttnKcLZKJGX8mraQh2o=; b=SV9mj9AEtjsj69BNIarLPJUioEwBi0SVN5JrMzb/yHwFbx03rAkgwO+JmrNF33CgVD ywQqCL3fXdfuBWRxWWNRNnUuL83QwGES6qn2in+6pw6CrP2DVrx7RCvGZpEKx5Q2T7uy jkekqG+84+MImrRI6dUVrccDHMBiF6YZPDaBCE6KnZZEPY77YRUoSjJkf2KSmWicwdCu yxlSQl1jx5rnUMDEecbK4KhnsYiSUD5QLF4Xh9eJ0oMpOAbuL9qR6dplVoGVjCdfRxUU C936q3O+T/aTgBMXm5kt7QvJ+kp0cefcun+Ch7WrqmHdIcGPwhKbZOHgJgQUFHHc5fH8 jsUQ== X-Gm-Message-State: AOAM532xr0TxVA4CBp9DoMqCtW4h9Xb+zSATN5gvg3fV9KyRoaftVDbC Ogled0ZPaN3v0KKv/j5BQx3ONA== X-Received: by 2002:a17:90a:fa83:: with SMTP id cu3mr7985858pjb.164.1624428084712; Tue, 22 Jun 2021 23:01:24 -0700 (PDT) Received: from localhost ([136.185.134.182]) by smtp.gmail.com with ESMTPSA id x20sm1122301pfh.112.2021.06.22.23.01.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Jun 2021 23:01:23 -0700 (PDT) From: Viresh Kumar To: Rafael Wysocki , Viresh Kumar , Michael Ellerman , Benjamin Herrenschmidt , Paul Mackerras Cc: linux-pm@vger.kernel.org, Vincent Guittot , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH V4.1 3/4] cpufreq: powernv: Migrate to ->exit() callback instead of ->stop_cpu() Date: Wed, 23 Jun 2021 11:31:14 +0530 Message-Id: X-Mailer: git-send-email 2.31.1.272.g89b43f80a514 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org commit 367dc4aa932b ("cpufreq: Add stop CPU callback to cpufreq_driver interface") added the stop_cpu() callback to allow the drivers to do clean up before the CPU is completely down and its state can't be modified. At that time the CPU hotplug framework used to call the cpufreq core's registered notifier for different events like CPU_DOWN_PREPARE and CPU_POST_DEAD. The stop_cpu() callback was called during the CPU_DOWN_PREPARE event. This is no longer the case, cpuhp_cpufreq_offline() is called only once by the CPU hotplug core now and we don't really need two separate callbacks for cpufreq drivers, i.e. stop_cpu() and exit(), as everything can be done from the exit() callback itself. Migrate to using the exit() callback instead of stop_cpu(). Signed-off-by: Viresh Kumar --- V4->V4.1: - s/powerenv/powernv/ drivers/cpufreq/powernv-cpufreq.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/drivers/cpufreq/powernv-cpufreq.c b/drivers/cpufreq/powernv-cpufreq.c index e439b43c19eb..005600cef273 100644 --- a/drivers/cpufreq/powernv-cpufreq.c +++ b/drivers/cpufreq/powernv-cpufreq.c @@ -875,7 +875,15 @@ static int powernv_cpufreq_cpu_init(struct cpufreq_policy *policy) static int powernv_cpufreq_cpu_exit(struct cpufreq_policy *policy) { - /* timer is deleted in cpufreq_cpu_stop() */ + struct powernv_smp_call_data freq_data; + struct global_pstate_info *gpstates = policy->driver_data; + + freq_data.pstate_id = idx_to_pstate(powernv_pstate_info.min); + freq_data.gpstate_id = idx_to_pstate(powernv_pstate_info.min); + smp_call_function_single(policy->cpu, set_pstate, &freq_data, 1); + if (gpstates) + del_timer_sync(&gpstates->timer); + kfree(policy->driver_data); return 0; @@ -1007,18 +1015,6 @@ static struct notifier_block powernv_cpufreq_opal_nb = { .priority = 0, }; -static void powernv_cpufreq_stop_cpu(struct cpufreq_policy *policy) -{ - struct powernv_smp_call_data freq_data; - struct global_pstate_info *gpstates = policy->driver_data; - - freq_data.pstate_id = idx_to_pstate(powernv_pstate_info.min); - freq_data.gpstate_id = idx_to_pstate(powernv_pstate_info.min); - smp_call_function_single(policy->cpu, set_pstate, &freq_data, 1); - if (gpstates) - del_timer_sync(&gpstates->timer); -} - static unsigned int powernv_fast_switch(struct cpufreq_policy *policy, unsigned int target_freq) { @@ -1042,7 +1038,6 @@ static struct cpufreq_driver powernv_cpufreq_driver = { .target_index = powernv_cpufreq_target_index, .fast_switch = powernv_fast_switch, .get = powernv_cpufreq_get, - .stop_cpu = powernv_cpufreq_stop_cpu, .attr = powernv_cpu_freq_attr, }; -- 2.31.1.272.g89b43f80a514