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