Exemplo n.º 1
0
void isr(void)
{
	unsigned int irqs;

	irqs = irq_pending() & irq_getmask();

	if(irqs & IRQ_UART)
		uart_isr();

	if(irqs & IRQ_TIMER0)
		time_isr();

	if(irqs & IRQ_AC97CRREQUEST)
		snd_isr_crrequest();
	if(irqs & IRQ_AC97CRREPLY)
		snd_isr_crreply();
	if(irqs & IRQ_AC97DMAR)
		snd_isr_dmar();
	if(irqs & IRQ_AC97DMAW)
		snd_isr_dmaw();

	if(irqs & IRQ_TMU)
		tmu_isr();

	if(irqs & IRQ_PFPU)
		pfpu_isr();

	irq_ack(irqs);
}
Exemplo n.º 2
0
void isr(void)
{
	unsigned int irqs;

	irqs = irq_pending() & irq_getmask();

	if(irqs & IRQ_UART)
		uart_isr();
#ifdef FIXME
	if(irqs & IRQ_TMU)
		tmu_isr();

	if(irqs & IRQ_USB)
		usb_isr();
#endif
}
Exemplo n.º 3
0
int tmu_submit_task(struct tmu_td *td)
{
	if(level >= TMU_TASKQ_SIZE) {
		printf("TMU: taskq overflow\n");
		return 0;
	}

	queue[produce] = td;
	produce = (produce + 1) & TMU_TASKQ_MASK;
	level++;

	if(cts) {
		cts = 0;
        tmu_isr(td);
		tmu_start(td);
	}

	return 1;

}
Exemplo n.º 4
0
void isr()
{
	unsigned int irqs;

	cpustats_enter();

	irqs = irq_pending() & irq_getmask();

	if(irqs & IRQ_UARTRX)
		uart_isr_rx();
	if(irqs & IRQ_UARTTX)
		uart_isr_tx();

	if(irqs & IRQ_TIMER0)
		time_isr();

	if(irqs & IRQ_AC97CRREQUEST)
		snd_isr_crrequest();
	if(irqs & IRQ_AC97CRREPLY)
		snd_isr_crreply();
	if(irqs & IRQ_AC97DMAR)
		snd_isr_dmar();
	if(irqs & IRQ_AC97DMAW)
		snd_isr_dmaw();

	if(irqs & IRQ_PFPU)
		pfpu_isr();

	if(irqs & IRQ_TMU)
		tmu_isr();
	
	if(irqs & IRQ_USB)
		usb_isr();

	cpustats_leave();
}