Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
pzl.c File Reference
#include <linux/kernel.h>
#include <linux/gfp.h>
#include <linux/dma-mapping.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

void pzl_start (struct whc *whc)
 
void pzl_stop (struct whc *whc)
 
void pzl_update (struct whc *whc, uint32_t wusbcmd)
 
void scan_periodic_work (struct work_struct *work)
 
int pzl_urb_enqueue (struct whc *whc, struct urb *urb, gfp_t mem_flags)
 
int pzl_urb_dequeue (struct whc *whc, struct urb *urb, int status)
 
void pzl_qset_delete (struct whc *whc, struct whc_qset *qset)
 
int pzl_init (struct whc *whc)
 
void pzl_clean_up (struct whc *whc)
 

Function Documentation

void pzl_clean_up ( struct whc whc)

pzl_clean_up - free PZL resources : the WHCI host controller

The PZL is stopped and empty.

Definition at line 412 of file pzl.c.

int pzl_init ( struct whc whc)

pzl_init - initialize the periodic zone list : the WHCI host controller

Definition at line 388 of file pzl.c.

void pzl_qset_delete ( struct whc whc,
struct whc_qset qset 
)

pzl_qset_delete - delete a qset from the PZL

Definition at line 377 of file pzl.c.

void pzl_start ( struct whc whc)

pzl_start - start the periodic schedule : the WHCI host controller

The PZL must be valid (e.g., all entries in the list should have the T bit set).

Definition at line 158 of file pzl.c.

void pzl_stop ( struct whc whc)

pzl_stop - stop the periodic schedule : the WHCI host controller

Definition at line 172 of file pzl.c.

void pzl_update ( struct whc whc,
uint32_t  wusbcmd 
)

pzl_update - request a PZL update and wait for the hardware to be synced : the WHCI HC : WUSBCMD value to start the update.

If the WUSB HC is inactive (i.e., the PZL is stopped) then the update must be skipped as the hardware may not respond to update requests.

Definition at line 189 of file pzl.c.

int pzl_urb_dequeue ( struct whc whc,
struct urb urb,
int  status 
)

pzl_urb_dequeue - remove an URB (qset) from the periodic list : the WHCI host controller : the URB to dequeue : the current status of the URB

URBs that do yet have qTDs can simply be removed from the software queue, otherwise the qset must be removed so the qTDs can be safely removed.

Definition at line 336 of file pzl.c.

int pzl_urb_enqueue ( struct whc whc,
struct urb urb,
gfp_t  mem_flags 
)

pzl_urb_enqueue - queue an URB onto the periodic list (PZL) : the WHCI host controller : the URB to enqueue : flags for any memory allocations

The qset for the endpoint is obtained and the urb queued on to it.

Work is scheduled to update the hardware's view of the PZL.

Definition at line 293 of file pzl.c.

void scan_periodic_work ( struct work_struct work)

scan_periodic_work - scan the PZL for qsets to process.

Process each qset in the PZL in turn and then signal the WHC that the PZL has been updated.

Then start, stop or update the periodic schedule as required.

Definition at line 231 of file pzl.c.