{
struct sdw_slave *slave = dev_to_sdw_dev(dev);
struct tas2783_prv *tas_dev = dev_get_drvdata(dev);
- unsigned long t;
-
- if (!slave->unattach_request)
- goto regmap_sync;
-
- t = wait_for_completion_timeout(&slave->initialization_complete,
- msecs_to_jiffies(TAS2783_PROBE_TIMEOUT));
- if (!t) {
- dev_err(&slave->dev, "resume: initialization timed out\n");
- sdw_show_ping_status(slave->bus, true);
- return -ETIMEDOUT;
- }
+ int ret;
- slave->unattach_request = 0;
+ ret = sdw_slave_wait_for_init(slave, TAS2783_PROBE_TIMEOUT);
+ if (ret)
+ return ret;
-regmap_sync:
regcache_cache_only(tas_dev->regmap, false);
regcache_sync(tas_dev->regmap);
return 0;