@@ -139,7 +139,7 @@ int mtk_afe_fe_hw_params(struct snd_pcm_substream *substream,
139
139
substream -> runtime -> dma_area ,
140
140
substream -> runtime -> dma_bytes );
141
141
142
- memset_io (substream -> runtime -> dma_area , 0 ,
142
+ memset_io (( void __force __iomem * ) substream -> runtime -> dma_area , 0 ,
143
143
substream -> runtime -> dma_bytes );
144
144
145
145
/* set addr */
@@ -433,11 +433,20 @@ int mtk_memif_set_addr(struct mtk_base_afe *afe, int id,
433
433
phys_buf_addr_upper_32 );
434
434
}
435
435
436
- /* set MSB to 33-bit */
437
- if (memif -> data -> msb_reg >= 0 )
436
+ /*
437
+ * set MSB to 33-bit, for memif address
438
+ * only for memif base address, if msb_end_reg exists
439
+ */
440
+ if (memif -> data -> msb_reg )
438
441
mtk_regmap_update_bits (afe -> regmap , memif -> data -> msb_reg ,
439
442
1 , msb_at_bit33 , memif -> data -> msb_shift );
440
443
444
+ /* set MSB to 33-bit, for memif end address */
445
+ if (memif -> data -> msb_end_reg )
446
+ mtk_regmap_update_bits (afe -> regmap , memif -> data -> msb_end_reg ,
447
+ 1 , msb_at_bit33 ,
448
+ memif -> data -> msb_end_shift );
449
+
441
450
return 0 ;
442
451
}
443
452
EXPORT_SYMBOL_GPL (mtk_memif_set_addr );
@@ -464,6 +473,13 @@ int mtk_memif_set_channel(struct mtk_base_afe *afe,
464
473
else
465
474
mono = (channel == 1 ) ? 1 : 0 ;
466
475
476
+ /* for specific configuration of memif mono mode */
477
+ if (memif -> data -> int_odd_flag_reg )
478
+ mtk_regmap_update_bits (afe -> regmap ,
479
+ memif -> data -> int_odd_flag_reg ,
480
+ 1 , mono ,
481
+ memif -> data -> int_odd_flag_shift );
482
+
467
483
return mtk_regmap_update_bits (afe -> regmap , memif -> data -> mono_reg ,
468
484
1 , mono , memif -> data -> mono_shift );
469
485
}
0 commit comments