diff mbox

[V2] ASoC: dwc: I2S Controller instance param added

Message ID 1521529942-21262-1-git-send-email-Vijendar.Mukunda@amd.com (mailing list archive)
State New, archived
Headers show

Commit Message

Vijendar Mukunda March 20, 2018, 7:12 a.m. UTC
When multiple I2S controller instances created,
i2s_instance parameter refers to i2s controller instance value.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
---
v1->v2: defined I2S instance macros in designware header file
 include/sound/designware_i2s.h | 6 ++++++
 sound/soc/dwc/dwc-i2s.c        | 1 +
 sound/soc/dwc/local.h          | 1 +
 3 files changed, 8 insertions(+)

Comments

Vijendar Mukunda March 23, 2018, 5:53 a.m. UTC | #1
On Tuesday 20 March 2018 12:42 PM, Vijendar Mukunda wrote:
> When multiple I2S controller instances created,
> i2s_instance parameter refers to i2s controller instance value.
> 
> Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
> ---
> v1->v2: defined I2S instance macros in designware header file
>   include/sound/designware_i2s.h | 6 ++++++
>   sound/soc/dwc/dwc-i2s.c        | 1 +
>   sound/soc/dwc/local.h          | 1 +
>   3 files changed, 8 insertions(+)
> 
> diff --git a/include/sound/designware_i2s.h b/include/sound/designware_i2s.h
> index 830f5ca..8113759 100644
> --- a/include/sound/designware_i2s.h
> +++ b/include/sound/designware_i2s.h
> @@ -44,6 +44,10 @@ struct i2s_platform_data {
>   	int channel;
>   	u32 snd_fmts;
>   	u32 snd_rates;
> +	/* i2s_instance parameter returns I2S controller instance value
> +	 * when multiple I2S controllers instantiated
> +	 */
> +	u32 i2s_instance;
>   
>   	#define DW_I2S_QUIRK_COMP_REG_OFFSET	(1 << 0)
>   	#define DW_I2S_QUIRK_COMP_PARAM1	(1 << 1)
> @@ -74,5 +78,7 @@ struct i2s_dma_data {
>   #define FOUR_CHANNEL_SUPPORT	4	/* up to 3.1 */
>   #define SIX_CHANNEL_SUPPORT	6	/* up to 5.1 */
>   #define EIGHT_CHANNEL_SUPPORT	8	/* up to 7.1 */
> +#define I2S_SP_INSTANCE		1
> +#define I2S_BT_INSTANCE		2
>   
>   #endif /*  __SOUND_DESIGNWARE_I2S_H */
> diff --git a/sound/soc/dwc/dwc-i2s.c b/sound/soc/dwc/dwc-i2s.c
> index e27e21f..20145c0 100644
> --- a/sound/soc/dwc/dwc-i2s.c
> +++ b/sound/soc/dwc/dwc-i2s.c
> @@ -549,6 +549,7 @@ static int dw_configure_dai_by_pd(struct dw_i2s_dev *dev,
>   
>   	if (dev->quirks & DW_I2S_QUIRK_16BIT_IDX_OVERRIDE)
>   		idx = 1;
> +	dev->i2s_instance = pdata->i2s_instance;
>   	/* Set DMA slaves info */
>   	dev->play_dma_data.pd.data = pdata->play_dma_data;
>   	dev->capture_dma_data.pd.data = pdata->capture_dma_data;
> diff --git a/sound/soc/dwc/local.h b/sound/soc/dwc/local.h
> index 91dc70a..e89e464 100644
> --- a/sound/soc/dwc/local.h
> +++ b/sound/soc/dwc/local.h
> @@ -98,6 +98,7 @@ struct dw_i2s_dev {
>   	u32 ccr;
>   	u32 xfer_resolution;
>   	u32 fifo_th;
> +	u32 i2s_instance;
>   
>   	/* data related to DMA transfers b/w i2s and DMAC */
>   	union dw_i2s_snd_dma_data play_dma_data;
> 

Hi Mark,

Could you please review the patch.

Thanks,
Vijendar
diff mbox

Patch

diff --git a/include/sound/designware_i2s.h b/include/sound/designware_i2s.h
index 830f5ca..8113759 100644
--- a/include/sound/designware_i2s.h
+++ b/include/sound/designware_i2s.h
@@ -44,6 +44,10 @@  struct i2s_platform_data {
 	int channel;
 	u32 snd_fmts;
 	u32 snd_rates;
+	/* i2s_instance parameter returns I2S controller instance value
+	 * when multiple I2S controllers instantiated
+	 */
+	u32 i2s_instance;
 
 	#define DW_I2S_QUIRK_COMP_REG_OFFSET	(1 << 0)
 	#define DW_I2S_QUIRK_COMP_PARAM1	(1 << 1)
@@ -74,5 +78,7 @@  struct i2s_dma_data {
 #define FOUR_CHANNEL_SUPPORT	4	/* up to 3.1 */
 #define SIX_CHANNEL_SUPPORT	6	/* up to 5.1 */
 #define EIGHT_CHANNEL_SUPPORT	8	/* up to 7.1 */
+#define I2S_SP_INSTANCE		1
+#define I2S_BT_INSTANCE		2
 
 #endif /*  __SOUND_DESIGNWARE_I2S_H */
diff --git a/sound/soc/dwc/dwc-i2s.c b/sound/soc/dwc/dwc-i2s.c
index e27e21f..20145c0 100644
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
@@ -549,6 +549,7 @@  static int dw_configure_dai_by_pd(struct dw_i2s_dev *dev,
 
 	if (dev->quirks & DW_I2S_QUIRK_16BIT_IDX_OVERRIDE)
 		idx = 1;
+	dev->i2s_instance = pdata->i2s_instance;
 	/* Set DMA slaves info */
 	dev->play_dma_data.pd.data = pdata->play_dma_data;
 	dev->capture_dma_data.pd.data = pdata->capture_dma_data;
diff --git a/sound/soc/dwc/local.h b/sound/soc/dwc/local.h
index 91dc70a..e89e464 100644
--- a/sound/soc/dwc/local.h
+++ b/sound/soc/dwc/local.h
@@ -98,6 +98,7 @@  struct dw_i2s_dev {
 	u32 ccr;
 	u32 xfer_resolution;
 	u32 fifo_th;
+	u32 i2s_instance;
 
 	/* data related to DMA transfers b/w i2s and DMAC */
 	union dw_i2s_snd_dma_data play_dma_data;