mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 14:42:08 +02:00
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: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Karthik Poosa <karthik.poosa@intel.com> Reviewed-by: Badal Nilawar <badal.nilawar@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240201180600.434822-1-karthik.poosa@intel.com
This commit is contained in:
parent
8087199cd5
commit
404669db60
|
|
@ -490,10 +490,4 @@
|
|||
#define GT_CS_MASTER_ERROR_INTERRUPT REG_BIT(3)
|
||||
#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
|
||||
|
|
|
|||
21
drivers/gpu/drm/xe/regs/xe_pcode_regs.h
Normal file
21
drivers/gpu/drm/xe/regs/xe_pcode_regs.h
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
/* 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 @@
|
|||
#include <drm/drm_managed.h>
|
||||
#include "regs/xe_gt_regs.h"
|
||||
#include "regs/xe_mchbar_regs.h"
|
||||
#include "regs/xe_pcode_regs.h"
|
||||
#include "xe_device.h"
|
||||
#include "xe_gt.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)
|
|||
|
||||
switch (hwmon_reg) {
|
||||
case REG_PKG_RAPL_LIMIT:
|
||||
if (xe->info.platform == XE_DG2)
|
||||
reg = PCU_CR_PACKAGE_RAPL_LIMIT;
|
||||
else if (xe->info.platform == XE_PVC)
|
||||
if (xe->info.platform == XE_PVC)
|
||||
reg = PVC_GT0_PACKAGE_RAPL_LIMIT;
|
||||
else if (xe->info.platform == XE_DG2)
|
||||
reg = PCU_CR_PACKAGE_RAPL_LIMIT;
|
||||
break;
|
||||
case REG_PKG_POWER_SKU:
|
||||
if (xe->info.platform == XE_DG2)
|
||||
reg = PCU_CR_PACKAGE_POWER_SKU;
|
||||
else if (xe->info.platform == XE_PVC)
|
||||
if (xe->info.platform == XE_PVC)
|
||||
reg = PVC_GT0_PACKAGE_POWER_SKU;
|
||||
else if (xe->info.platform == XE_DG2)
|
||||
reg = PCU_CR_PACKAGE_POWER_SKU;
|
||||
break;
|
||||
case REG_PKG_POWER_SKU_UNIT:
|
||||
if (xe->info.platform == XE_DG2)
|
||||
reg = PCU_CR_PACKAGE_POWER_SKU_UNIT;
|
||||
else if (xe->info.platform == XE_PVC)
|
||||
if (xe->info.platform == XE_PVC)
|
||||
reg = PVC_GT0_PACKAGE_POWER_SKU_UNIT;
|
||||
else if (xe->info.platform == XE_DG2)
|
||||
reg = PCU_CR_PACKAGE_POWER_SKU_UNIT;
|
||||
break;
|
||||
case REG_GT_PERF_STATUS:
|
||||
if (xe->info.platform == XE_DG2)
|
||||
reg = GT_PERF_STATUS;
|
||||
break;
|
||||
case REG_PKG_ENERGY_STATUS:
|
||||
if (xe->info.platform == XE_DG2)
|
||||
reg = PCU_CR_PACKAGE_ENERGY_STATUS;
|
||||
else if (xe->info.platform == XE_PVC)
|
||||
if (xe->info.platform == XE_PVC)
|
||||
reg = PVC_GT0_PLATFORM_ENERGY_STATUS;
|
||||
else if (xe->info.platform == XE_DG2)
|
||||
reg = PCU_CR_PACKAGE_ENERGY_STATUS;
|
||||
break;
|
||||
default:
|
||||
drm_warn(&xe->drm, "Unknown xe hwmon reg id: %d\n", hwmon_reg);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user