[haiku-development] Re: S3 Video Driver

  • From: Gerald Zajac <zajacg@xxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Tue, 04 Mar 2008 13:53:08 -0500

Axel Dörfler wrote:
Gerald Zajac <zajacg@xxxxxxxxxxxxx> wrote:
Axel Dörfler wrote:
Gerald Zajac <zajacg@xxxxxxxxxxxxx> wrote:
The plain Trio64 86C764 is not supported because it does not support Memory Mapped I/O (MMIO). If someone has any ideas about how to handle, under BeOS/Haiku, a video chip that supports only PIO, I might consider supporting that chip. The Trio64V+ 86C765 does appear to support MMIO,
The only way you can do this is to either move some of the functionality into the kernel module, or you make port out/in available to the accelerant (through an extra ioctl()).
Since the accelerant has to access a number of registers, I feel that it would be rather cumbersome and time consuming to access the registers via the kernel module; thus, IMHO it is best not to support the plain Trio64 chip.

The PIO mode is a performance problem in itself - using a syscall per port access isn't that problematic; and you could always turn off acceleration if it really would be a problem. Being able to change the resolution would be a good start, though, I think.
But it's your decision, anyway! :-)

Hi Axel! How do you envision accessing the PIO ports in the kernel module? Would it be done by creating a pci_module_info object during startup, and then using the pci_module_info read_io and write_io functions to access the PIO ports? I'm currently using this method during startup to enable MMIO on the Trio and Virge chips. Or is there another simpler way of accessing these ports?

If acceleration for this chip is turned off and this way of accessing the PIO ports is used only for changing the resolution, I'm wondering why the VESA driver could not be enhanced to change the resolution? That way the VESA driver could handle all these older video chips where it is questionable whether it is worth the effort to write code to handle them in other video drivers.

Best regards,
Gerald



Other related posts: