* AMD756 PCI IRQ Routing Patch 0.2.0
@ 2001-06-22 13:11 Jhon H. Caicedo O.
2001-06-22 18:28 ` Jeff Garzik
0 siblings, 1 reply; 3+ messages in thread
From: Jhon H. Caicedo O. @ 2001-06-22 13:11 UTC (permalink / raw)
To: linux-kernel, Alan Cox
[-- Attachment #1: Type: text/plain, Size: 309 bytes --]
Hi,
This is an updated version of the patch for AMD756 PCI IRQ Routing,
the changes are to use the read/write_config_nybble functions,
this makes the code shorter.
Thanks,
--
Jhon H. Caicedo O. <jhcaiced@osso.org.co>
Observatorio Sismológico del SurOccidente O.S.S.O
http://www.osso.org.co
Cali - Colombia
[-- Attachment #2: linux-2.4.5_amd756-pci-irq-routing-0.2.0.patch --]
[-- Type: text/plain, Size: 1641 bytes --]
--- linux-2.4.5/arch/i386/kernel/pci-irq.c Wed May 16 12:25:39 2001
+++ linux/arch/i386/kernel/pci-irq.c Fri Jun 22 07:46:41 2001
@@ -391,6 +391,38 @@
return 1;
}
+/* Support for AMD756 PCI IRQ Routing
+ * Jhon H. Caicedo <jhcaiced@osso.org.co>
+ * Jun/21/2001 0.2.0 Release, fixed to use "nybble" functions... (jhcaiced)
+ * Jun/19/2001 Alpha Release 0.1.0 (jhcaiced)
+ * The AMD756 pirq rules are nibble-based
+ * offset 0x56 0-3 PIRQA 4-7 PIRQB
+ * offset 0x57 0-3 PIRQC 4-7 PIRQD
+ */
+static int pirq_amd756_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
+{
+ u8 irq;
+ irq = 0;
+ if (pirq <= 4)
+ {
+ irq = read_config_nybble(router, 0x56, pirq - 1);
+ }
+ printk(KERN_INFO "AMD756: dev %04x:%04x, router pirq : %d get irq : %2d\n",
+ dev->vendor, dev->device, pirq, irq);
+ return irq;
+}
+
+static int pirq_amd756_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
+{
+ printk(KERN_INFO "AMD756: dev %04x:%04x, router pirq : %d SET irq : %2d\n",
+ dev->vendor, dev->device, pirq, irq);
+ if (pirq <= 4)
+ {
+ write_config_nybble(router, 0x56, pirq - 1, irq);
+ }
+ return 1;
+}
+
#ifdef CONFIG_PCI_BIOS
static int pirq_bios_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
@@ -426,6 +458,8 @@
{ "VLSI 82C534", PCI_VENDOR_ID_VLSI, PCI_DEVICE_ID_VLSI_82C534, pirq_vlsi_get, pirq_vlsi_set },
{ "ServerWorks", PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_OSB4,
pirq_serverworks_get, pirq_serverworks_set },
+ { "AMD756 VIPER", PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_VIPER_740B,
+ pirq_amd756_get, pirq_amd756_set },
{ "default", 0, 0, NULL, NULL }
};
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: AMD756 PCI IRQ Routing Patch 0.2.0
2001-06-22 13:11 AMD756 PCI IRQ Routing Patch 0.2.0 Jhon H. Caicedo O.
@ 2001-06-22 18:28 ` Jeff Garzik
2001-06-22 18:39 ` Jhon H. Caicedo O.
0 siblings, 1 reply; 3+ messages in thread
From: Jeff Garzik @ 2001-06-22 18:28 UTC (permalink / raw)
To: Jhon H. Caicedo O.; +Cc: linux-kernel, Alan Cox
"Jhon H. Caicedo O." wrote:
> This is an updated version of the patch for AMD756 PCI IRQ Routing,
> the changes are to use the read/write_config_nybble functions,
> this makes the code shorter.
Looks much better, thanks!
> + printk(KERN_INFO "AMD756: dev %04x:%04x, router pirq : %d get irq : %2d\n",
> + dev->vendor, dev->device, pirq, irq);
[...]
> + printk(KERN_INFO "AMD756: dev %04x:%04x, router pirq : %d SET irq : %2d\n",
> + dev->vendor, dev->device, pirq, irq);
None of the other PCI IRQ routines print out IRQ routing messages, so
these shouldn't either. I assume this is debugging code?
Further, the printks are potentially misleading, because pirq_amd756_get
might not receive a valid irq, if 'pirq' is greater than 4.
Jeff
--
Jeff Garzik | Andre the Giant has a posse.
Building 1024 |
MandrakeSoft |
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: AMD756 PCI IRQ Routing Patch 0.2.0
2001-06-22 18:28 ` Jeff Garzik
@ 2001-06-22 18:39 ` Jhon H. Caicedo O.
0 siblings, 0 replies; 3+ messages in thread
From: Jhon H. Caicedo O. @ 2001-06-22 18:39 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-kernel, Alan Cox
Hi,
Jeff Garzik wrote:
> None of the other PCI IRQ routines print out IRQ routing messages, so
> these shouldn't either. I assume this is debugging code?
Yes, the printks are only for debug and surely will be removed
after some tests of the patch.
>
> Further, the printks are potentially misleading, because pirq_amd756_get
> might not receive a valid irq, if 'pirq' is greater than 4.
With pirq > 4 pirq_amd756_get should return 0, i left the
printk just to see if this happens in some test.
In the original 2.4.5 kernel (without patch), I get irq=0 for pirq=4
and that was the cause of the error with a SMC Lucent CardBus Bridge.
Thanks,
--
Jhon H. Caicedo O. <jhcaiced@osso.org.co>
Observatorio Sismológico del SurOccidente O.S.S.O
http://www.osso.org.co
Cali - Colombia
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2001-06-22 18:42 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-06-22 13:11 AMD756 PCI IRQ Routing Patch 0.2.0 Jhon H. Caicedo O.
2001-06-22 18:28 ` Jeff Garzik
2001-06-22 18:39 ` Jhon H. Caicedo O.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox