summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2023-04-11 18:07:02 +0300
committerTom Rini <trini@konsulko.com>2023-04-25 22:31:28 +0300
commitcc6259832a11093f5c6dd0183263de26eb49d8b1 (patch)
tree384da0827c2efe2f843e0a399962cd4c0d4f772c
parent23fd87c489276050b229b469c0cba4cb0e9d7a59 (diff)
downloadu-boot-cc6259832a11093f5c6dd0183263de26eb49d8b1.tar.xz
ata: pci: enable bus mastering
The non DM code path already would enable pci bus mastering. Do the same for the DM code path. Fixes AHCI problems I am seeing on an Intel Apollolake device. Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> [trini: Use ahci_dev not dev in the calls] Signed-off-by: Tom Rini <trini@konsulko.com>
-rw-r--r--drivers/ata/ahci.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 6998b82aa5..cb2c648a91 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -1152,7 +1152,12 @@ int ahci_probe_scsi(struct udevice *ahci_dev, ulong base)
int ahci_probe_scsi_pci(struct udevice *ahci_dev)
{
ulong base;
- u16 vendor, device;
+ u16 vendor, device, cmd;
+
+ /* Enable bus mastering */
+ dm_pci_read_config16(ahci_dev, PCI_COMMAND, &cmd);
+ cmd |= PCI_COMMAND_MASTER;
+ dm_pci_write_config16(ahci_dev, PCI_COMMAND, cmd);
base = (ulong)dm_pci_map_bar(ahci_dev, PCI_BASE_ADDRESS_5, 0, 0,
PCI_REGION_TYPE, PCI_REGION_MEM);