On 14-01-2026 13:00, Raag Jadav wrote:
On Tue, Jan 13, 2026 at 03:28:51PM +0530, Poosa, Karthik wrote:
On 13-01-2026 13:51, Raag Jadav wrote:
On Tue, Jan 13, 2026 at 02:05:21AM +0530, Karthik Poosa wrote:
Expose individual VRAM temperature attributes.
Update Xe hwmon documentation for this entry.
...

@@ -255,6 +264,8 @@ static struct xe_reg xe_hwmon_get_reg(struct xe_hwmon *hwmon, enum xe_hwmon_reg
  				return BMG_PACKAGE_TEMPERATURE;
  			else if (channel == CHANNEL_VRAM)
  				return BMG_VRAM_TEMPERATURE;
+			else if (in_range(channel, CHANNEL_VRAM_N, CHANNEL_VRAM_N_MAX))
I think this should be

	if (in_range(channel, CHANNEL_VRAM_N, MAX_VRAM_CHANNELS))

or did I miss something?
I’ve ran IGT hwmon test and lm-sensors and didn't see any discrepancies
there, all available channels are seen.
Sure, but shouldn't we fix the buggy logic?

Raag
I shall address this. We didn’t observe any issue during verification because there are no new channels beyond VRAM_N. 
I’ll raise a patch for this.

+				return BMG_VRAM_TEMPERATURE_N(channel - CHANNEL_VRAM_N);
  		} else if (xe->info.platform == XE_DG2) {
  			if (channel == CHANNEL_PKG)
  				return PCU_CR_PACKAGE_TEMPERATURE;
...

@@ -1353,6 +1415,8 @@ static int xe_hwmon_read_label(struct device *dev,
  			       enum hwmon_sensor_types type,
  			       u32 attr, int channel, const char **str)
  {
+	struct xe_hwmon *hwmon = dev_get_drvdata(dev);
+
  	switch (type) {
  	case hwmon_temp:
  		if (channel == CHANNEL_PKG)
@@ -1363,6 +1427,8 @@ static int xe_hwmon_read_label(struct device *dev,
  			*str = "mctrl";
  		else if (channel == CHANNEL_PCIE)
  			*str = "pcie";
+		else if (in_range(channel, CHANNEL_VRAM_N, CHANNEL_VRAM_N_MAX))
Ditto.

Raag

+			*str = hwmon->temp.vram_label[channel - CHANNEL_VRAM_N];
  		return 0;
  	case hwmon_power:
  	case hwmon_energy:
-- 
2.25.1