From 6054ac4ca1ce5f3e4589bfead3c9c05af89f9ace Mon Sep 17 00:00:00 2001 From: starous Date: Sun, 22 Jul 2012 21:09:30 +0200 Subject: [PATCH 017/364] EHCI and OHCI PCI bus master --- ChangeLog | 5 +++++ grub-core/bus/usb/ehci.c | 5 +++++ grub-core/bus/usb/ohci.c | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index 0db6239..01d4f92 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-07-22 Ales Nesrsta + + * 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 * util/grub-mkconfig_lib.in (grub_quote): Remove extra layer of escape. diff --git a/grub-core/bus/usb/ehci.c b/grub-core/bus/usb/ehci.c index b700519..d99a4be 100644 --- a/grub-core/bus/usb/ehci.c +++ b/grub-core/bus/usb/ehci.c @@ -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"); } diff --git a/grub-core/bus/usb/ohci.c b/grub-core/bus/usb/ohci.c index 23cf631..6fabb4b 100644 --- a/grub-core/bus/usb/ohci.c +++ b/grub-core/bus/usb/ohci.c @@ -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); } -- 1.8.1.4