linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch] q40kbd.c fixes
@ 2002-09-11 14:22 Richard Zidlicky
  2002-09-12  5:49 ` Vojtech Pavlik
  0 siblings, 1 reply; 2+ messages in thread
From: Richard Zidlicky @ 2002-09-11 14:22 UTC (permalink / raw)
  To: Vojtech Pavlik; +Cc: Linux Kernel ML

Hi,

a few small fixes, works nicely.

Richard

--- 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);

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [patch] q40kbd.c fixes
  2002-09-11 14:22 [patch] q40kbd.c fixes Richard Zidlicky
@ 2002-09-12  5:49 ` Vojtech Pavlik
  0 siblings, 0 replies; 2+ messages in thread
From: Vojtech Pavlik @ 2002-09-12  5:49 UTC (permalink / raw)
  To: Richard Zidlicky; +Cc: Vojtech Pavlik, Linux Kernel ML

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-09-12  5:44 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-09-11 14:22 [patch] q40kbd.c fixes Richard Zidlicky
2002-09-12  5:49 ` Vojtech Pavlik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).