summaryrefslogtreecommitdiffstats
path: root/docs/submodules/pharos
AgeCommit message (Expand)AuthorFilesLines
2017-11-24Update git submodulesagardner1-0/+0
2017-11-24Update git submodulesagardner1-0/+0
2017-11-22Update git submodulesAric Gardner1-0/+0
2017-11-22Update git submodulesAlex Yang1-0/+0
2017-10-31Update git submodulesMichael Polenchuk1-0/+0
2017-10-01Update git submodulesJack Morgan1-0/+0
2017-09-27Update git submodulesGuillermo Herrero1-0/+0
2017-09-26Update git submodulesJack Morgan1-0/+0
2017-09-26Update git submodulesJack Morgan1-0/+0
2017-09-26Update git submodulesJack Morgan1-0/+0
2017-09-26Update git submodulesJack Morgan1-0/+0
2017-09-25Update git submodulesGuillermo Herrero1-0/+0
2017-09-21Update git submodulesAlexandru Avadanii1-0/+0
2017-09-19Update git submodulesJack Morgan1-0/+0
2017-09-19Update git submodulesJack Morgan1-0/+0
2017-09-19Update git submodulesJack Morgan1-0/+0
2017-09-19Update git submodulesJack Morgan1-0/+0
2017-09-19Update git submodulesJack Morgan1-0/+0
2017-09-19Update git submodulesJack Morgan1-0/+0
2017-09-19Update git submodulesJack Morgan1-0/+0
2017-09-19Update git submodulesJack Morgan1-0/+0
2017-09-19Update git submodulesJack Morgan1-0/+0
2017-09-19Update git submodulesJack Morgan1-0/+0
2017-09-19Update git submodulesJack Morgan1-0/+0
2017-09-19Update git submodulesJack Morgan1-0/+0
2017-09-19Update git submodulesJack Morgan1-0/+0
2017-09-14Update git submodulesJulien1-0/+0
2017-09-14Update git submodulesjulien zhang1-0/+0
2017-09-14Update git submodulesjulien zhang1-0/+0
2017-09-14Update git submodulesJulien1-0/+0
2017-09-11Update git submodulesjulien zhang1-0/+0
2017-08-22Update git submodulesJulien1-0/+0
2017-08-16Update git submodulesTrevor Bramwell1-0/+0
2017-07-11Update git submodulesjulien zhang1-0/+0
2017-07-11Update git submodulesTrevor Bramwell1-0/+0
2017-06-10Update git submodulesJack Morgan1-0/+0
2017-05-18Update git submodulesmaxbr1-0/+0
2017-03-15Updating submodules & add openretrieverShubhamRathi1-0/+0
2017-01-11Add submodules and .gitmoduleShubhamRathi1-0/+0
ss="n">EMMA2RH_PCI_IWIN0_CTR); if (set_pci_configuration_address(bus_num, devfn, where) < 0) return PCIBIOS_DEVICE_NOT_FOUND; data = *(volatile u32 *)(base + (PCI_FUNC(devfn) << 8) + (where & 0xfffffffc)); switch (size) { case 1: *val = (data >> ((where & 3) << 3)) & 0xffU; break; case 2: *val = (data >> ((where & 2) << 3)) & 0xffffU; break; case 4: *val = data; break; default: emma2rh_out32(EMMA2RH_PCI_IWIN0_CTR, backup_win0); return PCIBIOS_FUNC_NOT_SUPPORTED; } emma2rh_out32(EMMA2RH_PCI_IWIN0_CTR, backup_win0); if (emma2rh_in32(EMMA2RH_PCI_INT) & RMABORT) return PCIBIOS_DEVICE_NOT_FOUND; return PCIBIOS_SUCCESSFUL; } static int pci_config_write(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 val) { u32 bus_num; u32 base = KSEG1ADDR(EMMA2RH_PCI_CONFIG_BASE); u32 backup_win0; u32 data; int shift; if (check_args(bus, devfn, &bus_num) == PCIBIOS_DEVICE_NOT_FOUND) return PCIBIOS_DEVICE_NOT_FOUND; backup_win0 = emma2rh_in32(EMMA2RH_PCI_IWIN0_CTR); if (set_pci_configuration_address(bus_num, devfn, where) < 0) return PCIBIOS_DEVICE_NOT_FOUND; /* read modify write */ data = *(volatile u32 *)(base + (PCI_FUNC(devfn) << 8) + (where & 0xfffffffc)); switch (size) { case 1: shift = (where & 3) << 3; data &= ~(0xffU << shift); data |= ((val & 0xffU) << shift); break; case 2: shift = (where & 2) << 3; data &= ~(0xffffU << shift); data |= ((val & 0xffffU) << shift); break; case 4: data = val; break; default: emma2rh_out32(EMMA2RH_PCI_IWIN0_CTR, backup_win0); return PCIBIOS_FUNC_NOT_SUPPORTED; } *(volatile u32 *)(base + (PCI_FUNC(devfn) << 8) + (where & 0xfffffffc)) = data; emma2rh_out32(EMMA2RH_PCI_IWIN0_CTR, backup_win0); if (emma2rh_in32(EMMA2RH_PCI_INT) & RMABORT) return PCIBIOS_DEVICE_NOT_FOUND; return PCIBIOS_SUCCESSFUL; } struct pci_ops emma2rh_pci_ops = { .read = pci_config_read, .write = pci_config_write, };