sh: add reg_base member to pci_channel
PATCH 5/9 sh: add reg_base member to pci_channel
Store the base address of the pci host controller registers in struct pci_channel and use the address in pci_read_reg() and pci_write_reg().
Signed-off-by Magnus Damm <[email protected]>
---
arch/sh/drivers/pci/ops-sh4.c | 4 ++-- arch/sh/drivers/pci/pci-sh4.h | 4 ++-- arch/sh/drivers/pci/pci-sh7751.c | 2 ++ arch/sh/drivers/pci/pci-sh7751.h | 1 - arch/sh/drivers/pci/pci-sh7780.c | 2 ++ arch/sh/drivers/pci/pci-sh7780.h | 1 - include/asm-sh/pci.h | 1 + 7 files changed, 9 insertions(+), 6 deletions(-)
arch/sh/drivers/pci/ops-sh4.c +2 -2
@@ -121,8 +121,8 @@ int __init sh4_pci_check_direct(struct pif (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" ); - +request_region (chan->reg_base +SH4_PCIPAR ,8 , +"PCI conf1" );return 0 ; }
arch/sh/drivers/pci/pci-sh4.h +2 -2
@@ -173,13 +173,13 @@ struct sh4_pci_address_map {static inline void pci_write_reg (struct pci_channel *chan,unsigned long val,unsigned long reg) { -ctrl_outl (val,PCI_REG (reg)); +ctrl_outl (val, chan->reg_base + reg); }static inline unsigned long pci_read_reg (struct pci_channel *chan,unsigned long reg) { -return ctrl_inl (PCI_REG (reg)); +return ctrl_inl (chan->reg_base + reg); }#endif /* __PCI_SH4_H */
arch/sh/drivers/pci/pci-sh7751.c +2 -0
@@ -39,6 +39,8 @@ int __init sh7751_pci_init(struct pci_chpr_debug ("PCI: Starting intialization.\n" ); + chan->reg_base =0xfe200000 ; +/* check for SH7751/SH7751R hardware */ id =pci_read_reg (chan,SH7751_PCICONF0 ); if (id != ((SH7751_DEVICE_ID << 16) | SH7751_VENDOR_ID) &&
arch/sh/drivers/pci/pci-sh7751.h +0 -1
@@ -26,7 +26,6 @@#define SH7751_PCI_IO_SIZE 0x40000/* Size of IO window */ #define SH7751_PCIREG_BASE 0xFE200000/* PCI regs base address */ -#define PCI_REG (n) (SH7751_PCIREG_BASE+ n)#define SH7751_PCICONF0 0x0/* PCI Config Reg 0 */ #define SH7751_PCICONF0_DEVID 0xFFFF0000/* Device ID */
arch/sh/drivers/pci/pci-sh7780.c +2 -0
@@ -52,6 +52,8 @@ int __init sh7780_pci_init(struct pci_chpr_debug ("PCI: Starting intialization.\n" ); + chan->reg_base =0xfe040000 ; +ctrl_outl (0x00000001 ,SH7780_PCI_VCR2 );/* Enable PCIC */ /* check for SH7780/SH7780R hardware */
arch/sh/drivers/pci/pci-sh7780.h +0 -1
@@ -35,7 +35,6 @@#define SH7780_PCI_IO_SIZE 0x00400000/* Size of IO window */ #define SH7780_PCIREG_BASE 0xFE040000/* PCI regs base address */ -#define PCI_REG (n) (SH7780_PCIREG_BASE+n)/* SH7780 PCI Config Registers */ #define SH7780_PCIVID 0x000/* Vendor ID */
include/asm-sh/pci.h +1 -0
@@ -24,6 +24,7 @@ struct pci_channel {int first_devfn;int last_devfn;int enabled; +unsigned long reg_base; };/*