Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753451AbbH0IZg (ORCPT ); Thu, 27 Aug 2015 04:25:36 -0400 Received: from mail-by2on0069.outbound.protection.outlook.com ([207.46.100.69]:31193 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753341AbbH0IZa (ORCPT ); Thu, 27 Aug 2015 04:25:30 -0400 X-Greylist: delayed 963 seconds by postgrey-1.27 at vger.kernel.org; Thu, 27 Aug 2015 04:25:30 EDT Authentication-Results: spf=none (sender IP is 165.204.84.221) smtp.mailfrom=amd.com; alien8.de; dkim=none (message not signed) header.d=none;alien8.de; dmarc=permerror action=none header.from=amd.com;alien8.de; dkim=none (message not signed) header.d=none;alien8.de; dmarc=permerror action=none header.from=amd.com; X-WSS-ID: 0NTQEOP-07-TJD-02 X-M-MSG: From: Huang Rui To: Borislav Petkov , Jean Delvare , "Guenter Roeck" , Andy Lutomirski , "Andreas Herrmann" , Thomas Gleixner , Peter Zijlstra , Ingo Molnar , "Rafael J. Wysocki" , Len Brown , John Stultz , =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Weisbecker?= CC: , , , Andreas Herrmann , Aravind Gopalakrishnan , Borislav Petkov , Fengguang Wu , Aaron Lu , Tony Li , Huang Rui Subject: [PATCH 08/15] hwmon, fam15h_power: add max compute unit accumulated power Date: Thu, 27 Aug 2015 16:07:39 +0800 Message-ID: <1440662866-28716-9-git-send-email-ray.huang@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1440662866-28716-1-git-send-email-ray.huang@amd.com> References: <1440662866-28716-1-git-send-email-ray.huang@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.221;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(3050300001)(199003)(189002)(62966003)(5001770100001)(19580405001)(48376002)(77156002)(36756003)(19580395003)(5001830100001)(50466002)(76176999)(50986999)(101416001)(5001860100001)(189998001)(92566002)(4001540100001)(2950100001)(64706001)(87936001)(5003940100001)(47776003)(77096005)(68736005)(5003600100002)(86362001)(97736004)(46102003)(33646002)(50226001)(229853001)(53416004)(105586002)(5007970100001)(106466001)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR12MB0719;H:atltwp01.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0719;2:NCdix/AJi1Tw+H0OZULNzq6+61FerfGmhuVjjxMbh8jnU5QhRdkxoifZkxGgduFeQST1zzEa4/TYFnZSfVBrC9q7SvSCSeXwyrC5z4mswEGmiia/DBVaVcyR9aT7U5MLBGcMTlJ81rsr6Irq99nX8cC8mkcIQhTgbZGJ5yQUlFE=;3:CnHkW+P+A9lo5jsOsylogIJIh0QPZmjep9zKb28WW5xkE1Yi7LatUnkgzFOClKHeEzz1hfA4xJoN14PNFhLCPF9ElnXblbKvVsLt3jbrLopa7axeF8tvrJPWMJHWh12t/suaGE+pzoPEzmo2uZZdDQW9xA79d9m4iQOaoJDbC5J8GDiOWv0pvqj7dfCmPxcz4XKfIl8gFotFWTMBol4YXuQt/R3wamEoqkHl3QgSmjUCetQDQToUdhlUZz6fmGxq;25:pcX0i6jlaEz6A1Sq9Ss9T57bU7IboPc/QkfwSeWfC3MK8X0jnuF17SV9uZejNHdQrlcbdakslzWKqsuNDK8SxG1lVOQyPbVkX0rvafq5B7hivmPiQZBpcFmeovZn62YGwOR+Uh8TdGvcVPdplpLC9T+u4je5YTxUXJL20E9hKu9e0HT0SElRtEpWhJxJhN5/bganATZKHl0qyzNsyUOA/ESrofbNvooiunwHUGEhZDV6i7CvDz0GBmP5pIil+ad1 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR12MB0719;UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR12MB0528; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0719;20:NinTD84eKaJN8ERTV2pzKs//PnNUw5vVpj2EpKvCoD2REunnu0CUWLrMDX5vpnkTlfmaQtHwD1N27yR0U80NLqzJ/4RW6Z1Z1jj4N/ZVde45nfu5EN5e1bhpwvlpsu1w1XI2GeHpWG0AL6ulb974XV2HLFXm800LoNRxzuAbrdpeeIhpGwO26qHRdfpUL44gxd6IFP9iaLCSG1CTElIKjlQ4816DEZUjxlae7p6QtBEptHPWszuyJYuNI0gHFL3SU236MQU9hbuNLROl3tm08Z0HrQJpZuB9xEfrIG0tpT8HTnTUarSzHJr6myKSHgelKpeZABIEw/fwphHCb8uENis3wwzBCAow/ERz1QgZwoi1BW37ZGMT2ethDnilVWOp/CUFOZK8f53QJd66IPsXb0SUM2Lh1ZbFFco6TKAGh0xrK4kQWCsQ/MXmi1h+SNMzy/GPNhc/67uZPo/PWqH62666Ei97NeJHlCnCTrBu2cWQrOlFHuzkvDjqvS+NENVO;4:MftKga23GvhSK4L5Yu9VDz2kHsEHDkSXVjH8xunZ11lBSivIHNUG8UsSqPD52BlkPHKiqZ0ASiN/hGc/WZ/YTgoxx3aW/692kA0i8dbJwX3sGOa4udfRQSuzFeZRUpuHgBy+LlvncEHOfEL3Erdubrp4cn4pCIQhRFr1N88oDoTSIJbwjvH+9S94wghwJMRf1pJ1a+M5mKHAnZ1GA3NSJEM/b+q89GNXuXVnnEpA66b3hb9InkzS5E6hYJqk9bd+EE2T9b139osI0P4DjOFHVDvz4e2DZ6KaWbXUJv/uBDjQ3mOK7uje4kFQ2RAeMRtg X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(8121501046)(3002001);SRVR:SN1PR12MB0719;BCL:0;PCL:0;RULEID:;SRVR:SN1PR12MB0719; X-Forefront-PRVS: 06818431B9 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN1PR12MB0719;23:+Ns5YNBUw3OzeWYyu0bCPtzvQK0/po2ez4gEzLi/A?= =?us-ascii?Q?mp019E/PgtCeMrBbRCaUyeI2ByS9hg+Aq9M9ItLRVQyzaH5fInbNVg1JsOm9?= =?us-ascii?Q?wT+iGxcw2Ke9l2/sAskou0696aLyzVOW7+fbX5BtdmSbXjVHS5Sgyx+hS4tq?= =?us-ascii?Q?PffaS9q2HNzNto2QIC9NGFBFdUc7m1XNMUGWC1+aQDk+RZDHnKabluuVcjk4?= =?us-ascii?Q?bRZGegEdhM0XPEnZxWvUCit0fcLyYjLCcyDlMvy+zwk6yK6UPdnuSmb5z62v?= =?us-ascii?Q?BsYBah14oEb4i14+di9cqLAd9eGRCq6s/f/FJvBCjcgenO6BsxRRGtX/OuI/?= =?us-ascii?Q?atjNn7Vwh5ke35qO3RlhgSC9V2a3AIMDD1A9h9Rw0NFhioDJz8xVLl72G3cO?= =?us-ascii?Q?kZT64qA9hlc7CDnqt3En6X52KsvH0dWgqu3MvYwRvViJ8C2hve6BUfBePu+X?= =?us-ascii?Q?ErfDxQul+Y11uNo59EtCxUgXVglDNGXbVymAEg30qlNLWbf+IrqlN0Sj4ZVt?= =?us-ascii?Q?8+S06b7aC0T9jmjJB6iGvIiygMZ0pbDZ9XZYm43l7srMCPgwo2sc0rXXQSOP?= =?us-ascii?Q?lHS8q/HaIxnIQdhMVQtpX6KaVvqZvwYzVeFrIzGPyjwvONDJUcNhnv2Xvk6M?= =?us-ascii?Q?FFnHQSrR5PEaa758LmSf8Rmxjn/rrHEbU+cqzxV30PfZl5AS1Q9t6wINfFBj?= =?us-ascii?Q?QB9TkYFQas8u6j0bE+p5O6pAbQhoy/l7SQN1/LCw//uN8q97GSGYap+Y329M?= =?us-ascii?Q?4/dC0CPbx8TQvInM4O8fu67ybLAZyHZcbUXJsL29flWAvdc5NcyoPn0JMuBV?= =?us-ascii?Q?KKKIPj7rGXzWG4OXtEQHNZOJMOjirH/5yIcyCLcr96u48nBE6ETLpQpVzC29?= =?us-ascii?Q?edutx+hn9LsmbMNJhA6fsTxp5bPaC4Cuk7c/CMWIhQSfBvFsjchXrnPTPeXT?= =?us-ascii?Q?UNPwDEJUVS/c79/+x+SAJoHYYt6UHRv9+zPjl5+CcvkcjaSYnvhQCuDV2l2r?= =?us-ascii?Q?5yh9w7Owf8dIDKVqyvPbhjZ3r9AwK6fYVrCmz+Yju15oxGu4F5pa3O16orL7?= =?us-ascii?Q?NFHebR4xOryHKq6pXLMRqcpMSSvyBSRrYXl2GPCYIMaGVu/FJKrw5wqLwGRt?= =?us-ascii?Q?G0J2PqmpSkNRK4raiRCPTHJDDWf7o5n?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0719;5:PX6F7qESLY44QZxYHxTylRLnc29kiyFBOu34mHhnLHNrwAFWVk62vb6cma6yEHh2s28nImExRvO2B63BXMvYkdeE6bAxPSt+hCKbZiUgcNGRi6/wsCGnY4RIIs5xTQkUgPue3APRwJ6uYorb3wqtiA==;24:0jK6/zVZezRwlOO0VwfjD28EhAH+IqhJ69YhNMSsClqBRRKHKpfCVo6MFxymlw6bTjH5VQ5Ofg7Om0XT9wkKnEA4Alk4N/hlpYzPhCVFalQ=;20:o6WfF6tdjwvW5PEFbkO8IkWrzYG7zMh0H5+/3NVWTRcQcrWfSkm7eVe383YqknhAlo9A01mDHotU+d8pIQardQ== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2015 08:10:03.8358 (UTC) X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.221];Helo=[atltwp01.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0719 X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0528;2:PmikhxAca5YO7NSLIg24AyWCSdFanJof4TQjxVWS+m33njIqBCjzIzCwSiQZZQaf3mYuhnsx1beP2+Kbos9+IQ0EJXbf+iN5UaERQPWebVVyh9XsFaR7/nZtWsYKEi42Ju5fMgBMG3/9A9/xgizTnwvqdHDyWsI85GxlKywsj/I=;3:JEkcuL3r2z9aN4Fird2sYbAARHervc3SE0ktRUUg7gUC1wXySWX+x2eDDRMWQGINtPV1ZVRam3Dql8KJurGAaXVFhh9sHLTGqpUvK+RbMVt+kwnDIAWvDeQefSqKUwFvCucYlAWrbE513fs3wNO6ArPUi0WU26ZNnmWTlTo0bDJJ9X+CA5jAlfbEnao06/vghJ2k4cAQ3J8tdCMFkkTxc5yJQU06eFX50h9ssa6vplvAuIAlofOG5aggem5hyt4+;25:ocrVfmjIDU5kU3P/9DHIT08hwqFNR72jPDP4XOlSzjYeef1HrgO1d4sEzLWLjxDwUMMgv0vkDd6UU3eMSCivi50v/te9lpVzaNlYuNFQfV5FllFzO/FJCBoxX79wNdHBDFbbcdxLl/7Mi2sFm/cU1MF9ED2paY4w9gEEuVSKyf5czaIeKdmQJo2GGsa8OdOkBzL9AHgvqeEUaqMz7codsmKG7i5vl+QRDjUY58OM4CohMu9LnTHa1+JBliWNk+ZO;23:UUarlbv0W3E5oydBgJ8jY3QmOcyBe9/KJFwVrydkGOc0fyJUhpsO23c5WvFJn21iU0PVtgIuY6DRj9DlWt0usNtjZ6NTL3PcKPYXTP7g0Qq3qo/BdQ+LYWCe/hAUK/+diVFD3MfI3gFbd4Bp40i5bBqqQ71PlCiqY6xE23cjeGe1fc/AVRLPcwCOLa2VlH5g X-OriginatorOrg: amd.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2755 Lines: 92 This patch adds a member in fam15h_power_data which specifies the maximum accumulated power in a compute unit. Signed-off-by: Huang Rui --- drivers/hwmon/fam15h_power.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c index d6efcf6..fdfa18e 100644 --- a/drivers/hwmon/fam15h_power.c +++ b/drivers/hwmon/fam15h_power.c @@ -26,6 +26,7 @@ #include #include #include +#include MODULE_DESCRIPTION("AMD Family 15h CPU processor power monitor"); MODULE_AUTHOR("Andreas Herrmann "); @@ -43,12 +44,16 @@ MODULE_LICENSE("GPL"); #define FAM15H_MIN_POWER_GROUPS 2 +#define MSR_F15H_CU_MAX_PWR_ACCUMULATOR 0xc001007b + struct fam15h_power_data { struct pci_dev *pdev; unsigned int tdp_to_watts; unsigned int base_tdp; unsigned int processor_pwr_watts; unsigned int cpu_pwr_sample_ratio; + /* maximum accumulated power of a compute unit */ + u64 max_cu_acc_power; }; static ssize_t show_power(struct device *dev, @@ -199,8 +204,8 @@ static int fam15h_power_resume(struct pci_dev *pdev) #define fam15h_power_resume NULL #endif -static void fam15h_power_init_data(struct pci_dev *f4, - struct fam15h_power_data *data) +static int fam15h_power_init_data(struct pci_dev *f4, + struct fam15h_power_data *data) { u32 val, eax, ebx, ecx, edx; u64 tmp; @@ -228,7 +233,7 @@ static void fam15h_power_init_data(struct pci_dev *f4, /* CPUID Fn8000_0007:EDX[12] indicates to support accumulated power */ if (!(edx & BIT(12))) - return; + return 0; /* * detemine the ratio of the compute unit power accumulator @@ -236,6 +241,15 @@ static void fam15h_power_init_data(struct pci_dev *f4, * Fn8000_0007:ECX */ data->cpu_pwr_sample_ratio = ecx; + + if (rdmsrl_safe(MSR_F15H_CU_MAX_PWR_ACCUMULATOR, &tmp)) { + pr_err("Failed to read max compute unit power accumulator MSR\n"); + return -ENODEV; + } + + data->max_cu_acc_power = tmp; + + return 0; } static int fam15h_power_probe(struct pci_dev *pdev, @@ -262,7 +276,9 @@ static int fam15h_power_probe(struct pci_dev *pdev, if (fam15h_power_init_attrs(pdev)) return -ENOMEM; - fam15h_power_init_data(pdev, data); + if (fam15h_power_init_data(pdev, data)) + return -ENODEV; + data->pdev = pdev; hwmon_dev = devm_hwmon_device_register_with_groups(dev, "fam15h_power", -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/