@@ -170,6 +170,7 @@ static int acp3x_i2s_trigger(struct snd_pcm_substream *substream,
170
170
struct snd_soc_card * card ;
171
171
struct acp3x_platform_info * pinfo ;
172
172
u32 ret , val , period_bytes , reg_val , ier_val , water_val ;
173
+ u32 buf_size , buf_reg ;
173
174
174
175
prtd = substream -> private_data ;
175
176
rtd = substream -> runtime -> private_data ;
@@ -183,6 +184,8 @@ static int acp3x_i2s_trigger(struct snd_pcm_substream *substream,
183
184
}
184
185
period_bytes = frames_to_bytes (substream -> runtime ,
185
186
substream -> runtime -> period_size );
187
+ buf_size = frames_to_bytes (substream -> runtime ,
188
+ substream -> runtime -> buffer_size );
186
189
switch (cmd ) {
187
190
case SNDRV_PCM_TRIGGER_START :
188
191
case SNDRV_PCM_TRIGGER_RESUME :
@@ -196,13 +199,15 @@ static int acp3x_i2s_trigger(struct snd_pcm_substream *substream,
196
199
mmACP_BT_TX_INTR_WATERMARK_SIZE ;
197
200
reg_val = mmACP_BTTDM_ITER ;
198
201
ier_val = mmACP_BTTDM_IER ;
202
+ buf_reg = mmACP_BT_TX_RINGBUFSIZE ;
199
203
break ;
200
204
case I2S_SP_INSTANCE :
201
205
default :
202
206
water_val =
203
207
mmACP_I2S_TX_INTR_WATERMARK_SIZE ;
204
208
reg_val = mmACP_I2STDM_ITER ;
205
209
ier_val = mmACP_I2STDM_IER ;
210
+ buf_reg = mmACP_I2S_TX_RINGBUFSIZE ;
206
211
}
207
212
} else {
208
213
switch (rtd -> i2s_instance ) {
@@ -211,16 +216,19 @@ static int acp3x_i2s_trigger(struct snd_pcm_substream *substream,
211
216
mmACP_BT_RX_INTR_WATERMARK_SIZE ;
212
217
reg_val = mmACP_BTTDM_IRER ;
213
218
ier_val = mmACP_BTTDM_IER ;
219
+ buf_reg = mmACP_BT_RX_RINGBUFSIZE ;
214
220
break ;
215
221
case I2S_SP_INSTANCE :
216
222
default :
217
223
water_val =
218
224
mmACP_I2S_RX_INTR_WATERMARK_SIZE ;
219
225
reg_val = mmACP_I2STDM_IRER ;
220
226
ier_val = mmACP_I2STDM_IER ;
227
+ buf_reg = mmACP_I2S_RX_RINGBUFSIZE ;
221
228
}
222
229
}
223
230
rv_writel (period_bytes , rtd -> acp3x_base + water_val );
231
+ rv_writel (buf_size , rtd -> acp3x_base + buf_reg );
224
232
val = rv_readl (rtd -> acp3x_base + reg_val );
225
233
val = val | BIT (0 );
226
234
rv_writel (val , rtd -> acp3x_base + reg_val );
0 commit comments