j
: Next unread message k
: Previous unread message j a
: Jump to all threads
j l
: Jump to MailingList overview
Author: mcayland Date: Fri Apr 5 12:33:57 2013 New Revision: 1109 URL: http://tracker.coreboot.org/trac/openbios/changeset/1109
Log: pci/macio: Add missing interrupt-parent properties
Based on patch from Andreas Tobler.
Signed-off-by: Amadeusz Sławiński amade@asmblr.net CC: Andreas Tobler andreast@fgznet.ch Signed-off-by: Mark Cave-Ayland mark.cave-ayland@ilande.co.uk
Modified: trunk/openbios-devel/drivers/macio.c trunk/openbios-devel/drivers/pci.c
Modified: trunk/openbios-devel/drivers/macio.c ============================================================================== --- trunk/openbios-devel/drivers/macio.c Fri Apr 5 12:33:22 2013 (r1108) +++ trunk/openbios-devel/drivers/macio.c Fri Apr 5 12:33:57 2013 (r1109) @@ -183,11 +183,23 @@ target_node = find_dev("/pci/mac-io/escc/ch-b"); set_int_property(target_node, "interrupt-parent", dnode);
+ target_node = find_dev("/pci/mac-io/ata-1"); + set_int_property(target_node, "interrupt-parent", dnode); + + target_node = find_dev("/pci/mac-io/ata-2"); + set_int_property(target_node, "interrupt-parent", dnode); + + target_node = find_dev("/pci/mac-io/ata-3"); + set_int_property(target_node, "interrupt-parent", dnode); + + target_node = find_dev("/pci/mac-io/via-cuda"); + set_int_property(target_node, "interrupt-parent", dnode); + target_node = find_dev("/pci"); set_int_property(target_node, "interrupt-parent", dnode);
interrupt_map = (u32 *)get_property(target_node, "interrupt-map", &len); - for (i = 0; i < 4; i++) { + for (i = 0; i < 8; i++) { interrupt_map[(i * 7) + PCI_INT_MAP_PIC_HANDLE] = (u32)dnode; } set_property(target_node, "interrupt-map", (char *)interrupt_map, len);
Modified: trunk/openbios-devel/drivers/pci.c ============================================================================== --- trunk/openbios-devel/drivers/pci.c Fri Apr 5 12:33:22 2013 (r1108) +++ trunk/openbios-devel/drivers/pci.c Fri Apr 5 12:33:57 2013 (r1109) @@ -375,7 +375,7 @@ */ #if defined(CONFIG_PPC) phandle_t dev = get_cur_dev(); - u32 props[7 * 4]; + u32 props[7 * 8]; int i;
#if defined(CONFIG_PPC) @@ -384,7 +384,7 @@ return; #endif
- for (i = 0; i < (7*4); i+=7) { + for (i = 0; i < (7*8); i+=7) { props[i+PCI_INT_MAP_PCI0] = 0; props[i+PCI_INT_MAP_PCI1] = 0; props[i+PCI_INT_MAP_PCI2] = 0; @@ -393,7 +393,7 @@ props[i+PCI_INT_MAP_PIC_INT] = arch->irqs[i / 7]; props[i+PCI_INT_MAP_PIC_POL] = 3; } - set_property(dev, "interrupt-map", (char *)props, 7 * 4 * sizeof(props[0])); + set_property(dev, "interrupt-map", (char *)props, 7 * 8 * sizeof(props[0]));
props[PCI_INT_MAP_PCI0] = 0; props[PCI_INT_MAP_PCI1] = 0;