static irqreturn_t cx25821_upstream_irq_audio(int irq, void *dev_id) { struct cx25821_dev *dev = dev_id; u32 audio_status; int handled = 0; struct sram_channel *sram_ch; if (!dev) return -1; sram_ch = dev->channels[dev->_audio_upstream_channel].sram_channels; audio_status = cx_read(sram_ch->int_stat); /* Only deal with our interrupt */ if (audio_status) { handled = cx25821_audio_upstream_irq(dev, dev->_audio_upstream_channel, audio_status); } if (handled < 0) cx25821_stop_upstream_audio(dev); else handled += handled; return IRQ_RETVAL(handled); }
static irqreturn_t cx25821_upstream_irq_audio(int irq, void *dev_id) { struct cx25821_dev *dev = dev_id; u32 msk_stat, audio_status; int handled = 0; struct sram_channel *sram_ch; if (!dev) return -1; sram_ch = &dev->sram_channels[dev->_audio_upstream_channel_select]; msk_stat = cx_read(sram_ch->int_mstat); audio_status = cx_read(sram_ch->int_stat); // Only deal with our interrupt if (audio_status) { handled = cx25821_audio_upstream_irq(dev, dev-> _audio_upstream_channel_select, audio_status); } if (handled < 0) { cx25821_stop_upstream_audio(dev); } else { handled += handled; } return IRQ_RETVAL(handled); }