On 26-11-20, 09:52, Vinod Koul wrote:
@@ -154,7 +163,12 @@ int sdw_master_device_add(struct sdw_bus *bus,
struct device *parent,
bus->dev = &md->dev; bus->md = md;
- pm_runtime_set_autosuspend_delay(&bus->md->dev,
SDW_MASTER_SUSPEND_DELAY_MS);
- pm_runtime_use_autosuspend(&bus->md->dev);
- pm_runtime_mark_last_busy(&bus->md->dev);
- pm_runtime_set_active(&bus->md->dev); pm_runtime_enable(&bus->md->dev);
- pm_runtime_idle(&bus->md->dev);
I understand that this needs to be done somewhere but is the core the right place. In intel case it maybe a dummy device but other controllers are real devices and may not support pm.
I think better idea would be to do this in respective driver.. that way it would be an opt-in for device supporting pm.
Should it be put in the same place as pm_runtime_enable? IMHO, pm_runtime_enable is in the core already and it seems to be harmless for devices which don't support pm. And pm can still be optional on md's parent device.
For intel case yes, but world is not only intel, there are md which do not have a parent like sof. they are real sdw controller devices
Sorry I confused md with real master device ;-) I guess this patch should be okay then.. As the real parent will control.
Thanks