Updates for WRS SBC82xx boards
PATCH 2/5 Updates for WRS SBC82xx boards
patch2: sbc82xx-PCI-diff1
- allow m82xx_pci.c to be used by other platforms that have their own map_irq
I'm open to doing this another way if desired -- I just went for the minimal impact on the existing code with this.
arch/ppc/platforms/sbc82xx.c renamed from linux-2.6.16rc2/arch/ppc/platforms/sbc82xx.c +2 -2
@@ -198,7 +198,7 @@ } } -static int sbc82xx_pci_map_irq (struct pci_dev *dev,unsigned char idsel, +int pq2pci_map_irq (struct pci_dev *dev,unsigned char idsel,unsigned char pin) {static char pci_irq_table[][4 ] = {
@@ -247,7 +247,7 @@ callback_init_IRQ = ppc_md.init_IRQ; ppc_md.init_IRQ = sbc82xx_init_IRQ; - ppc_md.pci_map_irq = sbc82xx_pci_map_irq; + ppc_md.pci_map_irq = pq2pci_map_irq;#ifdef CONFIG_GEN_RTC ppc_md.time_init =NULL ; ppc_md.get_rtc_time =NULL ;
arch/ppc/platforms/sbc82xx.h renamed from linux-2.6.16rc2/arch/ppc/platforms/sbc82xx.h +1 -0
@@ -24,6 +24,7 @@#define BOOTROM_RESTART_ADDR ((uint)0x40000104) +#define HAVE_OWN_PQ2PCI_IRQ #define SBC82xx_PC_IRQA (NR_CPM_INTS+0)#define SBC82xx_PC_IRQB (NR_CPM_INTS+1)#define SBC82xx_MPC185_IRQ (NR_CPM_INTS+2)
arch/ppc/syslib/m82xx_pci.c renamed from linux-2.6.16rc2/arch/ppc/syslib/m82xx_pci.c +5 -0
@@ -51,6 +51,10 @@* Interrupt routing */ +#ifdef HAVE_OWN_PQ2PCI_IRQ +extern int +pq2pci_map_irq (struct pci_dev *dev,unsigned char idsel,unsigned char pin); +#else static inline int pq2pci_map_irq (struct pci_dev *dev,unsigned char idsel,unsigned char pin) {
@@ -172,6 +176,7 @@setup_irq (PCI_INT_TO_SIU , &pq2pci_irqaction); return; } +#endif /* HAVE_OWN_PQ2PCI_IRQ */ static int pq2pci_exclude_device (u_char bus,u_char devfn)
Quoted 61 lines · On Thu, 25 May 2006 14:25:33 -0400 Paul Gortmaker…
patch2: sbc82xx-PCI-diff1
- allowm82xx_pci.cto be used by other platforms that have their ownmap_irqI'm open to doing this another way if desired -- I just went for the minimal impact on the existing code with this.
Signed-off-by Paul Gortmaker <[email protected]>diff -ur
orig/linux-2.6.16rc2/arch/ppc/platforms/sbc82xx.clinux-2.6.16rc2/arch/ppc/platforms/sbc82xx.c---orig/linux-2.6.16rc2/arch/ppc/platforms/sbc82xx.c2006-02-09
16:20:35.000000000 -0500 +++linux-2.6.16rc2/arch/ppc/platforms/sbc82xx.c2006-02-09
16:01:40.000000000 -0500 @@ -198,7 +198,7 @@ } }-static int sbc82xx_pci_map_irq(struct
pci_dev*dev, unsigned char idsel, +int pq2pci_map_irq(structpci_dev*dev, unsigned char idsel,arch/ppc/platforms/sbc82xx.c renamed from linux-2.6.16rc2/arch/ppc/platforms/sbc82xx.c +1
-1unsigned char pin) {static char pci_irq_table[][4 ] = {@@ -247,7 +247,7 @@ callback_init_IRQ = ppc_md.init_IRQ; ppc_md.init_IRQ = sbc82xx_init_IRQ; - ppc_md.pci_map_irq = sbc82xx_pci_map_irq; + ppc_md.pci_map_irq = pq2pci_map_irq;#ifdef CONFIG_GEN_RTC ppc_md.time_init =NULL ; ppc_md.get_rtc_time =NULL ;diff -ur
orig/linux-2.6.16rc2/arch/ppc/platforms/sbc82xx.hlinux-2.6.16rc2/arch/ppc/platforms/sbc82xx.h---orig/linux-2.6.16rc2/arch/ppc/platforms/sbc82xx.h2006-02-09
16:20:35.000000000 -0500 +++linux-2.6.16rc2/arch/ppc/platforms/sbc82xx.h2006-02-09
16:35:05.000000000 -0500 @@ -24,6 +24,7 @@ #defineBOOTROM_RESTART_ADDR((uint)0x40000104)
+#defineHAVE_OWN_PQ2PCI_IRQ
#defineSBC82xx_PC_IRQA(NR_CPM_INTS+0)
#defineSBC82xx_PC_IRQB(NR_CPM_INTS+1)
#defineSBC82xx_MPC185_IRQ(NR_CPM_INTS+2)
diff -urorig/linux-2.6.16rc2/arch/ppc/syslib/m82xx_pci.clinux-2.6.16rc2/arch/ppc/syslib/m82xx_pci.c---orig/linux-2.6.16rc2/arch/ppc/syslib/m82xx_pci.c2006-01-02
22:21:10.000000000 -0500 +++linux-2.6.16rc2/arch/ppc/syslib/m82xx_pci.c2006-02-09
14:35:10.000000000 -0500 @@ -51,6 +51,10 @@
* Interrupt routing
*/arch/ppc/syslib/m82xx_pci.c renamed from linux-2.6.16rc2/arch/ppc/syslib/m82xx_pci.c +3
-0+#ifdef HAVE_OWN_PQ2PCI_IRQ +extern int +pq2pci_map_irq(struct pci_dev *dev, unsigned char idsel, unsignedchar pin); +#else
static inline int
pq2pci_map_irq(structpci_dev*dev, unsigned char idsel, unsigned
char pin) {
arch/ppc/syslib/m82xx_pci.c line 179
Quoted 4 lines
arch/ppc/syslib/m82xx_pci.c renamed from linux-2.6.16rc2/arch/ppc/syslib/m82xx_pci.c +1
-0@@ -172,6 +176,7 @@setup_irq (PCI_INT_TO_SIU , &pq2pci_irqaction); return; } +#endif /* HAVE_OWN_PQ2PCI_IRQ */
Sorry, but I don't quite follow the reason of that. As I see, you are going to call find_bridges stuff but with demux disabled.
I see no reason to add any defines - if you won't call init_irq, nothing will happen, I mean demux will not be assigned and so on. BTW, right now it will not be issued in case of sbc82xx. It is not code-size optimal, but we'll leave optimizations to arch/powerpc time.
Actually, you'll just have to override map_irq with sbc_ thing after find_bridges() call.
Quoted 9 lines
arch/ppc/syslib/m82xx_pci.c renamed from linux-2.6.16rc2/arch/ppc/syslib/m82xx_pci.c +0
-0static int pq2pci_exclude_device (u_char bus,u_char devfn)_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded