Re: [RFC][PATCH] thunderbolt: icm: Ignore mailbox errors in icm_suspend()
From: Mika Westerberg
Date: Wed Jul 26 2017 - 09:13:09 EST
On Wed, Jul 26, 2017 at 02:48:54PM +0200, Rafael J. Wysocki wrote:
> On Wednesday, July 26, 2017 11:32:44 AM Mika Westerberg wrote:
> > On Tue, Jul 25, 2017 at 06:10:57PM +0200, Rafael J. Wysocki wrote:
> > > On Tuesday, July 25, 2017 01:00:12 PM Mika Westerberg wrote:
> > > > On Tue, Jul 25, 2017 at 01:31:00AM +0200, Rafael J. Wysocki wrote:
> > > > > From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> > > > >
> > > > > On one of my test machines nhi_mailbox_cmd() called from icm_suspend()
> > > > > times out and returnes an error which then is propagated to the
> > > > > caller and causes the entire system suspend to be aborted which isn't
> > > > > very useful.
> > > > >
> > > > > Instead of aborting system suspend, print the error into the log
> > > > > and continue.
> > > >
> > > > I agree, it should not prevent suspend but I wonder why it fails in the
> > > > first place? Can you check what is the return value?
> > >
> > > As per the above, the error is a timeout, ie. -ETIMEDOUT.
> >
> > Ah, right I somehow missed that.
> >
> > Does it have Falcon Ridge controller or Alpine Ridge?
>
> I'll check later today, but i guess you'll know (see below).
No need to check, it is Alpine Ridge (since it is Dell 9360).
> > Just to make sure, can you increase the timeout in nhi_mailbox_cmd()
> > to 1000ms or so. It should not take that long though but better to check.
>
> Well, I can do that, but I don't think it will help.
>
> It just looks like the chip is not responding at all at that point.
I see.
Then I think we should apply your patch now and we can investigate this
further offline and hopefully find the root cause for the problem.
For this patch:
Acked-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
> > Which system this is BTW?
>
> It's the Dell 9360. :-)
>
> Sometimes after a reboot or a power cycle it starts in a state in which the
> TBT controller and a USB one (which seem to be somehow connected)
> appear to be dead or at least really flaky. Basically, the box needs to be
> power-cycled again to get rid of this condition and then everything works.
The xHCI controller is part of the Thunderbolt controller so whenever
you have normal USB-C device connected there, you should also see the
Alpine Ridge hierarchy in lspci output but the Thunderbolt host
controller is not there.