Re: [PATCH v5 1/3] of/pci: Unify pci_process_bridge_OF_ranges fromMicroblaze and PowerPC
From: Rob Herring
Date: Wed Apr 10 2013 - 09:14:12 EST
Adding Ben H and Michal...
On 04/10/2013 02:29 AM, Andrew Murray wrote:
> The pci_process_bridge_OF_ranges function, used to parse the "ranges"
> property of a PCI host device, is found in both Microblaze and PowerPC
> architectures. These implementations are nearly identical. This patch
> moves this common code to a common place.
>
> Signed-off-by: Andrew Murray <Andrew.Murray@xxxxxxx>
> Signed-off-by: Liviu Dudau <Liviu.Dudau@xxxxxxx>
One comment below. Otherwise,
Reviewed-by: Rob Herring <rob.herring@xxxxxxxxxxx>
You need also need acks from Ben and Michal.
[...]
> + /* Act based on address space type */
> + res = NULL;
> + switch ((pci_space >> 24) & 0x3) {
> + case 1: /* PCI IO space */
> + pr_info(" IO 0x%016llx..0x%016llx -> 0x%016llx\n",
> + cpu_addr, cpu_addr + size - 1, pci_addr);
> +
> + /* We support only one IO range */
> + if (hose->pci_io_size) {
> + pr_info(" \\--> Skipped (too many) !\n");
> + continue;
> + }
> +#if defined(CONFIG_PPC32) || defined(CONFIG_MICROBLAZE)
How about "if (!IS_ENABLED(CONFIG_64BIT))" instead.
> + /* On 32 bits, limit I/O space to 16MB */
> + if (size > 0x01000000)
> + size = 0x01000000;
> +
> + /* 32 bits needs to map IOs here */
> + hose->io_base_virt = ioremap(cpu_addr, size);
> +
> + /* Expect trouble if pci_addr is not 0 */
> + if (primary)
> + isa_io_base =
> + (unsigned long)hose->io_base_virt;
> +#endif /* CONFIG_PPC32 || CONFIG_MICROBLAZE */
> + /* pci_io_size and io_base_phys always represent IO
> + * space starting at 0 so we factor in pci_addr
> + */
> + hose->pci_io_size = pci_addr + size;
> + hose->io_base_phys = cpu_addr - pci_addr;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/