Re: [PATCH 2/2] m68k/atari - atafb: convert allocation of fb ram to new interface

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

 



On Wed, Mar 19, 2014 at 8:23 AM, Michael Schmitz <schmitzmic@xxxxxxxxx> wrote:
@@ -3166,7 +3166,7 @@ int __init atafb_init(void)
                memset(screen_base, 0, mem_req);
                pad = -(unsigned long)screen_base & (PAGE_SIZE - 1);
                screen_base += pad;
-               real_screen_base = screen_base + ovsc_offset;
+               real_screen_base = atari_stram_to_phys((unsigned long) (screen_base + ovsc_offset));

This triggered my eye, but it's actually correct, as it's stored in
fix->smem_start,
which should be the physical address.

But the external_addr case is wrong ;-)

                screen_len = (mem_req - pad - ovsc_offset) & PAGE_MASK;
                st_ovsc_switch();
                if (CPU_IS_040_OR_060) {

Starting here, you have:

        cache_push(virt_to_phys(screen_base), screen_len);

atari_stram_to_phys()

        kernel_set_cachemode(screen_base, screen_len,
                                                     IOMAP_WRITETHROUGH);

woops, that won't work with the virt_to_phys() above, nor with transparent
translation. I guess it writes to a non-existent pointer table,
causing the crash?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux