是因为sound/soc/lpc3xxx/lpc3xxx-pcm.c文件的
lpc3xxx_pcm_hw_free函数的
lpc32xx_dma_ch_put(prtd->dmach);调用引起的,原因是
arch/arm/mach-lpc32xx/dma-lpc32xx.c文件的
lpc32xx_dma_ch_put函数使用了spin_lock_irq,修改为如下
85 static inline void __dma_regs_lock(void)
86 {
87     atomic_spin_lock_irq(&dma_lock);
88 }
89
90 static inline void __dma_regs_unlock(void)
91 {
92     atomic_spin_unlock_irq(&dma_lock);
93 }
全部问题都解决!
 
                    
                     
                    
                 
                    
                
 
 是因为sound/soc/lpc3xxx/lpc3xxx-pcm.c文件的
lpc3xxx_pcm_hw_free函数的
lpc32xx_dma_ch_put(prtd-dmach);调用引起的,原因是
arch/arm/mach-lpc32xx/dma-lpc32xx.c文件的
lpc32xx_dma_ch_put函数使用了spin_lock_irq,修改为如下
 85 static inline void __dma_regs_lock(void)
 86 {
 87     atomic_spin_lock_irq(&dma_lock);
 88 }
 89
 90 static inline void __dma_regs_unlock(void)
 91 {
 92     atomic_spin_unlock_irq(&d
是因为sound/soc/lpc3xxx/lpc3xxx-pcm.c文件的
lpc3xxx_pcm_hw_free函数的
lpc32xx_dma_ch_put(prtd-dmach);调用引起的,原因是
arch/arm/mach-lpc32xx/dma-lpc32xx.c文件的
lpc32xx_dma_ch_put函数使用了spin_lock_irq,修改为如下
 85 static inline void __dma_regs_lock(void)
 86 {
 87     atomic_spin_lock_irq(&dma_lock);
 88 }
 89
 90 static inline void __dma_regs_unlock(void)
 91 {
 92     atomic_spin_unlock_irq(&d
    
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号