soundwire: bus: squelch error returned by mockup devices
[linux-2.6-microblaze.git] / drivers / soundwire / bus.c
index 278a4fb..1b11573 100644 (file)
@@ -390,7 +390,10 @@ sdw_nread_no_pm(struct sdw_slave *slave, u32 addr, size_t count, u8 *val)
        if (ret < 0)
                return ret;
 
-       return sdw_transfer(slave->bus, &msg);
+       ret = sdw_transfer(slave->bus, &msg);
+       if (slave->is_mockup_device)
+               ret = 0;
+       return ret;
 }
 
 static int
@@ -404,7 +407,10 @@ sdw_nwrite_no_pm(struct sdw_slave *slave, u32 addr, size_t count, const u8 *val)
        if (ret < 0)
                return ret;
 
-       return sdw_transfer(slave->bus, &msg);
+       ret = sdw_transfer(slave->bus, &msg);
+       if (slave->is_mockup_device)
+               ret = 0;
+       return ret;
 }
 
 int sdw_write_no_pm(struct sdw_slave *slave, u32 addr, u8 value)
@@ -1854,6 +1860,7 @@ void sdw_clear_slave_status(struct sdw_bus *bus, u32 request)
                if (slave->status != SDW_SLAVE_UNATTACHED) {
                        sdw_modify_slave_status(slave, SDW_SLAVE_UNATTACHED);
                        slave->first_interrupt_done = false;
+                       sdw_update_slave_status(slave, SDW_SLAVE_UNATTACHED);
                }
 
                /* keep track of request, used in pm_runtime resume */