Page MenuHomeFreeBSD

D51487.diff
No OneTemporary

D51487.diff

diff --git a/sys/dev/amdsmu/amdsmu.h b/sys/dev/amdsmu/amdsmu.h
--- a/sys/dev/amdsmu/amdsmu.h
+++ b/sys/dev/amdsmu/amdsmu.h
@@ -77,6 +77,7 @@
bus_space_handle_t metrics_space;
struct amdsmu_metrics metrics;
+ uint32_t idlemask;
};
static inline uint32_t
diff --git a/sys/dev/amdsmu/amdsmu.c b/sys/dev/amdsmu/amdsmu.c
--- a/sys/dev/amdsmu/amdsmu.c
+++ b/sys/dev/amdsmu/amdsmu.c
@@ -281,6 +281,14 @@
return (0);
}
+static void
+amdsmu_fetch_idlemask(device_t dev)
+{
+ struct amdsmu_softc *sc = device_get_softc(dev);
+
+ sc->idlemask = amdsmu_read4(sc, SMU_REG_IDLEMASK);
+}
+
static int
amdsmu_attach(device_t dev)
{
@@ -407,6 +415,13 @@
if (err != 0)
goto err_dump;
+ /* Get idlemask & add sysctl. */
+ amdsmu_fetch_idlemask(dev);
+ SYSCTL_ADD_U32(sc->sysctlctx, SYSCTL_CHILDREN(sc->sysctlnode), OID_AUTO,
+ "idlemask", CTLFLAG_RD, &sc->idlemask, 0, "SMU idlemask. This "
+ "value is not documented - only used to help AMD internally debug "
+ "issues");
+
return (0);
err_dump:
bus_space_unmap(sc->bus_tag, sc->reg_space, SMU_MEM_SIZE);
diff --git a/sys/dev/amdsmu/amdsmu_reg.h b/sys/dev/amdsmu/amdsmu_reg.h
--- a/sys/dev/amdsmu/amdsmu_reg.h
+++ b/sys/dev/amdsmu/amdsmu_reg.h
@@ -32,6 +32,7 @@
#define SMU_REG_MESSAGE 0x538
#define SMU_REG_RESPONSE 0x980
#define SMU_REG_ARGUMENT 0x9BC
+#define SMU_REG_IDLEMASK 0xD14
enum amdsmu_res {
SMU_RES_WAIT = 0x00,

File Metadata

Mime Type
text/plain
Expires
Thu, Feb 19, 4:00 PM (11 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28883782
Default Alt Text
D51487.diff (1 KB)

Event Timeline