From owner-FreeBSD-users-jp@jp.FreeBSD.org Wed Sep  3 23:10:07 2003
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id h83EA7668297;
	Wed, 3 Sep 2003 23:10:07 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from st68.arena.ne.jp (st68.arena.ne.jp [203.138.213.2])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with SMTP/inet id h83EA7w68292
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Wed, 3 Sep 2003 23:10:07 +0900 (JST)
	(envelope-from eyes@navi.org)
Received: (qmail 6189 invoked by SAV 20030902.5); 3 Sep 2003 23:10:06 +0900
Received: from unknown (HELO localhost) (219.164.152.84)
  by st68.arena.ne.jp with SMTP; 3 Sep 2003 23:10:06 +0900
From: Hiroyuki Aizu <eyes@navi.org>
To: FreeBSD-users-jp@jp.FreeBSD.org
Message-Id: <20030903231007.5e0eafb0.eyes@navi.org>
In-Reply-To: <20030903.022710.71085972.ie9t-sbgk@asahi-net.or.jp>
References: <20030902.121427.41630222.okada@kanazawa-gu.ac.jp>
	<20030903.010148.730554971.masahiro@inet.isogo.yokohama.jp>
	<20030903.022710.71085972.ie9t-sbgk@asahi-net.or.jp>
Organization: navi.org
X-Mailer: Sylpheed version 0.9.4 (GTK+ 1.2.10; i386-portbld-freebsd5.1)
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Wed, 3 Sep 2003 23:10:07 +0900
X-Sequence: FreeBSD-users-jp 76046
Subject: [FreeBSD-users-jp 76046] Re: Libretto L5 with PC-Card
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: eyes@navi.org
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+030902

$B2qDE$G$9!#(B

On Wed, 03 Sep 2003 02:27:10 +0900
Takeshi Shibagaki <ie9t-sbgk@asahi-net.or.jp> wrote:

> $B<F3@$G$9!#(B
> 
> From: Higuchi Masahiro <masahiro@inet.isogo.yokohama.jp>
> Subject: [FreeBSD-users-jp 76030] Libretto L5 with PC-Card
> Date: Wed, 03 Sep 2003 01:01:48 +0900
> Message-ID: <20030903.010148.730554971.masahiro@inet.isogo.yokohama.jp>
> 
> masahiro> TOSHIBA Libretto L5$B$K(BFreeBSD 5.1-RELEASE$B$r%$%s%9%H!<%k$7$F$$$^$9$,!"(B
> masahiro> $B<j;}$A$N(BPCMCIA$B$H(BCardBus$BA4$F!"Nc$($P!"(B3C589D$B$d(BWLI-CB-AG54$B$r$^$C$?$/(B
> masahiro> $BG'<1$7$^$;$s(B.
> 
> -current$B$J$iB?J,9T$1$^$9!#F0$+$J$$M}M3$O(BCardBus bridge$B$,(BD3 state
> $B$K$J$C$F$$$k$+$i$G$9!#(B

CardBus$BF0$+$J$$$N$OKvHx$K$D$1$k$h$&$J%Q%C%A$,I,MW$+$H!#(B


> # $B$=$l$h$j!"(BL1$B$G(Bfirewire$B$H$+(Bsound card$B$,F0$+$s!#(B

sound card$B$O(B[nomads:16541]$B2OED$5$s$N%Q%C%A$G$I$*$G$9$+!)(B


--- acpi_pcib.c	Mon Aug 25 02:48:01 2003
+++ acpi_pcib.c.ok	Fri Aug 29 15:31:39 2003
@@ -40,6 +40,7 @@
 #include <dev/acpica/acpi_pcibvar.h>
 
 #include <machine/pci_cfgreg.h>
+#include <machine/pc/bios.h>
 #include <dev/pci/pcivar.h>
 #include <dev/pci/pcib_private.h>
 #include "pcib_if.h"
@@ -50,6 +51,10 @@
 #define _COMPONENT	ACPI_BUS
 ACPI_MODULE_NAME("PCI")
 
+#if 1
+void acpi_irq_set_trigger_as_level(int irq);
+#endif
+
 int
 acpi_pcib_attach(device_t dev, ACPI_BUFFER *prt, int busno)
 {
@@ -259,6 +264,9 @@
 	device_printf(pcib, "slot %d INT%c is routed to irq %d\n",
 	    pci_get_slot(dev), 'A' + pin, crsres->Data.Irq.Interrupts[0]);
 	interrupt = crsres->Data.Irq.Interrupts[0];
+#if 1
+        acpi_irq_set_trigger_as_level(interrupt);
+#endif
 	goto out;
     }
     
@@ -328,6 +336,9 @@
 	pci_get_slot(dev), 'A' + pin, prsres->Data.Irq.Interrupts[0],
 	acpi_name(lnkdev));
     interrupt = prsres->Data.Irq.Interrupts[0];
+#if 1
+    acpi_irq_set_trigger_as_level(interrupt);
+#endif
 
  out:
     if (crsbuf.Pointer != NULL)
@@ -338,4 +349,21 @@
     /* XXX APIC_IO interrupt mapping? */
     return_VALUE(interrupt);
 }
+
+
+#if 1
+void
+acpi_irq_set_trigger_as_level(int irq)
+{
+    unsigned char mask = 1  << (irq & 0x07);
+    unsigned int port = 0x4d0 + (irq >> 3);
+    unsigned char val;
+
+    val = inb(port);
+    if (!(val & mask)) {
+        /* printf("EDGE %02x %02x ", val, mask); */
+        outb(port, (val | mask));
+    }
+}
+#endif
 
