All of lore.kernel.org
 help / color / mirror / Atom feed
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: linux-usb@vger.kernel.org, Felipe Balbi <balbi@ti.com>
Cc: gregkh@linuxfoundation.org, linux-arm-msm@vger.kernel.org,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Subject: [PATCH v1 3/3] usb: phy: msm: Do not do runtime pm if the phy is not idle
Date: Mon, 30 Jun 2014 18:29:57 +0100	[thread overview]
Message-ID: <1404149397-11970-1-git-send-email-srinivas.kandagatla@linaro.org> (raw)
In-Reply-To: <1404149311-11831-1-git-send-email-srinivas.kandagatla@linaro.org>

Use case is when the phy is configured in host mode and a usb device is
attached to board before bootup. On bootup, with the existing code and
runtime pm enabled, the driver would decrement the pm usage count
without checking the current state of the phy. This pm usage count
decrement would trigger the runtime pm which than would abort the
usb enumeration which was in progress. In my case a usb stick gets
detected and then immediatly the driver goes to low power mode which is
not correct.

log:
[    1.631412] msm_hsusb_host 12520000.usb: EHCI Host Controller
[    1.636556] msm_hsusb_host 12520000.usb: new USB bus registered, assigned bus number 1
[    1.642563] msm_hsusb_host 12520000.usb: irq 220, io mem 0x12520000
[    1.658197] msm_hsusb_host 12520000.usb: USB 2.0 started, EHCI 1.00
[    1.659473] hub 1-0:1.0: USB hub found
[    1.663415] hub 1-0:1.0: 1 port detected
...
[    1.973352] usb 1-1: new high-speed USB device number 2 using msm_hsusb_host
[    2.107707] usb-storage 1-1:1.0: USB Mass Storage device detected
[    2.108993] scsi0 : usb-storage 1-1:1.0
[    2.678341] msm_otg 12520000.phy: USB in low power mode
[    3.168977] usb 1-1: USB disconnect, device number 2

This issue was detected on IFC6410 board.

This patch fixes the intial runtime pm trigger by checking the phy
state and decrementing the pm use count only when the phy state is IDLE.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/usb/phy/phy-msm-usb.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/phy/phy-msm-usb.c b/drivers/usb/phy/phy-msm-usb.c
index 3bb559d..78cc870 100644
--- a/drivers/usb/phy/phy-msm-usb.c
+++ b/drivers/usb/phy/phy-msm-usb.c
@@ -1229,7 +1229,9 @@ static void msm_otg_sm_work(struct work_struct *w)
 			motg->chg_state = USB_CHG_STATE_UNDEFINED;
 			motg->chg_type = USB_INVALID_CHARGER;
 		}
-		pm_runtime_put_sync(otg->phy->dev);
+
+		if (otg->phy->state == OTG_STATE_B_IDLE)
+			pm_runtime_put_sync(otg->phy->dev);
 		break;
 	case OTG_STATE_B_PERIPHERAL:
 		dev_dbg(otg->phy->dev, "OTG_STATE_B_PERIPHERAL state\n");
-- 
1.9.1

  parent reply	other threads:[~2014-06-30 17:30 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-18 17:00 [RFC PATCH 0/3] ehci_msm fixes for APQ8064 USB host support Srinivas Kandagatla
2014-06-18 17:01 ` [RFC PATCH 2/3] usb: phy: msm: Make phy_reset clk and reset line optional Srinivas Kandagatla
2014-06-26  8:03 ` [RFC PATCH 0/3] ehci_msm fixes for APQ8064 USB host support Srinivas Kandagatla
2014-06-30 17:13 ` Felipe Balbi
2014-06-30 17:15   ` Srinivas Kandagatla
     [not found] ` <1403110801-3790-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2014-06-18 17:00   ` [RFC PATCH 1/3] usb: Kconfig: make EHCI_MSM selectable for QCOM SOCs Srinivas Kandagatla
2014-06-18 17:01   ` [RFC PATCH 3/3] usb: phy: msm: Do not do runtime pm if the phy is not idle Srinivas Kandagatla
     [not found]     ` <1403110868-3924-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2014-06-27 15:54       ` Felipe Balbi
2014-06-30 10:23         ` Srinivas Kandagatla
     [not found]           ` <53B13AAF.7060909-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2014-06-30 17:13             ` Felipe Balbi
2014-06-30 17:28   ` [PATCH v1 0/3] ehci_msm fixes for APQ8064 USB host support Srinivas Kandagatla
2014-06-30 17:29     ` [PATCH v1 1/3] usb: Kconfig: make EHCI_MSM selectable for QCOM SOCs Srinivas Kandagatla
     [not found]       ` <1404149374-11887-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2014-06-30 17:55         ` Felipe Balbi
     [not found]           ` <20140630175500.GM31442-HgARHv6XitL9zxVx7UNMDg@public.gmane.org>
2014-06-30 18:28             ` Alan Stern
2014-06-30 17:29     ` [PATCH v1 2/3] usb: phy: msm: Make phy_reset clk and reset line optional Srinivas Kandagatla
2014-06-30 17:29     ` Srinivas Kandagatla [this message]
2014-06-30 17:56       ` [PATCH v1 3/3] usb: phy: msm: Do not do runtime pm if the phy is not idle Felipe Balbi
2014-06-30 18:06         ` Srinivas Kandagatla
     [not found]       ` <CA+neC=MbFm4X4ccJdFgV20Lne-61nA6M56_S+-wEi5XR+2f29Q@mail.gmail.com>
     [not found]         ` <CA+neC=MbFm4X4ccJdFgV20Lne-61nA6M56_S+-wEi5XR+2f29Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-17  8:00           ` Fwd: " prakash.burla-edOiRQu9Xnj5XLMNweQjbQ
     [not found] ` <CA+neC=N2JAXLEXXvR3cX_Co+Ykno=ibPeAj8Jt03aKWy_yObDw@mail.gmail.com>
2014-07-17  8:11   ` [RFC PATCH 0/3] ehci_msm fixes for APQ8064 USB host support prakash.burla

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=1404149397-11970-1-git-send-email-srinivas.kandagatla@linaro.org \
    --to=srinivas.kandagatla@linaro.org \
    --cc=balbi@ti.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-usb@vger.kernel.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.