CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2012/05/17 13:46:52
Modified files: sys/arch/sgi/gio: gio.c giovar.h Log message: Yet another rework of the crucial gio_id() function responsible for correctly recognizing a GIO device or an id-less frame buffer in a GIO slot. Turns out that GIO32 devices (at least those with a 32-bit ID register, but likely all of them) do NOT like accesses to the minimal GIO register area NOT done on 32-bit boundaries. While frame buffers won't mind, especially if their slots are pipelined. This makes it a lot easier to tell them apart. While there, split gio_intr_establish() into gio_intr_map(), which will return a logical interrupt number out of a GIO slot number, and gio_intr_establish(), which will now expect a logical interrupt number, instead of a logical slot number. These two functions are still unused, but upcoming changes depend on this work. (Yes, I'm too lazy to make two commits for this tonite)