static int __init psaux_init(void)
{
	int ret;

	if (!request_mem_region(_MSECR, 512, "psaux"))
		return -EBUSY;

	if (!detect_auxiliary_port()) {
		ret = -EIO;
		goto out;
	}

	misc_register(&psaux_mouse);
	queue = (struct aux_queue *) kmalloc(sizeof(*queue), GFP_KERNEL);
	memset(queue, 0, sizeof(*queue));
	queue->head = queue->tail = 0;
	init_waitqueue_head(&queue->proc_list);

#ifdef CONFIG_PSMOUSE
	aux_write_ack(AUX_SET_SAMPLE);
	aux_write_ack(100);	/* 100 samples/sec */
	aux_write_ack(AUX_SET_RES);
	aux_write_ack(3);	/* 8 counts per mm */
	aux_write_ack(AUX_SET_SCALE21);	/* 2:1 scaling */
#endif
	ret = 0;

 out:
 	if (ret)
 		release_mem_region(_MSECR, 512);
	return ret;
}
static int __init psaux_init(void)
{
	int retval;

	if (!detect_auxiliary_port())
		return -EIO;

	if ((retval = misc_register(&psaux_mouse)))
		return retval;

	queue = (struct aux_queue *) kmalloc(sizeof(*queue), GFP_KERNEL);
	if (queue == NULL) {
		printk(KERN_ERR "psaux_init(): out of memory\n");
		misc_deregister(&psaux_mouse);
		return -ENOMEM;
	}
	memset(queue, 0, sizeof(*queue));
	queue->head = queue->tail = 0;
	init_waitqueue_head(&queue->proc_list);

#ifdef INITIALIZE_MOUSE
	kbd_write_command_w(KBD_CCMD_MOUSE_ENABLE); /* Enable Aux. */
	aux_write_ack(AUX_SET_SAMPLE);
	aux_write_ack(100);			/* 100 samples/sec */
	aux_write_ack(AUX_SET_RES);
	aux_write_ack(3);			/* 8 counts per mm */
	aux_write_ack(AUX_SET_SCALE21);		/* 2:1 scaling */
#endif /* INITIALIZE_MOUSE */
	kbd_write_command(KBD_CCMD_MOUSE_DISABLE); /* Disable aux device. */
	kbd_write_cmd(AUX_INTS_OFF); /* Disable controller ints. */

	return 0;
}
Example #3
0
File: kbd.c Project: kisom/pmon
int psaux_init(void)
{
	int retval;

	if (!detect_auxiliary_port())
		return -1;

	kbd_write_command_w(KBD_CCMD_MOUSE_ENABLE); /* Enable Aux. */
	aux_write_ack(AUX_SET_SAMPLE);
	aux_write_ack(100);			/* 100 samples/sec */
	aux_write_ack(AUX_SET_RES);
	aux_write_ack(3);			/* 8 counts per mm */
	aux_write_ack(AUX_SET_SCALE21);		/* 2:1 scaling */
	kbd_write_command(KBD_CCMD_MOUSE_DISABLE); /* Disable aux device. */
	kbd_write_cmd(AUX_INTS_OFF); /* Disable controller ints. */

//---------------------------------------
	kbd_write_command_w(KBD_CCMD_MOUSE_ENABLE);	/* Enable the
							   auxiliary port on
							   controller. */
	aux_write_ack(AUX_ENABLE_DEV); /* Enable aux device */
	kbd_write_cmd(AUX_INTS_ON); /* Enable controller ints */
	
	mdelay(2);			/* Ensure we follow the kbc access delay rules.. */

	send_data(KBD_CMD_ENABLE);	/* try to workaround toshiba4030cdt problem */
	return 0;
}
Example #4
0
static int psaux_init( void )
{
  if( !detect_auxiliary_port() ) {
    printk( "PS/2 - mouse not found.\n" );
    return -EIO;
  }
  queue = (struct aux_queue *)malloc( sizeof(*queue) );
  memset(queue, 0, sizeof(*queue));
  queue->head = queue->tail = 0;
  queue->proc_list = NULL;

  #ifdef INITIALIZE_MOUSE
    kbd_write_command_w(KBD_CCMD_MOUSE_ENABLE); /* Enable Aux. */
    aux_write_ack(AUX_SET_SAMPLE);
    aux_write_ack(100);			      /* 100 samples/sec */
    aux_write_ack(AUX_SET_RES);
    aux_write_ack(3);			         /* 8 counts per mm */
    aux_write_ack(AUX_SET_SCALE21);	/* 2:1 scaling */
  #endif /* INITIALIZE_MOUSE */
  kbd_write_command(KBD_CCMD_MOUSE_DISABLE); /* Disable aux device. */
  kbd_write_cmd(AUX_INTS_OFF); /* Disable controller ints. */
  return 0;
}