On Mon, 2007-07-23 at 15:50 -0500, Kumar Gala wrote:
> We need the ability to set P2P bridge registers to properly setup the virtual
> P2P bridges that exist in PCIe controllers for some of the embedded setups.
> 
> Signed-off-by: Kumar Gala <[EMAIL PROTECTED]>

Acked-by: Benjamin Herrenschmidt <[EMAIL PROTECTED]>

> ---
>  arch/powerpc/kernel/pci_32.c     |   18 ++++++++++++------
>  include/asm-powerpc/pci-bridge.h |    2 ++
>  2 files changed, 14 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c
> index bfcfa14..721a694 100644
> --- a/arch/powerpc/kernel/pci_32.c
> +++ b/arch/powerpc/kernel/pci_32.c
> @@ -415,15 +415,13 @@ probe_resource(struct pci_bus *parent, struct resource 
> *pr,
>       return 0;
>  }
>  
> -static void __init
> -update_bridge_base(struct pci_bus *bus, int i)
> +void __init
> +update_bridge_resource(struct pci_dev *dev, struct resource *res)
>  {
> -     struct resource *res = bus->resource[i];
>       u8 io_base_lo, io_limit_lo;
>       u16 mem_base, mem_limit;
>       u16 cmd;
>       unsigned long start, end, off;
> -     struct pci_dev *dev = bus->self;
>       struct pci_controller *hose = dev->sysdata;
>  
>       if (!hose) {
> @@ -467,12 +465,20 @@ update_bridge_base(struct pci_bus *bus, int i)
>               pci_write_config_word(dev, PCI_PREF_MEMORY_LIMIT, mem_limit);
>  
>       } else {
> -             DBG(KERN_ERR "PCI: ugh, bridge %s res %d has flags=%lx\n",
> -                 pci_name(dev), i, res->flags);
> +             DBG(KERN_ERR "PCI: ugh, bridge %s res has flags=%lx\n",
> +                 pci_name(dev), res->flags);
>       }
>       pci_write_config_word(dev, PCI_COMMAND, cmd);
>  }
>  
> +static void __init
> +update_bridge_base(struct pci_bus *bus, int i)
> +{
> +     struct resource *res = bus->resource[i];
> +     struct pci_dev *dev = bus->self;
> +     update_bridge_resource(dev, res);
> +}
> +
>  static inline void alloc_resource(struct pci_dev *dev, int idx)
>  {
>       struct resource *pr, *r = &dev->resource[idx];
> diff --git a/include/asm-powerpc/pci-bridge.h 
> b/include/asm-powerpc/pci-bridge.h
> index 435bfe8..b7d2ea4 100644
> --- a/include/asm-powerpc/pci-bridge.h
> +++ b/include/asm-powerpc/pci-bridge.h
> @@ -93,6 +93,8 @@ extern int early_find_capability(struct pci_controller 
> *hose, int bus,
>  extern void setup_indirect_pci(struct pci_controller* hose,
>                              u32 cfg_addr, u32 cfg_data, u32 flags);
>  extern void setup_grackle(struct pci_controller *hose);
> +extern void __init update_bridge_resource(struct pci_dev *dev,
> +                                       struct resource *res);
>  
>  #else
>  

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to