I have a chipset bug which necessitates a workaround; lspci -v gives an improper listing for my SB Live! Value card:

johnpipe:$ /sbin/lspci -v
00:14.0 VGA compatible unclassified device: Creative Labs SB Live! EMU10k1 (rev 08)
        Subsystem: Creative Labs CT4832 SBLive! Value
        Flags: bus master, medium devsel, latency 32, IRQ 11
        I/O ports at dc00 [disabled] [size=32]
        Capabilities: <access denied>
Note the "VGA compatible unclassified device.." line, and the resulting [disabled] ports. This happens on some old motherboards with VIA chipsets, such as my DFI K6BV3 under X.org. When opening a TTY and running the same command the ports are not disabled. This port disabling prevents toggling the analog/digital output, preventing analog sound output to the speaker system.

In order to be able to access the sound card under X, the workaround is to run setpci from within X:

setpci -s 00:14.0 COMMAND=5

This enables the ports.

Since the problem happens only when X is running, I can't simply put a script in /etc/init.d/ since everything there happens before X starts. I don't know where I can add this command, at present I have to issue it manually each time I login to a desktop running under X.org (does NOT get disabled under the older XFree86 V3.x). setpci requires root access, so I can't just put this in my .bashrc.

Anyone know where I can put this command to run after X is running so I don't have to do it manually every time?

Thanks very much,