diff options
Diffstat (limited to 'drivers/soundwire/cadence_master.c')
| -rw-r--r-- | drivers/soundwire/cadence_master.c | 16 | 
1 files changed, 9 insertions, 7 deletions
| diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c index d05442e646a3..192dac10f0c2 100644 --- a/drivers/soundwire/cadence_master.c +++ b/drivers/soundwire/cadence_master.c @@ -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;  	} | 
