Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

powercap: intel_rapl: Use unit conversion macros from units.h

Replace hardcoded numeric constants with standard unit conversion
macros from linux/units.h for better code clarity and
self-documentation.

Add MICROJOULE_PER_JOULE and NANOJOULE_PER_JOULE to units.h to
support energy unit conversions, following the existing pattern
for power units.

No functional changes.

Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Link: https://patch.msgid.link/20260212233044.329790-8-sathyanarayanan.kuppuswamy@linux.intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

Kuppuswamy Sathyanarayanan and committed by
Rafael J. Wysocki
90503f9f 71bb2c50

+13 -9
+10 -9
drivers/powercap/intel_rapl_common.c
··· 24 24 #include <linux/suspend.h> 25 25 #include <linux/sysfs.h> 26 26 #include <linux/types.h> 27 + #include <linux/units.h> 27 28 28 29 #include <asm/cpu_device_id.h> 29 30 #include <asm/intel-family.h> ··· 965 964 } 966 965 967 966 value = (ra.value & ENERGY_UNIT_MASK) >> ENERGY_UNIT_OFFSET; 968 - rd->energy_unit = (ENERGY_UNIT_SCALE * 1000000) >> value; 967 + rd->energy_unit = (ENERGY_UNIT_SCALE * MICROJOULE_PER_JOULE) >> value; 969 968 970 969 value = (ra.value & POWER_UNIT_MASK) >> POWER_UNIT_OFFSET; 971 - rd->power_unit = 1000000 >> value; 970 + rd->power_unit = MICROWATT_PER_WATT >> value; 972 971 973 972 value = (ra.value & TIME_UNIT_MASK) >> TIME_UNIT_OFFSET; 974 - rd->time_unit = 1000000 >> value; 973 + rd->time_unit = USEC_PER_SEC >> value; 975 974 976 975 pr_debug("Core CPU %s:%s energy=%dpJ, time=%dus, power=%duW\n", 977 976 rd->rp->name, rd->name, rd->energy_unit, rd->time_unit, rd->power_unit); ··· 996 995 rd->energy_unit = ENERGY_UNIT_SCALE * (1ULL << value); 997 996 998 997 value = (ra.value & POWER_UNIT_MASK) >> POWER_UNIT_OFFSET; 999 - rd->power_unit = (1ULL << value) * 1000; 998 + rd->power_unit = (1ULL << value) * MILLIWATT_PER_WATT; 1000 999 1001 1000 value = (ra.value & TIME_UNIT_MASK) >> TIME_UNIT_OFFSET; 1002 - rd->time_unit = 1000000 >> value; 1001 + rd->time_unit = USEC_PER_SEC >> value; 1003 1002 1004 1003 pr_debug("Atom %s:%s energy=%dpJ, time=%dus, power=%duW\n", 1005 1004 rd->rp->name, rd->name, rd->energy_unit, rd->time_unit, rd->power_unit); ··· 1170 1169 } 1171 1170 1172 1171 value = (ra.value & TPMI_ENERGY_UNIT_MASK) >> TPMI_ENERGY_UNIT_OFFSET; 1173 - rd->energy_unit = (ENERGY_UNIT_SCALE * 1000000) >> value; 1172 + rd->energy_unit = (ENERGY_UNIT_SCALE * MICROJOULE_PER_JOULE) >> value; 1174 1173 1175 1174 value = (ra.value & TPMI_POWER_UNIT_MASK) >> TPMI_POWER_UNIT_OFFSET; 1176 - rd->power_unit = 1000000 >> value; 1175 + rd->power_unit = MICROWATT_PER_WATT >> value; 1177 1176 1178 1177 value = (ra.value & TPMI_TIME_UNIT_MASK) >> TPMI_TIME_UNIT_OFFSET; 1179 - rd->time_unit = 1000000 >> value; 1178 + rd->time_unit = USEC_PER_SEC >> value; 1180 1179 1181 1180 pr_debug("Core CPU %s:%s energy=%dpJ, time=%dus, power=%duW\n", 1182 1181 rd->rp->name, rd->name, rd->energy_unit, rd->time_unit, rd->power_unit); ··· 1209 1208 .check_unit = rapl_check_unit_core, 1210 1209 .set_floor_freq = set_floor_freq_default, 1211 1210 .compute_time_window = rapl_compute_time_window_core, 1212 - .psys_domain_energy_unit = 1000000000, 1211 + .psys_domain_energy_unit = NANOJOULE_PER_JOULE, 1213 1212 .spr_psys_bits = true, 1214 1213 }; 1215 1214
+3
include/linux/units.h
··· 57 57 #define MICROWATT_PER_MILLIWATT 1000UL 58 58 #define MICROWATT_PER_WATT 1000000UL 59 59 60 + #define MICROJOULE_PER_JOULE 1000000UL 61 + #define NANOJOULE_PER_JOULE 1000000000UL 62 + 60 63 #define BYTES_PER_KBIT (KILO / BITS_PER_BYTE) 61 64 #define BYTES_PER_MBIT (MEGA / BITS_PER_BYTE) 62 65 #define BYTES_PER_GBIT (GIGA / BITS_PER_BYTE)