5 /* bit [10,8] are dev func, bit[1,0] are dev index */
6 static uint32_t pci_read_config32_index(device_t dev, uint32_t index_reg, uint32_t index)
10 pci_write_config32(dev, index_reg, index);
12 dword = pci_read_config32(dev, index_reg+0x4);
17 static void pci_write_config32_index(device_t dev, uint32_t index_reg, uint32_t index, uint32_t data)
19 pci_write_config32(dev, index_reg, index);
21 pci_write_config32(dev, index_reg + 0x4, data);
25 static uint32_t pci_read_config32_index_wait(device_t dev, uint32_t index_reg, uint32_t index)
30 pci_write_config32(dev, index_reg, index);
33 dword = pci_read_config32(dev, index_reg);
34 } while (!(dword & (1<<31)));
36 dword = pci_read_config32(dev, index_reg+0x4);
41 static void pci_write_config32_index_wait(device_t dev, uint32_t index_reg, uint32_t index, uint32_t data)
45 pci_write_config32(dev, index_reg + 0x4, data);
48 pci_write_config32(dev, index_reg, index);
50 dword = pci_read_config32(dev, index_reg);
51 } while (!(dword & (1<<31)));