提交 1f04128a 编写于 作者: T Takashi Iwai

ALSA: hda - Convert from takslet_hi_schedule() to tasklet_schedule()

Replace all tasklet_hi_schedule() callers with the normal
tasklet_schedule().  The former often causes troubles with
RT-kernels, and has actually no merit.
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
上级 8b1fae4e
...@@ -151,7 +151,7 @@ static inline void snd_rawmidi_output_trigger(struct snd_rawmidi_substream *subs ...@@ -151,7 +151,7 @@ static inline void snd_rawmidi_output_trigger(struct snd_rawmidi_substream *subs
if (!substream->opened) if (!substream->opened)
return; return;
if (up) { if (up) {
tasklet_hi_schedule(&substream->runtime->tasklet); tasklet_schedule(&substream->runtime->tasklet);
} else { } else {
tasklet_kill(&substream->runtime->tasklet); tasklet_kill(&substream->runtime->tasklet);
substream->ops->trigger(substream, 0); substream->ops->trigger(substream, 0);
...@@ -908,7 +908,7 @@ int snd_rawmidi_receive(struct snd_rawmidi_substream *substream, ...@@ -908,7 +908,7 @@ int snd_rawmidi_receive(struct snd_rawmidi_substream *substream,
} }
if (result > 0) { if (result > 0) {
if (runtime->event) if (runtime->event)
tasklet_hi_schedule(&runtime->tasklet); tasklet_schedule(&runtime->tasklet);
else if (snd_rawmidi_ready(substream)) else if (snd_rawmidi_ready(substream))
wake_up(&runtime->sleep); wake_up(&runtime->sleep);
} }
......
...@@ -118,7 +118,7 @@ static void rtctimer_tasklet(unsigned long data) ...@@ -118,7 +118,7 @@ static void rtctimer_tasklet(unsigned long data)
*/ */
static void rtctimer_interrupt(void *private_data) static void rtctimer_interrupt(void *private_data)
{ {
tasklet_hi_schedule(private_data); tasklet_schedule(private_data);
} }
......
...@@ -743,7 +743,7 @@ void snd_timer_interrupt(struct snd_timer * timer, unsigned long ticks_left) ...@@ -743,7 +743,7 @@ void snd_timer_interrupt(struct snd_timer * timer, unsigned long ticks_left)
spin_unlock_irqrestore(&timer->lock, flags); spin_unlock_irqrestore(&timer->lock, flags);
if (use_tasklet) if (use_tasklet)
tasklet_hi_schedule(&timer->task_queue); tasklet_schedule(&timer->task_queue);
} }
/* /*
......
...@@ -548,7 +548,7 @@ irqreturn_t snd_vx_irq_handler(int irq, void *dev) ...@@ -548,7 +548,7 @@ irqreturn_t snd_vx_irq_handler(int irq, void *dev)
(chip->chip_status & VX_STAT_IS_STALE)) (chip->chip_status & VX_STAT_IS_STALE))
return IRQ_NONE; return IRQ_NONE;
if (! vx_test_and_ack(chip)) if (! vx_test_and_ack(chip))
tasklet_hi_schedule(&chip->tq); tasklet_schedule(&chip->tq);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
...@@ -823,7 +823,7 @@ static int vx_pcm_trigger(struct snd_pcm_substream *subs, int cmd) ...@@ -823,7 +823,7 @@ static int vx_pcm_trigger(struct snd_pcm_substream *subs, int cmd)
* we trigger the pipe using tasklet, so that the interrupts are * we trigger the pipe using tasklet, so that the interrupts are
* issued surely after the trigger is completed. * issued surely after the trigger is completed.
*/ */
tasklet_hi_schedule(&pipe->start_tq); tasklet_schedule(&pipe->start_tq);
chip->pcm_running++; chip->pcm_running++;
pipe->running = 1; pipe->running = 1;
break; break;
......
...@@ -1953,7 +1953,7 @@ static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id) ...@@ -1953,7 +1953,7 @@ static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id)
outw(inw(chip->io_port + 4) & 1, chip->io_port + 4); outw(inw(chip->io_port + 4) & 1, chip->io_port + 4);
if (event & ESM_HWVOL_IRQ) if (event & ESM_HWVOL_IRQ)
tasklet_hi_schedule(&chip->hwvol_tq); /* we'll do this later */ tasklet_schedule(&chip->hwvol_tq); /* we'll do this later */
/* else ack 'em all, i imagine */ /* else ack 'em all, i imagine */
outb(0xFF, chip->io_port + 0x1A); outb(0xFF, chip->io_port + 0x1A);
......
...@@ -1670,7 +1670,7 @@ static irqreturn_t snd_m3_interrupt(int irq, void *dev_id) ...@@ -1670,7 +1670,7 @@ static irqreturn_t snd_m3_interrupt(int irq, void *dev_id)
return IRQ_NONE; return IRQ_NONE;
if (status & HV_INT_PENDING) if (status & HV_INT_PENDING)
tasklet_hi_schedule(&chip->hwvol_tq); tasklet_schedule(&chip->hwvol_tq);
/* /*
* ack an assp int if its running * ack an assp int if its running
......
...@@ -550,7 +550,7 @@ irqreturn_t snd_mixart_interrupt(int irq, void *dev_id) ...@@ -550,7 +550,7 @@ irqreturn_t snd_mixart_interrupt(int irq, void *dev_id)
mgr->msg_fifo[mgr->msg_fifo_writeptr] = msg; mgr->msg_fifo[mgr->msg_fifo_writeptr] = msg;
mgr->msg_fifo_writeptr++; mgr->msg_fifo_writeptr++;
mgr->msg_fifo_writeptr %= MSG_FIFO_SIZE; mgr->msg_fifo_writeptr %= MSG_FIFO_SIZE;
tasklet_hi_schedule(&mgr->msg_taskq); tasklet_schedule(&mgr->msg_taskq);
} }
spin_unlock(&mgr->msg_lock); spin_unlock(&mgr->msg_lock);
break; break;
......
...@@ -653,7 +653,7 @@ static int pcxhr_trigger(struct snd_pcm_substream *subs, int cmd) ...@@ -653,7 +653,7 @@ static int pcxhr_trigger(struct snd_pcm_substream *subs, int cmd)
PCXHR_STREAM_STATUS_SCHEDULE_RUN; PCXHR_STREAM_STATUS_SCHEDULE_RUN;
snd_pcm_trigger_done(s, subs); snd_pcm_trigger_done(s, subs);
} }
tasklet_hi_schedule(&chip->mgr->trigger_taskq); tasklet_schedule(&chip->mgr->trigger_taskq);
} else { } else {
stream = subs->runtime->private_data; stream = subs->runtime->private_data;
snd_printdd("Only one Substream %c %d\n", snd_printdd("Only one Substream %c %d\n",
......
...@@ -1213,7 +1213,7 @@ irqreturn_t pcxhr_interrupt(int irq, void *dev_id) ...@@ -1213,7 +1213,7 @@ irqreturn_t pcxhr_interrupt(int irq, void *dev_id)
mgr->dsp_time_last = PCXHR_DSP_TIME_INVALID; mgr->dsp_time_last = PCXHR_DSP_TIME_INVALID;
mgr->src_it_dsp = reg; mgr->src_it_dsp = reg;
tasklet_hi_schedule(&mgr->msg_taskq); tasklet_schedule(&mgr->msg_taskq);
} }
#ifdef CONFIG_SND_DEBUG_VERBOSE #ifdef CONFIG_SND_DEBUG_VERBOSE
if (reg & PCXHR_FATAL_DSP_ERR) if (reg & PCXHR_FATAL_DSP_ERR)
......
...@@ -1754,7 +1754,7 @@ snd_riptide_interrupt(int irq, void *dev_id) ...@@ -1754,7 +1754,7 @@ snd_riptide_interrupt(int irq, void *dev_id)
if (IS_EOBIRQ(cif->hwport) || IS_EOSIRQ(cif->hwport) || if (IS_EOBIRQ(cif->hwport) || IS_EOSIRQ(cif->hwport) ||
IS_EOCIRQ(cif->hwport)) { IS_EOCIRQ(cif->hwport)) {
chip->handled_irqs++; chip->handled_irqs++;
tasklet_hi_schedule(&chip->riptide_tq); tasklet_schedule(&chip->riptide_tq);
} }
if (chip->rmidi && IS_MPUIRQ(cif->hwport)) { if (chip->rmidi && IS_MPUIRQ(cif->hwport)) {
chip->handled_irqs++; chip->handled_irqs++;
......
...@@ -3750,7 +3750,7 @@ static irqreturn_t snd_hdsp_interrupt(int irq, void *dev_id) ...@@ -3750,7 +3750,7 @@ static irqreturn_t snd_hdsp_interrupt(int irq, void *dev_id)
} }
} }
if (hdsp->use_midi_tasklet && schedule) if (hdsp->use_midi_tasklet && schedule)
tasklet_hi_schedule(&hdsp->midi_tasklet); tasklet_schedule(&hdsp->midi_tasklet);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
...@@ -3476,7 +3476,7 @@ static irqreturn_t snd_hdspm_interrupt(int irq, void *dev_id) ...@@ -3476,7 +3476,7 @@ static irqreturn_t snd_hdspm_interrupt(int irq, void *dev_id)
schedule = 1; schedule = 1;
} }
if (schedule) if (schedule)
tasklet_hi_schedule(&hdspm->midi_tasklet); tasklet_schedule(&hdspm->midi_tasklet);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
...@@ -41,7 +41,7 @@ irqreturn_t pdacf_interrupt(int irq, void *dev) ...@@ -41,7 +41,7 @@ irqreturn_t pdacf_interrupt(int irq, void *dev)
if (stat & PDAUDIOCF_IRQOVR) /* should never happen */ if (stat & PDAUDIOCF_IRQOVR) /* should never happen */
snd_printk(KERN_ERR "PDAUDIOCF SRAM buffer overrun detected!\n"); snd_printk(KERN_ERR "PDAUDIOCF SRAM buffer overrun detected!\n");
if (chip->pcm_substream) if (chip->pcm_substream)
tasklet_hi_schedule(&chip->tq); tasklet_schedule(&chip->tq);
if (!(stat & PDAUDIOCF_IRQAKM)) if (!(stat & PDAUDIOCF_IRQAKM))
stat |= PDAUDIOCF_IRQAKM; /* check rate */ stat |= PDAUDIOCF_IRQAKM; /* check rate */
} }
......
...@@ -880,7 +880,7 @@ static void snd_usbmidi_output_trigger(struct snd_rawmidi_substream *substream, ...@@ -880,7 +880,7 @@ static void snd_usbmidi_output_trigger(struct snd_rawmidi_substream *substream,
snd_rawmidi_transmit_ack(substream, 1); snd_rawmidi_transmit_ack(substream, 1);
return; return;
} }
tasklet_hi_schedule(&port->ep->tasklet); tasklet_schedule(&port->ep->tasklet);
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册