示例#1
0
int __init button_init(void)
{
	dprintk("initializing ...\n");

	if(button_dev_init() != 0)
		return 1;

	return 0;
}
示例#2
0
static int __init aotom_init_module(void)
{
	int i;
	
	dprintk(5, "%s >\n", __func__);

	printk("Fulan front panel driver\n");

//	sema_init(&display_sem,1);
	sema_init(&button_sem, 1);
	if(YWPANEL_VFD_Init(&mode_digit)) {
		printk("unable to init module\n");
		return -1;
	}

	VFD_clr();
	if(button_dev_init() != 0)
		return -1;

	if (register_chrdev(VFD_MAJOR,"VFD",&vfd_fops))
		printk("unable to get major %d for VFD\n",VFD_MAJOR);

	sema_init(&write_sem, 1);
//	sema_init(&key_mutex, 1);

	for (i = 0; i < LASTMINOR; i++)
	    sema_init(&FrontPanelOpen[i].sem, 1);

	own_proc_dir = create_proc_entry(NAME_DIR, S_IFDIR | S_IRWXUGO, NULL);
	if (own_proc_dir == NULL ) {
	    printk(KERN_ERR "can't create /proc/%s\n", NAME_DIR);
	    return -ENOMEM;
	}
	dprintk(5, "Create /proc/%s\n", NAME_DIR);
	own_proc_dir->gid =0 ;
	
	own_proc_node=create_proc_entry(NAME_NODE, S_IFREG | S_IRUGO | S_IWUGO, own_proc_dir);
	if (own_proc_node == NULL ) {
	    printk(KERN_ERR "can't create /proc/%s/%s\n", NAME_DIR, NAME_NODE);
	    return -ENOMEM;
	}
	dprintk(5, "Create /proc/%s/%s\n", NAME_DIR, NAME_NODE);
	own_proc_node->uid = 0;
	own_proc_node->gid =0 ;
	
	own_proc_node->read_proc=proc_node_read;
	
	dprintk(5, "%s <\n", __func__);
	return 0;
}
示例#3
0
static int __init aotom_init_module(void)
{
	int i;

	dprintk(5, "%s >\n", __func__);

	printk("Fulan front panel driver\n");

	if(YWPANEL_VFD_Init()) {
		printk("unable to init module\n");
		return -1;
	}

	VFD_clr();

	if(button_dev_init() != 0)
		return -1;

	if (register_chrdev(VFD_MAJOR,"VFD",&vfd_fops))
		printk("unable to get major %d for VFD\n",VFD_MAJOR);
	
	if (pm_power_off)
		printk("pm_power_off hook already applied! Do not register anything\n");
	else
		pm_power_off = 	aotom_standby;
	
	sema_init(&write_sem, 1);
	sema_init(&receive_sem, 1);
	sema_init(&draw_thread_sem, 1);

	for (i = 0; i < LASTMINOR; i++) {
		FrontPanelOpen[i].open_count = 0;
		FrontPanelOpen[i].minor = i;
	}

	for (i = 0; i < LASTLED; i++) {
		led_state[i].state = LOG_OFF;
		led_state[i].period = 0;
		led_state[i].stop = 1;
		sema_init(&led_state[i].led_sem, 0);
		led_state[i].led_task = kthread_run(led_thread, (void *) i, "led_thread");
	}


	dprintk(5, "%s <\n", __func__);

	return 0;
}