From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pu Wen Subject: [PATCH v2 15/17] driver/cpufreq: enable Hygon support to cpufreq driver Date: Mon, 23 Jul 2018 21:20:35 +0800 Message-ID: <1532352037-7151-16-git-send-email-puwen@hygon.cn> References: <1532352037-7151-1-git-send-email-puwen@hygon.cn> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1532352037-7151-1-git-send-email-puwen@hygon.cn> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: tglx@linutronix.de, bp@alien8.de, thomas.lendacky@amd.com, mingo@redhat.com, hpa@zytor.com, peterz@infradead.org, tony.luck@intel.com, pbonzini@redhat.com, rkrcmar@redhat.com, boris.ostrovsky@oracle.com, jgross@suse.com, rjw@rjwysocki.net, lenb@kernel.org, viresh.kumar@linaro.org, mchehab@kernel.org, trenn@suse.com, shuah@kernel.org, JBeulich@suse.com, x86@kernel.org Cc: linux-arch@vger.kernel.org, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org List-Id: linux-arch.vger.kernel.org RW5hYmxlIEFDUEkgY3B1ZnJlcSBkcml2ZXIgc3VwcG9ydCBmb3IgSHlnb24gYnkgYWRkaW5nIGZh bWlseSBJRCBjaGVjawphbG9uZyB3aXRoIEFNRC4KCkFzIEh5Z29uIHBsYXRmb3JtcyBoYXZlIFNN QnVzIGRldmljZShQQ0kgZGV2aWNlIElEIDB4NzkwYiksIGVuYWJsZSBIeWdvbgpzdXBwb3J0IHRv IGZ1bmN0aW9uIGFtZF9mcmVxX3NlbnNpdGl2aXR5X2luaXQoKS4KClNpZ25lZC1vZmYtYnk6IFB1 IFdlbiA8cHV3ZW5AaHlnb24uY24+Ci0tLQogZHJpdmVycy9jcHVmcmVxL2FjcGktY3B1ZnJlcS5j ICAgICAgICAgfCAxMSArKysrKysrKysrKwogZHJpdmVycy9jcHVmcmVxL2FtZF9mcmVxX3NlbnNp dGl2aXR5LmMgfCAgOSArKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NwdWZyZXEvYWNwaS1jcHVm cmVxLmMgYi9kcml2ZXJzL2NwdWZyZXEvYWNwaS1jcHVmcmVxLmMKaW5kZXggYjYxZjRlYy4uY2Q5 N2E3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jcHVmcmVxL2FjcGktY3B1ZnJlcS5jCisrKyBiL2Ry aXZlcnMvY3B1ZnJlcS9hY3BpLWNwdWZyZXEuYwpAQCAtNjEsNiArNjEsNyBAQCBlbnVtIHsKIAog I2RlZmluZSBJTlRFTF9NU1JfUkFOR0UJCSgweGZmZmYpCiAjZGVmaW5lIEFNRF9NU1JfUkFOR0UJ CSgweDcpCisjZGVmaW5lIEhZR09OX01TUl9SQU5HRQkJKDB4NykKIAogI2RlZmluZSBNU1JfSzdf SFdDUl9DUEJfRElTCSgxVUxMIDw8IDI1KQogCkBAIC05OSw2ICsxMDAsMTAgQEAgc3RhdGljIGJv b2wgYm9vc3Rfc3RhdGUodW5zaWduZWQgaW50IGNwdSkKIAkJcmRtc3Jfb25fY3B1KGNwdSwgTVNS X0s3X0hXQ1IsICZsbywgJmhpKTsKIAkJbXNyID0gbG8gfCAoKHU2NCloaSA8PCAzMik7CiAJCXJl dHVybiAhKG1zciAmIE1TUl9LN19IV0NSX0NQQl9ESVMpOworCWNhc2UgWDg2X1ZFTkRPUl9IWUdP TjoKKwkJcmRtc3Jfb25fY3B1KGNwdSwgTVNSX0s3X0hXQ1IsICZsbywgJmhpKTsKKwkJbXNyID0g bG8gfCAoKHU2NCloaSA8PCAzMik7CisJCXJldHVybiAhKG1zciAmIE1TUl9LN19IV0NSX0NQQl9E SVMpOwogCX0KIAlyZXR1cm4gZmFsc2U7CiB9CkBAIC0xMTcsNiArMTIyLDEwIEBAIHN0YXRpYyBp bnQgYm9vc3Rfc2V0X21zcihib29sIGVuYWJsZSkKIAkJbXNyX2FkZHIgPSBNU1JfSzdfSFdDUjsK IAkJbXNyX21hc2sgPSBNU1JfSzdfSFdDUl9DUEJfRElTOwogCQlicmVhazsKKwljYXNlIFg4Nl9W RU5ET1JfSFlHT046CisJCW1zcl9hZGRyID0gTVNSX0s3X0hXQ1I7CisJCW1zcl9tYXNrID0gTVNS X0s3X0hXQ1JfQ1BCX0RJUzsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7 CiAJfQpAQCAtMjI1LDYgKzIzNCw4IEBAIHN0YXRpYyB1bnNpZ25lZCBleHRyYWN0X21zcihzdHJ1 Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSwgdTMyIG1zcikKIAogCWlmIChib290X2NwdV9kYXRh Lng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9BTUQpCiAJCW1zciAmPSBBTURfTVNSX1JBTkdFOwor CWVsc2UgaWYgKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0hZR09OKQor CQltc3IgJj0gSFlHT05fTVNSX1JBTkdFOwogCWVsc2UKIAkJbXNyICY9IElOVEVMX01TUl9SQU5H RTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcHVmcmVxL2FtZF9mcmVxX3NlbnNpdGl2aXR5LmMg Yi9kcml2ZXJzL2NwdWZyZXEvYW1kX2ZyZXFfc2Vuc2l0aXZpdHkuYwppbmRleCBiZTkyNmQ5Li40 YWM3YzNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NwdWZyZXEvYW1kX2ZyZXFfc2Vuc2l0aXZpdHku YworKysgYi9kcml2ZXJzL2NwdWZyZXEvYW1kX2ZyZXFfc2Vuc2l0aXZpdHkuYwpAQCAtMTExLDEx ICsxMTEsMTYgQEAgc3RhdGljIGludCBfX2luaXQgYW1kX2ZyZXFfc2Vuc2l0aXZpdHlfaW5pdCh2 b2lkKQogewogCXU2NCB2YWw7CiAJc3RydWN0IHBjaV9kZXYgKnBjaWRldjsKKwl1bnNpZ25lZCBp bnQgcGNpX3ZlbmRvcjsKIAotCWlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgIT0gWDg2X1ZF TkRPUl9BTUQpCisJaWYgKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0FN RCkKKwkJcGNpX3ZlbmRvciA9IFBDSV9WRU5ET1JfSURfQU1EOworCWVsc2UgaWYgKGJvb3RfY3B1 X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0hZR09OKQorCQlwY2lfdmVuZG9yID0gUENJ X1ZFTkRPUl9JRF9IWUdPTjsKKwllbHNlCiAJCXJldHVybiAtRU5PREVWOwogCi0JcGNpZGV2ID0g cGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9BTUQsCisJcGNpZGV2ID0gcGNpX2dldF9kZXZp Y2UocGNpX3ZlbmRvciwKIAkJCVBDSV9ERVZJQ0VfSURfQU1EX0tFUk5DWl9TTUJVUywgTlVMTCk7 CiAKIAlpZiAoIXBjaWRldikgewotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v bGlzdGluZm8veGVuLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp21.cstnet.cn ([159.226.251.21]:45754 "EHLO cstnet.cn" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388144AbeGWOli (ORCPT ); Mon, 23 Jul 2018 10:41:38 -0400 From: Pu Wen Subject: [PATCH v2 15/17] driver/cpufreq: enable Hygon support to cpufreq driver Date: Mon, 23 Jul 2018 21:20:35 +0800 Message-ID: <1532352037-7151-16-git-send-email-puwen@hygon.cn> In-Reply-To: <1532352037-7151-1-git-send-email-puwen@hygon.cn> References: <1532352037-7151-1-git-send-email-puwen@hygon.cn> Sender: linux-arch-owner@vger.kernel.org List-ID: To: tglx@linutronix.de, bp@alien8.de, thomas.lendacky@amd.com, mingo@redhat.com, hpa@zytor.com, peterz@infradead.org, tony.luck@intel.com, pbonzini@redhat.com, rkrcmar@redhat.com, boris.ostrovsky@oracle.com, jgross@suse.com, rjw@rjwysocki.net, lenb@kernel.org, viresh.kumar@linaro.org, mchehab@kernel.org, trenn@suse.com, shuah@kernel.org, JBeulich@suse.com, x86@kernel.org Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kvm@vger.kernel.org, xen-devel@lists.xenproject.org Message-ID: <20180723132035.T_a_-NuJoMxPddN2nFOLJk7aaTl0tIGBfcQ4k4P46Gk@z> Enable ACPI cpufreq driver support for Hygon by adding family ID check along with AMD. As Hygon platforms have SMBus device(PCI device ID 0x790b), enable Hygon support to function amd_freq_sensitivity_init(). Signed-off-by: Pu Wen --- drivers/cpufreq/acpi-cpufreq.c | 11 +++++++++++ drivers/cpufreq/amd_freq_sensitivity.c | 9 +++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c index b61f4ec..cd97a7e 100644 --- a/drivers/cpufreq/acpi-cpufreq.c +++ b/drivers/cpufreq/acpi-cpufreq.c @@ -61,6 +61,7 @@ enum { #define INTEL_MSR_RANGE (0xffff) #define AMD_MSR_RANGE (0x7) +#define HYGON_MSR_RANGE (0x7) #define MSR_K7_HWCR_CPB_DIS (1ULL << 25) @@ -99,6 +100,10 @@ static bool boost_state(unsigned int cpu) rdmsr_on_cpu(cpu, MSR_K7_HWCR, &lo, &hi); msr = lo | ((u64)hi << 32); return !(msr & MSR_K7_HWCR_CPB_DIS); + case X86_VENDOR_HYGON: + rdmsr_on_cpu(cpu, MSR_K7_HWCR, &lo, &hi); + msr = lo | ((u64)hi << 32); + return !(msr & MSR_K7_HWCR_CPB_DIS); } return false; } @@ -117,6 +122,10 @@ static int boost_set_msr(bool enable) msr_addr = MSR_K7_HWCR; msr_mask = MSR_K7_HWCR_CPB_DIS; break; + case X86_VENDOR_HYGON: + msr_addr = MSR_K7_HWCR; + msr_mask = MSR_K7_HWCR_CPB_DIS; + break; default: return -EINVAL; } @@ -225,6 +234,8 @@ static unsigned extract_msr(struct cpufreq_policy *policy, u32 msr) if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD) msr &= AMD_MSR_RANGE; + else if (boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) + msr &= HYGON_MSR_RANGE; else msr &= INTEL_MSR_RANGE; diff --git a/drivers/cpufreq/amd_freq_sensitivity.c b/drivers/cpufreq/amd_freq_sensitivity.c index be926d9..4ac7c3c 100644 --- a/drivers/cpufreq/amd_freq_sensitivity.c +++ b/drivers/cpufreq/amd_freq_sensitivity.c @@ -111,11 +111,16 @@ static int __init amd_freq_sensitivity_init(void) { u64 val; struct pci_dev *pcidev; + unsigned int pci_vendor; - if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD) + if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD) + pci_vendor = PCI_VENDOR_ID_AMD; + else if (boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) + pci_vendor = PCI_VENDOR_ID_HYGON; + else return -ENODEV; - pcidev = pci_get_device(PCI_VENDOR_ID_AMD, + pcidev = pci_get_device(pci_vendor, PCI_DEVICE_ID_AMD_KERNCZ_SMBUS, NULL); if (!pcidev) { -- 2.7.4