EHCI and OHCI PCI bus master

This commit is contained in:
starous 2012-07-22 21:09:30 +02:00
parent a885261b5d
commit 39b27f1eaf
3 changed files with 15 additions and 0 deletions

View file

@ -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> 2012-07-22 Vladimir Serbinenko <phcoder@gmail.com>
* util/grub-mkconfig_lib.in (grub_quote): Remove extra layer of escape. * util/grub-mkconfig_lib.in (grub_quote): Remove extra layer of escape.

View 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"); "EHCI grub_ehci_pci_iter: registers above 4G are not supported\n");
return 0; 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"); grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: 32-bit EHCI OK\n");
} }

View file

@ -270,6 +270,11 @@ grub_ohci_pci_iter (grub_pci_device_t dev,
return 0; return 0;
#endif #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", grub_dprintf ("ohci", "class=0x%02x 0x%02x interface 0x%02x\n",
class, subclass, interf); class, subclass, interf);
} }