Skip to content

Commit 16fb2a2

Browse files
saba-kareembroonie
authored andcommitted
ASoC: amd: acp: add condition check for i2s clock generation
for only PDM endpoint i2s master clock is not required. Add a condition check for the same based on chip flag value. Signed-off-by: Syed Saba Kareem <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent 57e8577 commit 16fb2a2

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

sound/soc/amd/acp/acp-rembrandt.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ static int rembrandt_audio_probe(struct platform_device *pdev)
191191
struct acp_chip_info *chip;
192192
struct acp_dev_data *adata;
193193
struct resource *res;
194+
u32 ret;
194195

195196
chip = dev_get_platdata(&pdev->dev);
196197
if (!chip || !chip->base) {
@@ -234,7 +235,12 @@ static int rembrandt_audio_probe(struct platform_device *pdev)
234235
acp_machine_select(adata);
235236

236237
dev_set_drvdata(dev, adata);
237-
acp6x_master_clock_generate(dev);
238+
239+
if (chip->flag != FLAG_AMD_LEGACY_ONLY_DMIC) {
240+
ret = acp6x_master_clock_generate(dev);
241+
if (ret)
242+
return ret;
243+
}
238244
acp_enable_interrupts(adata);
239245
acp_platform_register(dev);
240246
pm_runtime_set_autosuspend_delay(&pdev->dev, ACP_SUSPEND_DELAY_MS);
@@ -263,7 +269,9 @@ static int __maybe_unused rmb_pcm_resume(struct device *dev)
263269
snd_pcm_uframes_t buf_in_frames;
264270
u64 buf_size;
265271

266-
acp6x_master_clock_generate(dev);
272+
if (adata->flag != FLAG_AMD_LEGACY_ONLY_DMIC)
273+
acp6x_master_clock_generate(dev);
274+
267275
spin_lock(&adata->acp_lock);
268276
list_for_each_entry(stream, &adata->stream_list, list) {
269277
substream = stream->substream;

sound/soc/amd/acp/acp63.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -244,10 +244,12 @@ static int acp63_audio_probe(struct platform_device *pdev)
244244
adata->machines = snd_soc_acpi_amd_acp63_acp_machines;
245245
acp_machine_select(adata);
246246
dev_set_drvdata(dev, adata);
247-
ret = acp63_i2s_master_clock_generate(adata);
248-
if (ret)
249-
return ret;
250247

248+
if (chip->flag != FLAG_AMD_LEGACY_ONLY_DMIC) {
249+
ret = acp63_i2s_master_clock_generate(adata);
250+
if (ret)
251+
return ret;
252+
}
251253
acp_enable_interrupts(adata);
252254
acp_platform_register(dev);
253255
pm_runtime_set_autosuspend_delay(&pdev->dev, ACP_SUSPEND_DELAY_MS);
@@ -276,7 +278,9 @@ static int __maybe_unused acp63_pcm_resume(struct device *dev)
276278
snd_pcm_uframes_t buf_in_frames;
277279
u64 buf_size;
278280

279-
acp63_i2s_master_clock_generate(adata);
281+
if (adata->flag != FLAG_AMD_LEGACY_ONLY_DMIC)
282+
acp63_i2s_master_clock_generate(adata);
283+
280284
spin_lock(&adata->acp_lock);
281285
list_for_each_entry(stream, &adata->stream_list, list) {
282286
if (stream) {

0 commit comments

Comments
 (0)