Subject: Re: PC card adapter PCI board not work
To: None <okazaki@hitachi-to.co.jp>
From: Masanori Kanaoka <kanaoka@ann.hi-ho.ne.jp>
List: tech-kern
Date: 09/06/2002 20:07:31
Hi,

       From: Tsukasa Okazaki <okazaki@hitachi-to.co.jp>
    Subject: PC card adapter PCI board not work
      Date : Fri, 06 Sep 2002 17:14:17 +0900 (JST)
 Message-ID: <20020906.171417.125122593.okazaki@hitachi-to.co.jp>

$ By the way, the beginning of the dmesg is missing. Why is it?

Maybe your dmesg buffer overflow.
You can try to add next line in your config file.

    options         MSGBUFSIZE=16384


$ ACPI Namespace successfully loaded at root 0xc06f5098
$ acpi0 at mainbus0
$ evxfevnt-0175 [02] AcpiEnable            : Transition to ACPI mode successful
$ acpi0: SCI interrupting at irq 11
$ acpi0: fixed-feature power button present
$ acpi_pci_fixup starts:
$ acpi0: fixing up PCI
$ acpi fixup pci intr: 0:7:2 D: 9 -> 0
$ acpi fixup pci intr: 0:7:3 D: 9 -> 0
$ acpi fixup pci intr: 0:10:0 A: 255 -> 0
$ acpi fixup pci intr: 0:10:1 A: 255 -> 0
$ acpi fixup pci intr: 0:13:0 A: 5 -> 0
$ acpi fixup pci intr: 0:14:0 A: 10 -> 0

$ However, all irqs have been assigned to 0.
$ I attached the dmesg output. Any suggestions?

acpi_get_intr() seems return 0.I wonder 0.
If possible,Would you please show dmesg output with attached patch?

On my Libretto with attached patch, 
the acpi staff of dmesg output are below:

ACPI Namespace successfully loaded at root 0xc047dad8
acpi0 at mainbus0
evxfevnt-0175 [02] AcpiEnable            : Transition to ACPI mode successful
acpi0: SCI interrupting at irq 9
acpi0: fixed-feature power button present
acpi_pci_fixup starts:
acpi0: fixing up PCI
NumberOfInterrupts 1
         11
acpi_get_intr: return 11
NumberOfInterrupts 0
        
acpi_get_intr: return -1
acpi0: fixing up link \_SB_.PCI0.FNC0.LNKB
NumberOfInterrupts 1
         11
acpi_get_intr: return 11
acpi fixup pci intr: 0:18:0 A: 255 -> 11
NumberOfInterrupts 1
         10
acpi_get_intr: return 10
NumberOfInterrupts 0
        
acpi_get_intr: return -1
acpi0: fixing up link \_SB_.PCI0.FNC0.LNKH
NumberOfInterrupts 1
         11
acpi_get_intr: return 11
acpi fixup pci intr: 0:6:0 A: 255 -> 11
NumberOfInterrupts 1
         7
acpi_get_intr: return 7


Regards
---
 Masanori Kanaoka	kanaoka@ann.hi-ho.ne.jp


Index: acpi.c
===================================================================
RCS file: /ftp/cvs/syssrc/sys/dev/acpi/acpi.c,v
retrieving revision 1.15
diff -u -r1.15 acpi.c
--- acpi.c	2002/07/29 03:26:20	1.15
+++ acpi.c	2002/09/06 10:40:16
@@ -909,6 +909,9 @@
 	ACPI_RESOURCE *res;
 	ACPI_RESOURCE_IRQ *irq;
 	uint intr;
+#ifdef ACPI_DEBUG
+	int i;
+#endif /* ACPI_DEBUG */
 
 	intr = -1;
 	rv = acpi_get(handle, &ret, AcpiGetCurrentResources);
@@ -918,12 +921,23 @@
 	     res = ACPI_NEXT_RESOURCE(res)) {
 		if (res->Id == ACPI_RSTYPE_IRQ) {
 			irq = (ACPI_RESOURCE_IRQ *)&res->Data;
+#ifdef ACPI_DEBUG
+			printf("NumberOfInterrupts %d\n\t", 
+			    irq->NumberOfInterrupts);
+			for (i = 0;i < irq->NumberOfInterrupts; i++)
+				printf(" %d", irq->Interrupts[i]);
+			printf("\n");
+#endif /* ACPI_DEBUG */
 			if (irq->NumberOfInterrupts == 1)
 				intr = irq->Interrupts[0];
 			break;
 		}
 	}
 	free(ret.Pointer, M_DEVBUF);
+
+#ifdef ACPI_DEBUG
+	printf("acpi_get_intr: return %d\n", intr);
+#endif /* ACPI_DEBUG */
 	return (intr);
 }