lkml.org 
[lkml]   [2002]   [Sep]   [12]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateThu, 12 Sep 2002 07:49:15 +0200
FromVojtech Pavlik <>
SubjectRe: [patch] q40kbd.c fixes
On Wed, Sep 11, 2002 at 04:22:07PM +0200, Richard Zidlicky wrote:

> Hi,
> 
> a few small fixes, works nicely.
> 
> Richard

Thanks; applied.

> 
> --- linux-m68k-2.5.x/drivers/input/serio/q40kbd.c	Sat Jul 27 21:09:46 2002
> +++ linux-m68k-2.5.x-my/drivers/input/serio/q40kbd.c	Wed Sep 11 16:40:08 2002
> @@ -47,12 +47,24 @@
>  MODULE_DESCRIPTION("Q40 PS/2 keyboard controller driver");
>  MODULE_LICENSE("GPL");
> 
> +
> +static int q40kbd_open(struct serio *port)
> +{
> +	return 0;
> +}
> +static void q40kbd_close(struct serio *port)
> +{
> +	return 0;
> +}
> +
>  static struct serio q40kbd_port =
>  {
>  	.type	= SERIO_8042,
> +	.name	= "Q40 kbd port",
> +	.phys	= "Q40",
>  	.write	= NULL,
> -	.name	= "Q40 PS/2 kbd port",
> -	.phys	= "isa0060/serio0",
> +	.open	= q40kbd_open,
> +	.close	= q40kbd_close,
>  };
> 
>  static void q40kbd_interrupt(int irq, void *dev_id, struct pt_regs *regs)
> @@ -70,13 +82,10 @@
>  {
>  	int maxread = 100;
> 
> -	/* Get the keyboard controller registers (incomplete decode) */
> -	request_region(0x60, 16, "q40kbd");
> -
>  	/* allocate the IRQ */
>  	request_irq(Q40_IRQ_KEYBOARD, q40kbd_interrupt, 0, "q40kbd", NULL);
> 
> -	/* flush any pending input. */
> +	/* flush any pending input */
>  	while (maxread-- && (IRQ_KEYB_MASK & master_inb(INTERRUPT_REG)))
>  		master_inb(KEYCODE_REG);
> 
> @@ -84,15 +93,17 @@
>  	master_outb(-1,KEYBOARD_UNLOCK_REG);
>  	master_outb(1,KEY_IRQ_ENABLE_REG);
> 
> -	register_serio_port(&q40kbd_port);
> -	printk(KERN_INFO "serio: Q40 PS/2 kbd port irq %d\n", Q40_IRQ_KEYBOARD);
> +	serio_register_port(&q40kbd_port);
> +	printk(KERN_INFO "serio: Q40 kbd registered\n");
>  }
> 
>  void __exit q40kbd_exit(void)
>  {
> -	unregister_serio_port(&q40kbd_port);
> +	master_outb(0,KEY_IRQ_ENABLE_REG);
> +	master_outb(-1,KEYBOARD_UNLOCK_REG);
> +
> +	serio_unregister_port(&q40kbd_port);
>  	free_irq(Q40_IRQ_KEYBOARD, NULL);
> -	release_region(0x60, 16);	
>  }
> 
>  module_init(q40kbd_init);

-- 
Vojtech Pavlik
SuSE Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:28    [from the cache]
©2003-2008