From: Christoph Fritz <chf.fritz@googlemail.com>
To: Felipe Balbi <balbi@ti.com>
Cc: Estevam Fabio-R49496 <r49496@freescale.com>,
Li Yang-R58472 <r58472@freescale.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Chen Peter-B29397 <B29397@freescale.com>,
Sascha Hauer <s.hauer@pengutronix.de>,
linux-usb@vger.kernel.org, "Hans J. Koch" <hjk@hansjkoch.de>,
Daniel Mack <daniel@caiaq.de>, Christian Hemp <c.hemp@phytec.de>,
linuxppc-dev@lists.ozlabs.org, Teresa Gamez <T.Gamez@phytec.de>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Subject: [PATCH 2/7] usb: gadget: fsl_udc: protect fsl_pullup() with spin_lock
Date: Fri, 19 Oct 2012 12:24:40 +0200 [thread overview]
Message-ID: <1350642285-8145-2-git-send-email-chf.fritz@googlemail.com> (raw)
In-Reply-To: <1350642156-8034-1-git-send-email-chf.fritz@googlemail.com>
This patch reworks fsl_pullup() against the background of switching over
to udc_start()/udc_stop() style:
Protect function fsl_pullup() with a spin_lock. Also set vbus_active as
default to true. This prevents disabling USB controller if there is no
driver support for an external transceiver (or GPIO) that detects a VBUS
power session starting.
Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com>
---
drivers/usb/gadget/fsl_udc_core.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c
index 340451d..0a0d6a6 100644
--- a/drivers/usb/gadget/fsl_udc_core.c
+++ b/drivers/usb/gadget/fsl_udc_core.c
@@ -1242,8 +1242,10 @@ static int fsl_vbus_draw(struct usb_gadget *gadget, unsigned mA)
static int fsl_pullup(struct usb_gadget *gadget, int is_on)
{
struct fsl_udc *udc;
+ unsigned long flags;
udc = container_of(gadget, struct fsl_udc, gadget);
+ spin_lock_irqsave(&udc->lock, flags);
udc->softconnect = (is_on != 0);
if (can_pullup(udc))
fsl_writel((fsl_readl(&dr_regs->usbcmd) | USB_CMD_RUN_STOP),
@@ -1251,6 +1253,7 @@ static int fsl_pullup(struct usb_gadget *gadget, int is_on)
else
fsl_writel((fsl_readl(&dr_regs->usbcmd) & ~USB_CMD_RUN_STOP),
&dr_regs->usbcmd);
+ spin_unlock_irqrestore(&udc->lock, flags);
return 0;
}
@@ -2557,6 +2560,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
INIT_LIST_HEAD(&udc_controller->gadget.ep_list);
udc_controller->gadget.speed = USB_SPEED_UNKNOWN;
udc_controller->gadget.name = driver_name;
+ udc->vbus_active = true;
/* Setup gadget.dev and register with kernel */
dev_set_name(&udc_controller->gadget.dev, "gadget");
--
1.7.2.5
next prev parent reply other threads:[~2012-10-19 10:25 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1333796272.3450.92.camel@lovely>
[not found] ` <F281D0F91ED19E4D8E63A7504E8A64980AFFE3@039-SN2MPN1-022.039d.mgd.msft.net>
[not found] ` <CAOMZO5AjQsNw7_4ETkB38mmuBXj4pnCwJwAsi4zC4b_83=Enfw@mail.gmail.com>
[not found] ` <20120409200656.GD2640@local>
[not found] ` <CAOMZO5BTrA8G6wwQZ3e6bydJX7UtG7jj2c29Ln7u_3_jyUGB+w@mail.gmail.com>
[not found] ` <20120410001017.GF2640@local>
[not found] ` <CAOMZO5A=sHeyoQ0PCd=09qGGKb0NjXi-kF5qyG+3U-GhD7rhzg@mail.gmail.com>
[not found] ` <20120410021151.GB23044@lovely.krouter>
[not found] ` <20120411073918.GA9180@lovely.krouter>
[not found] ` <CAOMZO5C729Ki0Bequ+s1nnrgt4NZWvwg3Wnjk4kHp=d9BtkeXw@mail.gmail.com>
2012-05-09 0:02 ` [RFC] [PATCH] usb: gadget: fix dtd dma confusion Christoph Fritz
2012-05-09 1:50 ` Neil Zhang
2012-05-09 2:11 ` Chen Peter-B29397
2012-05-09 5:38 ` Christoph Fritz
2012-05-09 5:43 ` Chen Peter-B29397
2012-05-09 5:56 ` Christoph Fritz
2012-05-09 5:45 ` Neil Zhang
2012-05-09 6:04 ` Christoph Fritz
2012-05-13 22:51 ` Christoph Fritz
2012-05-14 1:11 ` Chen Peter-B29397
2012-05-14 4:21 ` Greg Kroah-Hartman
2012-05-20 23:17 ` [PATCH] usb: fsl_udc: errata - postpone freeing current dTD Christoph Fritz
2012-05-21 1:05 ` Chen Peter-B29397
2012-05-21 6:53 ` Christoph Fritz
2012-05-21 6:57 ` [PATCH v2] " Christoph Fritz
2012-05-21 7:25 ` Chen Peter-B29397
2012-05-21 19:04 ` Felipe Balbi
2012-06-04 11:30 ` Christoph Fritz
2012-06-04 11:30 ` Christoph Fritz
2012-06-04 11:37 ` Christoph Fritz
2012-06-04 11:37 ` Christoph Fritz
2012-06-10 18:41 ` Fabio Estevam
2012-06-10 18:41 ` Fabio Estevam
2012-06-12 19:40 ` Christoph Fritz
2012-06-12 19:40 ` Christoph Fritz
2012-06-13 1:17 ` Fabio Estevam
2012-06-13 1:17 ` Fabio Estevam
2012-06-04 14:59 ` Felipe Balbi
2012-06-04 14:59 ` Felipe Balbi
2012-06-04 15:24 ` [PATCH] usb: gadget: regression fix - useage of usb_ep Christoph Fritz
2012-06-04 15:24 ` Christoph Fritz
2012-10-19 10:22 ` [PATCH 0/7] update USB gadget driver fsl-usb2-udc Christoph Fritz
2012-10-19 10:24 ` [PATCH 1/7] usb: gadget: fsl_udc: simplify driver init Christoph Fritz
2012-10-19 10:24 ` Felipe Balbi
2012-10-19 10:24 ` Christoph Fritz [this message]
2012-10-19 10:25 ` [PATCH 2/7] usb: gadget: fsl_udc: protect fsl_pullup() with spin_lock Felipe Balbi
2012-10-19 10:24 ` [PATCH 3/7] usb: gadget: fsl_udc: convert to new ulc style Christoph Fritz
2012-10-19 10:27 ` Felipe Balbi
2012-10-19 10:24 ` [PATCH 4/7] usb: gadget: fsl_udc: drop ARCH dependency Christoph Fritz
2012-10-19 10:29 ` Felipe Balbi
2012-10-19 10:24 ` [PATCH 5/7] usb: gadget: fsl_udc: postpone freeing current dTD Christoph Fritz
2012-10-19 10:30 ` Felipe Balbi
2012-10-19 10:46 ` Christoph Fritz
2012-10-19 10:44 ` Felipe Balbi
2012-10-20 19:12 ` Christoph Fritz
2012-10-22 7:54 ` Felipe Balbi
2012-10-19 10:24 ` [PATCH 6/7] usb: gadget: fsl_udc: purge global pointer usb_sys_regs Christoph Fritz
2012-10-19 10:24 ` [PATCH 7/7] usb: gadget: fsl_udc: purge global pointer dr_regs Christoph Fritz
2012-10-19 15:36 ` [PATCH 0/7] update USB gadget driver fsl-usb2-udc Sascha Hauer
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=1350642285-8145-2-git-send-email-chf.fritz@googlemail.com \
--to=chf.fritz@googlemail.com \
--cc=B29397@freescale.com \
--cc=T.Gamez@phytec.de \
--cc=balbi@ti.com \
--cc=bigeasy@linutronix.de \
--cc=c.hemp@phytec.de \
--cc=daniel@caiaq.de \
--cc=gregkh@linuxfoundation.org \
--cc=hjk@hansjkoch.de \
--cc=linux-usb@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=r49496@freescale.com \
--cc=r58472@freescale.com \
--cc=s.hauer@pengutronix.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.