Hi, I have the consultation about PCI of PowerPC. I read PCI souce code, I notice that pci_hose_phys_to_bus and pci_hose_bus_to_phys functions are PowerPC specific. Is this correct? I wrote patch so that these functions might use only PPC. When this patch is applied, driver's useless macro is lost. (ex. #ifndef CONFIG_PPC ....)
I don't have knowledge of PowerPC Architecture. Could you indicate the mistake? regards, Nobuhiro --- pci_hose_phys_to_bus and pci_hose_bus_to_phys functions are PowerPC specific. These functions were divided for PowerPC. A specific code to PowerPC can be removed from driver. Signed-off-by: Nobuhiro Iwamatsu <[EMAIL PROTECTED]> --- drivers/net/dc2114x.c | 4 ---- drivers/net/eepro100.c | 5 ----- drivers/pci/pci.c | 8 +++++--- include/pci.h | 28 ++++++++++++++++++++++------ 4 files changed, 27 insertions(+), 18 deletions(-) diff --git a/drivers/net/dc2114x.c b/drivers/net/dc2114x.c index 7238922..5bd279b 100644 --- a/drivers/net/dc2114x.c +++ b/drivers/net/dc2114x.c @@ -185,11 +185,7 @@ static void dc21x4x_halt(struct eth_device* dev); extern void dc21x4x_select_media(struct eth_device* dev); #endif -#if defined(CONFIG_E500) -#define phys_to_bus(a) (a) -#else #define phys_to_bus(a) pci_phys_to_mem((pci_dev_t)dev->priv, a) -#endif static int INL(struct eth_device* dev, u_long addr) { diff --git a/drivers/net/eepro100.c b/drivers/net/eepro100.c index 96ed271..94e9bff 100644 --- a/drivers/net/eepro100.c +++ b/drivers/net/eepro100.c @@ -249,13 +249,8 @@ static int eepro100_send (struct eth_device *dev, volatile void *packet, static int eepro100_recv (struct eth_device *dev); static void eepro100_halt (struct eth_device *dev); -#if defined(CONFIG_E500) || defined(CONFIG_DB64360) || defined(CONFIG_DB64460) -#define bus_to_phys(a) (a) -#define phys_to_bus(a) (a) -#else #define bus_to_phys(a) pci_mem_to_phys((pci_dev_t)dev->priv, a) #define phys_to_bus(a) pci_phys_to_mem((pci_dev_t)dev->priv, a) -#endif static inline int INW (struct eth_device *dev, u_long addr) { diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 50ca6b0..2183f02 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -217,9 +217,11 @@ pci_dev_t pci_find_device(unsigned int vendor, unsigned int device, int index) } /* - * + * These function is PPC specific. + * - pci_hose_phys_to_bus + * - pci_hose_bus_to_phys */ - +#if defined(CONFIG_PPC) unsigned long pci_hose_phys_to_bus (struct pci_controller *hose, unsigned long phys_addr, unsigned long flags) @@ -282,7 +284,7 @@ unsigned long pci_hose_bus_to_phys(struct pci_controller* hose, Done: return 0; } - +#endif /* CONFIG_PPC */ /* * */ diff --git a/include/pci.h b/include/pci.h index 8e5dacc..543c0db 100644 --- a/include/pci.h +++ b/include/pci.h @@ -432,20 +432,36 @@ extern __inline__ void pci_set_ops(struct pci_controller *hose, extern void pci_setup_indirect(struct pci_controller* hose, u32 cfg_addr, u32 cfg_data); +#if defined(CONFIG_PPC) extern unsigned long pci_hose_bus_to_phys(struct pci_controller* hose, unsigned long addr, unsigned long flags); extern unsigned long pci_hose_phys_to_bus(struct pci_controller* hose, unsigned long addr, unsigned long flags); -#define pci_phys_to_bus(dev, addr, flags) \ +# define pci_phys_to_bus(dev, addr, flags) \ pci_hose_phys_to_bus(pci_bus_to_hose(PCI_BUS(dev)), (addr), (flags)) -#define pci_bus_to_phys(dev, addr, flags) \ +# define pci_bus_to_phys(dev, addr, flags) \ pci_hose_bus_to_phys(pci_bus_to_hose(PCI_BUS(dev)), (addr), (flags)) -#define pci_phys_to_mem(dev, addr) pci_phys_to_bus((dev), (addr), PCI_REGION_MEM) -#define pci_mem_to_phys(dev, addr) pci_bus_to_phys((dev), (addr), PCI_REGION_MEM) -#define pci_phys_to_io(dev, addr) pci_phys_to_bus((dev), (addr), PCI_REGION_IO) -#define pci_io_to_phys(dev, addr) pci_bus_to_phys((dev), (addr), PCI_REGION_IO) +# if defined(CONFIG_E500) || defined(CONFIG_DB64360) || defined(CONFIG_DB64460) +# define pci_phys_to_mem(dev, addr) (addr) +# define pci_mem_to_phys(dev, addr) (addr) +# define pci_phys_to_io(dev, addr) (addr) +# define pci_io_to_phys(dev, addr) (addr) +# else /* defined(CONFIG_E500) || defined(CONFIG_DB64360) || defined(CONFIG_DB64460) */ +# define pci_phys_to_mem(dev, addr) pci_phys_to_bus((dev), (addr), PCI_REGION_MEM) +# define pci_mem_to_phys(dev, addr) pci_bus_to_phys((dev), (addr), PCI_REGION_MEM) +# define pci_phys_to_io(dev, addr) pci_phys_to_bus((dev), (addr), PCI_REGION_IO) +# define pci_io_to_phys(dev, addr) pci_bus_to_phys((dev), (addr), PCI_REGION_IO) +# endif /* defined(CONFIG_E500) || defined(CONFIG_DB64360) || defined(CONFIG_DB64460) */ + +#else /* CONFIG_PPC */ +/* Architectures other than PPC */ +# define pci_phys_to_mem(dev, addr) (addr) +# define pci_mem_to_phys(dev, addr) (addr) +# define pci_phys_to_io(dev, addr) (addr) +# define pci_io_to_phys(dev, addr) (addr) +#endif /* CONFIG_PPC */ extern int pci_hose_read_config_byte(struct pci_controller *hose, pci_dev_t dev, int where, u8 *val); -- 1.5.4.3 ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users