pci: Add pci_enable_bus_master

This patch adds the pci_enable_bus_master function that enables bus
master access for a PCI device.

Change-Id: I317daac1a613ccfc5a3894332c1a7dbbff05991f
Signed-off-by: Michael LeMay <michael.lemay@intel.com>
This commit is contained in:
Michael LeMay 2015-10-14 21:22:54 -07:00 committed by Anas Nashif
commit 2684f4472f
2 changed files with 14 additions and 3 deletions

View file

@ -393,7 +393,7 @@ int pci_bus_scan(struct pci_dev_info *dev_info)
} }
#endif /* CONFIG_PCI_ENUMERATION */ #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; union pci_addr_reg pci_ctrl_addr;
uint32_t pci_data; uint32_t pci_data;
@ -405,7 +405,7 @@ void pci_enable_regs(struct pci_dev_info *dev_info)
pci_ctrl_addr.field.reg = 1; pci_ctrl_addr.field.reg = 1;
#ifdef CONFIG_PCI_DEBUG #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 #endif
pci_read(DEFAULT_PCI_CONTROLLER, pci_read(DEFAULT_PCI_CONTROLLER,
@ -413,7 +413,7 @@ void pci_enable_regs(struct pci_dev_info *dev_info)
sizeof(uint16_t), sizeof(uint16_t),
&pci_data); &pci_data);
pci_data = pci_data | PCI_CMD_MEM_ENABLE; pci_data = pci_data | bits;
pci_write(DEFAULT_PCI_CONTROLLER, pci_write(DEFAULT_PCI_CONTROLLER,
pci_ctrl_addr, pci_ctrl_addr,
@ -421,6 +421,16 @@ void pci_enable_regs(struct pci_dev_info *dev_info)
pci_data); 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 #ifdef CONFIG_PCI_DEBUG
/** /**
* *

View file

@ -64,6 +64,7 @@ static inline int pci_bus_scan(struct pci_dev_info *dev_info)
#endif /* CONFIG_PCI_ENUMERATION */ #endif /* CONFIG_PCI_ENUMERATION */
void pci_enable_regs(struct pci_dev_info *dev_info); 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); int pci_legacy_bridge_detect(struct pci_dev_info *dev_info);
void pci_legacy_bridge_configure(struct pci_dev_info *dev_info, void pci_legacy_bridge_configure(struct pci_dev_info *dev_info,
int io_block_num, int io_block_num,