diff --git a/sound/soc/codecs/es9356.c b/sound/soc/codecs/es9356.c index 78fddd9d0171..670e918b56a4 100644 --- a/sound/soc/codecs/es9356.c +++ b/sound/soc/codecs/es9356.c @@ -1105,24 +1105,15 @@ static int es9356_sdca_dev_resume(struct device *dev) { struct sdw_slave *slave = dev_to_sdw_dev(dev); struct es9356_sdw_priv *es9356 = dev_get_drvdata(dev); - unsigned long time; + int ret; - if (!slave->unattach_request) { + if (!slave->unattach_request) es9356->disable_irq = false; - goto regmap_sync; - } - time = wait_for_completion_timeout(&slave->initialization_complete, - msecs_to_jiffies(es9356_PROBE_TIMEOUT)); - if (!time) { - dev_err(&slave->dev, "Initialization not complete, timed out\n"); - sdw_show_ping_status(slave->bus, true); + ret = sdw_slave_wait_for_init(slave, es9356_PROBE_TIMEOUT); + if (ret) + return ret; - return -ETIMEDOUT; - } - -regmap_sync: - slave->unattach_request = 0; regcache_cache_only(es9356->regmap, false); regcache_sync(es9356->regmap); return 0;