All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
To: Bin Liu <b-liu-l0cyMroinI0@public.gmane.org>
Cc: Felipe Balbi <balbi-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	George Cherian <george.cherian-l0cyMroinI0@public.gmane.org>,
	linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [PATCH 01/10] usb: phy: Fix initial state for twl6030
Date: Thu, 28 Apr 2016 10:33:11 -0700	[thread overview]
Message-ID: <1461864800-29979-2-git-send-email-tony@atomide.com> (raw)
In-Reply-To: <1461864800-29979-1-git-send-email-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>

We need to check the state for the PHY with delayed_work so
as otherwise MUSB will get confused and idles immediately.

Signed-off-by: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
---
 drivers/usb/phy/phy-twl6030-usb.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/phy/phy-twl6030-usb.c b/drivers/usb/phy/phy-twl6030-usb.c
index 014dbbd7..8696736 100644
--- a/drivers/usb/phy/phy-twl6030-usb.c
+++ b/drivers/usb/phy/phy-twl6030-usb.c
@@ -97,6 +97,9 @@ struct twl6030_usb {
 
 	struct regulator		*usb3v3;
 
+	/* used to check initial cable status after probe */
+	struct delayed_work	get_status_work;
+
 	/* used to set vbus, in atomic path */
 	struct work_struct	set_vbus_work;
 
@@ -274,6 +277,15 @@ static irqreturn_t twl6030_usbotg_irq(int irq, void *_twl)
 	return IRQ_HANDLED;
 }
 
+static void twl6030_status_work(struct work_struct *work)
+{
+	struct twl6030_usb *twl = container_of(work, struct twl6030_usb,
+					       get_status_work.work);
+
+	twl6030_usb_irq(twl->irq2, twl);
+	twl6030_usbotg_irq(twl->irq1, twl);
+}
+
 static int twl6030_enable_irq(struct twl6030_usb *twl)
 {
 	twl6030_writeb(twl, TWL_MODULE_USB, 0x1, USB_ID_INT_EN_HI_SET);
@@ -284,8 +296,6 @@ static int twl6030_enable_irq(struct twl6030_usb *twl)
 				REG_INT_MSK_LINE_C);
 	twl6030_interrupt_unmask(TWL6030_CHARGER_CTRL_INT_MASK,
 				REG_INT_MSK_STS_C);
-	twl6030_usb_irq(twl->irq2, twl);
-	twl6030_usbotg_irq(twl->irq1, twl);
 
 	return 0;
 }
@@ -371,6 +381,7 @@ static int twl6030_usb_probe(struct platform_device *pdev)
 		dev_warn(&pdev->dev, "could not create sysfs file\n");
 
 	INIT_WORK(&twl->set_vbus_work, otg_set_vbus_work);
+	INIT_DELAYED_WORK(&twl->get_status_work, twl6030_status_work);
 
 	status = request_threaded_irq(twl->irq1, NULL, twl6030_usbotg_irq,
 			IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING | IRQF_ONESHOT,
@@ -395,6 +406,7 @@ static int twl6030_usb_probe(struct platform_device *pdev)
 
 	twl->asleep = 0;
 	twl6030_enable_irq(twl);
+	schedule_delayed_work(&twl->get_status_work, HZ);
 	dev_info(&pdev->dev, "Initialized TWL6030 USB module\n");
 
 	return 0;
@@ -404,6 +416,7 @@ static int twl6030_usb_remove(struct platform_device *pdev)
 {
 	struct twl6030_usb *twl = platform_get_drvdata(pdev);
 
+	cancel_delayed_work(&twl->get_status_work);
 	twl6030_interrupt_mask(TWL6030_USBOTG_INT_MASK,
 		REG_INT_MSK_LINE_C);
 	twl6030_interrupt_mask(TWL6030_USBOTG_INT_MASK,
-- 
2.8.1

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2016-04-28 17:33 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-28 17:33 [PATCH 00/10] Get MUSB PM runtime working again Tony Lindgren
     [not found] ` <1461864800-29979-1-git-send-email-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-04-28 17:33   ` Tony Lindgren [this message]
2016-04-28 17:33   ` [PATCH 02/10] usb: musb: Fix idling after host mode by increasing autosuspend delay Tony Lindgren
     [not found]     ` <1461864800-29979-3-git-send-email-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-05-05 15:02       ` Bin Liu
2016-05-05 17:04         ` Tony Lindgren
     [not found]           ` <20160505170439.GX5995-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-05-05 17:47             ` Bin Liu
2016-05-06  6:45               ` Felipe Balbi
     [not found]                 ` <87k2j7it0f.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-05-09 19:57                   ` Tony Lindgren
2016-04-28 17:33   ` [PATCH 03/10] usb: musb: Fix PM runtime handling for connected cable Tony Lindgren
     [not found]     ` <1461864800-29979-4-git-send-email-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-04-28 17:53       ` Sergei Shtylyov
     [not found]         ` <57224E1F.7040707-M4DtvfQ/ZS1MRgGoP+s0PdBPR1lH4CV8@public.gmane.org>
2016-04-28 18:07           ` Tony Lindgren
     [not found]             ` <20160428180741.GF5995-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-04-29 15:52               ` Tony Lindgren
2016-04-28 17:33   ` [PATCH 04/10] usb: musb: Remove unnecessary shutdown function Tony Lindgren
     [not found]     ` <1461864800-29979-5-git-send-email-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-05-05 19:20       ` Bin Liu
2016-05-05 19:28         ` Tony Lindgren
     [not found]           ` <20160505192852.GD5995-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-05-05 19:49             ` Bin Liu
2016-04-28 17:33   ` [PATCH 05/10] usb: musb: Fix PM runtime autosuspend Tony Lindgren
2016-04-28 17:33   ` [PATCH 06/10] usb: musb: Split PM runtime between wrapper IP and musb core Tony Lindgren
2016-04-28 17:33   ` [PATCH 07/10] usb: musb: Manage USB phy from PM runtime calls Tony Lindgren
2016-04-28 17:33   ` [PATCH 08/10] usb: musb: Remove try_idle for 2430 glue layer Tony Lindgren
2016-04-28 17:33   ` [PATCH 09/10] usb: musb: Fix PM runtime with delayed work Tony Lindgren
2016-04-28 17:33   ` [PATCH 10/10] usb: musb: Remove pm_runtime_set_irq_safe Tony Lindgren
2016-05-01  6:33   ` [PATCH 00/10] Get MUSB PM runtime working again Ivaylo Dimitrov
     [not found]     ` <5725A31D.8020508-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-05-03 16:25       ` Tony Lindgren
     [not found]         ` <20160503162528.GM5995-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-05-03 17:43           ` Ivaylo Dimitrov
     [not found]             ` <5728E334.3090000-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-05-11 23:03               ` 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=1461864800-29979-2-git-send-email-tony@atomide.com \
    --to=tony-4v6ys6ai5vpbdgjk7y7tuq@public.gmane.org \
    --cc=b-liu-l0cyMroinI0@public.gmane.org \
    --cc=balbi-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=george.cherian-l0cyMroinI0@public.gmane.org \
    --cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /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.