Skip to content

Commit ead98f0

Browse files
committed
Revert "ASoC: rt715-sdca: wait codec init in hw_params"
This reverts commit 47f6c5d. Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
1 parent a430a4f commit ead98f0

2 files changed

Lines changed: 12 additions & 31 deletions

File tree

sound/soc/codecs/rt715-sdca-sdw.c

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,6 @@ static int rt715_sdca_update_status(struct sdw_slave *slave,
120120
enum sdw_slave_status status)
121121
{
122122
struct rt715_sdca_priv *rt715 = dev_get_drvdata(&slave->dev);
123-
int ret;
124123

125124
/*
126125
* Perform initialization only if slave status is present and
@@ -130,29 +129,7 @@ static int rt715_sdca_update_status(struct sdw_slave *slave,
130129
return 0;
131130

132131
/* perform I/O transfers required for Slave initialization */
133-
ret = rt715_sdca_io_init(&slave->dev, slave);
134-
if (ret < 0) {
135-
dev_err(&slave->dev, "IO init failed: %d\n", ret);
136-
return ret;
137-
}
138-
139-
if (slave->unattach_request) {
140-
regcache_cache_only(rt715->regmap, false);
141-
regcache_sync_region(rt715->regmap,
142-
SDW_SDCA_CTL(FUN_JACK_CODEC, RT715_SDCA_ST_EN, RT715_SDCA_ST_CTRL,
143-
CH_00),
144-
SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_SMPU_TRIG_ST_EN,
145-
RT715_SDCA_SMPU_TRIG_ST_CTRL, CH_00));
146-
regcache_cache_only(rt715->mbq_regmap, false);
147-
regcache_sync_region(rt715->mbq_regmap, 0x2000000, 0x61020ff);
148-
regcache_sync_region(rt715->mbq_regmap,
149-
SDW_SDCA_CTL(FUN_JACK_CODEC, RT715_SDCA_ST_EN, RT715_SDCA_ST_CTRL,
150-
CH_00),
151-
SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_SMPU_TRIG_ST_EN,
152-
RT715_SDCA_SMPU_TRIG_ST_CTRL, CH_00));
153-
}
154-
155-
return ret;
132+
return rt715_sdca_io_init(&slave->dev, slave);
156133
}
157134

158135
static int rt715_sdca_read_prop(struct sdw_slave *slave)
@@ -243,18 +220,28 @@ static int rt715_dev_suspend(struct device *dev)
243220
return 0;
244221
}
245222

223+
#define RT715_PROBE_TIMEOUT 5000
224+
246225
static int rt715_dev_resume(struct device *dev)
247226
{
248227
struct sdw_slave *slave = dev_to_sdw_dev(dev);
249228
struct rt715_sdca_priv *rt715 = dev_get_drvdata(dev);
229+
unsigned long time;
250230

251231
if (!rt715->first_hw_init)
252232
return 0;
253233

254234
if (!slave->unattach_request)
255235
goto regmap_sync;
256236

257-
return 0;
237+
time = wait_for_completion_timeout(&slave->initialization_complete,
238+
msecs_to_jiffies(RT715_PROBE_TIMEOUT));
239+
if (!time) {
240+
dev_err(&slave->dev, "%s: Initialization not complete, timed out\n", __func__);
241+
sdw_show_ping_status(slave->bus, true);
242+
243+
return -ETIMEDOUT;
244+
}
258245

259246
regmap_sync:
260247
slave->unattach_request = 0;

sound/soc/codecs/rt715-sdca.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -792,8 +792,6 @@ static void rt715_sdca_shutdown(struct snd_pcm_substream *substream,
792792
snd_soc_dai_set_dma_data(dai, substream, NULL);
793793
}
794794

795-
#define RT715_PROBE_TIMEOUT 5000
796-
797795
static int rt715_sdca_pcm_hw_params(struct snd_pcm_substream *substream,
798796
struct snd_pcm_hw_params *params,
799797
struct snd_soc_dai *dai)
@@ -832,10 +830,6 @@ static int rt715_sdca_pcm_hw_params(struct snd_pcm_substream *substream,
832830
return -EINVAL;
833831
}
834832

835-
retval = sdw_slave_wait_for_initialization(rt715->slave, RT715_PROBE_TIMEOUT);
836-
if (retval < 0)
837-
return retval;
838-
839833
retval = sdw_stream_add_slave(rt715->slave, &stream_config,
840834
&port_config, 1, sdw_stream);
841835
if (retval) {

0 commit comments

Comments
 (0)