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