Kumba schrieb:
>
> The second part is the actual IP30 Patch that makes these beasts boot.
> Assuming you've already lit incense candles and sacrificed a PC to the
> MIPS Gods above.
>
> There's one change that probably needs good scrutiny, as it changes a
> value in dma-default.c, and this'll affect other systems:
>
> diff -Naurp linux-2.6.26.orig/arch/mips/mm/dma-default.c
> linux-2.6.26/arch/mips/mm/dma-default.c
> --- linux-2.6.26.orig/arch/mips/mm/dma-default.c 2008-07-13
> 17:51:29.000000000 -0400
> +++ linux-2.6.26/arch/mips/mm/dma-default.c 2008-07-25
> 03:14:40.000000000 -0400
> @@ -209,7 +209,7 @@ dma_addr_t dma_map_page(struct device *d
> dma_cache_wback_inv(addr, size);
> }
>
> - return plat_map_dma_mem_page(dev, page) + offset;
> + return plat_map_dma_mem_page(dev, page, size) + offset;
> }
>
I dont think that is needed.
IMHO This function schould map a whole page,
offset and size are only used for a part of that page.
So i am using PAGE_SIZE in plat_map_dma_mem_page.
your version
+static dma_addr_t plat_map_dma_mem_page(struct device *dev, struct page *page,
+ size_t size)
+{
+ dma_addr_t pa = dev_to_baddr(dev, page_to_phys(page), 0, size);
+
+ return pa;
+}
+
my version
+static dma_addr_t plat_map_dma_mem_page(struct device *dev, struct page *page,
+ size_t size)
+{
+ dma_addr_t pa = dev_to_baddr(dev, page_to_phys(page), 0, PAGE_SIZE);
+
+ return pa;
+}
Maybe it is only working, because the function dma_map_page is never used in my
kernel.
> Thanks!,
>
>
> --Kumba
>
|