Subject: Re: [git pull] Please pull powerpc.git next branch

From: Alistair Popple <[email-masked]>
Date: Wed, 29 Jan 2014 13:29 +1100

On Wed, 29 Jan 2014 07:19:55 Benjamin Herrenschmidt wrote:
> On Tue, 2014-01-28 at 16:03 +0100, Olaf Hering wrote:
> > d084775738b746648d4102337163a04534a02982 is the first bad commit
> > commit d084775738b746648d4102337163a04534a02982
> > Author: Alistair Popple <[email-masked]>
> > Date:   Mon Dec 9 18:17:03 2013 +1100
> > 
> >     powerpc/iommu: Update the generic code to use dynamic iommu page sizes
> >     
> >     This patch updates the generic iommu backend code to use the
> >     it_page_shift field to determine the iommu page size instead of
> >     using hardcoded values.
> 
> Interesting. This is new infrastructure but a nop in functionality, ie,
> we support different page sizes for DMA but we still set it to 4k,
> unless we somewhat failed to initialize something...

Looks like I missed the dart iommu code when changing the iommu table 
initialisation. The patch below should fix it, would you mind testing it Ben? 
Thanks.

> I'll have a look, I actually have one of those G5s here still. Thanks !
> 
> Cheers,
> Ben.
> 

---

diff --git a/arch/powerpc/sysdev/dart_iommu.c 
b/arch/powerpc/sysdev/dart_iommu.c
index bd968a4..62c47bb 100644
--- a/arch/powerpc/sysdev/dart_iommu.c
+++ b/arch/powerpc/sysdev/dart_iommu.c
@@ -292,6 +292,7 @@ static void iommu_table_dart_setup(void)
 	iommu_table_dart.it_offset = 0;
 	/* it_size is in number of entries */
 	iommu_table_dart.it_size = dart_tablesize / sizeof(u32);
+	iommu_table_dart.it_page_shift = IOMMU_PAGE_SHIFT_4K;
 
 	/* Initialize the common IOMMU code */
 	iommu_table_dart.it_base = (unsigned long)dart_vbase;