Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
b07a73e9
Commit
b07a73e9
authored
Jul 13, 2002
by
Vojtech Pavlik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Franz Sirl's ADB/PPC keyboard handling update - move fully
to using the input core
parent
ab308751
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
148 additions
and
675 deletions
+148
-675
arch/ppc/4xx_io/stb_kb.c
arch/ppc/4xx_io/stb_kb.c
+0
-4
arch/ppc/Config.help
arch/ppc/Config.help
+19
-42
arch/ppc/config.in
arch/ppc/config.in
+1
-4
arch/ppc/kernel/m8260_setup.c
arch/ppc/kernel/m8260_setup.c
+0
-8
arch/ppc/kernel/m8xx_setup.c
arch/ppc/kernel/m8xx_setup.c
+0
-8
arch/ppc/kernel/ppc4xx_setup.c
arch/ppc/kernel/ppc4xx_setup.c
+0
-16
arch/ppc/kernel/setup.c
arch/ppc/kernel/setup.c
+1
-1
arch/ppc/platforms/apus_setup.c
arch/ppc/platforms/apus_setup.c
+0
-7
arch/ppc/platforms/chrp_setup.c
arch/ppc/platforms/chrp_setup.c
+4
-26
arch/ppc/platforms/gemini_setup.c
arch/ppc/platforms/gemini_setup.c
+0
-8
arch/ppc/platforms/iSeries_setup.c
arch/ppc/platforms/iSeries_setup.c
+0
-10
arch/ppc/platforms/oak_setup.c
arch/ppc/platforms/oak_setup.c
+0
-8
arch/ppc/platforms/pmac_setup.c
arch/ppc/platforms/pmac_setup.c
+0
-49
arch/ppc/platforms/pplus_setup.c
arch/ppc/platforms/pplus_setup.c
+0
-22
arch/ppc/platforms/prep_setup.c
arch/ppc/platforms/prep_setup.c
+0
-22
arch/ppc/platforms/sandpoint_setup.c
arch/ppc/platforms/sandpoint_setup.c
+0
-22
arch/ppc/platforms/spruce_setup.c
arch/ppc/platforms/spruce_setup.c
+0
-21
drivers/macintosh/adbhid.c
drivers/macintosh/adbhid.c
+59
-26
drivers/macintosh/mac_hid.c
drivers/macintosh/mac_hid.c
+51
-350
include/asm-ppc/keyboard.h
include/asm-ppc/keyboard.h
+13
-15
include/asm-ppc/machdep.h
include/asm-ppc/machdep.h
+0
-6
No files found.
arch/ppc/4xx_io/stb_kb.c
View file @
b07a73e9
...
...
@@ -283,11 +283,7 @@ void redwood_irkb_init(void)
{
extern
struct
machdep_calls
ppc_md
;
ppc_md
.
kbd_setkeycode
=
rawirkbd_setkeycode
;
ppc_md
.
kbd_getkeycode
=
rawirkbd_getkeycode
;
ppc_md
.
kbd_translate
=
rawirkbd_translate
;
ppc_md
.
kbd_unexpected_up
=
rawirkbd_unexpected_up
;
ppc_md
.
kbd_leds
=
NULL
;
/*rawirkbd_leds;*/
ppc_md
.
kbd_init_hw
=
rawirkbd_init_hw
;
}
arch/ppc/Config.help
View file @
b07a73e9
...
...
@@ -321,19 +321,6 @@ CONFIG_CD_NO_IDESCSI
answer will get "defaulted" for you if you enable any of the Linux
CD-ROM drivers).
CONFIG_INPUT_ADBHID
Say Y here if you want to have ADB (Apple Desktop Bus) HID devices
such as keyboards, mice, joysticks, or graphic tablets handled by
the input layer. If you say Y here, make sure to say Y to the
corresponding drivers "Keyboard support" (CONFIG_INPUT_KEYBDEV),
"Mouse Support" (CONFIG_INPUT_MOUSEDEV) and "Event interface
support" (CONFIG_INPUT_EVDEV) as well.
If you say N here, you still have the option of using the old ADB
keyboard and mouse drivers.
If unsure, say Y.
CONFIG_PREP_RESIDUAL
Some PReP systems have residual data passed to the kernel by the
firmware. This allows detection of memory size, devices present and
...
...
@@ -382,14 +369,26 @@ CONFIG_ADB_MACIO
also includes a MESH II SCSI controller, DBDMA controller, VIA chip,
OpenPIC controller and two RS422/Geoports.)
CONFIG_ADB_KEYBOARD
This option allows you to use an ADB keyboard attached to your
machine. Note that this disables any other (ie. PS/2) keyboard
support, even if your machine is physically capable of using both at
the same time.
CONFIG_INPUT_ADBHID
Say Y here if you want to have ADB (Apple Desktop Bus) HID devices
such as keyboards, mice, joysticks, trackpads or graphic tablets
handled by the input layer. If you say Y here, make sure to say Y to
the corresponding drivers "Keyboard support" (CONFIG_INPUT_KEYBDEV),
"Mouse Support" (CONFIG_INPUT_MOUSEDEV) and "Event interface
support" (CONFIG_INPUT_EVDEV) as well.
If unsure, say Y.
CONFIG_MAC_EMUMOUSEBTN
This provides generic support for emulating the 2nd and 3rd mouse
button with keypresses. If you say Y here, the emulation is still
disabled by default. The emulation is controlled by these sysctl
entries:
/proc/sys/dev/mac_hid/mouse_button_emulation
/proc/sys/dev/mac_hid/mouse_button2_keycode
/proc/sys/dev/mac_hid/mouse_button3_keycode
If you use an ADB keyboard (4 pin connector), say Y here.
If you use a PS/2 keyboard (6 pin connector), say N here.
If you have an Apple machine with a 1-button mouse, say Y here.
CONFIG_SERIAL_CONSOLE
If you say Y here, it will be possible to use a serial port as the
...
...
@@ -886,28 +885,6 @@ CONFIG_EST8260
End of life: -
URL: <http://www.microsys.de/html/cu824.html>
CONFIG_MAC_ADBKEYCODES
This provides support for sending ADB keycodes to console devices in
raw mode, rather than generic "Linux" keycodes. This is the default
up to 2.4.0, but in future this may be phased out in favor of
generic Linux keycodes. If you say Y here, you can dynamically
switch via the /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes
sysctl and with the "keyboard_sends_linux_keycodes=" kernel
argument.
If unsure, say Y here.
CONFIG_MAC_EMUMOUSEBTN
This provides generic support for emulating the 2nd and 3rd mouse
button with keypresses. If you say Y here, the emulation is still
disabled by default. The emulation is controlled by these sysctl
entries:
/proc/sys/dev/mac_hid/mouse_button_emulation
/proc/sys/dev/mac_hid/mouse_button2_keycode
/proc/sys/dev/mac_hid/mouse_button3_keycode
If you have an Apple machine with a 1-button mouse, say Y here.
CONFIG_PPC_RTC
If you say Y here and create a character special file /dev/rtc with
major number 10 and minor number 135 using mknod ("man mknod"), you
...
...
arch/ppc/config.in
View file @
b07a73e9
...
...
@@ -536,12 +536,9 @@ if [ "$CONFIG_ALL_PPC" = "y" ]; then
bool 'Apple Desktop Bus (ADB) support' CONFIG_ADB
if [ "$CONFIG_ADB" = "y" ]; then
bool ' Include MacIO (CHRP) ADB driver' CONFIG_ADB_MACIO
dep_bool '
Use input layer for ADB devices
' CONFIG_INPUT_ADBHID $CONFIG_INPUT
dep_bool '
Support for ADB input devices (keyboard, mice, ...)
' CONFIG_INPUT_ADBHID $CONFIG_INPUT
if [ "$CONFIG_INPUT_ADBHID" = "y" ]; then
bool ' Support for ADB raw keycodes' CONFIG_MAC_ADBKEYCODES
bool ' Support for mouse button 2+3 emulation' CONFIG_MAC_EMUMOUSEBTN
else
bool ' Support for ADB keyboard (old driver)' CONFIG_ADB_KEYBOARD
fi
fi
# This is for drivers/macintosh/mac_hid.o, which is needed if the input
...
...
arch/ppc/kernel/m8260_setup.c
View file @
b07a73e9
...
...
@@ -266,14 +266,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
ppc_md
.
find_end_of_memory
=
m8260_find_end_of_memory
;
ppc_md
.
setup_io_mappings
=
m8260_map_io
;
ppc_md
.
kbd_setkeycode
=
NULL
;
ppc_md
.
kbd_getkeycode
=
NULL
;
ppc_md
.
kbd_translate
=
NULL
;
ppc_md
.
kbd_unexpected_up
=
NULL
;
ppc_md
.
kbd_leds
=
NULL
;
ppc_md
.
kbd_init_hw
=
NULL
;
ppc_md
.
ppc_kbd_sysrq_xlate
=
NULL
;
}
/* Mainly for ksyms.
...
...
arch/ppc/kernel/m8xx_setup.c
View file @
b07a73e9
...
...
@@ -396,14 +396,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
ppc_md
.
find_end_of_memory
=
m8xx_find_end_of_memory
;
ppc_md
.
setup_io_mappings
=
m8xx_map_io
;
ppc_md
.
kbd_setkeycode
=
NULL
;
ppc_md
.
kbd_getkeycode
=
NULL
;
ppc_md
.
kbd_translate
=
NULL
;
ppc_md
.
kbd_unexpected_up
=
NULL
;
ppc_md
.
kbd_leds
=
NULL
;
ppc_md
.
kbd_init_hw
=
NULL
;
ppc_md
.
ppc_kbd_sysrq_xlate
=
NULL
;
#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
m8xx_ide_init
();
#endif
...
...
arch/ppc/kernel/ppc4xx_setup.c
View file @
b07a73e9
...
...
@@ -59,15 +59,6 @@
extern
void
abort
(
void
);
extern
void
ppc4xx_find_bridges
(
void
);
extern
int
pckbd_setkeycode
(
unsigned
int
scancode
,
unsigned
int
keycode
);
extern
int
pckbd_getkeycode
(
unsigned
int
scancode
);
extern
int
pckbd_pretranslate
(
unsigned
char
scancode
,
char
raw_mode
);
extern
int
pckbd_translate
(
unsigned
char
scancode
,
unsigned
char
*
keycode
,
char
raw_mode
);
extern
char
pckbd_unexpected_up
(
unsigned
char
keycode
);
extern
void
pckbd_leds
(
unsigned
char
leds
);
extern
void
pckbd_init_hw
(
void
);
extern
void
ppc4xx_wdt_heartbeat
(
void
);
extern
int
wdt_enable
;
extern
unsigned
long
wdt_period
;
...
...
@@ -357,13 +348,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
#if defined(CONFIG_VT) && defined(CONFIG_PC_KEYBOARD)
#if defined(CONFIG_REDWOOD_4) && defined(CONFIG_STB_KB)
redwood_irkb_init
();
#else
ppc_md
.
kbd_setkeycode
=
pckbd_setkeycode
;
ppc_md
.
kbd_getkeycode
=
pckbd_getkeycode
;
ppc_md
.
kbd_translate
=
pckbd_translate
;
ppc_md
.
kbd_unexpected_up
=
pckbd_unexpected_up
;
ppc_md
.
kbd_leds
=
pckbd_leds
;
ppc_md
.
kbd_init_hw
=
pckbd_init_hw
;
#endif
#endif
...
...
arch/ppc/kernel/setup.c
View file @
b07a73e9
...
...
@@ -83,7 +83,7 @@ extern void chrp_init(unsigned long r3, unsigned long r4,
#endif
/* CONFIG_ALL_PPC */
#ifdef CONFIG_MAGIC_SYSRQ
unsigned
long
SYSRQ_KEY
;
unsigned
long
SYSRQ_KEY
=
0x54
;
#endif
/* CONFIG_MAGIC_SYSRQ */
#ifdef CONFIG_VGA_CONSOLE
...
...
arch/ppc/platforms/apus_setup.c
View file @
b07a73e9
...
...
@@ -854,13 +854,6 @@ void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
/* These should not be used for the APUS yet, since it uses
the M68K keyboard now. */
ppc_md
.
kbd_setkeycode
=
apus_kbd_setkeycode
;
ppc_md
.
kbd_getkeycode
=
apus_kbd_getkeycode
;
ppc_md
.
kbd_translate
=
amiga_kbd_translate
;
ppc_md
.
kbd_unexpected_up
=
apus_kbd_unexpected_up
;
ppc_md
.
kbd_init_hw
=
apus_kbd_init_hw
;
#ifdef CONFIG_SYSRQ
ppc_md
.
ppc_kbd_sysrq_xlate
=
amiga_sysrq_xlate
;
SYSRQ_KEY
=
0xff
;
#endif
}
arch/ppc/platforms/chrp_setup.c
View file @
b07a73e9
...
...
@@ -69,14 +69,6 @@ void rtas_indicator_progress(char *, unsigned short);
void
btext_progress
(
char
*
,
unsigned
short
);
extern
unsigned
long
pmac_find_end_of_memory
(
void
);
extern
int
pckbd_setkeycode
(
unsigned
int
scancode
,
unsigned
int
keycode
);
extern
int
pckbd_getkeycode
(
unsigned
int
scancode
);
extern
int
pckbd_translate
(
unsigned
char
scancode
,
unsigned
char
*
keycode
,
char
raw_mode
);
extern
char
pckbd_unexpected_up
(
unsigned
char
keycode
);
extern
void
pckbd_leds
(
unsigned
char
leds
);
extern
void
pckbd_init_hw
(
void
);
extern
unsigned
char
pckbd_sysrq_xlate
[
128
];
extern
void
select_adb_keyboard
(
void
);
extern
int
of_show_percpuinfo
(
struct
seq_file
*
,
int
);
...
...
@@ -389,7 +381,7 @@ void __init chrp_init_IRQ(void)
int
i
;
unsigned
long
chrp_int_ack
;
unsigned
char
init_senses
[
NR_IRQS
-
NUM_8259_INTERRUPTS
];
#if defined(CONFIG_VT) && defined(CONFIG_
ADB_KEYBOAR
D) && defined(XMON)
#if defined(CONFIG_VT) && defined(CONFIG_
INPUT_ADBHI
D) && defined(XMON)
struct
device_node
*
kbd
;
#endif
...
...
@@ -417,7 +409,7 @@ void __init chrp_init_IRQ(void)
irq_desc
[
i
].
handler
=
&
i8259_pic
;
i8259_init
(
chrp_int_ack
);
#if defined(CONFIG_VT) && defined(CONFIG_
ADB_KEYBOAR
D) && defined(XMON)
#if defined(CONFIG_VT) && defined(CONFIG_
INPUT_ADBHI
D) && defined(XMON)
/* see if there is a keyboard in the device tree
with a parent of type "adb" */
for
(
kbd
=
find_devices
(
"keyboard"
);
kbd
;
kbd
=
kbd
->
next
)
...
...
@@ -447,7 +439,7 @@ chrp_init2(void)
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
" Have fun! "
,
0x7777
);
#if defined(CONFIG_VT) &&
(defined(CONFIG_ADB_KEYBOARD) || defined(CONFIG_INPUT)
)
#if defined(CONFIG_VT) &&
defined(CONFIG_INPUT
)
/* see if there is a keyboard in the device tree
with a parent of type "adb" */
{
...
...
@@ -461,7 +453,7 @@ chrp_init2(void)
}
}
}
#endif
/* CONFIG_VT &&
(CONFIG_ADB_KEYBOARD || CONFIG_INPUT)
*/
#endif
/* CONFIG_VT &&
CONFIG_INPUT
*/
}
void
__init
...
...
@@ -502,20 +494,6 @@ chrp_init(unsigned long r3, unsigned long r4, unsigned long r5,
ppc_md
.
find_end_of_memory
=
pmac_find_end_of_memory
;
#ifdef CONFIG_VT
/* these are adjusted in chrp_init2 if we have an ADB keyboard */
ppc_md
.
kbd_setkeycode
=
pckbd_setkeycode
;
ppc_md
.
kbd_getkeycode
=
pckbd_getkeycode
;
ppc_md
.
kbd_translate
=
pckbd_translate
;
ppc_md
.
kbd_unexpected_up
=
pckbd_unexpected_up
;
ppc_md
.
kbd_leds
=
pckbd_leds
;
ppc_md
.
kbd_init_hw
=
pckbd_init_hw
;
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md
.
ppc_kbd_sysrq_xlate
=
pckbd_sysrq_xlate
;
SYSRQ_KEY
=
0x54
;
#endif
/* CONFIG_MAGIC_SYSRQ */
#endif
/* CONFIG_VT */
if
(
rtas_data
)
{
struct
device_node
*
rtas
;
unsigned
int
*
p
;
...
...
arch/ppc/platforms/gemini_setup.c
View file @
b07a73e9
...
...
@@ -576,14 +576,6 @@ void __init platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
ppc_md
.
find_end_of_memory
=
gemini_find_end_of_memory
;
ppc_md
.
setup_io_mappings
=
gemini_map_io
;
/* no keyboard/mouse/video stuff yet.. */
ppc_md
.
kbd_setkeycode
=
NULL
;
ppc_md
.
kbd_getkeycode
=
NULL
;
ppc_md
.
kbd_translate
=
NULL
;
ppc_md
.
kbd_unexpected_up
=
NULL
;
ppc_md
.
kbd_leds
=
NULL
;
ppc_md
.
kbd_init_hw
=
NULL
;
ppc_md
.
ppc_kbd_sysrq_xlate
=
NULL
;
ppc_md
.
pcibios_fixup_bus
=
gemini_pcibios_fixup
;
#ifdef CONFIG_SMP
...
...
arch/ppc/platforms/iSeries_setup.c
View file @
b07a73e9
...
...
@@ -216,12 +216,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
ppc_md
.
progress
=
iSeries_progress
;
ppc_md
.
find_end_of_memory
=
iSeries_find_end_of_memory
;
ppc_md
.
kbd_setkeycode
=
NULL
;
ppc_md
.
kbd_getkeycode
=
NULL
;
ppc_md
.
kbd_translate
=
NULL
;
ppc_md
.
kbd_unexpected_up
=
NULL
;
ppc_md
.
kbd_leds
=
NULL
;
ppc_md
.
kbd_init_hw
=
NULL
;
#ifdef CONFIG_PCI
ppc_md
.
pcibios_fixup_bus
=
iSeries_fixup_bus
;
ppc_md
.
pcibios_fixup
=
iSeries_fixup
;
...
...
@@ -230,10 +224,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
ppc_md
.
pcibios_fixup
=
NULL
;
#endif
/* CONFIG_PCI */
#if defined(CONFIG_MAGIC_SYSRQ)
ppc_md
.
ppc_kbd_sysrq_xlate
=
NULL
;
#endif
#ifdef CONFIG_SMP
ppc_md
.
smp_ops
=
&
iSeries_smp_ops
;
#endif
/* CONFIG_SMP */
...
...
arch/ppc/platforms/oak_setup.c
View file @
b07a73e9
...
...
@@ -117,14 +117,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
ppc_md
.
set_rtc_time
=
oak_set_rtc_time
;
ppc_md
.
get_rtc_time
=
oak_get_rtc_time
;
ppc_md
.
calibrate_decr
=
oak_calibrate_decr
;
ppc_md
.
kbd_setkeycode
=
NULL
;
ppc_md
.
kbd_getkeycode
=
NULL
;
ppc_md
.
kbd_translate
=
NULL
;
ppc_md
.
kbd_unexpected_up
=
NULL
;
ppc_md
.
kbd_leds
=
NULL
;
ppc_md
.
kbd_init_hw
=
NULL
;
ppc_md
.
ppc_kbd_sysrq_xlate
=
NULL
;
}
/*
...
...
arch/ppc/platforms/pmac_setup.c
View file @
b07a73e9
...
...
@@ -88,26 +88,6 @@ extern void pmac_find_bridges(void);
extern
int
pmac_ide_check_base
(
ide_ioreg_t
base
);
extern
ide_ioreg_t
pmac_ide_get_base
(
int
index
);
extern
int
mackbd_setkeycode
(
unsigned
int
scancode
,
unsigned
int
keycode
);
extern
int
mackbd_getkeycode
(
unsigned
int
scancode
);
extern
int
mackbd_translate
(
unsigned
char
keycode
,
unsigned
char
*
keycodep
,
char
raw_mode
);
extern
char
mackbd_unexpected_up
(
unsigned
char
keycode
);
extern
void
mackbd_leds
(
unsigned
char
leds
);
extern
void
__init
mackbd_init_hw
(
void
);
extern
int
mac_hid_kbd_translate
(
unsigned
char
scancode
,
unsigned
char
*
keycode
,
char
raw_mode
);
extern
char
mac_hid_kbd_unexpected_up
(
unsigned
char
keycode
);
extern
void
mac_hid_init_hw
(
void
);
extern
unsigned
char
mac_hid_kbd_sysrq_xlate
[];
extern
unsigned
char
pckbd_sysrq_xlate
[];
extern
unsigned
char
mackbd_sysrq_xlate
[];
extern
int
pckbd_setkeycode
(
unsigned
int
scancode
,
unsigned
int
keycode
);
extern
int
pckbd_getkeycode
(
unsigned
int
scancode
);
extern
int
pckbd_translate
(
unsigned
char
scancode
,
unsigned
char
*
keycode
,
char
raw_mode
);
extern
char
pckbd_unexpected_up
(
unsigned
char
keycode
);
extern
int
keyboard_sends_linux_keycodes
;
extern
void
pmac_nvram_update
(
void
);
extern
unsigned
char
pmac_nvram_read_byte
(
int
addr
);
extern
void
pmac_nvram_write_byte
(
int
addr
,
unsigned
char
val
);
...
...
@@ -641,37 +621,8 @@ void __init
select_adb_keyboard
(
void
)
{
#ifdef CONFIG_VT
#ifdef CONFIG_INPUT
ppc_md
.
kbd_init_hw
=
mac_hid_init_hw
;
ppc_md
.
kbd_translate
=
mac_hid_kbd_translate
;
ppc_md
.
kbd_unexpected_up
=
mac_hid_kbd_unexpected_up
;
ppc_md
.
kbd_setkeycode
=
0
;
ppc_md
.
kbd_getkeycode
=
0
;
ppc_md
.
kbd_leds
=
0
;
#ifdef CONFIG_MAGIC_SYSRQ
#ifdef CONFIG_MAC_ADBKEYCODES
if
(
!
keyboard_sends_linux_keycodes
)
{
ppc_md
.
ppc_kbd_sysrq_xlate
=
mac_hid_kbd_sysrq_xlate
;
SYSRQ_KEY
=
0x69
;
}
else
#endif
/* CONFIG_MAC_ADBKEYCODES */
{
ppc_md
.
ppc_kbd_sysrq_xlate
=
pckbd_sysrq_xlate
;
SYSRQ_KEY
=
0x54
;
}
#endif
/* CONFIG_MAGIC_SYSRQ */
#elif defined(CONFIG_ADB_KEYBOARD)
ppc_md
.
kbd_setkeycode
=
mackbd_setkeycode
;
ppc_md
.
kbd_getkeycode
=
mackbd_getkeycode
;
ppc_md
.
kbd_translate
=
mackbd_translate
;
ppc_md
.
kbd_unexpected_up
=
mackbd_unexpected_up
;
ppc_md
.
kbd_leds
=
mackbd_leds
;
ppc_md
.
kbd_init_hw
=
mackbd_init_hw
;
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md
.
ppc_kbd_sysrq_xlate
=
mackbd_sysrq_xlate
;
SYSRQ_KEY
=
0x69
;
#endif
/* CONFIG_MAGIC_SYSRQ */
#endif
/* CONFIG_INPUT_ADBHID/CONFIG_ADB_KEYBOARD */
#endif
/* CONFIG_VT */
}
...
...
arch/ppc/platforms/pplus_setup.c
View file @
b07a73e9
...
...
@@ -77,15 +77,6 @@
TODC_ALLOC
();
extern
int
pckbd_setkeycode
(
unsigned
int
scancode
,
unsigned
int
keycode
);
extern
int
pckbd_getkeycode
(
unsigned
int
scancode
);
extern
int
pckbd_translate
(
unsigned
char
scancode
,
unsigned
char
*
keycode
,
char
raw_mode
);
extern
char
pckbd_unexpected_up
(
unsigned
char
keycode
);
extern
void
pckbd_leds
(
unsigned
char
leds
);
extern
void
pckbd_init_hw
(
void
);
extern
unsigned
char
pckbd_sysrq_xlate
[
128
];
extern
void
pplus_setup_hose
(
void
);
extern
void
pplus_set_VIA_IDE_native
(
void
);
...
...
@@ -508,19 +499,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
ppc_ide_md
.
ide_init_hwif
=
pplus_ide_init_hwif_ports
;
#endif
#ifdef CONFIG_VT
ppc_md
.
kbd_setkeycode
=
pckbd_setkeycode
;
ppc_md
.
kbd_getkeycode
=
pckbd_getkeycode
;
ppc_md
.
kbd_translate
=
pckbd_translate
;
ppc_md
.
kbd_unexpected_up
=
pckbd_unexpected_up
;
ppc_md
.
kbd_leds
=
pckbd_leds
;
ppc_md
.
kbd_init_hw
=
pckbd_init_hw
;
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md
.
ppc_kbd_sysrq_xlate
=
pckbd_sysrq_xlate
;
SYSRQ_KEY
=
0x54
;
#endif
#endif
#ifdef CONFIG_SMP
ppc_md
.
smp_ops
=
&
pplus_smp_ops
;
#endif
/* CONFIG_SMP */
...
...
arch/ppc/platforms/prep_setup.c
View file @
b07a73e9
...
...
@@ -79,15 +79,6 @@ extern void rs_nvram_write_val(int addr,
unsigned
char
val
);
extern
void
ibm_prep_init
(
void
);
extern
int
pckbd_setkeycode
(
unsigned
int
scancode
,
unsigned
int
keycode
);
extern
int
pckbd_getkeycode
(
unsigned
int
scancode
);
extern
int
pckbd_translate
(
unsigned
char
scancode
,
unsigned
char
*
keycode
,
char
raw_mode
);
extern
char
pckbd_unexpected_up
(
unsigned
char
keycode
);
extern
void
pckbd_leds
(
unsigned
char
leds
);
extern
void
pckbd_init_hw
(
void
);
extern
unsigned
char
pckbd_sysrq_xlate
[];
extern
void
prep_find_bridges
(
void
);
extern
char
saved_command_line
[];
...
...
@@ -895,19 +886,6 @@ prep_init(unsigned long r3, unsigned long r4, unsigned long r5,
ppc_ide_md
.
default_io_base
=
prep_ide_default_io_base
;
#endif
#ifdef CONFIG_VT
ppc_md
.
kbd_setkeycode
=
pckbd_setkeycode
;
ppc_md
.
kbd_getkeycode
=
pckbd_getkeycode
;
ppc_md
.
kbd_translate
=
pckbd_translate
;
ppc_md
.
kbd_unexpected_up
=
pckbd_unexpected_up
;
ppc_md
.
kbd_leds
=
pckbd_leds
;
ppc_md
.
kbd_init_hw
=
pckbd_init_hw
;
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md
.
ppc_kbd_sysrq_xlate
=
pckbd_sysrq_xlate
;
SYSRQ_KEY
=
0x54
;
#endif
#endif
#ifdef CONFIG_SMP
ppc_md
.
smp_ops
=
&
prep_smp_ops
;
#endif
/* CONFIG_SMP */
...
...
arch/ppc/platforms/sandpoint_setup.c
View file @
b07a73e9
...
...
@@ -97,15 +97,6 @@
extern
u_int
openpic_irq
(
void
);
extern
void
openpic_eoi
(
void
);
extern
int
pckbd_setkeycode
(
unsigned
int
scancode
,
unsigned
int
keycode
);
extern
int
pckbd_getkeycode
(
unsigned
int
scancode
);
extern
int
pckbd_translate
(
unsigned
char
scancode
,
unsigned
char
*
keycode
,
char
raw_mode
);
extern
char
pckbd_unexpected_up
(
unsigned
char
keycode
);
extern
void
pckbd_leds
(
unsigned
char
leds
);
extern
void
pckbd_init_hw
(
void
);
extern
unsigned
char
pckbd_sysrq_xlate
[
128
];
static
void
sandpoint_halt
(
void
);
...
...
@@ -645,19 +636,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
ppc_md
.
progress
=
NULL
;
#endif
/* CONFIG_SERIAL_TEXT_DEBUG */
#ifdef CONFIG_VT
ppc_md
.
kbd_setkeycode
=
pckbd_setkeycode
;
ppc_md
.
kbd_getkeycode
=
pckbd_getkeycode
;
ppc_md
.
kbd_translate
=
pckbd_translate
;
ppc_md
.
kbd_unexpected_up
=
pckbd_unexpected_up
;
ppc_md
.
kbd_leds
=
pckbd_leds
;
ppc_md
.
kbd_init_hw
=
pckbd_init_hw
;
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md
.
ppc_kbd_sysrq_xlate
=
pckbd_sysrq_xlate
;
SYSRQ_KEY
=
0x54
;
#endif
#endif
#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
ppc_ide_md
.
default_irq
=
sandpoint_ide_default_irq
;
ppc_ide_md
.
default_io_base
=
sandpoint_ide_default_io_base
;
...
...
arch/ppc/platforms/spruce_setup.c
View file @
b07a73e9
...
...
@@ -64,13 +64,6 @@ extern void spruce_init_IRQ(void);
extern
int
spruce_get_irq
(
struct
pt_regs
*
);
extern
void
spruce_setup_hose
(
void
);
extern
int
pckbd_setkeycode
(
unsigned
int
,
unsigned
int
);
extern
int
pckbd_getkeycode
(
unsigned
int
);
extern
int
pckbd_translate
(
unsigned
char
,
unsigned
char
*
,
char
);
extern
char
pckbd_unexpected_up
(
unsigned
char
);
extern
void
pckbd_leds
(
unsigned
char
);
extern
void
pckbd_init_hw
(
void
);
extern
unsigned
char
pckbd_sysrq_xlate
[
128
];
extern
char
cmd_line
[];
/*
...
...
@@ -279,18 +272,4 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
ppc_md
.
nvram_read_val
=
todc_direct_read_val
;
ppc_md
.
nvram_write_val
=
todc_direct_write_val
;
#ifdef CONFIG_VT
/* Spruce has a PS2 style keyboard */
ppc_md
.
kbd_setkeycode
=
pckbd_setkeycode
;
ppc_md
.
kbd_getkeycode
=
pckbd_getkeycode
;
ppc_md
.
kbd_translate
=
pckbd_translate
;
ppc_md
.
kbd_unexpected_up
=
pckbd_unexpected_up
;
ppc_md
.
kbd_leds
=
pckbd_leds
;
ppc_md
.
kbd_init_hw
=
pckbd_init_hw
;
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md
.
kbd_sysrq_xlate
=
pckbd_sysrq_xlate
;
SYSRQ_KEY
=
0x54
;
#endif
#endif
}
drivers/macintosh/adbhid.c
View file @
b07a73e9
...
...
@@ -77,6 +77,7 @@ struct adbhid {
int
mouse_kind
;
unsigned
char
*
keycode
;
char
name
[
64
];
char
phys
[
32
];
};
static
struct
adbhid
*
adbhid
[
16
]
=
{
0
};
...
...
@@ -273,12 +274,37 @@ adbhid_buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int auto
switch
(
adbhid
[
id
]
->
original_handler_id
)
{
default:
case
0x02
:
/* Adjustable keyboard button device */
printk
(
KERN_INFO
"Unhandled ADB_MISC event %02x, %02x, %02x, %02x
\n
"
,
data
[
0
],
data
[
1
],
data
[
2
],
data
[
3
]);
break
;
{
int
down
=
(
data
[
1
]
==
(
data
[
1
]
&
0xf
));
switch
(
data
[
1
]
&
0x0f
)
{
case
0x0
:
/* microphone */
input_report_key
(
&
adbhid
[
id
]
->
input
,
KEY_SOUND
,
down
);
break
;
case
0x1
:
/* mute */
input_report_key
(
&
adbhid
[
id
]
->
input
,
KEY_MUTE
,
down
);
break
;
case
0x2
:
/* volume decrease */
input_report_key
(
&
adbhid
[
id
]
->
input
,
KEY_VOLUMEDOWN
,
down
);
break
;
case
0x3
:
/* volume increase */
input_report_key
(
&
adbhid
[
id
]
->
input
,
KEY_VOLUMEUP
,
down
);
break
;
default:
printk
(
KERN_INFO
"Unhandled ADB_MISC event %02x, %02x, %02x, %02x
\n
"
,
data
[
0
],
data
[
1
],
data
[
2
],
data
[
3
]);
break
;
}
}
break
;
case
0x1f
:
/* Powerbook button device */
{
int
down
=
(
data
[
1
]
==
(
data
[
1
]
&
0xf
));
int
down
=
(
data
[
1
]
==
(
data
[
1
]
&
0xf
));
#ifdef CONFIG_PMAC_BACKLIGHT
int
backlight
=
get_backlight_level
();
#endif
...
...
@@ -298,11 +324,12 @@ adbhid_buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int auto
case
0x6
:
/* volume increase */
input_report_key
(
&
adbhid
[
id
]
->
input
,
KEY_VOLUMEUP
,
down
);
break
;
break
;
case
0xb
:
/* eject */
input_report_key
(
&
adbhid
[
id
]
->
input
,
KEY_EJECTCD
,
down
);
break
;
case
0xa
:
/* brightness decrease */
#ifdef CONFIG_PMAC_BACKLIGHT
if
(
!
disable_kernel_backlight
)
{
...
...
@@ -317,6 +344,7 @@ adbhid_buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int auto
#endif
/* CONFIG_PMAC_BACKLIGHT */
input_report_key
(
&
adbhid
[
id
]
->
input
,
KEY_BRIGHTNESSDOWN
,
down
);
break
;
case
0x9
:
/* brightness increase */
#ifdef CONFIG_PMAC_BACKLIGHT
if
(
!
disable_kernel_backlight
)
{
...
...
@@ -442,6 +470,7 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
return
;
memset
(
adbhid
[
id
],
0
,
sizeof
(
struct
adbhid
));
sprintf
(
adbhid
[
id
]
->
phys
,
"adb%d:%d.%02x/input"
,
id
,
default_id
,
original_handler_id
);
adbhid
[
id
]
->
id
=
default_id
;
adbhid
[
id
]
->
original_handler_id
=
original_handler_id
;
...
...
@@ -449,6 +478,7 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
adbhid
[
id
]
->
mouse_kind
=
mouse_kind
;
adbhid
[
id
]
->
input
.
private
=
adbhid
[
id
];
adbhid
[
id
]
->
input
.
name
=
adbhid
[
id
]
->
name
;
adbhid
[
id
]
->
input
.
phys
=
adbhid
[
id
]
->
phys
;
adbhid
[
id
]
->
input
.
idbus
=
BUS_ADB
;
adbhid
[
id
]
->
input
.
idvendor
=
0x0001
;
adbhid
[
id
]
->
input
.
idproduct
=
(
id
<<
12
)
|
(
default_id
<<
8
)
|
original_handler_id
;
...
...
@@ -461,8 +491,7 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
return
;
}
sprintf
(
adbhid
[
id
]
->
name
,
"ADB keyboard on ID %d:%d.%02x"
,
id
,
default_id
,
original_handler_id
);
sprintf
(
adbhid
[
id
]
->
name
,
"ADB keyboard"
);
memcpy
(
adbhid
[
id
]
->
keycode
,
adb_to_linux_keycodes
,
sizeof
(
adb_to_linux_keycodes
));
...
...
@@ -509,8 +538,7 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
break
;
case
ADB_MOUSE
:
sprintf
(
adbhid
[
id
]
->
name
,
"ADB mouse on ID %d:%d.%02x"
,
id
,
default_id
,
original_handler_id
);
sprintf
(
adbhid
[
id
]
->
name
,
"ADB mouse"
);
adbhid
[
id
]
->
input
.
evbit
[
0
]
=
BIT
(
EV_KEY
)
|
BIT
(
EV_REL
);
adbhid
[
id
]
->
input
.
keybit
[
LONG
(
BTN_MOUSE
)]
=
BIT
(
BTN_LEFT
)
|
BIT
(
BTN_MIDDLE
)
|
BIT
(
BTN_RIGHT
);
...
...
@@ -520,12 +548,15 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
case
ADB_MISC
:
switch
(
original_handler_id
)
{
case
0x02
:
/* Adjustable keyboard button device */
sprintf
(
adbhid
[
id
]
->
name
,
"ADB adjustable keyboard buttons on ID %d:%d.%02x"
,
id
,
default_id
,
original_handler_id
);
sprintf
(
adbhid
[
id
]
->
name
,
"ADB adjustable keyboard buttons"
);
adbhid
[
id
]
->
input
.
evbit
[
0
]
=
BIT
(
EV_KEY
)
|
BIT
(
EV_REP
);
set_bit
(
KEY_SOUND
,
adbhid
[
id
]
->
input
.
keybit
);
set_bit
(
KEY_MUTE
,
adbhid
[
id
]
->
input
.
keybit
);
set_bit
(
KEY_VOLUMEUP
,
adbhid
[
id
]
->
input
.
keybit
);
set_bit
(
KEY_VOLUMEDOWN
,
adbhid
[
id
]
->
input
.
keybit
);
break
;
case
0x1f
:
/* Powerbook button device */
sprintf
(
adbhid
[
id
]
->
name
,
"ADB Powerbook buttons on ID %d:%d.%02x"
,
id
,
default_id
,
original_handler_id
);
sprintf
(
adbhid
[
id
]
->
name
,
"ADB Powerbook buttons"
);
adbhid
[
id
]
->
input
.
evbit
[
0
]
=
BIT
(
EV_KEY
)
|
BIT
(
EV_REP
);
set_bit
(
KEY_MUTE
,
adbhid
[
id
]
->
input
.
keybit
);
set_bit
(
KEY_VOLUMEUP
,
adbhid
[
id
]
->
input
.
keybit
);
...
...
@@ -549,8 +580,8 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
input_register_device
(
&
adbhid
[
id
]
->
input
);
printk
(
KERN_INFO
"input
%d: ADB HID on ID %d:%d.%02x
\n
"
,
adbhid
[
id
]
->
input
.
number
,
id
,
default_id
,
original_handler_id
);
printk
(
KERN_INFO
"input
: %s on %s
\n
"
,
adbhid
[
id
]
->
name
,
adbhid
[
id
]
->
phys
);
if
(
default_id
==
ADB_KEYBOARD
)
{
/* HACK WARNING!! This should go away as soon there is an utility
...
...
@@ -580,11 +611,11 @@ adbhid_input_reregister(int id, int default_id, int org_handler_id,
((
id
<<
12
)
|
(
default_id
<<
8
)
|
org_handler_id
))
{
adbhid_input_unregister
(
id
);
adbhid_input_register
(
id
,
default_id
,
org_handler_id
,
cur_handler_id
,
mk
);
cur_handler_id
,
mk
);
}
}
else
adbhid_input_register
(
id
,
default_id
,
org_handler_id
,
cur_handler_id
,
mk
);
cur_handler_id
,
mk
);
return
1
<<
id
;
}
...
...
@@ -593,10 +624,10 @@ adbhid_input_devcleanup(u16 exist)
{
int
i
;
for
(
i
=
1
;
i
<
16
;
i
++
)
if
(
adbhid
[
i
]
&&
!
(
exist
&
(
1
<<
i
)))
adbhid_input_unregister
(
i
);
if
(
adbhid
[
i
]
&&
!
(
exist
&
(
1
<<
i
)))
adbhid_input_unregister
(
i
);
}
static
void
adbhid_probe
(
void
)
{
...
...
@@ -631,14 +662,16 @@ adbhid_probe(void)
printk
(
"ADB keyboard at %d, handler 1
\n
"
,
id
);
adb_get_infos
(
id
,
&
default_id
,
&
cur_handler_id
);
reg
|=
adbhid_input_reregister
(
id
,
default_id
,
org_handler_id
,
cur_handler_id
,
0
);
reg
|=
adbhid_input_reregister
(
id
,
default_id
,
org_handler_id
,
cur_handler_id
,
0
);
}
for
(
i
=
0
;
i
<
buttons_ids
.
nids
;
i
++
)
{
int
id
=
buttons_ids
.
id
[
i
];
adb_get_infos
(
id
,
&
default_id
,
&
org_handler_id
);
reg
|=
adbhid_input_reregister
(
id
,
default_id
,
org_handler_id
,
org_handler_id
,
0
);
reg
|=
adbhid_input_reregister
(
id
,
default_id
,
org_handler_id
,
org_handler_id
,
0
);
}
/* Try to switch all mice to handler 4, or 2 for three-button
...
...
@@ -728,8 +761,8 @@ adbhid_probe(void)
adb_get_infos
(
id
,
&
default_id
,
&
cur_handler_id
);
reg
|=
adbhid_input_reregister
(
id
,
default_id
,
org_handler_id
,
cur_handler_id
,
mouse_kind
);
}
cur_handler_id
,
mouse_kind
);
}
adbhid_input_devcleanup
(
reg
);
}
...
...
@@ -742,7 +775,7 @@ init_trackpad(int id)
printk
(
" (trackpad)"
);
adb_request
(
&
req
,
NULL
,
ADBREQ_SYNC
|
ADBREQ_REPLY
,
1
,
ADB_READREG
(
id
,
1
));
ADB_READREG
(
id
,
1
));
if
(
req
.
reply_len
<
8
)
printk
(
"bad length for reg. 1
\n
"
);
else
...
...
@@ -782,7 +815,7 @@ init_trackpad(int id)
0x03
,
/*r1_buffer[6],*/
r1_buffer
[
7
]);
/* Without this flush, the trackpad may be locked up */
/* Without this flush, the trackpad may be locked up */
adb_request
(
&
req
,
NULL
,
ADBREQ_SYNC
,
1
,
ADB_FLUSH
(
id
));
}
}
...
...
drivers/macintosh/mac_hid.c
View file @
b07a73e9
...
...
@@ -5,8 +5,6 @@
*
* Copyright (C) 2000 Franz Sirl.
*
* Stuff inside CONFIG_MAC_ADBKEYCODES should go away during 2.5 when all
* major distributions are using the Linux keycodes.
* Stuff inside CONFIG_MAC_EMUMOUSEBTN should really be moved to userspace.
*/
...
...
@@ -17,184 +15,6 @@
#include <linux/input.h>
#include <linux/module.h>
#ifdef CONFIG_MAC_ADBKEYCODES
#include <linux/keyboard.h>
#include <asm/keyboard.h>
#include <asm/machdep.h>
#endif
#ifdef CONFIG_MAC_ADBKEYCODES
/* Simple translation table for the SysRq keys */
#ifdef CONFIG_MAGIC_SYSRQ
unsigned
char
mac_hid_kbd_sysrq_xlate
[
128
]
=
"asdfhgzxcv
\000
bqwer"
/* 0x00 - 0x0f */
"yt123465=97-80o]"
/* 0x10 - 0x1f */
"u[ip
\r
lj'k;
\\
,/nm."
/* 0x20 - 0x2f */
"
\t
`
\177\000\033\000\000\000\000\000\000\000\000\000\000
"
/* 0x30 - 0x3f */
"
\000\000\000
*
\000
+
\000\000\000\000\000
/
\r\000
-
\000
"
/* 0x40 - 0x4f */
"
\000\000
0123456789
\000\000\000
"
/* 0x50 - 0x5f */
"
\205\206\207\203\210\211\000\213\000\215\000\000\000\000\000\212\000\214
"
;
/* 0x60 - 0x6f */
extern
unsigned
char
pckbd_sysrq_xlate
[
128
];
#endif
static
u_short
macplain_map
[
NR_KEYS
]
=
{
0xfb61
,
0xfb73
,
0xfb64
,
0xfb66
,
0xfb68
,
0xfb67
,
0xfb7a
,
0xfb78
,
0xfb63
,
0xfb76
,
0xf200
,
0xfb62
,
0xfb71
,
0xfb77
,
0xfb65
,
0xfb72
,
0xfb79
,
0xfb74
,
0xf031
,
0xf032
,
0xf033
,
0xf034
,
0xf036
,
0xf035
,
0xf03d
,
0xf039
,
0xf037
,
0xf02d
,
0xf038
,
0xf030
,
0xf05d
,
0xfb6f
,
0xfb75
,
0xf05b
,
0xfb69
,
0xfb70
,
0xf201
,
0xfb6c
,
0xfb6a
,
0xf027
,
0xfb6b
,
0xf03b
,
0xf05c
,
0xf02c
,
0xf02f
,
0xfb6e
,
0xfb6d
,
0xf02e
,
0xf009
,
0xf020
,
0xf060
,
0xf07f
,
0xf200
,
0xf01b
,
0xf702
,
0xf703
,
0xf700
,
0xf207
,
0xf701
,
0xf601
,
0xf602
,
0xf600
,
0xf603
,
0xf200
,
0xf200
,
0xf310
,
0xf200
,
0xf30c
,
0xf200
,
0xf30a
,
0xf200
,
0xf208
,
0xf200
,
0xf200
,
0xf200
,
0xf30d
,
0xf30e
,
0xf200
,
0xf30b
,
0xf200
,
0xf200
,
0xf200
,
0xf300
,
0xf301
,
0xf302
,
0xf303
,
0xf304
,
0xf305
,
0xf306
,
0xf307
,
0xf200
,
0xf308
,
0xf309
,
0xf200
,
0xf200
,
0xf200
,
0xf104
,
0xf105
,
0xf106
,
0xf102
,
0xf107
,
0xf108
,
0xf200
,
0xf10a
,
0xf200
,
0xf10c
,
0xf200
,
0xf209
,
0xf200
,
0xf109
,
0xf200
,
0xf10b
,
0xf200
,
0xf11d
,
0xf115
,
0xf114
,
0xf118
,
0xf116
,
0xf103
,
0xf117
,
0xf101
,
0xf119
,
0xf100
,
0xf700
,
0xf701
,
0xf702
,
0xf200
,
0xf200
,
};
static
u_short
macshift_map
[
NR_KEYS
]
=
{
0xfb41
,
0xfb53
,
0xfb44
,
0xfb46
,
0xfb48
,
0xfb47
,
0xfb5a
,
0xfb58
,
0xfb43
,
0xfb56
,
0xf200
,
0xfb42
,
0xfb51
,
0xfb57
,
0xfb45
,
0xfb52
,
0xfb59
,
0xfb54
,
0xf021
,
0xf040
,
0xf023
,
0xf024
,
0xf05e
,
0xf025
,
0xf02b
,
0xf028
,
0xf026
,
0xf05f
,
0xf02a
,
0xf029
,
0xf07d
,
0xfb4f
,
0xfb55
,
0xf07b
,
0xfb49
,
0xfb50
,
0xf201
,
0xfb4c
,
0xfb4a
,
0xf022
,
0xfb4b
,
0xf03a
,
0xf07c
,
0xf03c
,
0xf03f
,
0xfb4e
,
0xfb4d
,
0xf03e
,
0xf009
,
0xf020
,
0xf07e
,
0xf07f
,
0xf200
,
0xf01b
,
0xf702
,
0xf703
,
0xf700
,
0xf207
,
0xf701
,
0xf601
,
0xf602
,
0xf600
,
0xf603
,
0xf200
,
0xf200
,
0xf310
,
0xf200
,
0xf30c
,
0xf200
,
0xf30a
,
0xf200
,
0xf208
,
0xf200
,
0xf200
,
0xf200
,
0xf30d
,
0xf30e
,
0xf200
,
0xf30b
,
0xf200
,
0xf200
,
0xf200
,
0xf300
,
0xf301
,
0xf302
,
0xf303
,
0xf304
,
0xf305
,
0xf306
,
0xf307
,
0xf200
,
0xf308
,
0xf309
,
0xf200
,
0xf200
,
0xf200
,
0xf10e
,
0xf10f
,
0xf110
,
0xf10c
,
0xf111
,
0xf112
,
0xf200
,
0xf10a
,
0xf200
,
0xf10c
,
0xf200
,
0xf203
,
0xf200
,
0xf113
,
0xf200
,
0xf10b
,
0xf200
,
0xf11d
,
0xf115
,
0xf114
,
0xf20b
,
0xf116
,
0xf10d
,
0xf117
,
0xf10b
,
0xf20a
,
0xf10a
,
0xf700
,
0xf701
,
0xf702
,
0xf200
,
0xf200
,
};
static
u_short
macaltgr_map
[
NR_KEYS
]
=
{
0xf914
,
0xfb73
,
0xf917
,
0xf919
,
0xfb68
,
0xfb67
,
0xfb7a
,
0xfb78
,
0xf916
,
0xfb76
,
0xf200
,
0xf915
,
0xfb71
,
0xfb77
,
0xf918
,
0xfb72
,
0xfb79
,
0xfb74
,
0xf200
,
0xf040
,
0xf200
,
0xf024
,
0xf200
,
0xf200
,
0xf200
,
0xf05d
,
0xf07b
,
0xf05c
,
0xf05b
,
0xf07d
,
0xf07e
,
0xfb6f
,
0xfb75
,
0xf200
,
0xfb69
,
0xfb70
,
0xf201
,
0xfb6c
,
0xfb6a
,
0xf200
,
0xfb6b
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xfb6e
,
0xfb6d
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf702
,
0xf703
,
0xf700
,
0xf207
,
0xf701
,
0xf601
,
0xf602
,
0xf600
,
0xf603
,
0xf200
,
0xf200
,
0xf310
,
0xf200
,
0xf30c
,
0xf200
,
0xf30a
,
0xf200
,
0xf208
,
0xf200
,
0xf200
,
0xf200
,
0xf30d
,
0xf30e
,
0xf200
,
0xf30b
,
0xf200
,
0xf200
,
0xf200
,
0xf90a
,
0xf90b
,
0xf90c
,
0xf90d
,
0xf90e
,
0xf90f
,
0xf910
,
0xf911
,
0xf200
,
0xf912
,
0xf913
,
0xf200
,
0xf200
,
0xf200
,
0xf510
,
0xf511
,
0xf512
,
0xf50e
,
0xf513
,
0xf514
,
0xf200
,
0xf516
,
0xf200
,
0xf10c
,
0xf200
,
0xf202
,
0xf200
,
0xf515
,
0xf200
,
0xf517
,
0xf200
,
0xf11d
,
0xf115
,
0xf114
,
0xf118
,
0xf116
,
0xf50f
,
0xf117
,
0xf50d
,
0xf119
,
0xf50c
,
0xf700
,
0xf701
,
0xf702
,
0xf200
,
0xf200
,
};
static
u_short
macctrl_map
[
NR_KEYS
]
=
{
0xf001
,
0xf013
,
0xf004
,
0xf006
,
0xf008
,
0xf007
,
0xf01a
,
0xf018
,
0xf003
,
0xf016
,
0xf200
,
0xf002
,
0xf011
,
0xf017
,
0xf005
,
0xf012
,
0xf019
,
0xf014
,
0xf200
,
0xf000
,
0xf01b
,
0xf01c
,
0xf01e
,
0xf01d
,
0xf200
,
0xf200
,
0xf01f
,
0xf01f
,
0xf07f
,
0xf200
,
0xf01d
,
0xf00f
,
0xf015
,
0xf01b
,
0xf009
,
0xf010
,
0xf201
,
0xf00c
,
0xf00a
,
0xf007
,
0xf00b
,
0xf200
,
0xf01c
,
0xf200
,
0xf07f
,
0xf00e
,
0xf00d
,
0xf20e
,
0xf200
,
0xf000
,
0xf000
,
0xf008
,
0xf200
,
0xf200
,
0xf702
,
0xf703
,
0xf700
,
0xf207
,
0xf701
,
0xf601
,
0xf602
,
0xf600
,
0xf603
,
0xf200
,
0xf200
,
0xf310
,
0xf200
,
0xf30c
,
0xf200
,
0xf30a
,
0xf200
,
0xf208
,
0xf200
,
0xf200
,
0xf200
,
0xf30d
,
0xf30e
,
0xf200
,
0xf30b
,
0xf200
,
0xf200
,
0xf200
,
0xf300
,
0xf301
,
0xf302
,
0xf303
,
0xf304
,
0xf305
,
0xf306
,
0xf307
,
0xf200
,
0xf308
,
0xf309
,
0xf200
,
0xf200
,
0xf200
,
0xf104
,
0xf105
,
0xf106
,
0xf102
,
0xf107
,
0xf108
,
0xf200
,
0xf10a
,
0xf200
,
0xf10c
,
0xf200
,
0xf204
,
0xf200
,
0xf109
,
0xf200
,
0xf10b
,
0xf200
,
0xf11d
,
0xf115
,
0xf114
,
0xf118
,
0xf116
,
0xf103
,
0xf117
,
0xf101
,
0xf119
,
0xf100
,
0xf700
,
0xf701
,
0xf702
,
0xf200
,
0xf200
,
};
static
u_short
macshift_ctrl_map
[
NR_KEYS
]
=
{
0xf001
,
0xf013
,
0xf004
,
0xf006
,
0xf008
,
0xf007
,
0xf01a
,
0xf018
,
0xf003
,
0xf016
,
0xf200
,
0xf002
,
0xf011
,
0xf017
,
0xf005
,
0xf012
,
0xf019
,
0xf014
,
0xf200
,
0xf000
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf01f
,
0xf200
,
0xf200
,
0xf200
,
0xf00f
,
0xf015
,
0xf200
,
0xf009
,
0xf010
,
0xf201
,
0xf00c
,
0xf00a
,
0xf200
,
0xf00b
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf00e
,
0xf00d
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf702
,
0xf703
,
0xf700
,
0xf207
,
0xf701
,
0xf601
,
0xf602
,
0xf600
,
0xf603
,
0xf200
,
0xf200
,
0xf310
,
0xf200
,
0xf30c
,
0xf200
,
0xf30a
,
0xf200
,
0xf208
,
0xf200
,
0xf200
,
0xf200
,
0xf30d
,
0xf30e
,
0xf200
,
0xf30b
,
0xf200
,
0xf200
,
0xf200
,
0xf300
,
0xf301
,
0xf302
,
0xf303
,
0xf304
,
0xf305
,
0xf306
,
0xf307
,
0xf200
,
0xf308
,
0xf309
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf10c
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf11d
,
0xf115
,
0xf114
,
0xf118
,
0xf116
,
0xf200
,
0xf117
,
0xf200
,
0xf119
,
0xf200
,
0xf700
,
0xf701
,
0xf702
,
0xf200
,
0xf20c
,
};
static
u_short
macalt_map
[
NR_KEYS
]
=
{
0xf861
,
0xf873
,
0xf864
,
0xf866
,
0xf868
,
0xf867
,
0xf87a
,
0xf878
,
0xf863
,
0xf876
,
0xf200
,
0xf862
,
0xf871
,
0xf877
,
0xf865
,
0xf872
,
0xf879
,
0xf874
,
0xf831
,
0xf832
,
0xf833
,
0xf834
,
0xf836
,
0xf835
,
0xf83d
,
0xf839
,
0xf837
,
0xf82d
,
0xf838
,
0xf830
,
0xf85d
,
0xf86f
,
0xf875
,
0xf85b
,
0xf869
,
0xf870
,
0xf80d
,
0xf86c
,
0xf86a
,
0xf827
,
0xf86b
,
0xf83b
,
0xf85c
,
0xf82c
,
0xf82f
,
0xf86e
,
0xf86d
,
0xf82e
,
0xf809
,
0xf820
,
0xf860
,
0xf87f
,
0xf200
,
0xf81b
,
0xf702
,
0xf703
,
0xf700
,
0xf207
,
0xf701
,
0xf210
,
0xf211
,
0xf600
,
0xf603
,
0xf200
,
0xf200
,
0xf310
,
0xf200
,
0xf30c
,
0xf200
,
0xf30a
,
0xf200
,
0xf208
,
0xf200
,
0xf200
,
0xf200
,
0xf30d
,
0xf30e
,
0xf200
,
0xf30b
,
0xf200
,
0xf200
,
0xf200
,
0xf900
,
0xf901
,
0xf902
,
0xf903
,
0xf904
,
0xf905
,
0xf906
,
0xf907
,
0xf200
,
0xf908
,
0xf909
,
0xf200
,
0xf200
,
0xf200
,
0xf504
,
0xf505
,
0xf506
,
0xf502
,
0xf507
,
0xf508
,
0xf200
,
0xf50a
,
0xf200
,
0xf10c
,
0xf200
,
0xf209
,
0xf200
,
0xf509
,
0xf200
,
0xf50b
,
0xf200
,
0xf11d
,
0xf115
,
0xf114
,
0xf118
,
0xf116
,
0xf503
,
0xf117
,
0xf501
,
0xf119
,
0xf500
,
0xf700
,
0xf701
,
0xf702
,
0xf200
,
0xf200
,
};
static
u_short
macctrl_alt_map
[
NR_KEYS
]
=
{
0xf801
,
0xf813
,
0xf804
,
0xf806
,
0xf808
,
0xf807
,
0xf81a
,
0xf818
,
0xf803
,
0xf816
,
0xf200
,
0xf802
,
0xf811
,
0xf817
,
0xf805
,
0xf812
,
0xf819
,
0xf814
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf80f
,
0xf815
,
0xf200
,
0xf809
,
0xf810
,
0xf201
,
0xf80c
,
0xf80a
,
0xf200
,
0xf80b
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf80e
,
0xf80d
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf200
,
0xf702
,
0xf703
,
0xf700
,
0xf207
,
0xf701
,
0xf601
,
0xf602
,
0xf600
,
0xf603
,
0xf200
,
0xf200
,
0xf310
,
0xf200
,
0xf30c
,
0xf200
,
0xf30a
,
0xf200
,
0xf208
,
0xf200
,
0xf200
,
0xf200
,
0xf30d
,
0xf30e
,
0xf200
,
0xf30b
,
0xf200
,
0xf200
,
0xf200
,
0xf300
,
0xf301
,
0xf302
,
0xf303
,
0xf304
,
0xf305
,
0xf306
,
0xf307
,
0xf200
,
0xf308
,
0xf309
,
0xf200
,
0xf200
,
0xf200
,
0xf504
,
0xf505
,
0xf506
,
0xf502
,
0xf507
,
0xf508
,
0xf200
,
0xf50a
,
0xf200
,
0xf10c
,
0xf200
,
0xf200
,
0xf200
,
0xf509
,
0xf200
,
0xf50b
,
0xf200
,
0xf11d
,
0xf115
,
0xf114
,
0xf118
,
0xf116
,
0xf503
,
0xf117
,
0xf501
,
0xf119
,
0xf500
,
0xf700
,
0xf701
,
0xf702
,
0xf200
,
0xf200
,
};
static
unsigned
short
*
mac_key_maps_save
[
MAX_NR_KEYMAPS
]
=
{
macplain_map
,
macshift_map
,
macaltgr_map
,
0
,
macctrl_map
,
macshift_ctrl_map
,
0
,
0
,
macalt_map
,
0
,
0
,
0
,
macctrl_alt_map
,
0
};
static
unsigned
short
*
pc_key_maps_save
[
MAX_NR_KEYMAPS
];
int
mac_hid_kbd_translate
(
unsigned
char
keycode
,
unsigned
char
*
keycodep
,
char
raw_mode
);
static
int
mac_hid_sysctl_keycodes
(
ctl_table
*
ctl
,
int
write
,
struct
file
*
filp
,
void
*
buffer
,
size_t
*
lenp
);
char
mac_hid_kbd_unexpected_up
(
unsigned
char
keycode
);
static
int
keyboard_lock_keycodes
=
0
;
int
keyboard_sends_linux_keycodes
=
0
;
#else
int
keyboard_sends_linux_keycodes
=
1
;
#endif
static
unsigned
char
e0_keys
[
128
]
=
{
0
,
0
,
0
,
KEY_KPCOMMA
,
0
,
KEY_INTL3
,
0
,
0
,
/* 0x00-0x07 */
...
...
@@ -225,25 +45,10 @@ static int mouse_button3_keycode = KEY_RIGHTALT; /* right option key */
static
int
mouse_last_keycode
=
0
;
#endif
extern
void
pckbd_init_hw
(
void
);
#if defined CONFIG_SYSCTL && (defined(CONFIG_MAC_ADBKEYCODES) || defined(CONFIG_MAC_EMUMOUSEBTN))
#if defined(CONFIG_SYSCTL) && defined(CONFIG_MAC_EMUMOUSEBTN)
/* file(s) in /proc/sys/dev/mac_hid */
ctl_table
mac_hid_files
[]
=
{
#ifdef CONFIG_MAC_ADBKEYCODES
{
DEV_MAC_HID_KEYBOARD_SENDS_LINUX_KEYCODES
,
"keyboard_sends_linux_keycodes"
,
&
keyboard_sends_linux_keycodes
,
sizeof
(
int
),
0644
,
NULL
,
&
mac_hid_sysctl_keycodes
},
{
DEV_MAC_HID_KEYBOARD_LOCK_KEYCODES
,
"keyboard_lock_keycodes"
,
&
keyboard_lock_keycodes
,
sizeof
(
int
),
0644
,
NULL
,
&
proc_dointvec
},
#endif
#ifdef CONFIG_MAC_EMUMOUSEBTN
{
DEV_MAC_HID_MOUSE_BUTTON_EMULATION
,
"mouse_button_emulation"
,
&
mouse_emulate_buttons
,
sizeof
(
int
),
...
...
@@ -259,7 +64,6 @@ ctl_table mac_hid_files[] =
"mouse_button3_keycode"
,
&
mouse_button3_keycode
,
sizeof
(
int
),
0644
,
NULL
,
&
proc_dointvec
},
#endif
{
0
}
};
...
...
@@ -279,148 +83,72 @@ ctl_table mac_hid_root_dir[] =
static
struct
ctl_table_header
*
mac_hid_sysctl_header
;
#ifdef CONFIG_MAC_ADBKEYCODES
static
int
mac_hid_sysctl_keycodes
(
ctl_table
*
ctl
,
int
write
,
struct
file
*
filp
,
void
*
buffer
,
size_t
*
lenp
)
{
int
val
=
keyboard_sends_linux_keycodes
;
int
ret
=
0
;
if
(
!
write
||
(
write
&&
!
keyboard_lock_keycodes
))
ret
=
proc_dointvec
(
ctl
,
write
,
filp
,
buffer
,
lenp
);
if
(
write
&&
keyboard_sends_linux_keycodes
!=
val
)
{
if
(
!
keyboard_sends_linux_keycodes
)
{
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md
.
ppc_kbd_sysrq_xlate
=
mac_hid_kbd_sysrq_xlate
;
SYSRQ_KEY
=
0x69
;
#endif
memcpy
(
pc_key_maps_save
,
key_maps
,
sizeof
(
key_maps
));
memcpy
(
key_maps
,
mac_key_maps_save
,
sizeof
(
key_maps
));
}
else
{
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md
.
ppc_kbd_sysrq_xlate
=
pckbd_sysrq_xlate
;
SYSRQ_KEY
=
0x54
;
#endif
memcpy
(
mac_key_maps_save
,
key_maps
,
sizeof
(
key_maps
));
memcpy
(
key_maps
,
pc_key_maps_save
,
sizeof
(
key_maps
));
}
}
return
ret
;
}
#endif
#endif
/* endif CONFIG_SYSCTL */
int
mac_hid_kbd_translate
(
unsigned
char
scancode
,
unsigned
char
*
keycode
,
char
raw_mode
)
{
#ifdef CONFIG_MAC_ADBKEYCODES
if
(
!
keyboard_sends_linux_keycodes
)
{
if
(
!
raw_mode
)
{
/*
* Convert R-shift/control/option to L version.
*/
switch
(
scancode
)
{
case
0x7b
:
scancode
=
0x38
;
break
;
/* R-shift */
case
0x7c
:
scancode
=
0x3a
;
break
;
/* R-option */
case
0x7d
:
scancode
=
0x36
;
break
;
/* R-control */
}
}
*
keycode
=
scancode
;
return
1
;
}
else
#endif
{
/* This code was copied from char/pc_keyb.c and will be
* superflous when the input layer is fully integrated.
* We don't need the high_keys handling, so this part
* has been removed.
*/
static
int
prev_scancode
=
0
;
/* special prefix scancodes.. */
if
(
scancode
==
0xe0
||
scancode
==
0xe1
)
{
prev_scancode
=
scancode
;
return
0
;
}
/* This code was copied from char/pc_keyb.c and will be
* superflous when the input layer is fully integrated.
* We don't need the high_keys handling, so this part
* has been removed.
*/
static
int
prev_scancode
=
0
;
/* special prefix scancodes.. */
if
(
scancode
==
0xe0
||
scancode
==
0xe1
)
{
prev_scancode
=
scancode
;
return
0
;
}
scancode
&=
0x7f
;
scancode
&=
0x7f
;
if
(
prev_scancode
)
{
if
(
prev_scancode
!=
0xe0
)
{
if
(
prev_scancode
==
0xe1
&&
scancode
==
0x1d
)
{
prev_scancode
=
0x100
;
return
0
;
}
else
if
(
prev_scancode
==
0x100
&&
scancode
==
0x45
)
{
*
keycode
=
KEY_PAUSE
;
prev_scancode
=
0
;
}
else
{
if
(
!
raw_mode
)
printk
(
KERN_INFO
"keyboard: unknown e1 escape sequence
\n
"
);
prev_scancode
=
0
;
return
0
;
}
}
else
{
if
(
prev_scancode
)
{
if
(
prev_scancode
!=
0xe0
)
{
if
(
prev_scancode
==
0xe1
&&
scancode
==
0x1d
)
{
prev_scancode
=
0x100
;
return
0
;
}
else
if
(
prev_scancode
==
0x100
&&
scancode
==
0x45
)
{
*
keycode
=
KEY_PAUSE
;
prev_scancode
=
0
;
if
(
scancode
==
0x2a
||
scancode
==
0x36
)
return
0
;
}
if
(
e0_keys
[
scancode
])
*
keycode
=
e0_keys
[
scancode
];
else
{
}
else
{
if
(
!
raw_mode
)
printk
(
KERN_INFO
"keyboard: unknown
scancode e0 %02x
\n
"
,
scancode
)
;
printk
(
KERN_INFO
"keyboard: unknown
e1 escape sequence
\n
"
);
prev_scancode
=
0
;
return
0
;
}
}
else
{
switch
(
scancode
)
{
case
91
:
scancode
=
KEY_LINEFEED
;
break
;
case
92
:
scancode
=
KEY_KPEQUAL
;
break
;
case
125
:
scancode
=
KEY_INTL1
;
break
;
}
*
keycode
=
scancode
;
prev_scancode
=
0
;
if
(
scancode
==
0x2a
||
scancode
==
0x36
)
return
0
;
}
return
1
;
if
(
e0_keys
[
scancode
])
*
keycode
=
e0_keys
[
scancode
];
else
{
if
(
!
raw_mode
)
printk
(
KERN_INFO
"keyboard: unknown scancode e0 %02x
\n
"
,
scancode
);
return
0
;
}
}
else
{
switch
(
scancode
)
{
case
91
:
scancode
=
KEY_LINEFEED
;
break
;
case
92
:
scancode
=
KEY_KPEQUAL
;
break
;
case
125
:
scancode
=
KEY_INTL1
;
break
;
}
*
keycode
=
scancode
;
}
return
1
;
}
char
mac_hid_kbd_unexpected_up
(
unsigned
char
keycode
)
{
if
(
key
board_sends_linux_keycodes
&&
key
code
==
KEY_F13
)
if
(
keycode
==
KEY_F13
)
return
0
;
else
return
0x80
;
}
#ifdef CONFIG_MAC_ADBKEYCODES
int
mac_hid_keyboard_sends_linux_keycodes
(
void
)
{
return
keyboard_sends_linux_keycodes
;
}
EXPORT_SYMBOL
(
mac_hid_keyboard_sends_linux_keycodes
);
static
int
__init
mac_hid_setup
(
char
*
str
)
{
int
ints
[
2
];
str
=
get_options
(
str
,
ARRAY_SIZE
(
ints
),
ints
);
if
(
ints
[
0
]
==
1
)
{
keyboard_sends_linux_keycodes
=
ints
[
1
]
!=
0
;
keyboard_lock_keycodes
=
1
;
}
return
1
;
}
__setup
(
"keyboard_sends_linux_keycodes="
,
mac_hid_setup
);
#endif
#ifdef CONFIG_MAC_EMUMOUSEBTN
int
mac_hid_mouse_emulate_buttons
(
int
caller
,
unsigned
int
keycode
,
int
down
)
{
...
...
@@ -439,15 +167,6 @@ int mac_hid_mouse_emulate_buttons(int caller, unsigned int keycode, int down)
mouse_last_keycode
=
down
?
keycode
:
0
;
}
break
;
case
2
:
/* Called from mousedev.c */
if
(
mouse_emulate_buttons
==
2
&&
keycode
==
0
)
{
if
(
mouse_last_keycode
==
mouse_button2_keycode
)
return
1
;
/* map to middle button */
if
(
mouse_last_keycode
==
mouse_button3_keycode
)
return
2
;
/* map to right button */
}
return
keycode
;
/* keep button */
}
return
0
;
}
...
...
@@ -469,40 +188,22 @@ static void emumousebtn_input_register(void)
input_register_device
(
&
emumousebtn
);
printk
(
KERN_INFO
"input
%d: Macintosh mouse button emulation
\n
"
,
emumousebtn
.
number
);
printk
(
KERN_INFO
"input
: Macintosh mouse button emulation
\n
"
);
}
#endif
void
__init
mac_hid_init_hw
(
void
)
int
__init
mac_hid_init
(
void
)
{
#ifdef CONFIG_MAC_ADBKEYCODES
memcpy
(
pc_key_maps_save
,
key_maps
,
sizeof
(
key_maps
));
if
(
!
keyboard_sends_linux_keycodes
)
{
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md
.
ppc_kbd_sysrq_xlate
=
mac_hid_kbd_sysrq_xlate
;
SYSRQ_KEY
=
0x69
;
#endif
memcpy
(
key_maps
,
mac_key_maps_save
,
sizeof
(
key_maps
));
}
else
{
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md
.
ppc_kbd_sysrq_xlate
=
pckbd_sysrq_xlate
;
SYSRQ_KEY
=
0x54
;
#endif
}
#endif
/* CONFIG_MAC_ADBKEYCODES */
#ifdef CONFIG_MAC_EMUMOUSEBTN
emumousebtn_input_register
();
#endif
#if CONFIG_PPC
if
(
_machine
!=
_MACH_Pmac
)
pckbd_init_hw
();
#endif
#if defined(CONFIG_SYSCTL) && (defined(CONFIG_MAC_ADBKEYCODES) || defined(CONFIG_MAC_EMUMOUSEBTN))
#if defined(CONFIG_SYSCTL) && defined(CONFIG_MAC_EMUMOUSEBTN)
mac_hid_sysctl_header
=
register_sysctl_table
(
mac_hid_root_dir
,
1
);
#endif
/* CONFIG_SYSCTL */
return
0
;
}
device_initcall
(
mac_hid_init
);
include/asm-ppc/keyboard.h
View file @
b07a73e9
...
...
@@ -36,20 +36,22 @@
#define DISABLE_KBD_DURING_INTERRUPTS 0
#define INIT_KBD
extern
int
mac_hid_kbd_translate
(
unsigned
char
scancode
,
unsigned
char
*
keycode
,
char
raw_mode
);
extern
char
mac_hid_kbd_unexpected_up
(
unsigned
char
keycode
);
extern
int
pckbd_translate
(
unsigned
char
scancode
,
unsigned
char
*
keycode
,
char
raw_mode
);
extern
char
pckbd_unexpected_up
(
unsigned
char
keycode
);
extern
unsigned
char
pckbd_sysrq_xlate
[
128
];
static
inline
int
kbd_setkeycode
(
unsigned
int
scancode
,
unsigned
int
keycode
)
{
if
(
ppc_md
.
kbd_setkeycode
)
return
ppc_md
.
kbd_setkeycode
(
scancode
,
keycode
);
else
return
0
;
return
0
;
}
static
inline
int
kbd_getkeycode
(
unsigned
int
scancode
)
{
if
(
ppc_md
.
kbd_getkeycode
)
return
ppc_md
.
kbd_getkeycode
(
scancode
);
else
return
0
;
return
0
;
}
static
inline
int
kbd_translate
(
unsigned
char
keycode
,
unsigned
char
*
keycodep
,
...
...
@@ -58,7 +60,7 @@ static inline int kbd_translate(unsigned char keycode, unsigned char *keycodep,
if
(
ppc_md
.
kbd_translate
)
return
ppc_md
.
kbd_translate
(
keycode
,
keycodep
,
raw_mode
);
else
return
0
;
return
pckbd_translate
(
keycode
,
keycodep
,
raw_mode
)
;
}
static
inline
int
kbd_unexpected_up
(
unsigned
char
keycode
)
...
...
@@ -66,22 +68,18 @@ static inline int kbd_unexpected_up(unsigned char keycode)
if
(
ppc_md
.
kbd_unexpected_up
)
return
ppc_md
.
kbd_unexpected_up
(
keycode
);
else
return
0
;
return
pckbd_unexpected_up
(
keycode
)
;
}
static
inline
void
kbd_leds
(
unsigned
char
leds
)
{
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_sysrq_xlate
(ppc_md.ppc_kbd_sysrq_xlate)
#define kbd_sysrq_xlate
pckbd_sysrq_xlate
extern
unsigned
long
SYSRQ_KEY
;
...
...
include/asm-ppc/machdep.h
View file @
b07a73e9
...
...
@@ -57,16 +57,10 @@ struct machdep_calls {
void
(
*
nvram_write_val
)(
int
addr
,
unsigned
char
val
);
/* Tons of keyboard stuff. */
int
(
*
kbd_setkeycode
)(
unsigned
int
scancode
,
unsigned
int
keycode
);
int
(
*
kbd_getkeycode
)(
unsigned
int
scancode
);
int
(
*
kbd_translate
)(
unsigned
char
scancode
,
unsigned
char
*
keycode
,
char
raw_mode
);
char
(
*
kbd_unexpected_up
)(
unsigned
char
keycode
);
void
(
*
kbd_leds
)(
unsigned
char
leds
);
void
(
*
kbd_init_hw
)(
void
);
unsigned
char
*
ppc_kbd_sysrq_xlate
;
/*
* optional PCI "hooks"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment