diff options
| author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2011-10-31 00:47:44 -0700 | 
|---|---|---|
| committer | Felipe Balbi <balbi@ti.com> | 2011-12-12 11:45:05 +0200 | 
| commit | c5b963f809f378d4fedd6f2f09b36f50c5a37bd5 (patch) | |
| tree | 503a06e7ad26343960df9facd17991e57fe0231e /drivers/usb/renesas_usbhs/mod_host.c | |
| parent | 9c6736523a23371ae58c5427587ee1652ba059c1 (diff) | |
usb: gadget: renesas_usbhs: remove usbhsh_request list
mod_host had usbhsh_request active/free list.
it was almost meaningless, and vainly complicated.
This patch remove it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/renesas_usbhs/mod_host.c')
| -rw-r--r-- | drivers/usb/renesas_usbhs/mod_host.c | 69 | 
1 files changed, 3 insertions, 66 deletions
| diff --git a/drivers/usb/renesas_usbhs/mod_host.c b/drivers/usb/renesas_usbhs/mod_host.c index 204f9f086846..3f1eaf15e0ba 100644 --- a/drivers/usb/renesas_usbhs/mod_host.c +++ b/drivers/usb/renesas_usbhs/mod_host.c @@ -74,7 +74,6 @@ struct usbhsh_pipe_info {  struct usbhsh_request {  	struct urb		*urb;  	struct usbhs_pkt	pkt; -	struct list_head	ureq_link; /* see hpriv :: ureq_link_xxx */  };  struct usbhsh_device { @@ -104,10 +103,6 @@ struct usbhsh_hpriv {  	u32	port_stat;	/* USB_PORT_STAT_xxx */  	struct completion	setup_ack_done; - -	/* see usbhsh_req_alloc/free */ -	struct list_head	ureq_link_active; -	struct list_head	ureq_link_free;  }; @@ -178,31 +173,6 @@ static const char usbhsh_hcd_name[] = "renesas_usbhs host";  /*   *		req alloc/free   */ -static void usbhsh_ureq_list_init(struct usbhsh_hpriv *hpriv) -{ -	INIT_LIST_HEAD(&hpriv->ureq_link_active); -	INIT_LIST_HEAD(&hpriv->ureq_link_free); -} - -static void usbhsh_ureq_list_quit(struct usbhsh_hpriv *hpriv) -{ -	struct usb_hcd *hcd = usbhsh_hpriv_to_hcd(hpriv); -	struct device *dev = usbhsh_hcd_to_dev(hcd); -	struct usbhsh_request *ureq, *next; - -	/* kfree all active ureq */ -	list_for_each_entry_safe(ureq, next, -				 &hpriv->ureq_link_active, -				 ureq_link) { -		dev_err(dev, "active ureq (%p) is force freed\n", ureq); -		kfree(ureq); -	} - -	/* kfree all free ureq */ -	list_for_each_entry_safe(ureq, next, &hpriv->ureq_link_free, ureq_link) -		kfree(ureq); -} -  static struct usbhsh_request *usbhsh_ureq_alloc(struct usbhsh_hpriv *hpriv,  					       struct urb *urb,  					       gfp_t mem_flags) @@ -211,35 +181,13 @@ static struct usbhsh_request *usbhsh_ureq_alloc(struct usbhsh_hpriv *hpriv,  	struct usbhs_priv *priv = usbhsh_hpriv_to_priv(hpriv);  	struct device *dev = usbhs_priv_to_dev(priv); -	if (list_empty(&hpriv->ureq_link_free)) { -		/* -		 * create new one if there is no free ureq -		 */ -		ureq = kzalloc(sizeof(struct usbhsh_request), mem_flags); -		if (ureq) -			INIT_LIST_HEAD(&ureq->ureq_link); -	} else { -		/* -		 * reuse "free" ureq if exist -		 */ -		ureq = list_entry(hpriv->ureq_link_free.next, -				  struct usbhsh_request, -				  ureq_link); -		if (ureq) -			list_del_init(&ureq->ureq_link); -	} - +	ureq = kzalloc(sizeof(struct usbhsh_request), mem_flags);  	if (!ureq) {  		dev_err(dev, "ureq alloc fail\n");  		return NULL;  	}  	usbhs_pkt_init(&ureq->pkt); - -	/* -	 * push it to "active" list -	 */ -	list_add_tail(&ureq->ureq_link, &hpriv->ureq_link_active);  	ureq->urb = urb;  	usbhsh_urb_to_ureq(urb) = ureq; @@ -249,18 +197,10 @@ static struct usbhsh_request *usbhsh_ureq_alloc(struct usbhsh_hpriv *hpriv,  static void usbhsh_ureq_free(struct usbhsh_hpriv *hpriv,  			    struct usbhsh_request *ureq)  { -	struct usbhs_pkt *pkt = &ureq->pkt; - -	usbhs_pkt_init(pkt); - -	/* -	 * removed from "active" list, -	 * and push it to "free" list -	 */  	usbhsh_urb_to_ureq(ureq->urb) = NULL;  	ureq->urb = NULL; -	list_del_init(&ureq->ureq_link); -	list_add_tail(&ureq->ureq_link, &hpriv->ureq_link_free); + +	kfree(ureq);  }  /* @@ -1310,7 +1250,6 @@ int usbhs_mod_host_probe(struct usbhs_priv *priv)  	hpriv->mod.stop		= usbhsh_stop;  	hpriv->pipe_info	= pipe_info;  	hpriv->pipe_size	= pipe_size; -	usbhsh_ureq_list_init(hpriv);  	usbhsh_port_stat_init(hpriv);  	/* init all device */ @@ -1334,8 +1273,6 @@ int usbhs_mod_host_remove(struct usbhs_priv *priv)  	struct usbhsh_hpriv *hpriv = usbhsh_priv_to_hpriv(priv);  	struct usb_hcd *hcd = usbhsh_hpriv_to_hcd(hpriv); -	usbhsh_ureq_list_quit(hpriv); -  	usb_put_hcd(hcd);  	return 0; | 
