diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index aa00506e269..d7522fe64a7 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -393,7 +393,7 @@ int pci_bus_scan(struct pci_dev_info *dev_info) } #endif /* CONFIG_PCI_ENUMERATION */ -void pci_enable_regs(struct pci_dev_info *dev_info) +static void pci_set_command_bits(struct pci_dev_info *dev_info, uint32_t bits) { union pci_addr_reg pci_ctrl_addr; uint32_t pci_data; @@ -405,7 +405,7 @@ void pci_enable_regs(struct pci_dev_info *dev_info) pci_ctrl_addr.field.reg = 1; #ifdef CONFIG_PCI_DEBUG - printk("pci_enable_regs 0x%x\n", pci_ctrl_addr); + printk("pci_set_command_bits 0x%x\n", pci_ctrl_addr); #endif pci_read(DEFAULT_PCI_CONTROLLER, @@ -413,7 +413,7 @@ void pci_enable_regs(struct pci_dev_info *dev_info) sizeof(uint16_t), &pci_data); - pci_data = pci_data | PCI_CMD_MEM_ENABLE; + pci_data = pci_data | bits; pci_write(DEFAULT_PCI_CONTROLLER, pci_ctrl_addr, @@ -421,6 +421,16 @@ void pci_enable_regs(struct pci_dev_info *dev_info) pci_data); } +void pci_enable_regs(struct pci_dev_info *dev_info) +{ + pci_set_command_bits(dev_info, PCI_CMD_MEM_ENABLE); +} + +void pci_enable_bus_master(struct pci_dev_info *dev_info) +{ + pci_set_command_bits(dev_info, PCI_CMD_MASTER_ENABLE); +} + #ifdef CONFIG_PCI_DEBUG /** * diff --git a/include/drivers/pci/pci.h b/include/drivers/pci/pci.h index b4d77efaf51..eb7033188a3 100644 --- a/include/drivers/pci/pci.h +++ b/include/drivers/pci/pci.h @@ -64,6 +64,7 @@ static inline int pci_bus_scan(struct pci_dev_info *dev_info) #endif /* CONFIG_PCI_ENUMERATION */ void pci_enable_regs(struct pci_dev_info *dev_info); +void pci_enable_bus_master(struct pci_dev_info *dev_info); int pci_legacy_bridge_detect(struct pci_dev_info *dev_info); void pci_legacy_bridge_configure(struct pci_dev_info *dev_info, int io_block_num,