From: Al Cooper <alcooperx@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: Al Cooper <alcooperx@gmail.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Felipe Balbi <balbi@kernel.org>,
yuan linyu <Linyu.Yuan@alcatel-sbell.com.cn>,
Florian Fainelli <f.fainelli@gmail.com>,
"open list:USB SUBSYSTEM" <linux-usb@vger.kernel.org>,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@vger.kernel.org>,
bcm-kernel-feedback-list@broadcom.com
Subject: [PATCH 7/8] usb: bdc: fix "xsf for ep not enabled" errror
Date: Tue, 27 Jun 2017 14:23:25 -0400 [thread overview]
Message-ID: <1498587806-24781-8-git-send-email-alcooperx@gmail.com> (raw)
In-Reply-To: <1498587806-24781-1-git-send-email-alcooperx@gmail.com>
This patch essentially clears the port status change bits at the
correct times. It is necessary because the driver was not handling
the change bits correctly for events during device
connection/disconnection and bus enumeration. So, one of them (PCC)
was left stuck sometimes causing the "xsf for ep not enabled"
error we get on first connection. This was found by the Android team.
This was debugged and fixed by Sasi Kumar.
Signed-off-by: Al Cooper <alcooperx@gmail.com>
---
drivers/usb/gadget/udc/bdc/bdc_udc.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/gadget/udc/bdc/bdc_udc.c b/drivers/usb/gadget/udc/bdc/bdc_udc.c
index aae7458..c843461 100644
--- a/drivers/usb/gadget/udc/bdc/bdc_udc.c
+++ b/drivers/usb/gadget/udc/bdc/bdc_udc.c
@@ -249,6 +249,7 @@ void bdc_sr_uspc(struct bdc *bdc, struct bdc_sr *sreport)
disconn = true;
else if ((uspc & BDC_PCS) && !BDC_PST(uspc))
connected = true;
+ clear_flags |= BDC_PCC;
}
/* Change in VBus and VBus is present */
@@ -259,16 +260,16 @@ void bdc_sr_uspc(struct bdc *bdc, struct bdc_sr *sreport)
bdc_softconn(bdc);
usb_gadget_set_state(&bdc->gadget, USB_STATE_POWERED);
}
- clear_flags = BDC_VBC;
+ clear_flags |= BDC_VBC;
} else if ((uspc & BDC_PRS) || (uspc & BDC_PRC) || disconn) {
/* Hot reset, warm reset, 2.0 bus reset or disconn */
dev_dbg(bdc->dev, "Port reset or disconn\n");
bdc_uspc_disconnected(bdc, disconn);
- clear_flags = BDC_PCC|BDC_PCS|BDC_PRS|BDC_PRC;
+ clear_flags |= BDC_PRC;
} else if ((uspc & BDC_PSC) && (uspc & BDC_PCS)) {
/* Change in Link state */
handle_link_state_change(bdc, uspc);
- clear_flags = BDC_PSC|BDC_PCS;
+ clear_flags |= BDC_PSC;
}
/*
--
1.9.0.138.g2de3478
next prev parent reply other threads:[~2017-06-27 18:23 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-27 18:23 [PATCH 0/8] Bugs fixes and improvements to Broadcom BDC driver Al Cooper
2017-06-27 18:23 ` [PATCH 2/8] usb: bdc: Add Device Tree binding document for " Al Cooper
[not found] ` <1498587806-24781-3-git-send-email-alcooperx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-07-06 14:18 ` Rob Herring
2017-07-07 19:03 ` Al Cooper
[not found] ` <CAGh=XACQvkb1QE=EokekiCdK9K9yktkGyVNdXaT4CxE8XP=u4A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-07-07 20:15 ` Rob Herring
2017-07-11 19:47 ` Al Cooper
2017-07-06 14:19 ` Rob Herring
[not found] ` <1498587806-24781-1-git-send-email-alcooperx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-06-27 18:23 ` [PATCH 1/8] usb: gadget: bdc: Fix misleading register names Al Cooper
2017-06-27 18:23 ` [PATCH 3/8] usb: bdc: Add clock enable for new chips with a separate BDC clock Al Cooper
2017-06-27 18:23 ` [PATCH 6/8] usb: bdc: Add support for suspend/resume Al Cooper
2017-06-27 18:23 ` [PATCH 4/8] usb: bdc: Small code cleanup Al Cooper
2017-06-28 8:47 ` David Laight
2017-06-28 14:56 ` Al Cooper
[not found] ` <CAGh=XABghZ73=TNToMvpQWXP26dS1W8iujj1uQtOB8ewf+Mpew-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-06-29 14:28 ` David Laight
2017-06-27 18:23 ` [PATCH 5/8] usb: gadget: bdc: hook a quick Device Tree compatible string Al Cooper
[not found] ` <1498587806-24781-6-git-send-email-alcooperx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-06-28 23:44 ` kbuild test robot
2017-06-28 23:44 ` [PATCH] usb: gadget: bdc: fix platform_no_drv_owner.cocci warnings kbuild test robot
2017-06-27 18:23 ` Al Cooper [this message]
2017-06-27 18:23 ` [PATCH 8/8] usb: bdc: Enable in Kconfig for ARCH_BRCMSTB systems Al Cooper
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=1498587806-24781-8-git-send-email-alcooperx@gmail.com \
--to=alcooperx@gmail.com \
--cc=Linyu.Yuan@alcatel-sbell.com.cn \
--cc=balbi@kernel.org \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=devicetree@vger.kernel.org \
--cc=f.fainelli@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=robh+dt@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).