Commit 4830bfa2 authored by Srinivas Kandagatla's avatar Srinivas Kandagatla Committed by Vinod Koul
Browse files

soundwire: qcom: set clk stop need reset flag at runtime



WSA Soundwire controller needs an full reset if clock stop support
is not available in slave devices. WSA881x does not support clock stop
however WSA883x supports clock stop.

Make setting this flag at runtime to address above issue.

Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20230525133812.30841-5-srinivas.kandagatla@linaro.org


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 671ca2ef
Loading
Loading
Loading
Loading
+4 −9
Original line number Diff line number Diff line
@@ -614,10 +614,14 @@ static int qcom_swrm_enumerate(struct sdw_bus *bus)

		sdw_extract_slave_id(bus, addr, &id);
		found = false;
		ctrl->clock_stop_not_supported = false;
		/* Now compare with entries */
		list_for_each_entry_safe(slave, _s, &bus->slaves, node) {
			if (sdw_compare_devid(slave, id) == 0) {
				qcom_swrm_set_slave_dev_num(bus, slave, i);
				if (slave->prop.clk_stop_mode1)
					ctrl->clock_stop_not_supported = true;

				found = true;
				break;
			}
@@ -1620,15 +1624,6 @@ static int qcom_swrm_probe(struct platform_device *pdev)
	pm_runtime_set_active(dev);
	pm_runtime_enable(dev);

	/* Clk stop is not supported on WSA Soundwire masters */
	if (ctrl->version <= SWRM_VERSION_1_3_0) {
		ctrl->clock_stop_not_supported = true;
	} else {
		ctrl->reg_read(ctrl, SWRM_COMP_MASTER_ID, &val);
		if (val == MASTER_ID_WSA)
			ctrl->clock_stop_not_supported = true;
	}

#ifdef CONFIG_DEBUG_FS
	ctrl->debugfs = debugfs_create_dir("qualcomm-sdw", ctrl->bus.debugfs);
	debugfs_create_file("qualcomm-registers", 0400, ctrl->debugfs, ctrl,