Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp5820347imm; Mon, 23 Jul 2018 06:41:46 -0700 (PDT) X-Google-Smtp-Source: AAOMgpchU9ireU7Em+t6eKVupwLV+AiCIV1GREmy7/Qtdq3GFj1wMqv4XUdIG0Aelsj5vTTWTTIP X-Received: by 2002:a63:4b5a:: with SMTP id k26-v6mr11977651pgl.384.1532353306199; Mon, 23 Jul 2018 06:41:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532353306; cv=none; d=google.com; s=arc-20160816; b=P1HvOdSzVp4MTGGpBnLOj+eubMtHMz+VXNHJTyhwwXiC6wUDyOkDg5X2GQPT/EtpYD X+NzqgW5wv9qZBPd4TQ7065CdttRBFbmzJQaXOPGwRf+PL8t1fECY57DvcyTOnQz7to7 7XKpDB6UH2eKAAbKBg4GpUn/P+mpqEMxvkhMJP6E7kcvpu79Gf2lY1/SXTIXfWQtxOzt UItlzmf0bhLYRM7WJ2CSJINtXBngvlXtPUH+TtYDjK1cn4optg59uNq/IQ7VGTSKZeZG p2VwPGWhvb2Qlx8sIimvObLM9oOYdVoRNWbA/OabNdc+zDXbbFqPTniRXyM7Mlfuhz0m NNDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=4uUA3J5EKZ6Ivedz01EmvNIjLnGYbJXHV3TXqe6Pxa8=; b=h3dT9bteTGAhQ8e7PUXIa0/H8bwT9JkVq233EyRiC0Xg/XbF4V+6SZ+flLtqd/FoWQ CoTuJW9VCd1sTWDRSRjxOQbqjI7szzzVm2xkxoQ4RSVMy4nKw41kSVrO5x1yUw0h7B0a 8q+jvraobggNiYEVNcV/AqeRXEyDwVWaIeUeh1qoiVWcTZrHiCQms6zHl7ILI063PtGx qAXEClyBX6TqYP8CyZvWoPQPh5kExjCx0Im/B7vAs5XS18EA2Z9x7VGYDi9X4rwLcUhF AirnZ9gDUiRZIbhe9DZhprOXaIxJAxlL1h33qySp28TXWKHbN0fOUME7kdJoV1ECD9xl ysFQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r28-v6si8611403pfb.65.2018.07.23.06.41.31; Mon, 23 Jul 2018 06:41:46 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388226AbeGWOlj (ORCPT + 99 others); Mon, 23 Jul 2018 10:41:39 -0400 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 Received: from pw-vbox.higon.com (unknown [182.150.46.145]) by APP-01 (Coremail) with SMTP id qwCowAD3_5sl1lVbkm7cEA--.63S17; Mon, 23 Jul 2018 21:21:35 +0800 (CST) From: Pu Wen 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 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> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1532352037-7151-1-git-send-email-puwen@hygon.cn> References: <1532352037-7151-1-git-send-email-puwen@hygon.cn> X-CM-TRANSID: qwCowAD3_5sl1lVbkm7cEA--.63S17 X-Coremail-Antispam: 1UD129KBjvJXoW7Ww15Zw17Xry7ur4DAw4fXwb_yoW5JF4fpF W5uFW8Ar18Xa9rW3sFvFW8XryYyFyvyay5KrZrJ3sY9F4ruFy5XrZ8Cr17Wrn0q3ykWFWx A3WDXwsrCan0yrUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUP2b7Iv0xC_tr1lb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I2 0VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI 8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28C jxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVW8JVW5JwA2z4x0Y4vE2Ix0cI 8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_Gr0_Cr1l84ACjcxK6I8E 87Iv6xkF7I0E14v26r4UJVWxJr1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2 IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r4UJVWx Jr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JM4IIrI8v6xkF7I0E8cxan2 IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVW8ZVWrXwCIc4 0Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r4j6ryUMIIF0xvE2Ix0cI8IcVCY1x0267AK xVW8Jr0_Cr1UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVW8JV WxJwCI42IY6I8E87Iv6xkF7I0E14v26r4UJVWxJrUvcSsGvfC2KfnxnUUI43ZEXa7IU8c1 8PUUUUU== X-Originating-IP: [182.150.46.145] X-CM-SenderInfo: psxzv046klw03qof0z/ Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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