Patchwork [3/3] PCI: Pass full info for window alignment

login
register
mail settings
Submitter Wei Yang
Date Sept. 6, 2013, 1:45 a.m.
Message ID <1378431958-7874-3-git-send-email-weiyang@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/273020/
State Accepted
Headers show

Comments

Wei Yang - Sept. 6, 2013, 1:45 a.m.
When calculating the window_alignment(), type information like IORESOURCE_MEM
and IORESOURCE_PREFETCH is not enough for some platform.

As on powernv platform, one prefetchable window could be IORESOURCE_MEM_64 or
not. The platform will calculate the alignment based on this information.

This patch passes the full info for window alignment.

Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
---
 drivers/pci/setup-bus.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Bjorn Helgaas - Sept. 6, 2013, 11:19 p.m.
[+cc Gavin]

On Fri, Sep 06, 2013 at 09:45:58AM +0800, Wei Yang wrote:
> When calculating the window_alignment(), type information like IORESOURCE_MEM
> and IORESOURCE_PREFETCH is not enough for some platform.
> 
> As on powernv platform, one prefetchable window could be IORESOURCE_MEM_64 or
> not. The platform will calculate the alignment based on this information.
> 
> This patch passes the full info for window alignment.
> 
> Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
> ---
>  drivers/pci/setup-bus.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
> index 989de3c..8781eb1 100644
> --- a/drivers/pci/setup-bus.c
> +++ b/drivers/pci/setup-bus.c
> @@ -980,7 +980,7 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,
>  	}
>  
>  	min_align = calculate_mem_align(aligns, max_order);
> -	min_align = max(min_align, window_alignment(bus, b_res->flags & mask));
> +	min_align = max(min_align, window_alignment(bus, b_res->flags));

This makes sense to me, but since Gavin added this window_alignment()
call recently with the mask, I'd like him to ack this before I apply it.

>  	size0 = calculate_memsize(size, min_size, 0, resource_size(b_res), min_align);
>  	if (children_add_size > add_size)
>  		add_size = children_add_size;
> -- 
> 1.7.1
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index 989de3c..8781eb1 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -980,7 +980,7 @@  static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,
 	}
 
 	min_align = calculate_mem_align(aligns, max_order);
-	min_align = max(min_align, window_alignment(bus, b_res->flags & mask));
+	min_align = max(min_align, window_alignment(bus, b_res->flags));
 	size0 = calculate_memsize(size, min_size, 0, resource_size(b_res), min_align);
 	if (children_add_size > add_size)
 		add_size = children_add_size;