]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Hotplugging and USB hub support.
authorAleš Nesrsta <starous@volny.cz>
Sat, 17 Jul 2010 01:06:34 +0000 (03:06 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 17 Jul 2010 01:06:34 +0000 (03:06 +0200)
* 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.

1  2 
ChangeLog
bus/usb/ohci.c

diff --cc ChangeLog
index 0ab95813af17e7dc8afbcbe8664067c3d6c91f94,0ab95813af17e7dc8afbcbe8664067c3d6c91f94..1f2e9356f71fd223092048f4c6fa17b5f2f39c0d
+++ b/ChangeLog
@@@ -1,3 -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.
diff --cc bus/usb/ohci.c
Simple merge