From: Marek Szyprowski <m.szyprowski@samsung.com>
To: balbi@ti.com
Cc: linux-usb@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
Kyungmin Park <kyungmin.park@samsung.com>,
Robert Baldyga <r.baldyga@samsung.com>,
Paul Zimmerman <paulz@synopsys.com>,
Krzysztof Kozlowski <k.kozlowski@samsung.com>
Subject: Re: [PATCH 6/9] usb: dwc2/gadget: decouple setting soft disconnect from s3c_hsotg_core_init
Date: Mon, 20 Oct 2014 12:46:17 +0200 [thread overview]
Message-ID: <5444E7F9.1060709@samsung.com> (raw)
In-Reply-To: <20141016133826.GI3480@saruman>
Hello,
On 2014-10-16 15:38, Felipe Balbi wrote:
> On Thu, Oct 16, 2014 at 02:58:02PM +0200, Marek Szyprowski wrote:
>> This patch changes s3c_hsotg_core_init function to leave hardware in
>> soft disconnect mode, so the actual moment of coupling the hardware to
>> the usb bus can be later controlled by the driver in the more accurate
> what is this "more accurate way" you talk about ? Why is it more
> accurate ? Perhaps you have failed some USB Certification test ? Which
> test id was that ? Why did it fail ? and why does this patch solve the
> issue ?
This patch is just a preparation for the next patches, which introduces
usage
of soft-disconnect feature in pullup() method.
>> way. For this purpose, separate functions for enabling and disabling
>> soft disconnect mode have been added.
>>
>> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
>> ---
>> drivers/usb/dwc2/gadget.c | 22 +++++++++++++++++-----
>> 1 file changed, 17 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
>> index 1ba0682fb252..d039334967d7 100644
>> --- a/drivers/usb/dwc2/gadget.c
>> +++ b/drivers/usb/dwc2/gadget.c
>> @@ -2124,7 +2124,7 @@ static int s3c_hsotg_corereset(struct s3c_hsotg *hsotg)
>> *
>> * Issue a soft reset to the core, and await the core finishing it.
>> */
>> -static void s3c_hsotg_core_init(struct s3c_hsotg *hsotg)
>> +static void s3c_hsotg_core_init_disconnected(struct s3c_hsotg *hsotg)
>> {
>> s3c_hsotg_corereset(hsotg);
>>
>> @@ -2241,14 +2241,23 @@ static void s3c_hsotg_core_init(struct s3c_hsotg *hsotg)
>> readl(hsotg->regs + DOEPCTL0));
>>
>> /* clear global NAKs */
>> - writel(DCTL_CGOUTNAK | DCTL_CGNPINNAK,
>> + writel(DCTL_CGOUTNAK | DCTL_CGNPINNAK | DCTL_SFTDISCON,
>> hsotg->regs + DCTL);
>>
>> /* must be at-least 3ms to allow bus to see disconnect */
>> mdelay(3);
>>
>> hsotg->last_rst = jiffies;
>> +}
>> +
>> +static void s3c_hsotg_core_disconnect(struct s3c_hsotg *hsotg)
>> +{
>> + /* set the soft-disconnect bit */
>> + __orr32(hsotg->regs + DCTL, DCTL_SFTDISCON);
>> +}
>>
>> +static void s3c_hsotg_core_connect(struct s3c_hsotg *hsotg)
>> +{
>> /* remove the soft-disconnect and let's go */
>> __bic32(hsotg->regs + DCTL, DCTL_SFTDISCON);
>> }
>> @@ -2348,7 +2357,8 @@ irq_retry:
>> kill_all_requests(hsotg, &hsotg->eps[0],
>> -ECONNRESET, true);
>>
>> - s3c_hsotg_core_init(hsotg);
>> + s3c_hsotg_core_init_disconnected(hsotg);
>> + s3c_hsotg_core_connect(hsotg);
>> }
>> }
>> }
>> @@ -2983,7 +2993,8 @@ static int s3c_hsotg_pullup(struct usb_gadget *gadget, int is_on)
>> if (is_on) {
>> s3c_hsotg_phy_enable(hsotg);
>> clk_enable(hsotg->clk);
>> - s3c_hsotg_core_init(hsotg);
>> + s3c_hsotg_core_init_disconnected(hsotg);
>> + s3c_hsotg_core_connect(hsotg);
>> } else {
>> clk_disable(hsotg->clk);
>> s3c_hsotg_phy_disable(hsotg);
>> @@ -3670,7 +3681,8 @@ static int s3c_hsotg_resume(struct platform_device *pdev)
>>
>> spin_lock_irqsave(&hsotg->lock, flags);
>> s3c_hsotg_phy_enable(hsotg);
>> - s3c_hsotg_core_init(hsotg);
>> + s3c_hsotg_core_init_disconnect(hsotg);
>> + s3c_hsotg_core_connect(hsotg);
>> spin_unlock_irqrestore(&hsotg->lock, flags);
>>
>> return ret;
>> --
>> 1.9.2
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland
next prev parent reply other threads:[~2014-10-20 10:46 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-16 12:57 [PATCH 0/9] more dwc2/gadget fixes Marek Szyprowski
2014-10-16 12:57 ` [PATCH 2/9] usb: dwc2/gadget: fix enumeration issues Marek Szyprowski
2014-10-16 13:34 ` Felipe Balbi
2014-10-16 12:57 ` [PATCH 3/9] usb: dwc2/gadget: fix support for soft_connect udc framework feature Marek Szyprowski
2014-10-16 13:36 ` Felipe Balbi
2014-10-17 10:43 ` Marek Szyprowski
2014-10-17 15:44 ` Felipe Balbi
2014-10-17 15:46 ` Felipe Balbi
2014-10-17 15:49 ` Felipe Balbi
2014-10-17 16:02 ` Felipe Balbi
2014-10-17 17:07 ` Felipe Balbi
2014-10-16 12:58 ` [PATCH 5/9] usb: dwc2/gadget: move setting last reset time to s3c_hsotg_core_init Marek Szyprowski
2014-10-16 12:58 ` [PATCH 7/9] usb: dwc2/gadget: use soft disconnect mode for implementing pullup control Marek Szyprowski
[not found] ` <1413464285-24172-8-git-send-email-m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-10-16 13:41 ` Felipe Balbi
[not found] ` <1413464285-24172-1-git-send-email-m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-10-16 12:57 ` [PATCH 1/9] usb: dwc2/gadget: report disconnect event from 'end session' irq Marek Szyprowski
2014-10-16 13:33 ` Felipe Balbi
2014-10-17 10:35 ` Marek Szyprowski
2014-10-17 19:20 ` Felipe Balbi
2014-10-16 12:58 ` [PATCH 4/9] usb: dwc2/gadget: disable phy before turning off power regulators Marek Szyprowski
2014-10-16 12:58 ` [PATCH 6/9] usb: dwc2/gadget: decouple setting soft disconnect from s3c_hsotg_core_init Marek Szyprowski
[not found] ` <1413464285-24172-7-git-send-email-m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-10-16 13:38 ` Felipe Balbi
2014-10-20 10:46 ` Marek Szyprowski [this message]
2014-10-16 12:58 ` [PATCH 8/9] usb: dwc2/gadget: fix calls to phy control functions in suspend/resume code Marek Szyprowski
2014-10-16 13:42 ` Felipe Balbi
2014-10-20 10:46 ` Marek Szyprowski
2014-10-16 12:58 ` [PATCH 9/9] usb: dwc2/gadget: rework suspend/resume code to correctly restore gadget state Marek Szyprowski
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=5444E7F9.1060709@samsung.com \
--to=m.szyprowski@samsung.com \
--cc=balbi@ti.com \
--cc=k.kozlowski@samsung.com \
--cc=kyungmin.park@samsung.com \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=paulz@synopsys.com \
--cc=r.baldyga@samsung.com \
/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.