From mboxrd@z Thu Jan 1 00:00:00 1970 From: Srinivas Kandagatla Subject: Re: [PATCH v1 3/3] usb: phy: msm: Do not do runtime pm if the phy is not idle Date: Mon, 30 Jun 2014 19:06:52 +0100 Message-ID: <53B1A73C.6080902@linaro.org> References: <1404149311-11831-1-git-send-email-srinivas.kandagatla@linaro.org> <1404149397-11970-1-git-send-email-srinivas.kandagatla@linaro.org> <20140630175603.GO31442@saruman.home> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from mail-wi0-f170.google.com ([209.85.212.170]:37069 "EHLO mail-wi0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754174AbaF3SHA (ORCPT ); Mon, 30 Jun 2014 14:07:00 -0400 Received: by mail-wi0-f170.google.com with SMTP id cc10so6145966wib.5 for ; Mon, 30 Jun 2014 11:06:59 -0700 (PDT) In-Reply-To: <20140630175603.GO31442@saruman.home> Sender: linux-arm-msm-owner@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org To: balbi@ti.com Cc: linux-usb@vger.kernel.org, gregkh@linuxfoundation.org, linux-arm-msm@vger.kernel.org On 30/06/14 18:56, Felipe Balbi wrote: > On Mon, Jun 30, 2014 at 06:29:57PM +0100, Srinivas Kandagatla wrote: >> 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 >> --- >> 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"); > > does this need to go on this -rc or can it wait until v3.17 merge Getting it to rc would be nice :-), but I will leave it up to you. > window? Also, how far back should this be backported ? This patch is required if runtime pm is activated. --srini >