- reduced memory requirements a lot (from >100kb/controller to
560bytes/controller) - no need for the client of libpayload to implement usbdisk_{create,remove}, just because USB was compiled in. - usb hub support compiles, and works for some trivial cases (no device detach, trivial power management) - usb keyboard support works in qemu, though there are reports that it doesn't work on real hardware yet. - usb keyboard is integrated in both libc-getchar() and curses, if CONFIG_USB_HID is enabled Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de> Acked-by: Jordan Crouse <jordan.crouse@amd.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3662 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
@@ -53,9 +53,7 @@ usb_hub_destroy (usbdev_t *dev)
|
||||
static void
|
||||
usb_hub_scanport (usbdev_t *dev, int port)
|
||||
{
|
||||
int newdev;
|
||||
unsigned short buf[2];
|
||||
usbdev_t *newdev_t;
|
||||
|
||||
get_status (dev, port, DR_PORT, 4, buf);
|
||||
int portstatus = ((buf[0] & 1) == 0);
|
||||
@@ -67,9 +65,7 @@ usb_hub_scanport (usbdev_t *dev, int port)
|
||||
int devno = HUB_INST (dev)->ports[port];
|
||||
if (devno == -1)
|
||||
fatal ("FATAL: illegal devno!\n");
|
||||
dev->controller->devices[devno].destroy (&dev->controller->
|
||||
devices[devno]);
|
||||
init_device_entry (dev->controller, devno);
|
||||
usb_detach_device(dev->controller, devno);
|
||||
HUB_INST (dev)->ports[port] = -1;
|
||||
return;
|
||||
}
|
||||
@@ -80,17 +76,7 @@ usb_hub_scanport (usbdev_t *dev, int port)
|
||||
get_status (dev, port, DR_PORT, 4, buf);
|
||||
int lowspeed = (buf[0] >> 9) & 1;
|
||||
|
||||
newdev = set_address (dev->controller, lowspeed);
|
||||
if (newdev == -1)
|
||||
return;
|
||||
newdev_t = &dev->controller->devices[newdev];
|
||||
|
||||
HUB_INST (dev)->ports[port] = newdev;
|
||||
newdev_t->address = newdev;
|
||||
newdev_t->hub = dev->address;
|
||||
newdev_t->port = port;
|
||||
// determine responsible driver
|
||||
newdev_t->init (newdev_t);
|
||||
HUB_INST (dev)->ports[port] = usb_attach_device(dev->controller, dev->address, port, lowspeed);
|
||||
}
|
||||
|
||||
static int
|
||||
|
Reference in New Issue
Block a user