cpufreq: AMD: Ignore the check for ProcFeedback in ST/CZ
diff mbox

Message ID 1516270890-1224-1-git-send-email-akshu.agrawal@amd.com
State Mainlined
Delegated to: Rafael Wysocki
Headers show

Commit Message

Akshu Agrawal Jan. 18, 2018, 10:21 a.m. UTC
In ST/CZ CPUID 8000_0007_EDX[11, ProcFeedbackInterface] is 0,
but the mechanism is still available and can be used.

Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com>
---
 drivers/cpufreq/amd_freq_sensitivity.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

Comments

Viresh Kumar Jan. 18, 2018, 10:42 a.m. UTC | #1
On 18-01-18, 15:51, Akshu Agrawal wrote:
> In ST/CZ CPUID 8000_0007_EDX[11, ProcFeedbackInterface] is 0,
> but the mechanism is still available and can be used.
> 
> Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com>
> ---
>  drivers/cpufreq/amd_freq_sensitivity.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/cpufreq/amd_freq_sensitivity.c b/drivers/cpufreq/amd_freq_sensitivity.c
> index 042023bbbf62..be926d9a66e5 100644
> --- a/drivers/cpufreq/amd_freq_sensitivity.c
> +++ b/drivers/cpufreq/amd_freq_sensitivity.c
> @@ -14,6 +14,7 @@
>  #include <linux/kernel.h>
>  #include <linux/module.h>
>  #include <linux/types.h>
> +#include <linux/pci.h>
>  #include <linux/percpu-defs.h>
>  #include <linux/init.h>
>  #include <linux/mod_devicetable.h>
> @@ -109,12 +110,18 @@ static unsigned int amd_powersave_bias_target(struct cpufreq_policy *policy,
>  static int __init amd_freq_sensitivity_init(void)
>  {
>  	u64 val;
> +	struct pci_dev *pcidev;
>  
>  	if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
>  		return -ENODEV;
>  
> -	if (!static_cpu_has(X86_FEATURE_PROC_FEEDBACK))
> -		return -ENODEV;
> +	pcidev = pci_get_device(PCI_VENDOR_ID_AMD,
> +			PCI_DEVICE_ID_AMD_KERNCZ_SMBUS, NULL);
> +
> +	if (!pcidev) {
> +		if (!static_cpu_has(X86_FEATURE_PROC_FEEDBACK))
> +			return -ENODEV;
> +	}
>  
>  	if (rdmsrl_safe(MSR_AMD64_FREQ_SENSITIVITY_ACTUAL, &val))
>  		return -ENODEV;

Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Rafael J. Wysocki Feb. 8, 2018, 10:03 a.m. UTC | #2
On Thursday, January 18, 2018 11:42:51 AM CET Viresh Kumar wrote:
> On 18-01-18, 15:51, Akshu Agrawal wrote:
> > In ST/CZ CPUID 8000_0007_EDX[11, ProcFeedbackInterface] is 0,
> > but the mechanism is still available and can be used.
> > 
> > Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com>
> > ---
> >  drivers/cpufreq/amd_freq_sensitivity.c | 11 +++++++++--
> >  1 file changed, 9 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/cpufreq/amd_freq_sensitivity.c b/drivers/cpufreq/amd_freq_sensitivity.c
> > index 042023bbbf62..be926d9a66e5 100644
> > --- a/drivers/cpufreq/amd_freq_sensitivity.c
> > +++ b/drivers/cpufreq/amd_freq_sensitivity.c
> > @@ -14,6 +14,7 @@
> >  #include <linux/kernel.h>
> >  #include <linux/module.h>
> >  #include <linux/types.h>
> > +#include <linux/pci.h>
> >  #include <linux/percpu-defs.h>
> >  #include <linux/init.h>
> >  #include <linux/mod_devicetable.h>
> > @@ -109,12 +110,18 @@ static unsigned int amd_powersave_bias_target(struct cpufreq_policy *policy,
> >  static int __init amd_freq_sensitivity_init(void)
> >  {
> >  	u64 val;
> > +	struct pci_dev *pcidev;
> >  
> >  	if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
> >  		return -ENODEV;
> >  
> > -	if (!static_cpu_has(X86_FEATURE_PROC_FEEDBACK))
> > -		return -ENODEV;
> > +	pcidev = pci_get_device(PCI_VENDOR_ID_AMD,
> > +			PCI_DEVICE_ID_AMD_KERNCZ_SMBUS, NULL);
> > +
> > +	if (!pcidev) {
> > +		if (!static_cpu_has(X86_FEATURE_PROC_FEEDBACK))
> > +			return -ENODEV;
> > +	}
> >  
> >  	if (rdmsrl_safe(MSR_AMD64_FREQ_SENSITIVITY_ACTUAL, &val))
> >  		return -ENODEV;
> 
> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>

Patch applied, thanks!

Patch
diff mbox

diff --git a/drivers/cpufreq/amd_freq_sensitivity.c b/drivers/cpufreq/amd_freq_sensitivity.c
index 042023bbbf62..be926d9a66e5 100644
--- a/drivers/cpufreq/amd_freq_sensitivity.c
+++ b/drivers/cpufreq/amd_freq_sensitivity.c
@@ -14,6 +14,7 @@ 
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/types.h>
+#include <linux/pci.h>
 #include <linux/percpu-defs.h>
 #include <linux/init.h>
 #include <linux/mod_devicetable.h>
@@ -109,12 +110,18 @@  static unsigned int amd_powersave_bias_target(struct cpufreq_policy *policy,
 static int __init amd_freq_sensitivity_init(void)
 {
 	u64 val;
+	struct pci_dev *pcidev;
 
 	if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
 		return -ENODEV;
 
-	if (!static_cpu_has(X86_FEATURE_PROC_FEEDBACK))
-		return -ENODEV;
+	pcidev = pci_get_device(PCI_VENDOR_ID_AMD,
+			PCI_DEVICE_ID_AMD_KERNCZ_SMBUS, NULL);
+
+	if (!pcidev) {
+		if (!static_cpu_has(X86_FEATURE_PROC_FEEDBACK))
+			return -ENODEV;
+	}
 
 	if (rdmsrl_safe(MSR_AMD64_FREQ_SENSITIVITY_ACTUAL, &val))
 		return -ENODEV;