Commit 404669db authored by Karthik Poosa's avatar Karthik Poosa Committed by Rodrigo Vivi

drm/xe/hwmon: Refactor xe hwmon

Check latest platform first in xe_hwmon_get_reg.
Move PVC HWMON registers to regs/xe_pcode.h.
Suggested-by: default avatarMatt Roper <matthew.d.roper@intel.com>
Signed-off-by: default avatarKarthik Poosa <karthik.poosa@intel.com>
Reviewed-by: default avatarBadal Nilawar <badal.nilawar@intel.com>
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240201180600.434822-1-karthik.poosa@intel.com
parent 8087199c
...@@ -490,10 +490,4 @@ ...@@ -490,10 +490,4 @@
#define GT_CS_MASTER_ERROR_INTERRUPT REG_BIT(3) #define GT_CS_MASTER_ERROR_INTERRUPT REG_BIT(3)
#define GT_RENDER_USER_INTERRUPT REG_BIT(0) #define GT_RENDER_USER_INTERRUPT REG_BIT(0)
#define PVC_GT0_PACKAGE_ENERGY_STATUS XE_REG(0x281004)
#define PVC_GT0_PACKAGE_RAPL_LIMIT XE_REG(0x281008)
#define PVC_GT0_PACKAGE_POWER_SKU_UNIT XE_REG(0x281068)
#define PVC_GT0_PLATFORM_ENERGY_STATUS XE_REG(0x28106c)
#define PVC_GT0_PACKAGE_POWER_SKU XE_REG(0x281080)
#endif #endif
/* SPDX-License-Identifier: MIT */
/*
* Copyright © 2024 Intel Corporation
*/
#ifndef _XE_PCODE_REGS_H_
#define _XE_PCODE_REGS_H_
#include "regs/xe_reg_defs.h"
/*
* This file contains addresses of PCODE registers visible through GT MMIO space.
*/
#define PVC_GT0_PACKAGE_ENERGY_STATUS XE_REG(0x281004)
#define PVC_GT0_PACKAGE_RAPL_LIMIT XE_REG(0x281008)
#define PVC_GT0_PACKAGE_POWER_SKU_UNIT XE_REG(0x281068)
#define PVC_GT0_PLATFORM_ENERGY_STATUS XE_REG(0x28106c)
#define PVC_GT0_PACKAGE_POWER_SKU XE_REG(0x281080)
#endif /* _XE_PCODE_REGS_H_ */
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <drm/drm_managed.h> #include <drm/drm_managed.h>
#include "regs/xe_gt_regs.h" #include "regs/xe_gt_regs.h"
#include "regs/xe_mchbar_regs.h" #include "regs/xe_mchbar_regs.h"
#include "regs/xe_pcode_regs.h"
#include "xe_device.h" #include "xe_device.h"
#include "xe_gt.h" #include "xe_gt.h"
#include "xe_hwmon.h" #include "xe_hwmon.h"
...@@ -77,32 +78,32 @@ static u32 xe_hwmon_get_reg(struct xe_hwmon *hwmon, enum xe_hwmon_reg hwmon_reg) ...@@ -77,32 +78,32 @@ static u32 xe_hwmon_get_reg(struct xe_hwmon *hwmon, enum xe_hwmon_reg hwmon_reg)
switch (hwmon_reg) { switch (hwmon_reg) {
case REG_PKG_RAPL_LIMIT: case REG_PKG_RAPL_LIMIT:
if (xe->info.platform == XE_DG2) if (xe->info.platform == XE_PVC)
reg = PCU_CR_PACKAGE_RAPL_LIMIT;
else if (xe->info.platform == XE_PVC)
reg = PVC_GT0_PACKAGE_RAPL_LIMIT; reg = PVC_GT0_PACKAGE_RAPL_LIMIT;
else if (xe->info.platform == XE_DG2)
reg = PCU_CR_PACKAGE_RAPL_LIMIT;
break; break;
case REG_PKG_POWER_SKU: case REG_PKG_POWER_SKU:
if (xe->info.platform == XE_DG2) if (xe->info.platform == XE_PVC)
reg = PCU_CR_PACKAGE_POWER_SKU;
else if (xe->info.platform == XE_PVC)
reg = PVC_GT0_PACKAGE_POWER_SKU; reg = PVC_GT0_PACKAGE_POWER_SKU;
else if (xe->info.platform == XE_DG2)
reg = PCU_CR_PACKAGE_POWER_SKU;
break; break;
case REG_PKG_POWER_SKU_UNIT: case REG_PKG_POWER_SKU_UNIT:
if (xe->info.platform == XE_DG2) if (xe->info.platform == XE_PVC)
reg = PCU_CR_PACKAGE_POWER_SKU_UNIT;
else if (xe->info.platform == XE_PVC)
reg = PVC_GT0_PACKAGE_POWER_SKU_UNIT; reg = PVC_GT0_PACKAGE_POWER_SKU_UNIT;
else if (xe->info.platform == XE_DG2)
reg = PCU_CR_PACKAGE_POWER_SKU_UNIT;
break; break;
case REG_GT_PERF_STATUS: case REG_GT_PERF_STATUS:
if (xe->info.platform == XE_DG2) if (xe->info.platform == XE_DG2)
reg = GT_PERF_STATUS; reg = GT_PERF_STATUS;
break; break;
case REG_PKG_ENERGY_STATUS: case REG_PKG_ENERGY_STATUS:
if (xe->info.platform == XE_DG2) if (xe->info.platform == XE_PVC)
reg = PCU_CR_PACKAGE_ENERGY_STATUS;
else if (xe->info.platform == XE_PVC)
reg = PVC_GT0_PLATFORM_ENERGY_STATUS; reg = PVC_GT0_PLATFORM_ENERGY_STATUS;
else if (xe->info.platform == XE_DG2)
reg = PCU_CR_PACKAGE_ENERGY_STATUS;
break; break;
default: default:
drm_warn(&xe->drm, "Unknown xe hwmon reg id: %d\n", hwmon_reg); drm_warn(&xe->drm, "Unknown xe hwmon reg id: %d\n", hwmon_reg);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment