slackware-current/source/a/kbd/sources/kbd-1.15-sparc.patch
Patrick J Volkerding 5a12e7c134 Slackware 13.0
Wed Aug 26 10:00:38 CDT 2009
Slackware 13.0 x86_64 is released as stable!  Thanks to everyone who
helped make this release possible -- see the RELEASE_NOTES for the
credits.  The ISOs are off to the replicator.  This time it will be a
6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD.
We're taking pre-orders now at store.slackware.com.  Please consider
picking up a copy to help support the project.  Once again, thanks to
the entire Slackware community for all the help testing and fixing
things and offering suggestions during this development cycle.
As always, have fun and enjoy!  -P.
2018-05-31 22:41:17 +02:00

97 lines
2.8 KiB
Diff

diff -up kbd-1.15/man/man8/kbdrate.8_old kbd-1.15/man/man8/kbdrate.8
--- kbd-1.15/man/man8/kbdrate.8_old 2008-12-10 14:20:33.000000000 +0100
+++ kbd-1.15/man/man8/kbdrate.8 2008-12-10 14:41:10.000000000 +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/src/kbdrate.c_old kbd-1.15/src/kbdrate.c
--- kbd-1.15/src/kbdrate.c_old 2008-12-10 14:00:25.000000000 +0100
+++ kbd-1.15/src/kbdrate.c 2008-12-10 14:20:11.000000000 +0100
@@ -77,7 +77,6 @@ beats rebuilding the kernel!
#ifdef __sparc__
#include <asm/param.h>
-#include <asm/kbio.h>
#endif
#ifndef KDKBDREP
@@ -109,11 +108,15 @@ 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;
/* don't change, just test */
@@ -177,6 +180,9 @@ KDKBDREP_ioctl_ok(double rate, int delay
rate, kbdrep_s.delay );
return 1; /* success! */
+#else /* no KDKBDREP or __sparc__ */
+ return 0;
+#endif /* KDKBDREP */
}
static int
@@ -221,7 +227,7 @@ sigalrmhandler( 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 */
@@ -272,7 +278,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;
@@ -335,5 +343,7 @@ main( int argc, char **argv ) {
valid_rates[value & 0x1f] / 10.0,
valid_delays[ (value & 0x60) >> 5 ] );
+#endif
+
return 0;
}
diff -up kbd-1.15/src/setleds.c_old kbd-1.15/src/setleds.c
--- kbd-1.15/src/setleds.c_old 2008-12-10 14:00:02.000000000 +0100
+++ kbd-1.15/src/setleds.c 2008-12-10 14:00:16.000000000 +0100
@@ -14,10 +14,6 @@
#include "nls.h"
#include "version.h"
-#ifdef __sparc__
-#include <asm/kbio.h>
-#endif
-
static void
usage(void)
{