[PATCH] kbd_rate stuff for PPC

Paul Mackerras (paulus@samba.org)
Sat, 18 Aug 2001 22:41:55 +1000 (EST)


This patch adds in the kbd_rate stuff for PPC. Without this patch
the official 2.4.9 tree won't compile on PPC if you have CONFIG_VT
defined.

Paul.

diff -urN linux/arch/ppc/kernel/chrp_setup.c linuxppc_2_4/arch/ppc/kernel/chrp_setup.c
--- linux/arch/ppc/kernel/chrp_setup.c Sat Jul 21 09:51:52 2001
+++ linuxppc_2_4/arch/ppc/kernel/chrp_setup.c Mon Aug 13 15:52:20 2001
@@ -77,6 +77,7 @@
char raw_mode);
extern char pckbd_unexpected_up(unsigned char keycode);
extern void pckbd_leds(unsigned char leds);
+extern int pckbd_rate(struct kbd_repeat *rep);
extern void pckbd_init_hw(void);
extern unsigned char pckbd_sysrq_xlate[128];
extern int mackbd_setkeycode(unsigned int scancode, unsigned int keycode);
@@ -431,6 +432,7 @@
ppc_md.kbd_translate = mackbd_translate;
ppc_md.kbd_unexpected_up = mackbd_unexpected_up;
ppc_md.kbd_leds = mackbd_leds;
+ ppc_md.kbd_rate_fn = NULL;
ppc_md.kbd_init_hw = mackbd_init_hw;
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md.ppc_kbd_sysrq_xlate = mackbd_sysrq_xlate;
@@ -584,6 +586,7 @@
ppc_md.kbd_translate = pckbd_translate;
ppc_md.kbd_unexpected_up = pckbd_unexpected_up;
ppc_md.kbd_leds = pckbd_leds;
+ ppc_md.kbd_rate_fn = pckbd_rate;
ppc_md.kbd_init_hw = pckbd_init_hw;
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md.ppc_kbd_sysrq_xlate = pckbd_sysrq_xlate;
diff -urN linux/arch/ppc/kernel/prep_setup.c linuxppc_2_4/arch/ppc/kernel/prep_setup.c
--- linux/arch/ppc/kernel/prep_setup.c Tue Aug 14 10:34:06 2001
+++ linuxppc_2_4/arch/ppc/kernel/prep_setup.c Mon Aug 13 15:52:20 2001
@@ -85,6 +85,7 @@
char raw_mode);
extern char pckbd_unexpected_up(unsigned char keycode);
extern void pckbd_leds(unsigned char leds);
+extern int pckbd_rate(struct kbd_repeat *rep);
extern void pckbd_init_hw(void);
extern unsigned char pckbd_sysrq_xlate[128];

@@ -932,6 +933,7 @@
ppc_md.kbd_translate = pckbd_translate;
ppc_md.kbd_unexpected_up = pckbd_unexpected_up;
ppc_md.kbd_leds = pckbd_leds;
+ ppc_md.kbd_rate_fn = pckbd_rate;
ppc_md.kbd_init_hw = pckbd_init_hw;
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md.ppc_kbd_sysrq_xlate = pckbd_sysrq_xlate;
diff -urN linux/include/asm-ppc/keyboard.h linuxppc_2_4/include/asm-ppc/keyboard.h
--- linux/include/asm-ppc/keyboard.h Sat May 26 12:39:54 2001
+++ linuxppc_2_4/include/asm-ppc/keyboard.h Sat Aug 18 18:16:33 2001
@@ -23,6 +23,7 @@

#include <linux/kernel.h>
#include <linux/ioport.h>
+#include <linux/kd.h>
#include <asm/io.h>

#define KEYBOARD_IRQ 1
@@ -67,13 +68,14 @@
if ( ppc_md.kbd_leds )
ppc_md.kbd_leds(leds);
}
-
+
static inline void kbd_init_hw(void)
{
if ( ppc_md.kbd_init_hw )
ppc_md.kbd_init_hw();
}

+#define kbd_rate (ppc_md.kbd_rate_fn)
#define kbd_sysrq_xlate (ppc_md.ppc_kbd_sysrq_xlate)

extern unsigned long SYSRQ_KEY;
diff -urN linux/include/asm-ppc/machdep.h linuxppc_2_4/include/asm-ppc/machdep.h
--- linux/include/asm-ppc/machdep.h Wed Jul 4 14:33:57 2001
+++ linuxppc_2_4/include/asm-ppc/machdep.h Mon Aug 13 15:52:20 2001
@@ -14,6 +14,7 @@
struct pt_regs;
struct pci_bus;
struct pci_dev;
+struct kbd_repeat;

struct machdep_calls {
void (*setup_arch)(void);
@@ -58,6 +59,7 @@
char raw_mode);
char (*kbd_unexpected_up)(unsigned char keycode);
void (*kbd_leds)(unsigned char leds);
+ int (*kbd_rate_fn)(struct kbd_repeat *rep);
void (*kbd_init_hw)(void);
#ifdef CONFIG_MAGIC_SYSRQ
unsigned char *ppc_kbd_sysrq_xlate;
-
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/