Browse Source

ASoC: ux500: Set DMA address during device init

Add a field with the tx/rx register address to the DMA parameters
structure, and set it to the correct address during device
initialization.

This address used to be hardcoded in the DMA controller driver, it now
needs to be explicitly figured out by the device driver.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
Fabio Baltieri 12 years ago
parent
commit
20413113ff
2 changed files with 4 additions and 0 deletions
  1. 3 0
      sound/soc/ux500/ux500_msp_i2s.c
  2. 1 0
      sound/soc/ux500/ux500_msp_i2s.h

+ 3 - 0
sound/soc/ux500/ux500_msp_i2s.c

@@ -685,6 +685,9 @@ int ux500_msp_i2s_init_msp(struct platform_device *pdev,
 		return -ENOMEM;
 	}
 
+	msp->playback_dma_data.tx_rx_addr = res->start + MSP_DR;
+	msp->capture_dma_data.tx_rx_addr = res->start + MSP_DR;
+
 	msp->registers = devm_ioremap(&pdev->dev, res->start,
 				      resource_size(res));
 	if (msp->registers == NULL) {

+ 1 - 0
sound/soc/ux500/ux500_msp_i2s.h

@@ -470,6 +470,7 @@ struct ux500_msp_config {
 
 struct ux500_msp_dma_params {
 	unsigned int data_size;
+	dma_addr_t tx_rx_addr;
 	struct stedma40_chan_cfg *dma_cfg;
 };