[haiku] Re: nv_driver in kernel mode, but media kit not?

  • From: Gerald Zajac <zajacg@xxxxxxxxxxxxx>
  • To: haiku@xxxxxxxxxxxxx
  • Date: Mon, 26 Jul 2010 07:58:57 -0400

Gerald Zajac wrote:
Ingo Weinhold wrote:
On 2010-07-25 at 17:20:55 [+0200], Gerald Zajac <zajacg@xxxxxxxxxxxxx> wrote:
Ingo Weinhold wrote:
Most drivers consist of a single module which runs in kernel mode;
whereas, video drivers consist of two modules.  One module is the driver
which runs in kernel mode;  whereas, the other module is the accelerant
which runs in user mode and does most of the work of interacting with
the video hardware.

I actually always wondered why Be went with this split for graphics drivers instead of defining a generic ioctl interface (like they did for multi audio).

Most of the communication between the accelerant and the video hardware is done using Memory Mapped I/O (MMIO); thus, there is no need to involve the kernel. At least this is the case for most video chips; however, some of the ancient chips use PIO instead of MMIO. But even with PIO, there is no need to involve the kernel.

As I get older my memory gets worse, and I am older than most people working on this project. Anyway, what I said above about PIO is not true. PIO access can only be done in the kernel, and the video accelerants that use it (3dfx chips and S3 Trio64 chips), use an ioctl interface with the driver for PIO operations.

-- Gerald

Other related posts: