soc: qcom: stats: Populate all subsystem debugfs files
authorStephen Boyd <swboyd@chromium.org>
Thu, 19 Jan 2023 03:23:29 +0000 (19:23 -0800)
committerBjorn Andersson <andersson@kernel.org>
Mon, 6 Feb 2023 20:13:30 +0000 (12:13 -0800)
commitacdbf5f9b2c492505145f6e50c65418521a547c4
tree344bd51e1a7ce3e45de2196c0720cdea1e2ce6bc
parent22b0e764c1b41ee75d7ee76287746a65727aa78a
soc: qcom: stats: Populate all subsystem debugfs files

This driver relies on SMEM to populate items for each subsystem before
the device probes. The items in SMEM that are being looked for are
populated by the subsystems lazily, and therefore may not exist until
the device has booted. For example, if I build this driver into the
kernel on Trogdor Lazor and boot up, I don't see a 'modem' debugfs file
populated, because the modem boots and populates the SMEM item after
this driver probes.

Always populate the files for the subsystems if they're in SMEM, and
make the qcom_subsystem_sleep_stats_show() function return 0 if the SMEM
items still isn't there. This way we can run a simple command like

grep ^ /sys/kernel/debug/qcom_stats/*

and collect the subsystem sleep stats without interspersed errors or
missing details entirely because this driver probed first.

Fixes: 1d7724690344 ("soc: qcom: Add Sleep stats driver")
Cc: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230119032329.2909383-1-swboyd@chromium.org
drivers/soc/qcom/qcom_stats.c