Linux Kernel
3.7.1
|
#include <linux/kernel.h>
#include <linux/dma-mapping.h>
#include <linux/slab.h>
#include <linux/uwb/umc.h>
#include <linux/usb.h>
#include "../../wusbcore/wusbhc.h"
#include "whcd.h"
Go to the source code of this file.
Functions | |
struct whc_qset * | qset_alloc (struct whc *whc, gfp_t mem_flags) |
void | qset_clear (struct whc *whc, struct whc_qset *qset) |
void | qset_reset (struct whc *whc, struct whc_qset *qset) |
struct whc_qset * | get_qset (struct whc *whc, struct urb *urb, gfp_t mem_flags) |
void | qset_remove_complete (struct whc *whc, struct whc_qset *qset) |
enum whc_update | qset_add_qtds (struct whc *whc, struct whc_qset *qset) |
void | qset_free_std (struct whc *whc, struct whc_std *std) |
int | qset_add_urb (struct whc *whc, struct whc_qset *qset, struct urb *urb, gfp_t mem_flags) |
void | qset_remove_urb (struct whc *whc, struct whc_qset *qset, struct urb *urb, int status) |
void | process_inactive_qtd (struct whc *whc, struct whc_qset *qset, struct whc_qtd *qtd) |
void | process_halted_qtd (struct whc *whc, struct whc_qset *qset, struct whc_qtd *qtd) |
void | qset_free (struct whc *whc, struct whc_qset *qset) |
void | qset_delete (struct whc *whc, struct whc_qset *qset) |
process_halted_qtd - process a qset with a halted qtd
Remove all the qTDs for the failed URB and return the failed URB to the USB subsystem. Then remove all other qTDs so the qset can be removed.
FIXME: this is the point where rate adaptation can be done. If a transfer failed because it exceeded the maximum number of retries then it could be reactivated with a slower rate without having to remove the qset.
enum whc_update qset_add_qtds | ( | struct whc * | whc, |
struct whc_qset * | qset | ||
) |
qset_clear - clear fields in a qset so it may be reinserted into a schedule.
The sequence number and current window are not cleared (see qset_reset()).