diff options
Diffstat (limited to 'drivers/soundwire/bus.c')
-rw-r--r-- | drivers/soundwire/bus.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/drivers/soundwire/bus.c b/drivers/soundwire/bus.c index fe745830a261..376505f34c38 100644 --- a/drivers/soundwire/bus.c +++ b/drivers/soundwire/bus.c @@ -78,7 +78,7 @@ int sdw_add_bus_master(struct sdw_bus *bus) if (IS_ENABLED(CONFIG_ACPI) && ACPI_HANDLE(bus->dev)) ret = sdw_acpi_find_slaves(bus); else - ret = -ENOTSUPP; /* No ACPI/DT so error out */ + ret = sdw_of_find_slaves(bus); if (ret) { dev_err(bus->dev, "Finding slaves failed:%d\n", ret); @@ -326,9 +326,11 @@ int sdw_nread(struct sdw_slave *slave, u32 addr, size_t count, u8 *val) if (ret < 0) return ret; - ret = pm_runtime_get_sync(slave->bus->dev); - if (ret < 0) - return ret; + if (pm_runtime_enabled(slave->bus->dev)) { + ret = pm_runtime_get_sync(slave->bus->dev); + if (ret < 0) + return ret; + } ret = sdw_transfer(slave->bus, &msg); pm_runtime_put(slave->bus->dev); @@ -354,9 +356,11 @@ int sdw_nwrite(struct sdw_slave *slave, u32 addr, size_t count, u8 *val) if (ret < 0) return ret; - ret = pm_runtime_get_sync(slave->bus->dev); - if (ret < 0) - return ret; + if (pm_runtime_enabled(slave->bus->dev)) { + ret = pm_runtime_get_sync(slave->bus->dev); + if (ret < 0) + return ret; + } ret = sdw_transfer(slave->bus, &msg); pm_runtime_put(slave->bus->dev); @@ -600,7 +604,7 @@ int sdw_configure_dpn_intr(struct sdw_slave *slave, u32 addr; int ret; u8 val = 0; - +return 0; //HACK to not setup interrupts addr = SDW_DPN_INTMASK(port); /* Set/Clear port ready interrupt mask */ @@ -625,7 +629,7 @@ static int sdw_initialize_slave(struct sdw_slave *slave) struct sdw_slave_prop *prop = &slave->prop; int ret; u8 val; - +return 0; //HACK to not setup interrupts /* * Set bus clash, parity and SCP implementation * defined interrupt mask |