From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752620AbdLEIS2 (ORCPT ); Tue, 5 Dec 2017 03:18:28 -0500 Received: from smtp2.it.da.ut.ee ([193.40.5.67]:37262 "EHLO smtp2.it.da.ut.ee" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752540AbdLEIS0 (ORCPT ); Tue, 5 Dec 2017 03:18:26 -0500 Date: Tue, 5 Dec 2017 10:18:21 +0200 (EET) From: Meelis Roos To: Viresh Kumar cc: Rafael Wysocki , linux-pm@vger.kernel.org, Vincent Guittot , "4 . 14+" , linux-kernel@vger.kernel.org Subject: Re: [PATCH] cpufreq: longhaul: Set transition_delay_us to 20 ms In-Reply-To: Message-ID: References: User-Agent: Alpine 2.21 (LRH 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > The commit e948bc8fbee0 ("cpufreq: Cap the default transition delay > value to 10 ms") caused a regression on EPIA-M min-ITX computer where > shutdown or reboot hangs occasionally with a print message like: > > longhaul: Warning: Timeout while waiting for idle PCI bus > cpufreq: __target_index: Failed to change cpu frequency: -16 > > This probably happens because the cpufreq governor tries to change the > frequency of the CPU faster than allowed by the hardware. > > With the above commit, the default transition delay comes to 10 ms for a > transition_latency of 200 us. Set the default transition delay to 20 ms > directly to fix this regression. > > Fixes: e948bc8fbee0 ("cpufreq: Cap the default transition delay value to 10 ms") > Cc: 4.14+ # 4.14+ > Reported-by: Meelis Roos > Suggested-by: Rafael J. Wysocki > Signed-off-by: Viresh Kumar > --- > drivers/cpufreq/longhaul.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/cpufreq/longhaul.c b/drivers/cpufreq/longhaul.c > index c46a12df40dd..56eafcb07859 100644 > --- a/drivers/cpufreq/longhaul.c > +++ b/drivers/cpufreq/longhaul.c > @@ -894,7 +894,7 @@ static int longhaul_cpu_init(struct cpufreq_policy *policy) > if ((longhaul_version != TYPE_LONGHAUL_V1) && (scale_voltage != 0)) > longhaul_setup_voltagescaling(); > > - policy->cpuinfo.transition_latency = 200000; /* nsec */ > + policy->transition_delay_us = 20000; /* usec */ > > return cpufreq_table_validate_and_show(policy, longhaul_table); > } This patch also works on my EPIA-M board - tested 10+ times. Sorry it took so long to test, it was a remote computer. -- Meelis Roos (mroos@linux.ee)