Commit f32efa3e authored by Robin Murphy's avatar Robin Murphy Committed by Will Deacon
Browse files

perf/arm-cmn: Improve format attr printing



Take full advantage of our formats being stored in bitfield form, and
make the printing even more robust and simple by letting printk do all
the hard work of formatting bitlists.

Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
Reviewed-by: default avatarIlkka Koskinen <ilkka@os.amperecomputing.com>
Link: https://lore.kernel.org/r/50459f2d48fc62310a566863dbf8a7c14361d363.1725474584.git.robin.murphy@arm.com


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent f04b611e
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -1280,15 +1280,11 @@ static ssize_t arm_cmn_format_show(struct device *dev,
				   struct device_attribute *attr, char *buf)
{
	struct arm_cmn_format_attr *fmt = container_of(attr, typeof(*fmt), attr);
	int lo = __ffs(fmt->field), hi = __fls(fmt->field);

	if (lo == hi)
		return sysfs_emit(buf, "config:%d\n", lo);

	if (!fmt->config)
		return sysfs_emit(buf, "config:%d-%d\n", lo, hi);
		return sysfs_emit(buf, "config:%*pbl\n", 64, &fmt->field);

	return sysfs_emit(buf, "config%d:%d-%d\n", fmt->config, lo, hi);
	return sysfs_emit(buf, "config%d:%*pbl\n", fmt->config, 64, &fmt->field);
}

#define _CMN_FORMAT_ATTR(_name, _cfg, _fld)				\