Patchwork [3/5] powerpc: make dma_window_* in pci_controller struct avail on 32b

login
register
mail settings
Submitter Becky Bruce
Date April 20, 2009, 4:26 p.m.
Message ID <1240244810-32193-6-git-send-email-beckyb@kernel.crashing.org>
Download mbox | patch
Permalink /patch/26200/
State Accepted
Commit 89d93347d1f66832c43e6b25a669fddff89929b5
Delegated to: Benjamin Herrenschmidt
Headers show

Comments

Becky Bruce - April 20, 2009, 4:26 p.m.
Also, convert them to resource_size_t (which is unsigned long
on 64-bit, so it's not a change there).

We will be using these on fsl 32b to indicate the start and size
address of memory that the pci controller can actually reach - this
is needed to determine if an address requires bounce buffering.  For
now, initialize them to a standard value; in the near future, the
value will be calculated based on how the inbound windows are
programmed.

Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
---
 arch/powerpc/include/asm/pci-bridge.h |    6 ++++--
 arch/powerpc/sysdev/fsl_pci.c         |    4 ++++
 2 files changed, 8 insertions(+), 2 deletions(-)
Kumar Gala - April 20, 2009, 4:58 p.m.
On Apr 20, 2009, at 11:26 AM, Becky Bruce wrote:

> Also, convert them to resource_size_t (which is unsigned long
> on 64-bit, so it's not a change there).
>
> We will be using these on fsl 32b to indicate the start and size
> address of memory that the pci controller can actually reach - this
> is needed to determine if an address requires bounce buffering.  For
> now, initialize them to a standard value; in the near future, the
> value will be calculated based on how the inbound windows are
> programmed.
>
> Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
> ---
> arch/powerpc/include/asm/pci-bridge.h |    6 ++++--
> arch/powerpc/sysdev/fsl_pci.c         |    4 ++++
> 2 files changed, 8 insertions(+), 2 deletions(-)

Ben, your ack on this patch would be appreciated as I've got some  
other FSL PCI patches that I want to fold this into my tree for.

- k

Patch

diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h
index 84007af..9861258 100644
--- a/arch/powerpc/include/asm/pci-bridge.h
+++ b/arch/powerpc/include/asm/pci-bridge.h
@@ -140,10 +140,12 @@  struct pci_controller {
 	struct resource	io_resource;
 	struct resource mem_resources[3];
 	int global_number;		/* PCI domain number */
+
+	resource_size_t dma_window_base_cur;
+	resource_size_t dma_window_size;
+
 #ifdef CONFIG_PPC64
 	unsigned long buid;
-	unsigned long dma_window_base_cur;
-	unsigned long dma_window_size;
 
 	void *private_data;
 #endif	/* CONFIG_PPC64 */
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index 78021d8..376603d 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -152,6 +152,10 @@  static void __init setup_pci_atmu(struct pci_controller *hose,
 	out_be32(&pci->piw[2].piwbar,0x00000000);
 	out_be32(&pci->piw[2].piwar, PIWAR_2G);
 
+	/* Save the base address and size covered by inbound window mappings */
+	hose->dma_window_base_cur = 0x00000000;
+	hose->dma_window_size = 0x80000000;
+
 	iounmap(pci);
 }