Patrick Georgi has submitted this change. ( https://review.coreboot.org/c/coreboot/+/47401 )
Change subject: drivers/intel/i210: Request Bus Master in .final ops ......................................................................
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 --- M src/drivers/intel/i210/i210.c 1 file changed, 4 insertions(+), 4 deletions(-)
Approvals: build bot (Jenkins): Verified siemens-bot: Verified Felix Held: Looks good to me, approved Werner Zeh: Looks good to me, approved Felix Singer: Looks good to me, approved
diff --git a/src/drivers/intel/i210/i210.c b/src/drivers/intel/i210/i210.c index 852f368..8caa194 100644 --- a/src/drivers/intel/i210/i210.c +++ b/src/drivers/intel/i210/i210.c @@ -206,17 +206,17 @@ 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 };