summaryrefslogtreecommitdiffstats
path: root/sys/pc98
diff options
context:
space:
mode:
authornyan <nyan@FreeBSD.org>2002-03-13 13:59:41 +0000
committernyan <nyan@FreeBSD.org>2002-03-13 13:59:41 +0000
commitdfdd4c8eb48113672f0df334b5793e463da8dd7d (patch)
tree212fff1d82202f5d2bbc0e685e7561f1d38992fd /sys/pc98
parentd58e833adf7df0ddce3b6e5c0c9eb542b5bdc032 (diff)
downloadFreeBSD-src-dfdd4c8eb48113672f0df334b5793e463da8dd7d.zip
FreeBSD-src-dfdd4c8eb48113672f0df334b5793e463da8dd7d.tar.gz
Use the dx register for the destination port address. A immediate port
address of outb is only 8 bits. Submitted by: chi@bd.mbn.or.jp (Chiharu Shibata) MFC after: 3 days
Diffstat (limited to 'sys/pc98')
-rw-r--r--sys/pc98/pc98/pcaudio.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/pc98/pc98/pcaudio.c b/sys/pc98/pc98/pcaudio.c
index cdf20d7..cbeb3f9 100644
--- a/sys/pc98/pc98/pcaudio.c
+++ b/sys/pc98/pc98/pcaudio.c
@@ -562,12 +562,15 @@ pcaintr(struct clockframe *frame)
: : "a" ((char)pca_status.oldval) );
__asm__("xlatb\n"
#ifdef PC98
- "outb %0,$0x3fdb"
+ "outb %0,%%dx"
+ : : "a" ((char)pca_status.buffer[pca_status.index]),
+ "b" (volume_table),
+ "d" ((u_short)0x3fdb) );
#else
"outb %0,$0x42"
-#endif
: : "a" ((char)pca_status.buffer[pca_status.index]),
"b" (volume_table) );
+#endif
enable_intr();
pca_status.counter += pca_status.scale;
pca_status.index = (pca_status.counter >> 8);
OpenPOWER on IntegriCloud