]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
EHCI and OHCI PCI bus master
authorstarous <starous@pracovna>
Sun, 22 Jul 2012 19:09:30 +0000 (21:09 +0200)
committerstarous <starous@pracovna>
Sun, 22 Jul 2012 19:09:30 +0000 (21:09 +0200)
ChangeLog
grub-core/bus/usb/ehci.c
grub-core/bus/usb/ohci.c

index 0db62395bc087c265758dc9cc0bfac40e4c22493..01d4f929ced0886a5f07c7e90a998adaf987f698 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-07-22  Ales Nesrsta  <starous@volny.cz>
+
+       * grub-core/bus/usb/ehci.c: PCI iter. - added PCI bus master setting.
+       * grub-core/bus/usb/ohci.c: PCI iter. - added PCI bus master setting.
+
 2012-07-22  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * util/grub-mkconfig_lib.in (grub_quote): Remove extra layer of escape.
index b7005192bfb5a9c7e5690b5d1bef759e8f96aa4b..d99a4bee236f0a6f287e6bd72140d88d0d5f4dae 100644 (file)
@@ -533,6 +533,11 @@ grub_ehci_pci_iter (grub_pci_device_t dev,
                        "EHCI grub_ehci_pci_iter: registers above 4G are not supported\n");
          return 0;
        }
+
+      /* Set bus master - needed for coreboot, VMware, broken BIOSes etc. */
+      addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND);
+      grub_pci_write_word(addr,
+          GRUB_PCI_COMMAND_BUS_MASTER | grub_pci_read_word(addr));
       
       grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: 32-bit EHCI OK\n");
     }
index 23cf63187abf6be043d68fc83a133da3a0bf8194..6fabb4b4ad34e1a731d9c51c10200da6e74d54f6 100644 (file)
@@ -270,6 +270,11 @@ grub_ohci_pci_iter (grub_pci_device_t dev,
        return 0;
 #endif
 
+      /* Set bus master - needed for coreboot, VMware, broken BIOSes etc. */
+      addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND);
+      grub_pci_write_word(addr,
+          GRUB_PCI_COMMAND_BUS_MASTER | grub_pci_read_word(addr));
+
       grub_dprintf ("ohci", "class=0x%02x 0x%02x interface 0x%02x\n",
                    class, subclass, interf);
     }