USB EHCI: SMI disabled in all cases

This commit is contained in:
starous@volny.cz 2013-09-23 20:30:52 +02:00
parent 890bdabe96
commit 7c680e1f17
2 changed files with 13 additions and 13 deletions

View file

@ -1,3 +1,7 @@
2013-09-23 Aleš Nesrsta <starous@volny.cz>
* grub-core/bus/usb/ehci.c: SMI disabled in all cases
2013-09-23 Massimo Maggi <me@massimo-maggi.eu> 2013-09-23 Massimo Maggi <me@massimo-maggi.eu>
* grub-core/fs/zfs/zfs.c (check_pool_label): Check nvlist. * grub-core/fs/zfs/zfs.c (check_pool_label): Check nvlist.
@ -146,7 +150,7 @@
2013-09-21 Ales Nesrsta <starous@volny.cz> 2013-09-21 Ales Nesrsta <starous@volny.cz>
* grub-core/bus/usb/ehci.c: Correceted EHCI QH handling (async./sync.) * grub-core/bus/usb/ehci.c: Corrected EHCI QH handling (async./sync.)
2013-09-20 Vladimir Serbinenko <phcoder@gmail.com> 2013-09-20 Vladimir Serbinenko <phcoder@gmail.com>

View file

@ -716,7 +716,7 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid,
usblegsup = grub_pci_read (pciaddr_eecp); usblegsup = grub_pci_read (pciaddr_eecp);
if (usblegsup & GRUB_EHCI_BIOS_OWNED) 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", grub_dprintf ("ehci",
"EHCI grub_ehci_pci_iter: EHCI owned by: BIOS\n"); "EHCI grub_ehci_pci_iter: EHCI owned by: BIOS\n");
/* Ownership change - set OS_OWNED bit */ /* Ownership change - set OS_OWNED bit */
@ -737,13 +737,7 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid,
grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED); grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED);
/* Ensure PCI register is written */ /* Ensure PCI register is written */
grub_pci_read (pciaddr_eecp); 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");
} }
else if (usblegsup & GRUB_EHCI_OS_OWNED) else if (usblegsup & GRUB_EHCI_OS_OWNED)
/* XXX: What to do in this case - nothing ? Can it happen ? */ /* XXX: What to do in this case - nothing ? Can it happen ? */
@ -758,12 +752,14 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid,
grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED); grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED);
/* Ensure PCI register is written */ /* Ensure PCI register is written */
grub_pci_read (pciaddr_eecp); grub_pci_read (pciaddr_eecp);
}
/* Disable SMI, just to be sure. */ /* Disable SMI, just to be sure. */
pciaddr_eecp = grub_pci_make_address (dev, eecp_offset + 4); pciaddr_eecp = grub_pci_make_address (dev, eecp_offset + 4);
grub_pci_write (pciaddr_eecp, 0); grub_pci_write (pciaddr_eecp, 0);
/* Ensure PCI register is written */ /* Ensure PCI register is written */
grub_pci_read (pciaddr_eecp); grub_pci_read (pciaddr_eecp);
}
} }
grub_dprintf ("ehci", "inithw: EHCI grub_ehci_pci_iter: ownership OK\n"); grub_dprintf ("ehci", "inithw: EHCI grub_ehci_pci_iter: ownership OK\n");