diff options
Diffstat (limited to 'drivers/usb/c67x00/c67x00-sched.c')
| -rw-r--r-- | drivers/usb/c67x00/c67x00-sched.c | 35 | 
1 files changed, 13 insertions, 22 deletions
diff --git a/drivers/usb/c67x00/c67x00-sched.c b/drivers/usb/c67x00/c67x00-sched.c index aa491627a45..7311ed61e99 100644 --- a/drivers/usb/c67x00/c67x00-sched.c +++ b/drivers/usb/c67x00/c67x00-sched.c @@ -144,8 +144,6 @@ struct c67x00_urb_priv {  /* -------------------------------------------------------------------------- */ -#ifdef DEBUG -  /**   * dbg_td - Dump the contents of the TD   */ @@ -166,16 +164,8 @@ static void dbg_td(struct c67x00_hcd *c67x00, struct c67x00_td *td, char *msg)  	dev_dbg(dev, "retry_cnt:      0x%02x\n", td->retry_cnt);  	dev_dbg(dev, "residue:        0x%02x\n", td->residue);  	dev_dbg(dev, "next_td_addr: 0x%04x\n", td_next_td_addr(td)); -	dev_dbg(dev, "data:"); -	print_hex_dump(KERN_DEBUG, "", DUMP_PREFIX_OFFSET, 16, 1, -		       td->data, td_length(td), 1); +	dev_dbg(dev, "data: %*ph\n", td_length(td), td->data);  } -#else				/* DEBUG */ - -static inline void -dbg_td(struct c67x00_hcd *c67x00, struct c67x00_td *td, char *msg) { } - -#endif				/* DEBUG */  /* -------------------------------------------------------------------------- */  /* Helper functions */ @@ -344,7 +334,7 @@ void c67x00_endpoint_disable(struct usb_hcd *hcd, struct usb_host_endpoint *ep)  		/* it could happen that we reinitialize this completion, while  		 * somebody was waiting for that completion.  The timeout and  		 * while loop handle such cases, but this might be improved */ -		INIT_COMPLETION(c67x00->endpoint_disable); +		reinit_completion(&c67x00->endpoint_disable);  		c67x00_sched_kick(c67x00);  		wait_for_completion_timeout(&c67x00->endpoint_disable, 1 * HZ); @@ -372,6 +362,13 @@ int c67x00_urb_enqueue(struct usb_hcd *hcd,  	struct c67x00_hcd *c67x00 = hcd_to_c67x00_hcd(hcd);  	int port = get_root_port(urb->dev)-1; +	/* Allocate and initialize urb private data */ +	urbp = kzalloc(sizeof(*urbp), mem_flags); +	if (!urbp) { +		ret = -ENOMEM; +		goto err_urbp; +	} +  	spin_lock_irqsave(&c67x00->lock, flags);  	/* Make sure host controller is running */ @@ -384,13 +381,6 @@ int c67x00_urb_enqueue(struct usb_hcd *hcd,  	if (ret)  		goto err_not_linked; -	/* Allocate and initialize urb private data */ -	urbp = kzalloc(sizeof(*urbp), mem_flags); -	if (!urbp) { -		ret = -ENOMEM; -		goto err_urbp; -	} -  	INIT_LIST_HEAD(&urbp->hep_node);  	urbp->urb = urb;  	urbp->port = port; @@ -453,11 +443,11 @@ int c67x00_urb_enqueue(struct usb_hcd *hcd,  	return 0;  err_epdata: -	kfree(urbp); -err_urbp:  	usb_hcd_unlink_urb_from_ep(hcd, urb);  err_not_linked:  	spin_unlock_irqrestore(&c67x00->lock, flags); +	kfree(urbp); +err_urbp:  	return ret;  } @@ -780,7 +770,8 @@ static int c67x00_add_iso_urb(struct c67x00_hcd *c67x00, struct urb *urb)  		ret = c67x00_create_td(c67x00, urb, td_buf, len, pid, 0,  				       urbp->cnt);  		if (ret) { -			printk(KERN_DEBUG "create failed: %d\n", ret); +			dev_dbg(c67x00_hcd_dev(c67x00), "create failed: %d\n", +				ret);  			urb->iso_frame_desc[urbp->cnt].actual_length = 0;  			urb->iso_frame_desc[urbp->cnt].status = ret;  			if (urbp->cnt + 1 == urb->number_of_packets)  | 
