Your ROOT_URL in app.ini is https://src.whiteboxsystems.nl/ but you are visiting http://src.whiteboxsystems.nl/Whitebox/u-boot/commit/36b73109c49c1359a5fcc790c00717cb27468c12 You should set ROOT_URL correctly, otherwise the web may not work correctly.

usb: ehci: Make periodic_schedules a per controller variable

Periodic schedules tracks how many int_queue-s are active, and decides whether
or not to en/disable the periodic schedule based on this. This is clearly
a per controller thing.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
master
Hans de Goede 11 years ago committed by Marek Vasut
parent 415548d884
commit 36b73109c4
  1. 9
      drivers/usb/host/ehci-hcd.c
  2. 1
      drivers/usb/host/ehci.h

@ -996,6 +996,7 @@ int usb_lowlevel_init(int index, enum usb_init_type init, void **controller)
* Set up periodic list
* Step 1: Parent QH for all periodic transfers.
*/
ehcic[index].periodic_schedules = 0;
periodic = &ehcic[index].periodic_queue;
memset(periodic, 0, sizeof(*periodic));
periodic->qh_link = cpu_to_hc32(QH_LINK_TERMINATE);
@ -1154,8 +1155,6 @@ disable_periodic(struct ehci_ctrl *ctrl)
return 0;
}
static int periodic_schedules;
struct int_queue *
create_int_queue(struct usb_device *dev, unsigned long pipe, int queuesize,
int elementsize, void *buffer)
@ -1278,7 +1277,7 @@ create_int_queue(struct usb_device *dev, unsigned long pipe, int queuesize,
debug("FATAL: periodic should never fail, but did");
goto fail3;
}
periodic_schedules++;
ctrl->periodic_schedules++;
debug("Exit create_int_queue\n");
return result;
@ -1335,7 +1334,7 @@ destroy_int_queue(struct usb_device *dev, struct int_queue *queue)
debug("FATAL: periodic should never fail, but did");
goto out;
}
periodic_schedules--;
ctrl->periodic_schedules--;
struct QH *cur = &ctrl->periodic_queue;
timeout = get_timer(0) + 500; /* abort after 500ms */
@ -1357,7 +1356,7 @@ destroy_int_queue(struct usb_device *dev, struct int_queue *queue)
}
}
if (periodic_schedules > 0) {
if (ctrl->periodic_schedules > 0) {
result = enable_periodic(ctrl);
if (result < 0)
debug("FATAL: periodic should never fail, but did");

@ -246,6 +246,7 @@ struct ehci_ctrl {
struct QH qh_list __aligned(USB_DMA_MINALIGN);
struct QH periodic_queue __aligned(USB_DMA_MINALIGN);
uint32_t *periodic_list;
int periodic_schedules;
int ntds;
};

Loading…
Cancel
Save