Commit de07bb5b authored by Mark Brown's avatar Mark Brown

Merge remote-tracking branch 'asoc/fix/intel' into asoc-linus

parents 4c2e07c6 18f58399
...@@ -1474,6 +1474,11 @@ static int hdmi_codec_probe(struct snd_soc_codec *codec) ...@@ -1474,6 +1474,11 @@ static int hdmi_codec_probe(struct snd_soc_codec *codec)
* exit, we call pm_runtime_suspend() so that will do for us * exit, we call pm_runtime_suspend() so that will do for us
*/ */
hlink = snd_hdac_ext_bus_get_link(edev->ebus, dev_name(&edev->hdac.dev)); hlink = snd_hdac_ext_bus_get_link(edev->ebus, dev_name(&edev->hdac.dev));
if (!hlink) {
dev_err(&edev->hdac.dev, "hdac link not found\n");
return -EIO;
}
snd_hdac_ext_bus_link_get(edev->ebus, hlink); snd_hdac_ext_bus_link_get(edev->ebus, hlink);
ret = create_fill_widget_route_map(dapm); ret = create_fill_widget_route_map(dapm);
...@@ -1634,6 +1639,11 @@ static int hdac_hdmi_dev_probe(struct hdac_ext_device *edev) ...@@ -1634,6 +1639,11 @@ static int hdac_hdmi_dev_probe(struct hdac_ext_device *edev)
/* hold the ref while we probe */ /* hold the ref while we probe */
hlink = snd_hdac_ext_bus_get_link(edev->ebus, dev_name(&edev->hdac.dev)); hlink = snd_hdac_ext_bus_get_link(edev->ebus, dev_name(&edev->hdac.dev));
if (!hlink) {
dev_err(&edev->hdac.dev, "hdac link not found\n");
return -EIO;
}
snd_hdac_ext_bus_link_get(edev->ebus, hlink); snd_hdac_ext_bus_link_get(edev->ebus, hlink);
hdmi_priv = devm_kzalloc(&codec->dev, sizeof(*hdmi_priv), GFP_KERNEL); hdmi_priv = devm_kzalloc(&codec->dev, sizeof(*hdmi_priv), GFP_KERNEL);
...@@ -1744,6 +1754,11 @@ static int hdac_hdmi_runtime_suspend(struct device *dev) ...@@ -1744,6 +1754,11 @@ static int hdac_hdmi_runtime_suspend(struct device *dev)
} }
hlink = snd_hdac_ext_bus_get_link(ebus, dev_name(dev)); hlink = snd_hdac_ext_bus_get_link(ebus, dev_name(dev));
if (!hlink) {
dev_err(dev, "hdac link not found\n");
return -EIO;
}
snd_hdac_ext_bus_link_put(ebus, hlink); snd_hdac_ext_bus_link_put(ebus, hlink);
return 0; return 0;
...@@ -1765,6 +1780,11 @@ static int hdac_hdmi_runtime_resume(struct device *dev) ...@@ -1765,6 +1780,11 @@ static int hdac_hdmi_runtime_resume(struct device *dev)
return 0; return 0;
hlink = snd_hdac_ext_bus_get_link(ebus, dev_name(dev)); hlink = snd_hdac_ext_bus_get_link(ebus, dev_name(dev));
if (!hlink) {
dev_err(dev, "hdac link not found\n");
return -EIO;
}
snd_hdac_ext_bus_link_get(ebus, hlink); snd_hdac_ext_bus_link_get(ebus, hlink);
err = snd_hdac_display_power(bus, true); err = snd_hdac_display_power(bus, true);
......
...@@ -182,24 +182,29 @@ static int sst_platform_compr_trigger(struct snd_compr_stream *cstream, int cmd) ...@@ -182,24 +182,29 @@ static int sst_platform_compr_trigger(struct snd_compr_stream *cstream, int cmd)
case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_START:
if (stream->compr_ops->stream_start) if (stream->compr_ops->stream_start)
return stream->compr_ops->stream_start(sst->dev, stream->id); return stream->compr_ops->stream_start(sst->dev, stream->id);
break;
case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_STOP:
if (stream->compr_ops->stream_drop) if (stream->compr_ops->stream_drop)
return stream->compr_ops->stream_drop(sst->dev, stream->id); return stream->compr_ops->stream_drop(sst->dev, stream->id);
break;
case SND_COMPR_TRIGGER_DRAIN: case SND_COMPR_TRIGGER_DRAIN:
if (stream->compr_ops->stream_drain) if (stream->compr_ops->stream_drain)
return stream->compr_ops->stream_drain(sst->dev, stream->id); return stream->compr_ops->stream_drain(sst->dev, stream->id);
break;
case SND_COMPR_TRIGGER_PARTIAL_DRAIN: case SND_COMPR_TRIGGER_PARTIAL_DRAIN:
if (stream->compr_ops->stream_partial_drain) if (stream->compr_ops->stream_partial_drain)
return stream->compr_ops->stream_partial_drain(sst->dev, stream->id); return stream->compr_ops->stream_partial_drain(sst->dev, stream->id);
break;
case SNDRV_PCM_TRIGGER_PAUSE_PUSH: case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
if (stream->compr_ops->stream_pause) if (stream->compr_ops->stream_pause)
return stream->compr_ops->stream_pause(sst->dev, stream->id); return stream->compr_ops->stream_pause(sst->dev, stream->id);
break;
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
if (stream->compr_ops->stream_pause_release) if (stream->compr_ops->stream_pause_release)
return stream->compr_ops->stream_pause_release(sst->dev, stream->id); return stream->compr_ops->stream_pause_release(sst->dev, stream->id);
default: break;
return -EINVAL;
} }
return -EINVAL;
} }
static int sst_platform_compr_pointer(struct snd_compr_stream *cstream, static int sst_platform_compr_pointer(struct snd_compr_stream *cstream,
......
...@@ -291,6 +291,7 @@ int bxt_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq, ...@@ -291,6 +291,7 @@ int bxt_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
sst_dsp_mailbox_init(sst, (BXT_ADSP_SRAM0_BASE + SKL_ADSP_W0_STAT_SZ), sst_dsp_mailbox_init(sst, (BXT_ADSP_SRAM0_BASE + SKL_ADSP_W0_STAT_SZ),
SKL_ADSP_W0_UP_SZ, BXT_ADSP_SRAM1_BASE, SKL_ADSP_W1_SZ); SKL_ADSP_W0_UP_SZ, BXT_ADSP_SRAM1_BASE, SKL_ADSP_W1_SZ);
INIT_LIST_HEAD(&sst->module_list);
ret = skl_ipc_init(dev, skl); ret = skl_ipc_init(dev, skl);
if (ret) if (ret)
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment