New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 718571 link

Starred by 2 users

Issue metadata

Status: Archived
Owner:
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Chameleon: Power-cycle HDMI/DP adapter in a smarter way

Project Member Reported by waihong@chromium.org, May 4 2017

Issue description

The HDMI/DP adapter is a source of flakiness. We added a way to power-cycle the adapter, i.e. issue 532925
  https://chromium-review.googlesource.com/327513

It focuses the USB port to 'sink' in order to power-off the port. It works quite effectively. But the code is hard-coded to "samus". The new boards with Type-C port are not benefited.

Should improve it to:
 * only power-cycle it if no connected port found. The current way doing it before every test is unnecessary.
 * detect if DUT uses a adapter, like checking "lsusb" output to see any particular adapter devices, that we use in the lab.
 * check the status of the USB port before power-cycle. For example, if the port is already in "sink" status, it should have no adapter.

$ ectool --name=cros_pd usbpd 0
Port C0: enabled, connected  State:SNK_READY
Role:SNK DFP, Polarity:CC2
PD Partner Capabilities:
 DR power
 DR data
 USB capable

Make sure all boards with Type-C ports work with the change.
 
Do we have a way to know if the type-C port is DP or not?
I tried lsusb, there is no any changes when I connect a DP connector.
My init thought is to check the USB vid:pid. There are a few models of Type-C to DP/HDMI adapters used in lab. You can check the presence of these adapters.

The pid:vid of Apple Type-C to HDMI adapter: 05ac:100e

kalin@, please help to list the pid:vid of other adapters used in the lab.


Comment 3 by ka...@chromium.org, May 12 2017

With deployment to Atlantis lab we started using Apple Type-C to HDMI (three port)adapter only for HDMI connection. We do not use HoHo anymore(I have to check and replace anything left in the audio boxes).

DP connection is done with DingDong only.

Found a better command to check the presence of DP, i.e. "ectool usbpdmuxinfo".

Plugged the native Type-C to HDMI/DP adapter:
# ectool usbpdmuxinfo
Port 0: OPEN
Port 1: DP

Plugged the Apple adapter with USB hub:
# ectool usbpdmuxinfo
Port 0: OPEN
Port 1: USB DP
I tried the commands. But not all chromebooks responds the results.
So I may want to use the command to decide which port to power on/off if possible.
If the command doesn't work, I will power on/off both ports.
Is it OK?

Sounds good, like performing the order:

(1) "ectool usbpdmuxinfo" to see if it is DP (or command not work, continue the next step)
(2) "ectool usbpd i" to see if the port is a SRC (or command not work, exit)
(3) "ectool usbpd i sink" -> "ectool usbpd i auto"
Project Member

Comment 7 by bugdroid1@chromium.org, Jun 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/b67afa022b077c5b08dad9a27dcde2d8406eec75

commit b67afa022b077c5b08dad9a27dcde2d8406eec75
Author: Moja Hsu <mojahsu@google.com>
Date: Mon Jun 12 15:47:57 2017

Chameleon: Power-cycle Type-C ports

Type-C dongle becomes corrupted and needs to be re-plugged sometimes.
This CL emulate this power-cycle behavior for Type-C ports.

BUG= chromium:718571 
TEST=Test display_Resolution.mirrored on a video unstable dut and run
the test to see if it can be passed.

Change-Id: I57f32e1443347cd9e6f1191764a883fc299a2730
Reviewed-on: https://chromium-review.googlesource.com/508531
Commit-Ready: Hsu Wei-Cheng <mojahsu@chromium.org>
Tested-by: Hsu Wei-Cheng <mojahsu@chromium.org>
Reviewed-by: Wai-Hong Tam <waihong@google.com>

[modify] https://crrev.com/b67afa022b077c5b08dad9a27dcde2d8406eec75/client/cros/chameleon/chameleon_port_finder.py
[modify] https://crrev.com/b67afa022b077c5b08dad9a27dcde2d8406eec75/server/cros/multimedia/display_facade_adapter.py
[modify] https://crrev.com/b67afa022b077c5b08dad9a27dcde2d8406eec75/client/cros/multimedia/display_facade_native.py
[modify] https://crrev.com/b67afa022b077c5b08dad9a27dcde2d8406eec75/client/cros/multimedia/display_facade_adapter.py

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/4e28a32ffbfb8d9df0f448025db1da6f0a3918e4

commit 4e28a32ffbfb8d9df0f448025db1da6f0a3918e4
Author: Moja Hsu <mojahsu@chromium.org>
Date: Tue Jun 13 07:19:41 2017

Chameleon: Restrict number of power-cycle Type-C ports

We decide how many type-c ports by exit code of 'ectool usbpd' command.
but for some boards the command will always return success even there is
no type-c ports. It will make the while loop enter into infinate loop.

BUG= chromium:718571 
TEST=Test display_SwitchMode on a failed DUT without this patch before.
Check it won't timeout with this patch.

Change-Id: Ie84e10bfa6fa76346bc3759663556d95c40ed806
Reviewed-on: https://chromium-review.googlesource.com/532493
Commit-Ready: Hsu Wei-Cheng <mojahsu@chromium.org>
Tested-by: Hsu Wei-Cheng <mojahsu@chromium.org>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>

[modify] https://crrev.com/4e28a32ffbfb8d9df0f448025db1da6f0a3918e4/client/cros/multimedia/display_facade_native.py

Status: Fixed (was: Untriaged)

Comment 10 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment