@@ -253,19 +253,24 @@ static irqreturn_t netup_unidvb_isr(int irq, void *dev_id)
253
253
if ((reg40 & AVL_IRQ_ASSERTED ) != 0 ) {
254
254
/* IRQ is being signaled */
255
255
reg_isr = readw (ndev -> bmmio0 + REG_ISR );
256
- if (reg_isr & NETUP_UNIDVB_IRQ_I2C0 ) {
257
- iret = netup_i2c_interrupt (& ndev -> i2c [0 ]);
258
- } else if (reg_isr & NETUP_UNIDVB_IRQ_I2C1 ) {
259
- iret = netup_i2c_interrupt (& ndev -> i2c [1 ]);
260
- } else if (reg_isr & NETUP_UNIDVB_IRQ_SPI ) {
256
+ if (reg_isr & NETUP_UNIDVB_IRQ_SPI )
261
257
iret = netup_spi_interrupt (ndev -> spi );
262
- } else if (reg_isr & NETUP_UNIDVB_IRQ_DMA1 ) {
263
- iret = netup_dma_interrupt (& ndev -> dma [0 ]);
264
- } else if (reg_isr & NETUP_UNIDVB_IRQ_DMA2 ) {
265
- iret = netup_dma_interrupt (& ndev -> dma [1 ]);
266
- } else if (reg_isr & NETUP_UNIDVB_IRQ_CI ) {
267
- iret = netup_ci_interrupt (ndev );
258
+ else if (!ndev -> old_fw ) {
259
+ if (reg_isr & NETUP_UNIDVB_IRQ_I2C0 ) {
260
+ iret = netup_i2c_interrupt (& ndev -> i2c [0 ]);
261
+ } else if (reg_isr & NETUP_UNIDVB_IRQ_I2C1 ) {
262
+ iret = netup_i2c_interrupt (& ndev -> i2c [1 ]);
263
+ } else if (reg_isr & NETUP_UNIDVB_IRQ_DMA1 ) {
264
+ iret = netup_dma_interrupt (& ndev -> dma [0 ]);
265
+ } else if (reg_isr & NETUP_UNIDVB_IRQ_DMA2 ) {
266
+ iret = netup_dma_interrupt (& ndev -> dma [1 ]);
267
+ } else if (reg_isr & NETUP_UNIDVB_IRQ_CI ) {
268
+ iret = netup_ci_interrupt (ndev );
269
+ } else {
270
+ goto err ;
271
+ }
268
272
} else {
273
+ err :
269
274
dev_err (& pci_dev -> dev ,
270
275
"%s(): unknown interrupt 0x%x\n" ,
271
276
__func__ , reg_isr );
0 commit comments