Commit 0155aaf9 authored by Abel Vesa's avatar Abel Vesa Committed by Ulf Hansson
Browse files

PM: domains: Add the domain HW-managed mode to the summary



Now that genpd supports dynamically switching the control for an
attached device between hardware- and software-mode, let's add this
information to the genpd summary under managed by column in debugfs.

Suggested-by: default avatarTaniya Das <quic_tdas@quicinc.com>
Signed-off-by: default avatarAbel Vesa <abel.vesa@linaro.org>
Signed-off-by: default avatarJagadeesh Kona <quic_jkona@quicinc.com>
Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: default avatarBjorn Andersson <andersson@kernel.org>
Reviewed-by: default avatarDhruva Gole <d-gole@ti.com>
Reviewed-by: default avatarTaniya Das <quic_tdas@quicinc.com>
Link: https://lore.kernel.org/r/20240624044809.17751-3-quic_jkona@quicinc.com


Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 95f6454d
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -3184,6 +3184,15 @@ static void rtpm_status_str(struct seq_file *s, struct device *dev)
	seq_printf(s, "%-25s  ", p);
}

static void mode_status_str(struct seq_file *s, struct device *dev)
{
	struct generic_pm_domain_data *gpd_data;

	gpd_data = to_gpd_data(dev->power.subsys_data->domain_data);

	seq_printf(s, "%20s", gpd_data->hw_mode ? "HW" : "SW");
}

static void perf_status_str(struct seq_file *s, struct device *dev)
{
	struct generic_pm_domain_data *gpd_data;
@@ -3242,6 +3251,7 @@ static int genpd_summary_one(struct seq_file *s,
		seq_printf(s, "\n    %-50s  ", kobj_path);
		rtpm_status_str(s, pm_data->dev);
		perf_status_str(s, pm_data->dev);
		mode_status_str(s, pm_data->dev);
		kfree(kobj_path);
	}

@@ -3258,8 +3268,8 @@ static int summary_show(struct seq_file *s, void *data)
	int ret = 0;

	seq_puts(s, "domain                          status          children                           performance\n");
	seq_puts(s, "    /device                                             runtime status\n");
	seq_puts(s, "----------------------------------------------------------------------------------------------\n");
	seq_puts(s, "    /device                                             runtime status                           managed by\n");
	seq_puts(s, "------------------------------------------------------------------------------------------------------------\n");

	ret = mutex_lock_interruptible(&gpd_list_lock);
	if (ret)