summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAngel Pons <th3fanbus@gmail.com>2020-11-10 16:25:47 +0100
committerPatrick Georgi <pgeorgi@google.com>2020-11-30 07:58:13 +0000
commit5ad4206e72a315c70904716c461cc1d8c7a855df (patch)
tree6b474a29cf9e82f9340e9cb4c77e3401b6ce5a15
parent45eeae4f8f3846a44b48b4334988e94c2776898d (diff)
drivers/intel/i210: Request Bus Master in .final ops
Commit bd31642ad8 (intel/i210: Set bus master bit in command register) is only necessary because a buggy OS expects Bus Master to be set, not because the hardware requires Bus Master during initialization. It is thus safe to defer the Bus Master request into the .final callback. Change-Id: Iecfa6366eb4b1438fd12cd9ebb1a77ada97fa2f6 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/47401 Reviewed-by: Felix Held <felix-coreboot@felixheld.de> Reviewed-by: Felix Singer <felixsinger@posteo.net> Reviewed-by: Werner Zeh <werner.zeh@siemens.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Tested-by: siemens-bot
-rw-r--r--src/drivers/intel/i210/i210.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/drivers/intel/i210/i210.c b/src/drivers/intel/i210/i210.c
index 852f368e5c..8caa194a9e 100644
--- a/src/drivers/intel/i210/i210.c
+++ b/src/drivers/intel/i210/i210.c
@@ -206,17 +206,17 @@ static void init(struct device *dev)
return;
}
-static void set_resources(struct device *dev)
+static void enable_bus_master(struct device *dev)
{
- pci_dev_set_resources(dev);
- dev->command |= PCI_COMMAND_MASTER;
+ pci_or_config16(dev, PCI_COMMAND, PCI_COMMAND_MASTER);
}
static struct device_operations i210_ops = {
.read_resources = pci_dev_read_resources,
- .set_resources = set_resources,
+ .set_resources = pci_dev_set_resources,
.enable_resources = pci_dev_enable_resources,
.init = init,
+ .final = enable_bus_master,
};
static const unsigned short i210_device_ids[] = { 0x1537, 0x1538, 0x1533, 0 };