Re: A different PD controller firmware problem?

From: Theodore Y. Ts'o
Date: Thu Nov 08 2018 - 16:15:49 EST


On Thu, Nov 08, 2018 at 06:00:59PM +0000, Mario.Limonciello@xxxxxxxx wrote:
> > Sortly after 12:30am US/Eastern, I got a low power warning on my
> > system, and the battery power had dropped below 10%. Apparently the
> > laptop was not accepting any charge any more. I tried doing a suspend
> > to ram, and then unsuspended it, and it still wasn't accepting any
> > charge, even though the adapter indicated it was plugged in and
> > supplying power. I then did a power cycle, and still the laptop
> > didn't indicate it was charging with a USB C 45W power supply plugged
> > in.
>
> Just to be clear was this a Dell adapter or another manufacturer?
>
> If it's non-Dell, there could easily be an untested combination of controllers
> and one getting into a bad state.

It was multiple non-Dell adapters --- but normally unplugging and
re-pluggin a USB C port *should* be enough to get the port back into a
sane state; a power down and unplugging the power should not be
required! (A power down was not enough, and unplugging the power
supply and trying a different USB adapter was also not enough.)

Adapters which I tried included the Innergie 45W[1] (which does have
some USB Compliance issues), the original Google Universal Type C
Charger 60W[2], and BatPower ProE plus USB C adapter. The last hasn't
gotten a USB C conformance review published, but I took that last one
to Benson Leung's lab and he tested it using his USB C analyzer. The
ProE w/ USB C adapter passed with only one nit (apparently on
disconnection it didn't drop down below 5 volts fast enough to be
within spec; so if you unplugged it from a laptop and immediately
jammed it into a phone which only accepted 5V input, there might be
issues. :-)

[1] https://gtrusted.com/review/innergie-powergear-usb-c-45
[2] https://gtrusted.com/review/the-microsoft-surface-book-2-charges-fine-with-the-google-universal-type-c-charger-60w-over-usb-power-delivery

The problem with the Dell XPS 13 not accepting power first showed up
while attached to the Google 60W USB power adapter.

Unfortunately, it's never happend again since in the past month, so
there's not much I can report.

> > I have noticed other problems where a USB C to HDMI adapter doesn't
> > quite work right (the laptop refuses to talk to the display), and the
> > *only* way to fix things is to powerdown Linux and then remove the
> > power plug.
>
> Is this with the DA200 or DA300? Or something else?

It was with something else. The problem stopped happening after I
stopped using a Dell Ultrasharp 30" monitor. I've noticed that
Linux's drm support for that particular monitor has always been
marginal, and the problem would happen either when connecting to the
Dell Ultrasharp 30, or after it had been connected to the Dell
Ultrasharp 30 and going into work and connecting to a lesser Dell 24"
monitor (at $WORK they're too cheap to buy Ultrasharp's :-). When I
upgraded my home display to be a 34" 4k display, this particular
problem went away.

The only thing that was interesting about it other than "random drm
bug; MST support in Linux marginal[1], film at 11" (I've been having
problems with the Dell Ultrasharp 30 connected from a Thinkpad Dock
ever since I got it), was that with the Dell XPS 13, it was the first
time where powering down *and* removing the power adapter made a
difference. That was unique and surprising to me.

[1] https://www.youtube.com/watch?v=6301tGNs9Dc

I still have the Dell Ultrasharp 30", so I could try some experiments,
but since I'm not using it these days, it's been must less important
to me, since I'm not a DRM developer. :-) (And yes, it's possible
that the timing was a coincidence where it was something else, like
going to a newer kernel, not stopping the use of the Dell U30 that
made the key difference. Give all of the Linux problems I've seen
with the Dell U30, over the past few years, I'm less convinced, but I
admit I haven't done a fully controlled experiment yet.)

> It sounds like this one might be more reproducible. If it's a Dell
> peripheral I think it should be pretty easy for support to reproduce
> and escalate.

When I have time (probably after Vancouver at this point), I can drag
my Dell TB16 dock home, and try an experiment with the Dell XPS 13,
connecting to the Dell Ultrasharp via a TB16 dock. And I can it with
a bleeding-edge kernel as well as the Debian 4.18.0-2 kernel.

Given that the Dell Ultrasharp 30 is an older monitor, it might be
less urgent to track this down, though.

Cheers,

- Ted

P.S. Linux support for 4k monitors are still marginal. I very often
need to configure to 2560x1600/60Hz, and *then* reconfigure to
3840x2160 with a 59Hz refresh (that's important, usually it won't work
with 60Hz refresh). And if the laptop display ever goes to sleep, I
need to repeat the "configure to 2560x1600, then reconfigure to
3840x2160@59Hz" dance. These problems go away if I use an USB C /
HDMI adapter which only supports 4k @ 30Hz, but I want a faster
refresh rate than that. :-) (And yes, I've tried multiple USB C /
HDMI adapters; I have a whole collection.)

And this is something I can reproduce with a TB16 dock at work,
although I don't have a Dell 4k monitor, so I can't do a 100% Dell
repro on this particular 4k@60Hz (almost never works) / 4k@59Hz
(usually works, although I can't let the display sleep) exernal
monitor problem. This particular problem does reproduce on a Acer 32"
4k screen at work, as well as LG 32" 4k monitor at home, though.

P.P.S. Then there are the problems with using a TB16 at work, and
suspending, then going home and using a USB-C hub/adapter at home.
And after getting two TB16 for home use from Amazon, both of which
didn't work, although the TB16 at work did, I gave up with trying to
get a second TB16 for home use. So normally I don't use the TB16 at
work, because things are much more stable if I don't use Thunderbolt
at all, unless I want to reboot after every commute.

Ah, life at the bleeding edge. :-)