--- ./grub/grub-core/bus/usb/ehci.c 2013-05-12 23:15:17.857567000 +0200 +++ ./grub_patched/grub-core/bus/usb/ehci.c 2013-08-31 23:03:54.587218402 +0200 @@ -716,7 +716,7 @@ grub_ehci_pci_iter (grub_pci_device_t de usblegsup = grub_pci_read (pciaddr_eecp); if (usblegsup & GRUB_EHCI_BIOS_OWNED) { - grub_boot_time ("Taking ownership of EHCI port"); + grub_boot_time ("Taking ownership of EHCI controller"); grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: EHCI owned by: BIOS\n"); /* Ownership change - set OS_OWNED bit */ @@ -737,13 +737,8 @@ grub_ehci_pci_iter (grub_pci_device_t de grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED); /* Ensure PCI register is written */ grub_pci_read (pciaddr_eecp); - /* Disable SMI. */ - pciaddr_eecp = grub_pci_make_address (dev, eecp_offset + 4); - grub_pci_write (pciaddr_eecp, 0); - /* Ensure PCI register is written */ - grub_pci_read (pciaddr_eecp); } - grub_boot_time ("Ownership of EHCI port taken"); + grub_boot_time ("Ownership of EHCI controller taken"); } else if (usblegsup & GRUB_EHCI_OS_OWNED) /* XXX: What to do in this case - nothing ? Can it happen ? */ @@ -758,12 +753,14 @@ grub_ehci_pci_iter (grub_pci_device_t de grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED); /* Ensure PCI register is written */ grub_pci_read (pciaddr_eecp); - /* Disable SMI, just to be sure. */ - pciaddr_eecp = grub_pci_make_address (dev, eecp_offset + 4); - grub_pci_write (pciaddr_eecp, 0); - /* Ensure PCI register is written */ - grub_pci_read (pciaddr_eecp); } + + /* Disable SMI, just to be sure. */ + pciaddr_eecp = grub_pci_make_address (dev, eecp_offset + 4); + grub_pci_write (pciaddr_eecp, 0); + /* Ensure PCI register is written */ + grub_pci_read (pciaddr_eecp); + } grub_dprintf ("ehci", "inithw: EHCI grub_ehci_pci_iter: ownership OK\n");