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