You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.3 KiB
71 lines
2.3 KiB
diff -up kbd-1.15.2/man/man8/kbdrate.8.orig kbd-1.15.2/man/man8/kbdrate.8 |
|
--- kbd-1.15.2/man/man8/kbdrate.8.orig 2009-06-07 21:48:42.000000000 +0200 |
|
+++ kbd-1.15.2/man/man8/kbdrate.8 2011-01-05 12:58:34.579706016 +0100 |
|
@@ -22,7 +22,7 @@ Using |
|
without any options will reset the repeat rate to 10.9 characters per second (cps) |
|
and the delay to 250 milliseconds (ms) for Intel- and M68K-based systems. |
|
These are the IBM defaults. On SPARC-based systems it will reset the repeat rate |
|
-to 5 cps and the delay to 200 ms. |
|
+to 20 cps and the delay to 200 ms. |
|
|
|
.SH OPTIONS |
|
.TP |
|
@@ -69,3 +69,5 @@ When these ioctls fail an ioport interfa |
|
.I /etc/rc.local |
|
.br |
|
.I /dev/port |
|
+.br |
|
+.I /dev/kbd |
|
diff -up kbd-1.15.2/src/kbdrate.c.orig kbd-1.15.2/src/kbdrate.c |
|
--- kbd-1.15.2/src/kbdrate.c.orig 2011-01-05 12:53:45.186575833 +0100 |
|
+++ kbd-1.15.2/src/kbdrate.c 2011-01-05 12:57:37.746753646 +0100 |
|
@@ -108,9 +108,12 @@ static int valid_delays[] = { 250, 500, |
|
|
|
static int |
|
KDKBDREP_ioctl_ok(double rate, int delay, int silent) { |
|
+#if defined(KDKBDREP) && !defined(__sparc__) |
|
/* |
|
* This ioctl is defined in <linux/kd.h> but is not |
|
* implemented anywhere - must be in some m68k patches. |
|
+ * We cannot blindly try unimplemented ioctls on sparc64 - |
|
+ * the 32<->64bit transition layer does not like it. |
|
* Since 2.4.9 also on i386. |
|
*/ |
|
struct my_kbd_repeat kbdrep_s; |
|
@@ -176,6 +179,9 @@ KDKBDREP_ioctl_ok(double rate, int delay |
|
rate, kbdrep_s.delay ); |
|
|
|
return 1; /* success! */ |
|
+#else /* no KDKBDREP or __sparc__ */ |
|
+ return 0; |
|
+#endif /* KDKBDREP */ |
|
} |
|
|
|
#ifndef KIOCSRATE |
|
@@ -226,7 +232,7 @@ sigalrmhandler( attr_unused int sig ) { |
|
int |
|
main( int argc, char **argv ) { |
|
#ifdef __sparc__ |
|
- double rate = 5.0; /* Default rate */ |
|
+ double rate = 20.0; /* Default rate */ |
|
int delay = 200; /* Default delay */ |
|
#else |
|
double rate = 10.9; /* Default rate */ |
|
@@ -277,7 +283,9 @@ main( int argc, char **argv ) { |
|
|
|
|
|
/* The ioport way */ |
|
+ /* The ioport way - will crash on sparc */ |
|
|
|
+#ifndef __sparc__ |
|
for (i = 0; i < RATE_COUNT; i++) |
|
if (rate * 10 >= valid_rates[i]) { |
|
value &= 0x60; |
|
@@ -340,5 +348,7 @@ main( int argc, char **argv ) { |
|
valid_rates[value & 0x1f] / 10.0, |
|
valid_delays[ (value & 0x60) >> 5 ] ); |
|
|
|
+#endif |
|
+ |
|
return 0; |
|
}
|
|
|