sh: pass along struct pci_channel
PATCH 1/9 sh: pass along struct pci_channel
This patch makes sure a struct pci_channel pointer is passed along to various pci functions such as pci_read_reg(), pci_write_reg(), pci_fixup_pcic(), sh7751_pcic_init() and sh7780_pcic_init().
Signed-off-by Magnus Damm <[email protected]>
---
arch/sh/drivers/pci/fixups-lboxre2.c | 23 +++++----- arch/sh/drivers/pci/fixups-r7780rp.c | 33 +++++++-------- arch/sh/drivers/pci/fixups-rts7751r2d.c | 23 +++++----- arch/sh/drivers/pci/fixups-sdk7780.c | 50 +++++++++++----------- arch/sh/drivers/pci/fixups-se7780.c | 34 ++++++++------- arch/sh/drivers/pci/ops-landisk.c | 2 arch/sh/drivers/pci/ops-lboxre2.c | 2 arch/sh/drivers/pci/ops-r7780rp.c | 2 arch/sh/drivers/pci/ops-rts7751r2d.c | 2 arch/sh/drivers/pci/ops-sdk7780.c | 2 arch/sh/drivers/pci/ops-se7780.c | 2 arch/sh/drivers/pci/ops-sh4.c | 24 +++++----- arch/sh/drivers/pci/ops-snapgear.c | 2 arch/sh/drivers/pci/ops-titan.c | 2 arch/sh/drivers/pci/pci-sh4.h | 11 +++-- arch/sh/drivers/pci/pci-sh7751.c | 68 +++++++++++++++---------------- arch/sh/drivers/pci/pci-sh7751.h | 3 - arch/sh/drivers/pci/pci-sh7780.c | 31 +++++++------- arch/sh/drivers/pci/pci-sh7780.h | 3 - 19 files changed, 167 insertions(+), 152 deletions(-)
arch/sh/drivers/pci/fixups-lboxre2.c +12 -11
@@ -9,33 +9,34 @@* License. See the file "COPYING" in the main directory of this archive * for more details. */ +#include <linux/pci.h> #include "pci-sh4.h" #define PCIMCR_MRSET_OFF 0xBFFFFFFF#define PCIMCR_RFSH_OFF 0xFFFFFFFB -int pci_fixup_pcic (void ) +int pci_fixup_pcic (struct pci_channel *chan) {unsigned long bcr1, mcr; bcr1 =ctrl_inl (SH7751_BCR1 ); bcr1 |=0x40080000 ;/* Enable Bit 19 BREQEN, set PCIC to slave */ -pci_write_reg (bcr1,SH4_PCIBCR1 ); +pci_write_reg (chan, bcr1,SH4_PCIBCR1 );/* Enable all interrupts, so we known what to fix */ -pci_write_reg (0x0000c3ff ,SH4_PCIINTM ); -pci_write_reg (0x0000380f ,SH4_PCIAINTM ); -pci_write_reg (0xfb900047 ,SH7751_PCICONF1 ); -pci_write_reg (0xab000001 ,SH7751_PCICONF4 ); +pci_write_reg (chan,0x0000c3ff ,SH4_PCIINTM ); +pci_write_reg (chan,0x0000380f ,SH4_PCIAINTM ); +pci_write_reg (chan,0xfb900047 ,SH7751_PCICONF1 ); +pci_write_reg (chan,0xab000001 ,SH7751_PCICONF4 ); mcr =ctrl_inl (SH7751_MCR ); mcr = (mcr &PCIMCR_MRSET_OFF ) &PCIMCR_RFSH_OFF ; -pci_write_reg (mcr,SH4_PCIMCR ); +pci_write_reg (chan, mcr,SH4_PCIMCR ); -pci_write_reg (0x0c000000 ,SH7751_PCICONF5 ); -pci_write_reg (0xd0000000 ,SH7751_PCICONF6 ); -pci_write_reg (0x0c000000 ,SH4_PCILAR0 ); -pci_write_reg (0x00000000 ,SH4_PCILAR1 ); +pci_write_reg (chan,0x0c000000 ,SH7751_PCICONF5 ); +pci_write_reg (chan,0xd0000000 ,SH7751_PCICONF6 ); +pci_write_reg (chan,0x0c000000 ,SH4_PCILAR0 ); +pci_write_reg (chan,0x00000000 ,SH4_PCILAR1 );return 0 ; }
arch/sh/drivers/pci/fixups-r7780rp.c +17 -16
@@ -14,32 +14,33 @@#include "pci-sh4.h" #include <asm/io.h> -int pci_fixup_pcic (void ) +int pci_fixup_pcic (struct pci_channel *chan) { -pci_write_reg (0x000043ff ,SH4_PCIINTM ); -pci_write_reg (0x0000380f ,SH4_PCIAINTM ); +pci_write_reg (chan,0x000043ff ,SH4_PCIINTM ); +pci_write_reg (chan,0x0000380f ,SH4_PCIAINTM ); -pci_write_reg (0xfbb00047 ,SH7780_PCICMD ); -pci_write_reg (0x00000000 ,SH7780_PCIIBAR ); +pci_write_reg (chan,0xfbb00047 ,SH7780_PCICMD ); +pci_write_reg (chan,0x00000000 ,SH7780_PCIIBAR ); -pci_write_reg (0x00011912 ,SH7780_PCISVID ); -pci_write_reg (0x08000000 ,SH7780_PCICSCR0 ); -pci_write_reg (0x0000001b ,SH7780_PCICSAR0 ); -pci_write_reg (0xfd000000 ,SH7780_PCICSCR1 ); -pci_write_reg (0x0000000f ,SH7780_PCICSAR1 ); +pci_write_reg (chan,0x00011912 ,SH7780_PCISVID ); +pci_write_reg (chan,0x08000000 ,SH7780_PCICSCR0 ); +pci_write_reg (chan,0x0000001b ,SH7780_PCICSAR0 ); +pci_write_reg (chan,0xfd000000 ,SH7780_PCICSCR1 ); +pci_write_reg (chan,0x0000000f ,SH7780_PCICSAR1 ); -pci_write_reg (0xfd000000 ,SH7780_PCIMBR0 ); -pci_write_reg (0x00fc0000 ,SH7780_PCIMBMR0 ); +pci_write_reg (chan,0xfd000000 ,SH7780_PCIMBR0 ); +pci_write_reg (chan,0x00fc0000 ,SH7780_PCIMBMR0 );#ifdef CONFIG_32BIT -pci_write_reg (0xc0000000 ,SH7780_PCIMBR2 ); -pci_write_reg (0x20000000 -SH7780_PCI_IO_SIZE ,SH7780_PCIMBMR2 ); +pci_write_reg (chan,0xc0000000 ,SH7780_PCIMBR2 ); +pci_write_reg (chan,0x20000000 -SH7780_PCI_IO_SIZE ,SH7780_PCIMBMR2 );#endif /* Set IOBR for windows containing area specified in pci.h */ -pci_write_reg ((PCIBIOS_MIN_IO & ~(SH7780_PCI_IO_SIZE -1 )), +pci_write_reg (chan, (PCIBIOS_MIN_IO & ~(SH7780_PCI_IO_SIZE -1 )),SH7780_PCIIOBR ); -pci_write_reg (((SH7780_PCI_IO_SIZE -1 ) & (7 <<18 )),SH7780_PCIIOBMR ); +pci_write_reg (chan, ((SH7780_PCI_IO_SIZE -1 ) & (7 <<18 )), +SH7780_PCIIOBMR );return 0 ; }
arch/sh/drivers/pci/fixups-rts7751r2d.c +12 -11
@@ -10,34 +10,35 @@* License. See the file "COPYING" in the main directory of this archive * for more details. */ +#include <linux/pci.h> #include "pci-sh4.h" #define PCIMCR_MRSET_OFF 0xBFFFFFFF#define PCIMCR_RFSH_OFF 0xFFFFFFFB -int pci_fixup_pcic (void ) +int pci_fixup_pcic (struct pci_channel *chan) {unsigned long bcr1, mcr; bcr1 =ctrl_inl (SH7751_BCR1 ); bcr1 |=0x40080000 ;/* Enable Bit 19 BREQEN, set PCIC to slave */ -pci_write_reg (bcr1,SH4_PCIBCR1 ); +pci_write_reg (chan, bcr1,SH4_PCIBCR1 );/* Enable all interrupts, so we known what to fix */ -pci_write_reg (0x0000c3ff ,SH4_PCIINTM ); -pci_write_reg (0x0000380f ,SH4_PCIAINTM ); +pci_write_reg (chan,0x0000c3ff ,SH4_PCIINTM ); +pci_write_reg (chan,0x0000380f ,SH4_PCIAINTM ); -pci_write_reg (0xfb900047 ,SH7751_PCICONF1 ); -pci_write_reg (0xab000001 ,SH7751_PCICONF4 ); +pci_write_reg (chan,0xfb900047 ,SH7751_PCICONF1 ); +pci_write_reg (chan,0xab000001 ,SH7751_PCICONF4 ); mcr =ctrl_inl (SH7751_MCR ); mcr = (mcr &PCIMCR_MRSET_OFF ) &PCIMCR_RFSH_OFF ; -pci_write_reg (mcr,SH4_PCIMCR ); +pci_write_reg (chan, mcr,SH4_PCIMCR ); -pci_write_reg (0x0c000000 ,SH7751_PCICONF5 ); -pci_write_reg (0xd0000000 ,SH7751_PCICONF6 ); -pci_write_reg (0x0c000000 ,SH4_PCILAR0 ); -pci_write_reg (0x00000000 ,SH4_PCILAR1 ); +pci_write_reg (chan,0x0c000000 ,SH7751_PCICONF5 ); +pci_write_reg (chan,0xd0000000 ,SH7751_PCICONF6 ); +pci_write_reg (chan,0x0c000000 ,SH4_PCILAR0 ); +pci_write_reg (chan,0x00000000 ,SH4_PCILAR1 );return 0 ; }
arch/sh/drivers/pci/fixups-sdk7780.c +26 -24
72 lines not on this page · raw message
arch/sh/drivers/pci/fixups-se7780.c +18 -16
@@ -15,13 +15,13 @@#include "pci-sh4.h" #include <asm/io.h> -int pci_fixup_pcic (void ) +int pci_fixup_pcic (struct pci_channel *chan) {ctrl_outl (0x00000001 ,SH7780_PCI_VCR2 );/* Enable all interrupts, so we know what to fix */ -pci_write_reg (0x0000C3FF ,SH7780_PCIIMR ); -pci_write_reg (0x0000380F ,SH7780_PCIAINTM ); +pci_write_reg (chan,0x0000C3FF ,SH7780_PCIIMR ); +pci_write_reg (chan,0x0000380F ,SH7780_PCIAINTM );/* Set up standard PCI config registers */ ctrl_outw (0xFB00 ,PCI_REG (SH7780_PCISTATUS ));
@@ -32,29 +32,31 @@ int pci_fixup_pcic(void)ctrl_outw (0x1912 ,PCI_REG (SH7780_PCISVID ));ctrl_outw (0x0001 ,PCI_REG (SH7780_PCISID )); -pci_write_reg (0x08000000 ,SH7780_PCIMBAR0 );/* PCI */ -pci_write_reg (0x08000000 ,SH7780_PCILAR0 );/* SHwy */ -pci_write_reg (0x07F00001 ,SH7780_PCILSR );/* size 128M w/ MBAR */ - -pci_write_reg (0x00000000 ,SH7780_PCIMBAR1 ); -pci_write_reg (0x00000000 ,SH7780_PCILAR1 ); -pci_write_reg (0x00000000 ,SH7780_PCILSR1 ); +pci_write_reg (chan,0x08000000 ,SH7780_PCIMBAR0 );/* PCI */ +pci_write_reg (chan,0x08000000 ,SH7780_PCILAR0 );/* SHwy */ +pci_write_reg (chan,0x07F00001 ,SH7780_PCILSR );/* size 128M w/ MBAR */ + +pci_write_reg (chan,0x00000000 ,SH7780_PCIMBAR1 ); +pci_write_reg (chan,0x00000000 ,SH7780_PCILAR1 ); +pci_write_reg (chan,0x00000000 ,SH7780_PCILSR1 ); -pci_write_reg (0xAB000801 ,SH7780_PCIIBAR ); +pci_write_reg (chan,0xAB000801 ,SH7780_PCIIBAR );/* * Set the MBR so PCI address is one-to-one with window, * meaning all calls go straight through... use ifdef to * catch erroneous assumption. */ -pci_write_reg (0xFD000000 ,SH7780_PCIMBR0 ); -pci_write_reg (0x00FC0000 ,SH7780_PCIMBMR0 );/* 16M */ +pci_write_reg (chan,0xFD000000 ,SH7780_PCIMBR0 ); +pci_write_reg (chan,0x00FC0000 ,SH7780_PCIMBMR0 );/* 16M */ /* Set IOBR for window containing area specified in pci.h */ -pci_write_reg (PCIBIOS_MIN_IO & ~(SH7780_PCI_IO_SIZE -1 ),SH7780_PCIIOBR ); -pci_write_reg ((SH7780_PCI_IO_SIZE -1 ) & (7 <<18 ),SH7780_PCIIOBMR ); +pci_write_reg (chan,PCIBIOS_MIN_IO & ~(SH7780_PCI_IO_SIZE -1 ), +SH7780_PCIIOBR ); +pci_write_reg (chan, (SH7780_PCI_IO_SIZE -1 ) & (7 <<18 ), +SH7780_PCIIOBMR ); -pci_write_reg (0xA5000C01 ,SH7780_PCICR ); +pci_write_reg (chan,0xA5000C01 ,SH7780_PCICR );return 0 ; }
arch/sh/drivers/pci/ops-landisk.c +1 -1
@@ -45,7 +45,7 @@ static struct sh4_pci_address_map sh7751int __init pcibios_init_platform (void ) { -return sh7751_pcic_init (&sh7751_pci_map); +return sh7751_pcic_init (&board_pci_channels[0 ], &sh7751_pci_map); }int pcibios_map_platform_irq (struct pci_dev *pdev,u8 slot,u8 pin)
arch/sh/drivers/pci/ops-lboxre2.c +1 -1
@@ -59,5 +59,5 @@ static struct sh4_pci_address_map sh7751int __init pcibios_init_platform (void ) { -return sh7751_pcic_init (&sh7751_pci_map); +return sh7751_pcic_init (&board_pci_channels[0 ], &sh7751_pci_map); }
arch/sh/drivers/pci/ops-r7780rp.c +1 -1
@@ -64,5 +64,5 @@ static struct sh4_pci_address_map sh7780int __init pcibios_init_platform (void ) { -return sh7780_pcic_init (&sh7780_pci_map); +return sh7780_pcic_init (&board_pci_channels[0 ], &sh7780_pci_map); }
arch/sh/drivers/pci/ops-rts7751r2d.c +1 -1
@@ -69,6 +69,6 @@ static struct sh4_pci_address_map sh7751int __init pcibios_init_platform (void ) {__set_io_port_base (SH7751_PCI_IO_BASE ); -return sh7751_pcic_init (&sh7751_pci_map); +return sh7751_pcic_init (&board_pci_channels[0 ], &sh7751_pci_map); }
arch/sh/drivers/pci/ops-sdk7780.c +1 -1
@@ -69,5 +69,5 @@ static struct sh4_pci_address_map sdk778int __init pcibios_init_platform (void ) {printk (KERN_INFO "SH7780 PCI: Finished initializing PCI controller\n" ); -return sh7780_pcic_init (&sdk7780_pci_map); +return sh7780_pcic_init (&board_pci_channels[0 ], &sdk7780_pci_map); }
arch/sh/drivers/pci/ops-se7780.c +1 -1
@@ -92,5 +92,5 @@ int __init pcibios_init_platform(void)ctrl_outw (0x0013 ,FPGA_PCI_INTSEL1 );ctrl_outw (0xE402 ,FPGA_PCI_INTSEL2 ); -return sh7780_pcic_init (&se7780_pci_map); +return sh7780_pcic_init (&board_pci_channels[0 ], &se7780_pci_map); }
arch/sh/drivers/pci/ops-sh4.c +12 -12
@@ -34,8 +34,8 @@ static int sh4_pci_read(struct pci_bus ** so we must do byte alignment by hand */ spin_lock_irqsave (&sh4_pci_lock, flags); -pci_write_reg (CONFIG_CMD (bus, devfn, where),SH4_PCIPAR ); - data =pci_read_reg (SH4_PCIPDR ); +pci_write_reg (NULL ,CONFIG_CMD (bus, devfn, where),SH4_PCIPAR ); + data =pci_read_reg (NULL ,SH4_PCIPDR );spin_unlock_irqrestore (&sh4_pci_lock, flags);switch (size) {
@@ -68,8 +68,8 @@ static int sh4_pci_write(struct pci_busu32 data;spin_lock_irqsave (&sh4_pci_lock, flags); -pci_write_reg (CONFIG_CMD (bus, devfn, where),SH4_PCIPAR ); - data =pci_read_reg (SH4_PCIPDR ); +pci_write_reg (NULL ,CONFIG_CMD (bus, devfn, where),SH4_PCIPAR ); + data =pci_read_reg (NULL ,SH4_PCIPDR );spin_unlock_irqrestore (&sh4_pci_lock, flags);switch (size) {
@@ -90,7 +90,7 @@ static int sh4_pci_write(struct pci_busreturn PCIBIOS_FUNC_NOT_SUPPORTED ; } -pci_write_reg (data,SH4_PCIPDR ); +pci_write_reg (NULL , data,SH4_PCIPDR );return PCIBIOS_SUCCESSFUL ; }
@@ -106,25 +106,25 @@ struct pci_ops sh4_pci_ops = {*/ static unsigned int pci_probe =PCI_PROBE_CONF1 ; -int __init sh4_pci_check_direct (void ) +int __init sh4_pci_check_direct (struct pci_channel *chan) {/* * Check if configuration works. */ if (pci_probe &PCI_PROBE_CONF1 ) { -unsigned int tmp =pci_read_reg (SH4_PCIPAR ); +unsigned int tmp =pci_read_reg (chan,SH4_PCIPAR ); -pci_write_reg (P1SEG ,SH4_PCIPAR ); +pci_write_reg (chan,P1SEG ,SH4_PCIPAR ); -if (pci_read_reg (SH4_PCIPAR ) =P1SEG ) { -pci_write_reg (tmp,SH4_PCIPAR ); +if (pci_read_reg (chan,SH4_PCIPAR ) =P1SEG ) { +pci_write_reg (chan, tmp,SH4_PCIPAR );printk (KERN_INFO "PCI: Using configuration type 1\n" );request_region (PCI_REG (SH4_PCIPAR ),8 ,"PCI conf1" );return 0 ; } -pci_write_reg (tmp,SH4_PCIPAR ); +pci_write_reg (chan, tmp,SH4_PCIPAR ); }pr_debug ("PCI: pci_check_direct failed\n" );
@@ -163,7 +163,7 @@ char * __devinit pcibios_setup(char *strreturn str; } -int __attribute__((weak))pci_fixup_pcic (void ) +int __attribute__((weak))pci_fixup_pcic (struct pci_channel *chan) {/* Nothing to do. */ return 0 ;
arch/sh/drivers/pci/ops-snapgear.c +1 -1
@@ -66,7 +66,7 @@ static struct sh4_pci_address_map sh7751*/ int __init pcibios_init_platform (void ) { -return sh7751_pcic_init (&sh7751_pci_map); +return sh7751_pcic_init (&board_pci_channels[0 ], &sh7751_pci_map); }int __init pcibios_map_platform_irq (struct pci_dev *pdev,u8 slot,u8 pin)
arch/sh/drivers/pci/ops-titan.c +1 -1
@@ -73,5 +73,5 @@ static struct sh4_pci_address_map sh7751int __init pcibios_init_platform (void ) { -return sh7751_pcic_init (&sh7751_pci_map); +return sh7751_pcic_init (&board_pci_channels[0 ], &sh7751_pci_map); }
arch/sh/drivers/pci/pci-sh4.h +7 -4
@@ -156,8 +156,8 @@/* arch/sh/kernel/drivers/pci/ops-sh4.c */ extern struct pci_ops sh4_pci_ops; -int sh4_pci_check_direct (void ); -int pci_fixup_pcic (void ); +int sh4_pci_check_direct (struct pci_channel *chan); +int pci_fixup_pcic (struct pci_channel *chan);struct sh4_pci_address_space {unsigned long base;
@@ -170,13 +170,16 @@ struct sh4_pci_address_map { unsigned long flags; }; -static inline void pci_write_reg (unsigned long val,unsigned long reg) +static inline void pci_write_reg (struct pci_channel *chan, +unsigned long val,unsigned long reg) {ctrl_outl (val,PCI_REG (reg)); } -static inline unsigned long pci_read_reg (unsigned long reg) +static inline unsigned long pci_read_reg (struct pci_channel *chan, +unsigned long reg) {return ctrl_inl (PCI_REG (reg)); } +#endif /* __PCI_SH4_H */
arch/sh/drivers/pci/pci-sh7751.c +35 -33
175 lines not on this page · raw message
arch/sh/drivers/pci/pci-sh7751.h +2 -1
@@ -130,6 +130,7 @@struct sh4_pci_address_map ;/* arch/sh/drivers/pci/pci-sh7751.c */ -int sh7751_pcic_init (struct sh4_pci_address_map *map); +int sh7751_pcic_init (struct pci_channel *chan, +struct sh4_pci_address_map *map);#endif /* _PCI_SH7751_H_ */
arch/sh/drivers/pci/pci-sh7780.c +16 -15
@@ -55,7 +55,7 @@ static int __init sh7780_pci_init(void)ctrl_outl (0x00000001 ,SH7780_PCI_VCR2 );/* Enable PCIC */ /* check for SH7780/SH7780R hardware */ - id =pci_read_reg (SH7780_PCIVID ); + id =pci_read_reg (NULL ,SH7780_PCIVID );if ((id &0xffff ) =SH7780_VENDOR_ID ) {switch ((id >>16 ) &0xffff ) {case SH7763_DEVICE_ID :
@@ -82,14 +82,15 @@ static int __init sh7780_pci_init(void)ctrl_outl (0x33333333 ,INTC_INTPRI ); } -if ((ret =sh4_pci_check_direct ()) !=0 ) +if ((ret =sh4_pci_check_direct (NULL )) !=0 )return ret;return pcibios_init_platform (); }core_initcall (sh7780_pci_init); -int __init sh7780_pcic_init (struct sh4_pci_address_map *map) +int __init sh7780_pcic_init (struct pci_channel *chan, +struct sh4_pci_address_map *map) {u32 word;
@@ -101,22 +102,22 @@ int __init sh7780_pcic_init(struct sh4_pif (!(map->flags &SH4_PCIC_NO_RESET )) {/* toggle PCI reset pin */ word =SH4_PCICR_PREFIX |SH4_PCICR_PRST ; -pci_write_reg (word,SH4_PCICR ); +pci_write_reg (chan, word,SH4_PCICR );/* Wait for a long time... not 1 sec. but long enough */ mdelay (100 ); word =SH4_PCICR_PREFIX ; -pci_write_reg (word,SH4_PCICR ); +pci_write_reg (chan, word,SH4_PCICR ); }/* set the command/status bits to: * Wait Cycle Control + Parity Enable + Bus Master + * Mem space enable */ -pci_write_reg (0x00000046 ,SH7780_PCICMD ); +pci_write_reg (chan,0x00000046 ,SH7780_PCICMD );/* define this host as the host bridge */ word =PCI_BASE_CLASS_BRIDGE <<24 ; -pci_write_reg (word,SH7780_PCIRID ); +pci_write_reg (chan, word,SH7780_PCIRID );/* Set IO and Mem windows to local address * Make PCI and local address the same for easy 1 to 1 mapping
@@ -124,17 +125,17 @@ int __init sh7780_pcic_init(struct sh4_p* Window1 = map->window1.size @ cached area base = SDRAM */ word = ((map->window0.size -1 ) &0x1ff00001 ) |0x01 ; -pci_write_reg (0x07f00001 ,SH4_PCILSR0 ); +pci_write_reg (chan,0x07f00001 ,SH4_PCILSR0 ); word = ((map->window1.size -1 ) &0x1ff00001 ) |0x01 ; -pci_write_reg (0x00000001 ,SH4_PCILSR1 ); +pci_write_reg (chan,0x00000001 ,SH4_PCILSR1 );/* Set the values on window 0 PCI config registers */ word =P2SEGADDR (map->window0.base); -pci_write_reg (0xa8000000 ,SH4_PCILAR0 ); -pci_write_reg (0x08000000 ,SH7780_PCIMBAR0 ); +pci_write_reg (chan,0xa8000000 ,SH4_PCILAR0 ); +pci_write_reg (chan,0x08000000 ,SH7780_PCIMBAR0 );/* Set the values on window 1 PCI config registers */ word =P2SEGADDR (map->window1.base); -pci_write_reg (0x00000000 ,SH4_PCILAR1 ); -pci_write_reg (0x00000000 ,SH7780_PCIMBAR1 ); +pci_write_reg (chan,0x00000000 ,SH4_PCILAR1 ); +pci_write_reg (chan,0x00000000 ,SH7780_PCIMBAR1 );/* Map IO space into PCI IO window * The IO window is 64K-PCIBIOS_MIN_IO in size
@@ -151,12 +152,12 @@ int __init sh7780_pcic_init(struct sh4_p*/ /* Apply any last-minute PCIC fixups */ -pci_fixup_pcic (); +pci_fixup_pcic (chan);/* SH7780 init done, set central function init complete */ /* use round robin mode to stop a device starving/overruning */ word =SH4_PCICR_PREFIX |SH4_PCICR_CFIN |SH4_PCICR_FTO ; -pci_write_reg (word,SH4_PCICR ); +pci_write_reg (chan, word,SH4_PCICR );return 1 ; }
arch/sh/drivers/pci/pci-sh7780.h +2 -1
@@ -107,6 +107,7 @@struct sh4_pci_address_map ;/* arch/sh/drivers/pci/pci-sh7780.c */ -int sh7780_pcic_init (struct sh4_pci_address_map *map); +int sh7780_pcic_init (struct pci_channel *chan, +struct sh4_pci_address_map *map);#endif /* _PCI_SH7780_H_ */