Merge tag 'i3c/for-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux
[linux-2.6-microblaze.git] / drivers / soundwire / cadence_master.c
index d05442e..192dac1 100644 (file)
@@ -905,7 +905,7 @@ irqreturn_t sdw_cdns_irq(int irq, void *dev_id)
 EXPORT_SYMBOL(sdw_cdns_irq);
 
 /**
- * To update slave status in a work since we will need to handle
+ * cdns_update_slave_status_work - update slave status in a work since we will need to handle
  * other interrupts eg. CDNS_MCP_INT_RX_WL during the update slave
  * process.
  * @work: cdns worker thread
@@ -968,7 +968,7 @@ int sdw_cdns_exit_reset(struct sdw_cdns *cdns)
 EXPORT_SYMBOL(sdw_cdns_exit_reset);
 
 /**
- * sdw_cdns_enable_slave_interrupt() - Enable SDW slave interrupts
+ * cdns_enable_slave_interrupts() - Enable SDW slave interrupts
  * @cdns: Cadence instance
  * @state: boolean for true/false
  */
@@ -1450,10 +1450,12 @@ int sdw_cdns_clock_stop(struct sdw_cdns *cdns, bool block_wake)
        }
 
        /* Prepare slaves for clock stop */
-       ret = sdw_bus_prep_clk_stop(&cdns->bus);
-       if (ret < 0) {
-               dev_err(cdns->dev, "prepare clock stop failed %d", ret);
-               return ret;
+       if (slave_present) {
+               ret = sdw_bus_prep_clk_stop(&cdns->bus);
+               if (ret < 0 && ret != -ENODATA) {
+                       dev_err(cdns->dev, "prepare clock stop failed %d\n", ret);
+                       return ret;
+               }
        }
 
        /*
@@ -1462,7 +1464,7 @@ int sdw_cdns_clock_stop(struct sdw_cdns *cdns, bool block_wake)
         */
        ret = sdw_bus_clk_stop(&cdns->bus);
        if (ret < 0 && slave_present && ret != -ENODATA) {
-               dev_err(cdns->dev, "bus clock stop failed %d", ret);
+               dev_err(cdns->dev, "bus clock stop failed %d\n", ret);
                return ret;
        }