diff options
author | Christian Gmeiner <christian.gmeiner@gmail.com> | 2023-04-11 17:07:02 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-04-25 15:31:28 -0400 |
commit | cc6259832a11093f5c6dd0183263de26eb49d8b1 (patch) | |
tree | 384da0827c2efe2f843e0a399962cd4c0d4f772c | |
parent | 23fd87c489276050b229b469c0cba4cb0e9d7a59 (diff) | |
download | u-boot-cc6259832a11093f5c6dd0183263de26eb49d8b1.zip u-boot-cc6259832a11093f5c6dd0183263de26eb49d8b1.tar.gz u-boot-cc6259832a11093f5c6dd0183263de26eb49d8b1.tar.bz2 |
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.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index 6998b82..cb2c648 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); |