Port-sgimips archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: O2 framebuffer problems with install kernel



I reverted the previous patch and applied this one. It works.

Thanks.

On Jul 28, 2008, at 6:42 PM, Izumi Tsutsui wrote:

jacereda%gmail.com@localhost wrote:

Anyway, it looks just a simple DMA-cache issue and
the attached patch seems to fix it.
[snip]

Yes, that gets it working. Excellent!

Same here. What are the implications of that patch? Is that The Right
Thing?

As noted in bus_dma(9) BUS_DMA_COHERENT may map DMA memory into
KSEG1 on mips (which is uncached region), but "The Right Thing" is
to add a bus_dmamap_sync(9) call rather than BUS_DMA_COHERENT which is
"just a hint" as described in the MI API.
---
Izumi Tsutsui


Index: dev/crmfb.c
===================================================================
RCS file: /cvsroot/src/sys/arch/sgimips/dev/crmfb.c,v
retrieving revision 1.25
diff -u -r1.25 crmfb.c
--- dev/crmfb.c 8 May 2008 02:10:59 -0000       1.25
+++ dev/crmfb.c 28 Jul 2008 16:35:51 -0000
@@ -304,6 +304,8 @@
        for (i = 0; i < (sc->sc_tiles_x * sc->sc_tiles_y); i++) {
                p[i] = ((uint32_t)v >> 16) + i;
        }
+       bus_dmamap_sync(sc->sc_dmat, sc->sc_dmai.map, 0, sc->sc_dmai.size,
+           BUS_DMASYNC_PREWRITE);
sc->sc_scratch = (char *)KERNADDR(sc->sc_dma) + (0xf0000 * sc- >sc_tiles_x); sc->sc_linear = (paddr_t)DMAADDR(sc->sc_dma) + 0x100000 * sc- >sc_tiles_x;




Home | Main Index | Thread Index | Old Index