Bug 3132

Summary: Yenta TI: socket 0000:02:03.0 no PCI interrupts.
Product: ACPI Reporter: Bug You (bug_you2)
Component: Config-InterruptsAssignee: Len Brown (lenb)
Status: CLOSED PATCH_ALREADY_AVAILABLE    
Severity: normal CC: acpi-bugzilla
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.8-rc2-mm1 Subsystem:
Regression: --- Bisected commit-id:
Attachments: Output of acpidmp (while booted in a working kernel - 2.6.4)
Output of lspci -vv
Output of dmesg
proposed patch

Description Bug You 2004-07-29 22:53:34 UTC
Distribution: Debian
Hardware Environment: Dell Latitude D800
Software Environment: boot time
Problem Description:

Interrupt 11 doesn't seem to be available for PCMCIA or sound.

Steps to reproduce:  Just boot.
Comment 1 Bug You 2004-07-29 22:55:23 UTC
Created attachment 3439 [details]
Output of acpidmp (while booted in a working kernel - 2.6.4)
Comment 2 Bug You 2004-07-29 22:56:11 UTC
Created attachment 3440 [details]
Output of lspci -vv
Comment 3 Bug You 2004-07-29 22:56:39 UTC
Created attachment 3441 [details]
Output of dmesg
Comment 4 Shaohua 2004-07-29 23:47:31 UTC
Created attachment 3442 [details]
proposed patch

Could you please try this patch. Thanks.
Comment 5 Shaohua 2004-07-30 00:01:02 UTC
And please also try boot option 'acpi_irq_isa=7' without above patch. Thanks.
Comment 6 Bug You 2004-08-01 22:53:04 UTC
The acpi_irq_isa=7 boot option worked.  
The yenta driver picked IRQ 5 (otherwise unused) and all seems fine.

The patch didn't help.  The Yenta driver seemed to try to pick
IRQ 7 which the paralell port seems to use.

Thanks.
NeilBrown
Comment 7 Shaohua 2004-08-02 00:48:32 UTC
Oh, there is a typo in the patch. It should be this:
===== drivers/acpi/pci_link.c 1.30 vs edited =====
--- 1.30/drivers/acpi/pci_link.c	2004-06-18 13:54:24 +08:00
+++ edited/drivers/acpi/pci_link.c	2004-07-30 14:35:29 +08:00
@@ -534,7 +534,15 @@ static int acpi_pci_link_allocate(struct
 		if (acpi_strict)
 			printk(KERN_WARNING PREFIX "_CRS %d not found"
 				" in _PRS\n", link->irq.active);
-		link->irq.active = 0;
+		/*
+		 * If all possible IRQs are ISA IRQ, doen't update
+		 */
+		for (i = 0; i < link->irq.possible_count; ++i) {
+			if (acpi_irq_penalty[link->irq.possible[i]] < 
PIRQ_PENALTY_ISA_TYPICAL)
+				break;
+		}
+		if (i < link->irq.possible_count)
+			link->irq.active = 0;
 	}
 
 	/*

This one should work, could you please try? Thanks, Shaohua
Comment 8 Bug You 2004-08-02 14:02:58 UTC
Yes, getting rid of the "- 1" makes it work perfectly.

It has gone back to use IRQ11 for all of the PCMCIA sockets just like in
2.6.4.

Thanks alot.

NeilBrown


Comment 9 Bug You 2004-08-29 18:06:59 UTC
I note that this bug is still in 2.6.9-rc1 (I've tested it) and 
seems to be in 2.6.9-rc1-mm1 (I looked at the code).  Is there
something I should do to push it along??
Comment 10 joggl 2004-09-30 01:57:09 UTC
i have the same problem with my 2.6.8.1er kernel, but when i do this suggestions
(boot option, patch) it still doesn't work...
Comment 11 joggl 2004-09-30 02:55:51 UTC
i have the same problem with my 2.6.8.1er kernel, but when i do this suggestions
(boot option, patch) it still doesn't work...
Comment 12 Len Brown 2004-11-14 21:16:52 UTC
same with 2.6.9? 
Comment 13 Shaohua 2004-11-14 21:23:51 UTC
Avoiding ACPI uses legacy device's IRQ.
I believe this bug has been fixed in latest kernel.
Comment 14 Len Brown 2004-12-05 22:06:30 UTC
closing.