Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 342720
b: refs/heads/master
c: 943fdad
h: refs/heads/master
v: v3
  • Loading branch information
Kuninori Morimoto authored and Mark Brown committed Nov 20, 2012
1 parent 309bc8e commit efe9cef
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 8 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: 40f9118bd140ce949a38c1a8cbd6105c38e90478
refs/heads/master: 943fdadc17962b7ca6fa28167d1077b383dead4b
22 changes: 15 additions & 7 deletions trunk/sound/soc/sh/fsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1991,15 +1991,16 @@ static struct snd_soc_platform_driver fsi_soc_platform = {
/*
* platform function
*/
static void fsi_handler_init(struct fsi_priv *fsi)
static void fsi_handler_init(struct fsi_priv *fsi,
struct sh_fsi_port_info *info)
{
fsi->playback.handler = &fsi_pio_push_handler; /* default PIO */
fsi->playback.priv = fsi;
fsi->capture.handler = &fsi_pio_pop_handler; /* default PIO */
fsi->capture.priv = fsi;

if (fsi->info->tx_id) {
fsi->playback.slave.shdma_slave.slave_id = fsi->info->tx_id;
if (info->tx_id) {
fsi->playback.slave.shdma_slave.slave_id = info->tx_id;
fsi->playback.handler = &fsi_dma_push_handler;
}
}
Expand All @@ -2009,11 +2010,16 @@ static int fsi_probe(struct platform_device *pdev)
struct fsi_master *master;
const struct platform_device_id *id_entry;
struct sh_fsi_platform_info *info = pdev->dev.platform_data;
struct sh_fsi_port_info nul_info, *pinfo;
struct fsi_priv *fsi;
struct resource *res;
unsigned int irq;
int ret;

nul_info.flags = 0;
nul_info.tx_id = 0;
nul_info.rx_id = 0;

id_entry = pdev->id_entry;
if (!id_entry) {
dev_err(&pdev->dev, "unknown fsi device\n");
Expand Down Expand Up @@ -2046,23 +2052,25 @@ static int fsi_probe(struct platform_device *pdev)
spin_lock_init(&master->lock);

/* FSI A setting */
pinfo = (info) ? &info->port_a : &nul_info;
fsi = &master->fsia;
fsi->base = master->base;
fsi->master = master;
fsi->info = &info->port_a;
fsi_handler_init(fsi);
fsi->info = pinfo;
fsi_handler_init(fsi, pinfo);
ret = fsi_stream_probe(fsi, &pdev->dev);
if (ret < 0) {
dev_err(&pdev->dev, "FSIA stream probe failed\n");
return ret;
}

/* FSI B setting */
pinfo = (info) ? &info->port_b : &nul_info;
fsi = &master->fsib;
fsi->base = master->base + 0x40;
fsi->master = master;
fsi->info = &info->port_b;
fsi_handler_init(fsi);
fsi->info = pinfo;
fsi_handler_init(fsi, pinfo);
ret = fsi_stream_probe(fsi, &pdev->dev);
if (ret < 0) {
dev_err(&pdev->dev, "FSIB stream probe failed\n");
Expand Down

0 comments on commit efe9cef

Please sign in to comment.