From: David Brownell <david-b@pacbell.net>
To: linux-omap-open-source@linux.omap.com
Cc: Alan Stern <stern@rowland.harvard.edu>
Subject: [patch 2.6.23-omap] misc musb tweaks
Date: Fri, 12 Oct 2007 14:26:00 -0700 [thread overview]
Message-ID: <200710121426.00525.david-b@pacbell.net> (raw)
From: Alan Stern <stern@rowland.harvard.edu>
The patch below fixes a few minor infelicities.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
---
drivers/usb/musb/musb_host.c | 6 +++---
drivers/usb/musb/musb_host.h | 9 ++++-----
drivers/usb/musb/musb_virthub.c | 14 +++++++++-----
3 files changed, 16 insertions(+), 13 deletions(-)
--- o26.orig/drivers/usb/musb/musb_host.c 2007-08-27 17:24:01.000000000 -0700
+++ o26/drivers/usb/musb/musb_host.c 2007-08-28 14:54:08.000000000 -0700
@@ -1513,9 +1513,9 @@ void musb_host_rx(struct musb *musb, u8
#ifdef CONFIG_USB_INVENTRA_DMA
/* done if urb buffer is full or short packet is recd */
- done = ((urb->actual_length + xfer_len) >=
- urb->transfer_buffer_length)
- || (dma->actual_len & (qh->maxpacket - 1));
+ done = (urb->actual_length + xfer_len >=
+ urb->transfer_buffer_length
+ || dma->actual_len < qh->maxpacket);
/* send IN token for next packet, without AUTOREQ */
if (!done) {
--- o26.orig/drivers/usb/musb/musb_virthub.c 2007-08-27 17:24:01.000000000 -0700
+++ o26/drivers/usb/musb/musb_virthub.c 2007-08-28 14:54:08.000000000 -0700
@@ -202,6 +202,7 @@ void musb_root_disconnect(struct musb *m
/*---------------------------------------------------------------------*/
+/* Caller may or may not hold musb->lock */
int musb_hub_status_data(struct usb_hcd *hcd, char *buf)
{
struct musb *musb = hcd_to_musb(hcd);
@@ -228,14 +229,17 @@ int musb_hub_control(
int retval = 0;
unsigned long flags;
- if (unlikely(!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)))
+ spin_lock_irqsave(&musb->lock, flags);
+
+ if (unlikely(!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags))) {
+ spin_unlock_irqrestore(&musb->lock, flags);
return -ESHUTDOWN;
+ }
/* hub features: always zero, setting is a NOP
* port features: reported, sometimes updated when host is active
* no indicators
*/
- spin_lock_irqsave(&musb->lock, flags);
switch (typeReq) {
case ClearHubFeature:
case SetHubFeature:
@@ -248,7 +252,7 @@ int musb_hub_control(
}
break;
case ClearPortFeature:
- if (wIndex != 1)
+ if ((wIndex & 0xff) != 1)
goto error;
switch (wValue) {
@@ -302,12 +306,12 @@ int musb_hub_control(
/* finish RESET signaling? */
if ((musb->port1_status & USB_PORT_STAT_RESET)
- && time_after(jiffies, musb->rh_timer))
+ && time_after_eq(jiffies, musb->rh_timer))
musb_port_reset(musb, false);
/* finish RESUME signaling? */
if ((musb->port1_status & MUSB_PORT_STAT_RESUME)
- && time_after(jiffies, musb->rh_timer)) {
+ && time_after_eq(jiffies, musb->rh_timer)) {
u8 power;
power = musb_readb(musb->mregs, MUSB_POWER);
--- o26.orig/drivers/usb/musb/musb_host.h 2007-08-27 17:24:01.000000000 -0700
+++ o26/drivers/usb/musb/musb_host.h 2007-08-28 14:54:08.000000000 -0700
@@ -37,13 +37,12 @@
static inline struct usb_hcd *musb_to_hcd(struct musb *musb)
{
- return (struct usb_hcd *) (((void *)musb)
- - offsetof(struct usb_hcd, hcd_priv));
+ return container_of((void *) musb, struct usb_hcd, hcd_priv);
}
static inline struct musb *hcd_to_musb(struct usb_hcd *hcd)
{
- return (void *) hcd->hcd_priv;
+ return (struct musb *) (hcd->hcd_priv);
}
/* stored in "usb_host_endpoint.hcpriv" for scheduled endpoints */
@@ -77,7 +76,7 @@ static inline struct musb_qh *first_qh(s
{
if (list_empty(q))
return NULL;
- return container_of(q->next, struct musb_qh, ring);
+ return list_entry(q->next, struct musb_qh, ring);
}
@@ -102,7 +101,7 @@ static inline struct urb *next_urb(struc
queue = &qh->hep->urb_list;
if (list_empty(queue))
return NULL;
- return container_of(queue->next, struct urb, urb_list);
+ return list_entry(queue->next, struct urb, urb_list);
#else
return NULL;
#endif
next reply other threads:[~2007-10-12 21:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-12 21:26 David Brownell [this message]
2007-10-14 17:16 ` [patch 2.6.23-omap] misc musb tweaks Tony Lindgren
2007-10-15 1:10 ` David Brownell
[not found] <Pine.LNX.4.44L0.0710142127330.32416-100000@netrider.rowland.org>
2007-10-15 1:44 ` David Brownell
2007-10-15 14:46 ` Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200710121426.00525.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=linux-omap-open-source@linux.omap.com \
--cc=stern@rowland.harvard.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox