static int mcpcia_read_config(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 *value) { struct pci_controller *hose = bus->sysdata; unsigned long addr, w; unsigned char type1; if (mk_conf_addr(bus, devfn, where, hose, &addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; addr |= (size - 1) * 8; w = conf_read(addr, type1, hose); switch (size) { case 1: *value = __kernel_extbl(w, where & 3); break; case 2: *value = __kernel_extwl(w, where & 3); break; case 4: *value = w; break; } return PCIBIOS_SUCCESSFUL; }
static int polaris_read_config_word(struct pci_dev *dev, int where, u16 *value) { unsigned long pci_addr; unsigned char type1; if (mk_conf_addr(dev, where, &pci_addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; *value = __kernel_ldwu(*(vusp)pci_addr); return PCIBIOS_SUCCESSFUL; }
int polaris_read_config_dword(struct pci_dev *dev, int where, u32 *value) { unsigned long pci_addr; unsigned char type1; if (mk_conf_addr(dev, where, &pci_addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; *value = *(vuip)pci_addr; return PCIBIOS_SUCCESSFUL; }
int polaris_hose_read_config_byte (u8 bus, u8 device_fn, u8 where, u8 *value, struct linux_hose_info *hose) { unsigned long pci_addr; unsigned char type1; if (mk_conf_addr(bus, device_fn, where, &pci_addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; *value = __kernel_ldbu(*(vucp)pci_addr); return PCIBIOS_SUCCESSFUL; }
int polaris_hose_read_config_dword (u8 bus, u8 device_fn, u8 where, u32 *value, struct linux_hose_info *hose) { unsigned long pci_addr; unsigned char type1; if (mk_conf_addr(bus, device_fn, where, &pci_addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; *value = *(vuip)pci_addr; return PCIBIOS_SUCCESSFUL; }
int tsunami_hose_read_config_word (u8 bus, u8 device_fn, u8 where, u16 *value, struct linux_hose_info *hose) { unsigned long addr; unsigned char type1; if (mk_conf_addr(bus, device_fn, where, hose, &addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; *value = __kernel_ldwu(*(vusp)addr); return PCIBIOS_SUCCESSFUL; }
static int mcpcia_read_config_dword(struct pci_dev *dev, int where, u32 *value) { struct pci_controler *hose = dev->sysdata; unsigned long addr; unsigned char type1; if (mk_conf_addr(dev, where, hose, &addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; addr |= 0x18; *value = conf_read(addr, type1, hose); return PCIBIOS_SUCCESSFUL; }
static int polaris_write_config_byte(struct pci_dev *dev, int where, u8 value) { unsigned long pci_addr; unsigned char type1; if (mk_conf_addr(dev, where, &pci_addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; __kernel_stb(value, *(vucp)pci_addr); mb(); __kernel_ldbu(*(vucp)pci_addr); return PCIBIOS_SUCCESSFUL; }
static int mcpcia_write_config(struct pci_dev *dev, int where, u32 value, long mask) { struct pci_controler *hose = dev->sysdata; unsigned long addr; unsigned char type1; if (mk_conf_addr(dev, where, hose, &addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; addr |= mask; value = __kernel_insql(value, where & 3); conf_write(addr, value, type1, hose); return PCIBIOS_SUCCESSFUL; }
static int mcpcia_read_config_word(struct pci_dev *dev, int where, u16 *value) { struct pci_controler *hose = dev->sysdata; unsigned long addr, w; unsigned char type1; if (mk_conf_addr(dev, where, hose, &addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; addr |= 0x08; w = conf_read(addr, type1, hose); *value = __kernel_extwl(w, where & 3); return PCIBIOS_SUCCESSFUL; }
int polaris_hose_write_config_word (u8 bus, u8 device_fn, u8 where, u16 value, struct linux_hose_info *hose) { unsigned long pci_addr; unsigned char type1; if (mk_conf_addr(bus, device_fn, where, &pci_addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; __kernel_stw(value, *(vusp)pci_addr); mb(); __kernel_ldbu(*(vusp)pci_addr); return PCIBIOS_SUCCESSFUL; }
int tsunami_hose_write_config_dword (u8 bus, u8 device_fn, u8 where, u32 value, struct linux_hose_info *hose) { unsigned long addr; unsigned char type1; if (mk_conf_addr(bus, device_fn, where, hose, &addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; *(vuip)addr = value; mb(); *(vuip)addr; return PCIBIOS_SUCCESSFUL; }
int tsunami_hose_write_config_byte (u8 bus, u8 device_fn, u8 where, u8 value, struct linux_hose_info *hose) { unsigned long addr; unsigned char type1; if (mk_conf_addr(bus, device_fn, where, hose, &addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; __kernel_stb(value, *(vucp)addr); mb(); __kernel_ldbu(*(vucp)addr); return PCIBIOS_SUCCESSFUL; }
static int mcpcia_write_config(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 value) { struct pci_controller *hose = bus->sysdata; unsigned long addr; unsigned char type1; if (mk_conf_addr(bus, devfn, where, hose, &addr, &type1)) return PCIBIOS_DEVICE_NOT_FOUND; addr |= (size - 1) * 8; value = __kernel_insql(value, where & 3); conf_write(addr, value, type1, hose); return PCIBIOS_SUCCESSFUL; }