(Looks like not many people write single bytes to the PCI configuration registers on a PNX8550-based system.) There's a serious typo in the function: arch/mips/pci/ops-pnx8550.c:write_config_byte() The parameter passed to the function config_access() is PCI_CMD_CONFIG_READ instead of PCI_CMD_CONFIG_WRITE. This renders any attempts to write a single byte to the PCI configuration registers useless. This problem does not exist for write_config_word() nor write_config_dword(). This problem has been there since kernel v2.6.17 and is still there as of kernel v2.6.19.1. Patch attached. See ya... d.c.
--- linux-2.6.17.13-orig/arch/mips/pci/ops-pnx8550.c 2006-09-10 01:17:04.000000000 +0800 +++ linux-2.6.17.13/arch/mips/pci/ops-pnx8550.c 2007-01-04 13:49:37.000000000 +0800 @@ -202,7 +202,7 @@ break; } - err = config_access(PCI_CMD_CONFIG_READ, bus, devfn, where, ~(1 << (where & 3)), &data); + err = config_access(PCI_CMD_CONFIG_WRITE, bus, devfn, where, ~(1 << (where & 3)), &data); return err; }