Example #1
0
File: irq.c Project: cirline/ct
/**
 * irq_clear_pending - clear the irq pending
 * @channel: same as irq_init() channel
 */
void irq_clear_pending(unsigned int channel)
{
	switch(irq_class(channel)) {
		case ic_timer:
			timer_clear_pending(irq_minor(channel));
			break;
	}
}
Example #2
0
File: irq.c Project: cirline/ct
/**
 * irq_init - set interrupt service routine
 *
 * @channel: irq channel, define in irq.h
 * @func: isr function
 */
int irq_init(unsigned int channel, irq_func_t func)
{
	pr_info("IRF(%x) address 0x%p\n", channel, func);
	switch(irq_class(channel)) {
		case ic_ext:
			irq_set_ext(irq_minor(channel), func);
			break;
		case ic_timer:
			irq_set_timer(irq_minor(channel), func);
			break;
		case ic_uart:
			irq_set_uart(irq_minor(channel), func);
			break;
		default:
			pr_err("unknown irq channel class! 0x%p\n", channel);
			break;
	}

	return 0;
}
Example #3
0
extern inline uint irq_file(const File* file)
{
	return irq_minor(FILE_MINOR(file));
}
Example #4
0
extern inline uint irq_inode(const Inode* inode)
{
	return irq_minor(INODE_MINOR(inode));
}