{
struct sdw_slave *slave = dev_to_sdw_dev(dev);
struct rt711_sdca_priv *rt711 = dev_get_drvdata(dev);
- unsigned long time;
+ int ret;
if (!rt711->first_hw_init)
return 0;
rt711->disable_irq = false;
}
mutex_unlock(&rt711->disable_irq_lock);
- goto regmap_sync;
}
- time = wait_for_completion_timeout(&slave->initialization_complete,
- msecs_to_jiffies(RT711_PROBE_TIMEOUT));
- if (!time) {
- dev_err(&slave->dev, "%s: Initialization not complete, timed out\n", __func__);
- sdw_show_ping_status(slave->bus, true);
+ ret = sdw_slave_wait_for_init(slave, RT711_PROBE_TIMEOUT);
+ if (ret)
+ return ret;
- return -ETIMEDOUT;
- }
-
-regmap_sync:
- slave->unattach_request = 0;
regcache_cache_only(rt711->regmap, false);
regcache_sync(rt711->regmap);
regcache_cache_only(rt711->mbq_regmap, false);
{
struct sdw_slave *slave = dev_to_sdw_dev(dev);
struct rt711_priv *rt711 = dev_get_drvdata(dev);
- unsigned long time;
+ int ret;
if (!rt711->first_hw_init)
return 0;
rt711->disable_irq = false;
}
mutex_unlock(&rt711->disable_irq_lock);
- goto regmap_sync;
}
- time = wait_for_completion_timeout(&slave->initialization_complete,
- msecs_to_jiffies(RT711_PROBE_TIMEOUT));
- if (!time) {
- dev_err(&slave->dev, "%s: Initialization not complete, timed out\n", __func__);
- return -ETIMEDOUT;
- }
+ ret = sdw_slave_wait_for_init(slave, RT711_PROBE_TIMEOUT);
+ if (ret)
+ return ret;
-regmap_sync:
- slave->unattach_request = 0;
regcache_cache_only(rt711->regmap, false);
regcache_sync_region(rt711->regmap, 0x3000, 0x8fff);
regcache_sync_region(rt711->regmap, 0x752009, 0x752091);