soundwire: master: enable pm runtime
authorBard Liao <yung-chuan.liao@linux.intel.com>
Sun, 26 Jul 2020 21:59:45 +0000 (05:59 +0800)
committerVinod Koul <vkoul@kernel.org>
Mon, 17 Aug 2020 06:34:48 +0000 (12:04 +0530)
The hierarchy of soundwire devices is platform device -> M device -> S
device. A S device is physically attached on the platform device. So the
platform device should be resumed when a S device is resumed. As the
bridge of platform device and S device, we have to implement runtime pm
on M driver. We have set runtime pm ops in M driver already, but still
need to enable runtime pm.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200726215945.3119-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/master.c

index 5f0b218..3488bb8 100644 (file)
@@ -154,6 +154,7 @@ int sdw_master_device_add(struct sdw_bus *bus, struct device *parent,
        bus->dev = &md->dev;
        bus->md = md;
 
+       pm_runtime_enable(&bus->md->dev);
 device_register_err:
        return ret;
 }
@@ -166,6 +167,7 @@ device_register_err:
  */
 int sdw_master_device_del(struct sdw_bus *bus)
 {
+       pm_runtime_disable(&bus->md->dev);
        device_unregister(bus->dev);
 
        return 0;