Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 308004
b: refs/heads/master
c: 2603915
h: refs/heads/master
v: v3
  • Loading branch information
Ricardo Neri authored and Liam Girdwood committed May 22, 2012
1 parent c051942 commit 292364f
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0ff5ee871ff18bb5b66a81353aac1db7e9399d95
refs/heads/master: 2603915336352e5491c02b0befa3b890ea13d6ef
28 changes: 19 additions & 9 deletions trunk/sound/soc/omap/omap-hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,8 @@

#define DRV_NAME "omap-hdmi-audio-dai"

static struct omap_pcm_dma_data omap_hdmi_dai_dma_params = {
.name = "HDMI playback",
.sync_mode = OMAP_DMA_SYNC_PACKET,
struct hdmi_priv {
struct omap_pcm_dma_data dma_params;
};

static int omap_hdmi_dai_startup(struct snd_pcm_substream *substream,
Expand All @@ -62,23 +61,24 @@ static int omap_hdmi_dai_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai)
{
struct hdmi_priv *priv = snd_soc_dai_get_drvdata(dai);
int err = 0;

switch (params_format(params)) {
case SNDRV_PCM_FORMAT_S16_LE:
omap_hdmi_dai_dma_params.packet_size = 16;
priv->dma_params.packet_size = 16;
break;
case SNDRV_PCM_FORMAT_S24_LE:
omap_hdmi_dai_dma_params.packet_size = 32;
priv->dma_params.packet_size = 32;
break;
default:
err = -EINVAL;
}

omap_hdmi_dai_dma_params.data_type = OMAP_DMA_DATA_TYPE_S32;
priv->dma_params.data_type = OMAP_DMA_DATA_TYPE_S32;

snd_soc_dai_set_dma_data(dai, substream,
&omap_hdmi_dai_dma_params);
&priv->dma_params);

return err;
}
Expand All @@ -102,14 +102,21 @@ static __devinit int omap_hdmi_probe(struct platform_device *pdev)
{
int ret;
struct resource *hdmi_rsrc;
struct hdmi_priv *hdmi_data;

hdmi_data = devm_kzalloc(&pdev->dev, sizeof(*hdmi_data), GFP_KERNEL);
if (hdmi_data == NULL) {
dev_err(&pdev->dev, "Cannot allocate memory for HDMI data\n");
return -ENOMEM;
}

hdmi_rsrc = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!hdmi_rsrc) {
dev_err(&pdev->dev, "Cannot obtain IORESOURCE_MEM HDMI\n");
return -ENODEV;
}

omap_hdmi_dai_dma_params.port_addr = hdmi_rsrc->start
hdmi_data->dma_params.port_addr = hdmi_rsrc->start
+ OMAP_HDMI_AUDIO_DMA_PORT;

hdmi_rsrc = platform_get_resource(pdev, IORESOURCE_DMA, 0);
Expand All @@ -118,8 +125,11 @@ static __devinit int omap_hdmi_probe(struct platform_device *pdev)
return -ENODEV;
}

omap_hdmi_dai_dma_params.dma_req = hdmi_rsrc->start;
hdmi_data->dma_params.dma_req = hdmi_rsrc->start;
hdmi_data->dma_params.name = "HDMI playback";
hdmi_data->dma_params.sync_mode = OMAP_DMA_SYNC_PACKET;

dev_set_drvdata(&pdev->dev, hdmi_data);
ret = snd_soc_register_dai(&pdev->dev, &omap_hdmi_dai);
return ret;
}
Expand Down

0 comments on commit 292364f

Please sign in to comment.