From: Peter Chen <hzpeterchen@gmail.com>
To: Clemens Gruber <clemens.gruber@pqgruber.com>
Cc: linux-usb@vger.kernel.org,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org
Subject: Re: chipidea: udc: kernel panic in isr_setup_status_phase
Date: Mon, 5 Sep 2016 11:10:22 +0800 [thread overview]
Message-ID: <20160905031022.GC24593@b29397-desktop> (raw)
In-Reply-To: <20160902164243.GA4549@archie.localdomain>
On Fri, Sep 02, 2016 at 06:42:43PM +0200, Clemens Gruber wrote:
> On Fri, Sep 02, 2016 at 09:55:52AM +0800, Peter Chen wrote:
> > Do you have other 5V to USB_H1_VBUS? USB PHY needs 5V input voltage
> > as the source for USB LDO (3.0v), either from OTG or Host 1. I suspect
> > the lower vbus voltage causes the USB LDO voltage less than 3.0v, then
> > cause the unstable for USB PHY. If possible, you can connect MAIN 5V
> > (if it exists) directly to USB_H1_VBUS to see if this problem is fixed.
>
> Yes, USB_H1_VBUS is supplied from internal 5V and it is accurate (+/-
> 0.03V). The USB_H_EN signal enables USB_H1_VBUS through a MIC2026-1.
>
> The USB_OTG_VBUS signal from the picture with 4.69V came from the host
> PC and is not under our control.
>
> I read in the ReferenceManual that the USBPHY defaults to USB_H1_VBUS if
> both USB_OTG_VBUS and USB_H1_VBUS are available.
> If we imagine the following situation: USB OTG cable is plugged-in, the
> board is powered on, USB_OTG_VBUS is supplied externally and USBPHY uses
> it because USB_H1_EN is not high yet and did not enable USB_H1_VBUS.
> If the USBPHY started out being supplied by USB_OTG_VBUS and later on,
> USB_H1_VBUS comes up, will the USBPHY switch to USB_H1_VBUS immediately
> or stay at being supplied by USB_OTG_VBUS as long as that is available?
The USB LDO will use the higher voltage as input.
>
> > Great. Can you see the sudden lower for vbus again? If it still exists, it may
> > be GND issue.
>
> Yes it is still visible. Does not seem to be a problem though.
>
> > Avoid NULL pointer deference is necessary. Patch is welcome :)
>
> Yes, but should we also stop the gadget driver and print an error
> message? Or just return from the isr and neither report nor stop?
>
How about below, it will set halt for device, and host will get stall
from the device.
diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 0f692fc..3c46ccb 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -946,6 +946,11 @@ static int isr_setup_status_phase(struct ci_hdrc *ci)
int retval;
struct ci_hw_ep *hwep;
+ if (!ci->status) {
+ WARN_ON(1);
+ return -EPIPE;
+ }
+
hwep = (ci->ep0_dir == TX) ? ci->ep0out : ci->ep0in;
ci->status->context = ci;
ci->status->complete = isr_setup_status_complete;
--
Best Regards,
Peter Chen
next prev parent reply other threads:[~2016-09-05 3:10 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-23 0:36 chipidea: udc: kernel panic in isr_setup_status_phase Clemens Gruber
2016-08-24 8:11 ` Peter Chen
2016-08-25 23:47 ` Clemens Gruber
2016-08-26 17:21 ` Peter Chen
2016-08-28 18:15 ` Clemens Gruber
2016-08-29 10:24 ` Peter Chen
2016-08-30 17:20 ` Clemens Gruber
2016-09-02 1:55 ` Peter Chen
2016-09-02 16:42 ` Clemens Gruber
2016-09-05 3:10 ` Peter Chen [this message]
2016-09-05 17:24 ` Clemens Gruber
2016-08-26 17:22 ` Peter Chen
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=20160905031022.GC24593@b29397-desktop \
--to=hzpeterchen@gmail.com \
--cc=clemens.gruber@pqgruber.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@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.