4 /* bit [10,8] are dev func, bit[1,0] are dev index */
5 static uint32_t pci_read_config32_index(device_t dev, uint32_t index_reg, uint32_t index)
9 pci_write_config32(dev, index_reg, index);
11 dword = pci_read_config32(dev, index_reg+0x4);
16 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)
31 pci_write_config32(dev, index_reg, index);
34 dword = pci_read_config32(dev, index_reg);
35 } while (!(dword & (1<<31)));
37 dword = pci_read_config32(dev, index_reg+0x4);
42 static void pci_write_config32_index_wait(device_t dev, uint32_t index_reg, uint32_t index, uint32_t data)
47 pci_write_config32(dev, index_reg + 0x4, data);
50 pci_write_config32(dev, index_reg, index);
52 dword = pci_read_config32(dev, index_reg);
53 } while (!(dword & (1<<31)));