Hotplugging and USB hub support.
* bus/usb/ohci.c (grub_ohci_td): Add convenience fields. (grub_ohci): Likewise. (GRUB_OHCI_REG_CONTROL_BULK_ENABLE): New definition. (GRUB_OHCI_REG_CONTROL_CONTROL_ENABLE): Likewise. (GRUB_OHCI_RESET_CONNECT_CHANGE): Likewise. (GRUB_OHCI_CTRL_EDS): Likewise. (GRUB_OHCI_BULK_EDS): Likewise. (GRUB_OHCI_TDS): Likewise. (GRUB_OHCI_ED_ADDR_MASK): Likewise. (grub_ohci_ed_phys2virt): New function. (grub_ohci_virt_to_phys): Likewise. (grub_ohci_td_phys2virt): Likewise. (grub_ohci_td_virt2phys): Likewise. (grub_ohci_pci_iter): Allocate memory and don't wait for stable attachment. (grub_ohci_find_ed): New function. (grub_ohci_alloc_td): Likewise. (grub_ohci_free_td): Likewise. (grub_ohci_free_tds): Likewise. (grub_ohci_transfer): Use previously allocated memory. (grub_ohci_portstatus): Reset status changed bit. (grub_ohci_detect_dev): Supply status changed. (grub_ohci_fini_hw): Free memory. (grub_ohci_restore_hw): Reallocate memory. * bus/usb/uhci.c (grub_uhci_portstatus): Don't reset on disable. Reset status change. (grub_uhci_detect_dev): Supply status_change. * bus/usb/usb.c (attach_hooks): New var. (grub_usb_device_attach): New function. (grub_usb_register_attach_hook_class): Likewise. (grub_usb_unregister_attach_hook_class): Likewise. * bus/usb/usbhub.c (grub_usb_hub_add_dev): Handle errors correctly. (grub_usb_add_hub): Reset connection changed bit. (attach_root_port): New function. (grub_usb_root_hub): Likewise. (poll_nonroot_hub): Likewise. (grub_usb_poll_devices): Likewise. * commands/usbtest.c (grub_cmd_usbtest): Poll devices before listing. * disk/usbms.c (grub_usbms_open): Use device hooks. (grub_usbms_iterate) :Poll devices. (grub_usbms_finddevs): Split into ... (grub_usbms_attach): ... this ... (grub_usbms_attach): ... and this. * include/grub/usb.h (grub_usb_controller_dev): Supply status_changed in detect_dev. (grub_usb_interface): New fields attached and detach_hook. (grub_usb_attach_hook_class): New type. (grub_usb_attach_desc): New struct. (grub_usb_register_attach_hook_class): New function. (grub_usb_unregister_attach_hook_class): Likewise. (grub_usb_poll_devices): Likewise. (grub_usb_device_attach): Likewise. * include/grub/usbtrans.h (GRUB_USB_HUB_FEATURE_C_CONNECTED): New const. (GRUB_USB_HUB_STATUS_C_CONNECTED): Likewise.
This commit is contained in:
commit
5dab68dfa4
10 changed files with 1360 additions and 529 deletions
59
ChangeLog
59
ChangeLog
|
@ -1,3 +1,62 @@
|
|||
2010-07-17 Aleš Nesrsta <starous@volny.cz>
|
||||
|
||||
Hotplugging and USB hub support.
|
||||
|
||||
* bus/usb/ohci.c (grub_ohci_td): Add convenience fields.
|
||||
(grub_ohci): Likewise.
|
||||
(GRUB_OHCI_REG_CONTROL_BULK_ENABLE): New definition.
|
||||
(GRUB_OHCI_REG_CONTROL_CONTROL_ENABLE): Likewise.
|
||||
(GRUB_OHCI_RESET_CONNECT_CHANGE): Likewise.
|
||||
(GRUB_OHCI_CTRL_EDS): Likewise.
|
||||
(GRUB_OHCI_BULK_EDS): Likewise.
|
||||
(GRUB_OHCI_TDS): Likewise.
|
||||
(GRUB_OHCI_ED_ADDR_MASK): Likewise.
|
||||
(grub_ohci_ed_phys2virt): New function.
|
||||
(grub_ohci_virt_to_phys): Likewise.
|
||||
(grub_ohci_td_phys2virt): Likewise.
|
||||
(grub_ohci_td_virt2phys): Likewise.
|
||||
(grub_ohci_pci_iter): Allocate memory and don't wait for stable
|
||||
attachment.
|
||||
(grub_ohci_find_ed): New function.
|
||||
(grub_ohci_alloc_td): Likewise.
|
||||
(grub_ohci_free_td): Likewise.
|
||||
(grub_ohci_free_tds): Likewise.
|
||||
(grub_ohci_transfer): Use previously allocated memory.
|
||||
(grub_ohci_portstatus): Reset status changed bit.
|
||||
(grub_ohci_detect_dev): Supply status changed.
|
||||
(grub_ohci_fini_hw): Free memory.
|
||||
(grub_ohci_restore_hw): Reallocate memory.
|
||||
* bus/usb/uhci.c (grub_uhci_portstatus): Don't reset on disable.
|
||||
Reset status change.
|
||||
(grub_uhci_detect_dev): Supply status_change.
|
||||
* bus/usb/usb.c (attach_hooks): New var.
|
||||
(grub_usb_device_attach): New function.
|
||||
(grub_usb_register_attach_hook_class): Likewise.
|
||||
(grub_usb_unregister_attach_hook_class): Likewise.
|
||||
* bus/usb/usbhub.c (grub_usb_hub_add_dev): Handle errors correctly.
|
||||
(grub_usb_add_hub): Reset connection changed bit.
|
||||
(attach_root_port): New function.
|
||||
(grub_usb_root_hub): Likewise.
|
||||
(poll_nonroot_hub): Likewise.
|
||||
(grub_usb_poll_devices): Likewise.
|
||||
* commands/usbtest.c (grub_cmd_usbtest): Poll devices before listing.
|
||||
* disk/usbms.c (grub_usbms_open): Use device hooks.
|
||||
(grub_usbms_iterate) :Poll devices.
|
||||
(grub_usbms_finddevs): Split into ...
|
||||
(grub_usbms_attach): ... this ...
|
||||
(grub_usbms_attach): ... and this.
|
||||
* include/grub/usb.h (grub_usb_controller_dev): Supply status_changed
|
||||
in detect_dev.
|
||||
(grub_usb_interface): New fields attached and detach_hook.
|
||||
(grub_usb_attach_hook_class): New type.
|
||||
(grub_usb_attach_desc): New struct.
|
||||
(grub_usb_register_attach_hook_class): New function.
|
||||
(grub_usb_unregister_attach_hook_class): Likewise.
|
||||
(grub_usb_poll_devices): Likewise.
|
||||
(grub_usb_device_attach): Likewise.
|
||||
* include/grub/usbtrans.h (GRUB_USB_HUB_FEATURE_C_CONNECTED): New const.
|
||||
(GRUB_USB_HUB_STATUS_C_CONNECTED): Likewise.
|
||||
|
||||
2010-07-17 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* include/grub/bsdlabel.h (GRUB_PC_PARTITION_BSD_LABEL_WHOLE_DISK_PARTITION): New definition.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue