wip

parent 35dac372
...@@ -132,7 +132,7 @@ static inline uint32_t ft_chan_to_irq_mask(struct fmctdc_dev *ft, uint32_t chan_ ...@@ -132,7 +132,7 @@ static inline uint32_t ft_chan_to_irq_mask(struct fmctdc_dev *ft, uint32_t chan_
static void ft_irq_disable_save(struct fmctdc_dev *ft) static void ft_irq_disable_save(struct fmctdc_dev *ft)
{ {
ft->irq_imr = ft_ioread(ft, ft->ft_irq_base + TDC_EIC_REG_EIC_IMR); ft->irq_imr = ft_ioread(ft, ft->ft_irq_base + TDC_EIC_REG_EIC_IMR);
printk(KERN_INFO "race69 %s:%d: ft = %p TDC_EIC_REG_EIC_IDR, ft->irq_imr = %x\n", printk(KERN_INFO "race69[disable_Save] %s:%d: ft = %p TDC_EIC_REG_EIC_IDR, ft->irq_imr = %x\n",
__FILE__, __LINE__ , __FILE__, __LINE__ ,
ft, ft->irq_imr); ft, ft->irq_imr);
dump_stack(); dump_stack();
...@@ -146,9 +146,10 @@ static void ft_irq_disable_save(struct fmctdc_dev *ft) ...@@ -146,9 +146,10 @@ static void ft_irq_disable_save(struct fmctdc_dev *ft)
static void ft_irq_enable_restore(struct fmctdc_dev *ft) static void ft_irq_enable_restore(struct fmctdc_dev *ft)
{ {
ft_iowrite(ft, ft->irq_imr, ft->ft_irq_base + TDC_EIC_REG_EIC_IER); ft_iowrite(ft, ft->irq_imr, ft->ft_irq_base + TDC_EIC_REG_EIC_IER);
printk(KERN_INFO "race69 %s:%d: ft = %p TDC_EIC_REG_EIC_IER, ft->irq_imr = %x\n", printk(KERN_INFO "race69[enable_restore] %s:%d: ft = %p TDC_EIC_REG_EIC_IER, ft->irq_imr = %x\n",
__FILE__, __LINE__ , __FILE__, __LINE__ ,
ft, ft->irq_imr); ft, ft->irq_imr);
dump_stack();
} }
...@@ -307,8 +308,7 @@ static void ft_dma_work(struct work_struct *work) ...@@ -307,8 +308,7 @@ static void ft_dma_work(struct work_struct *work)
ft_irq_enable_restore(ft); ft_irq_enable_restore(ft);
return; return;
} }
ft_irq_disable_save(ft);
irq_stat = ft_ioread(ft, ft->ft_irq_base + TDC_EIC_REG_EIC_ISR); irq_stat = ft_ioread(ft, ft->ft_irq_base + TDC_EIC_REG_EIC_ISR);
printk("dma read %x\n", irq_stat); printk("dma read %x\n", irq_stat);
...@@ -357,7 +357,7 @@ static void ft_dma_work(struct work_struct *work) ...@@ -357,7 +357,7 @@ static void ft_dma_work(struct work_struct *work)
sizeof(struct gncore_dma_item) * ft->zdma->sgt.nents, sizeof(struct gncore_dma_item) * ft->zdma->sgt.nents,
DMA_TO_DEVICE); DMA_TO_DEVICE);
gn4124_dma_start(ft); gn4124_dma_start(ft);
ft_irq_enable_restore(ft);
return; return;
err_map: err_map:
zio_dma_free_sg(ft->zdma); zio_dma_free_sg(ft->zdma);
...@@ -536,7 +536,7 @@ static irqreturn_t ft_irq_handler_ts(int irq, void *dev_id) ...@@ -536,7 +536,7 @@ static irqreturn_t ft_irq_handler_ts(int irq, void *dev_id)
return IRQ_NONE; return IRQ_NONE;
/* Disable interrupts until we fetch all stored samples */ /* Disable interrupts until we fetch all stored samples */
ft_irq_disable_save(ft);
queue_work(ft_workqueue, &ft->ts_work); queue_work(ft_workqueue, &ft->ts_work);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment