From: Aivils <ai...@un...> - 2004-04-05 07:51:58
|
> I'm working on a problem where I need to be able to have multiple X > servers responding concurrently (the video driver is not actually > writing to a framebuffer device), and so I was trying out > the /proc/bus/pci/hackvideo patch provided by linuxconsole/ruby. It > does not seem to solve my problem, but I would like to understand what > it is supposed to do (to hopefully give me better insight into where my > problem is). I believe the following code in proc_bus_pci_write() in > drivers/pci/proc.c is the only modification to the 2.6 kernel code > (other than reading & writing the proc entry) for the hackvideo patch: > > if (pci_hackvideo && (pos == PCI_CMD_STAT_REG) && pos - position to write > (buf[0] <= PCI_CMD_MASTER_ENABLE) && buf[0] - data to write > ((dev->class>>8) == 0x0300 || > (dev->class>>8) == 0x0400 || > (dev->class>>8) == 0x0000 ) ) dev->class - is video adapter PCI device class > return -EINVAL; > > It is not clear to me what this code is doing, however. xf86 cannot write PCI disable command in to device I/O port. > Can anyone > offer an explanation? http://startx.times.lv/eng-xf.html > Does it relate to XFree86's disabling of port I/O > access when switching VTs? If so, is it designed to block the > functionality of a particular function called within xf86VTSwitch() in > xc/programs/Xserver/hw/xfree86/common/xf86Events.c? I do not know. This patch disallow pciIoAccessDisable() normal work (file: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c) and other pci*Disable() funcs will not work normal. xf86 will use Linux /proc interface with this config: Section "ServerFlags" Option "PciOsConfig" "1" EndSection Practice. Nvidia closed source drivers version 1.0-2880 - 1.0-4496 will hung up system, when xf86 on AGP video adapter restart. Now, recent 1.0-5336 works very well, seems this is lucky case.(2.4.25, xfree4.3.0-7mdk) Almost AGP xf86 restart will hung up system, when /proc/bus/pci/hackvideo used. You can use xf86 without restart :) Aivils Stoss |