All of lore.kernel.org
 help / color / mirror / Atom feed
* UCSI: no connector change events for connector 2 on Lenovo Legion Pro 7 16IAX10H (Arrow Lake-HX) — port functional in Windows
@ 2026-07-10 11:25 Trabajos Iafast
  2026-07-10 11:59 ` Greg KH
  2026-07-13  9:46 ` Heikki Krogerus
  0 siblings, 2 replies; 6+ messages in thread
From: Trabajos Iafast @ 2026-07-10 11:25 UTC (permalink / raw)
  To: linux-usb; +Cc: heikki.krogerus

Hi,

I'd like to report a UCSI issue on a Lenovo Legion Pro 7 16IAX10H
(model 83F5), Intel Core Ultra 9 275HX (Arrow Lake-HX), where one of
the two side-mounted USB-C ports is non-functional under Linux (no DP
Alt Mode, no data, no hotplug detection), while working fully under
Windows 11 on the same machine (dual boot).

System:
- Kernel: 6.17.0-35-generic (Ubuntu 24.04.4)
- BIOS/EC: Q7CN78WW (latest, issue also present on Q7CN33WW)
- USB4 silicon: Intel Gen14, 8087:7ec2, firmware 15.1
- Secure Boot: disabled

Symptoms:
- /sys/class/typec shows port0 and port1. port0 works fully.
- port1 gets a partner device enumerated at boot (PD 3.0,
  supports_usb_power_delivery: yes) but number_of_alternate_modes
  stays 0 and usb_power_delivery_revision reads 0.0.
- No typec uevents are ever generated for port1 on plug/unplug
  (verified with udevadm monitor; port0 generates remove/add/change
  normally).
- typec port1 never binds to usb4_port3; the "connector" symlink
  under domain0/0-0/usb4_port3 is missing (port0 <-> usb4_port1
  binds correctly).
- dmesg is completely silent: no ucsi/PPM errors at all.

UCSI debugfs probing (/sys/kernel/debug/usb/ucsi/USBC000:00):

GET_CAPABILITY:
  0x01300300012000020000040200000144
  -> bNumConnectors = 2 (both connectors are exposed to the OS)

GET_CONNECTOR_STATUS connector 1 (working):
  0x01300300012000011304b12c405b4000
GET_CONNECTOR_STATUS connector 2 (broken):
  0x01300300012000011304b12c405b0000

The responses are identical except the Connector Status Change
field: 0x4000 (Connect Change) on connector 1, 0x0000 on connector 2,
with a monitor attached to both ports. The EC appears to report
connector 2's status when polled but never raises connection change
events for it, so the event-driven ucsi driver never processes the
port. Windows 11 (Microsoft UCSI connection manager, driver
10.0.26100.8521) handles the same port without issues, DP Alt Mode
included.

Ruled out: BIOS/EC update to latest (Q7CN78WW), EC power drain,
thunderbolt module reload, PCI remove/rescan of the USB4 NHI,
ucsi_acpi/typec_ucsi reload (port1 never rebinds), kernels 6.14 and
6.17. No retimer firmware available via LVFS for this model.

Happy to provide acpidump, full sysfs dumps, or test patches.

Best regards,
Kerly Cervantes

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: UCSI: no connector change events for connector 2 on Lenovo Legion Pro 7 16IAX10H (Arrow Lake-HX) — port functional in Windows
  2026-07-10 11:25 UCSI: no connector change events for connector 2 on Lenovo Legion Pro 7 16IAX10H (Arrow Lake-HX) — port functional in Windows Trabajos Iafast
@ 2026-07-10 11:59 ` Greg KH
  2026-07-10 12:30   ` Trabajos Iafast
  2026-07-13  9:46 ` Heikki Krogerus
  1 sibling, 1 reply; 6+ messages in thread
From: Greg KH @ 2026-07-10 11:59 UTC (permalink / raw)
  To: Trabajos Iafast; +Cc: linux-usb, heikki.krogerus

On Fri, Jul 10, 2026 at 06:25:08AM -0500, Trabajos Iafast wrote:
> Hi,
> 
> I'd like to report a UCSI issue on a Lenovo Legion Pro 7 16IAX10H
> (model 83F5), Intel Core Ultra 9 275HX (Arrow Lake-HX), where one of
> the two side-mounted USB-C ports is non-functional under Linux (no DP
> Alt Mode, no data, no hotplug detection), while working fully under
> Windows 11 on the same machine (dual boot).
> 
> System:
> - Kernel: 6.17.0-35-generic (Ubuntu 24.04.4)

That is a very old and obsolete kernel, can you try the latest 7.1.3
kernel release instead?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: UCSI: no connector change events for connector 2 on Lenovo Legion Pro 7 16IAX10H (Arrow Lake-HX) — port functional in Windows
  2026-07-10 11:59 ` Greg KH
@ 2026-07-10 12:30   ` Trabajos Iafast
  2026-07-10 14:47     ` Trabajos Iafast
  0 siblings, 1 reply; 6+ messages in thread
From: Trabajos Iafast @ 2026-07-10 12:30 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-usb, heikki.krogerus

Tested with mainline 7.1.3 (Ubuntu mainline PPA build,
7.1.3-070103-generic). The behavior is identical to 6.17: -
port1-partner is enumerated at boot, but number_of_alternate_modes
stays 0 - usb4_port3 still has no "connector" symlink (only
link/power/uevent) - dmesg shows bindings for typec port0 only: typec
port0: bound usb2-port1 (ops connector_ops) typec port0: bound
usb4_port1 (ops connector_ops [thunderbolt]) typec port0: bound
usb3-port1 (ops connector_ops) Nothing for port1. - udevadm monitor
(subsystem typec) shows change events only for port0/port0-partner on
plug/unplug. Plugging/unplugging on the affected port generates no
events at all. One additional observation: with 7.1.3 booted without
any GPU driver (NVIDIA DKMS does not build against it), the monitor
attached to the affected port actually displays the boot framebuffer.
The firmware/BIOS sets up the DP tunnel at boot (Lenovo logo is shown
on that monitor), so the hardware path is fully functional. The
display is lost once a kernel GPU driver takes over, and since the
UCSI/typec side never manages that connector, it is never
re-established. Happy to test any patches.

Best regards, Kerly

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: UCSI: no connector change events for connector 2 on Lenovo Legion Pro 7 16IAX10H (Arrow Lake-HX) — port functional in Windows
  2026-07-10 12:30   ` Trabajos Iafast
@ 2026-07-10 14:47     ` Trabajos Iafast
  0 siblings, 0 replies; 6+ messages in thread
From: Trabajos Iafast @ 2026-07-10 14:47 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-usb, heikki.krogerus

Tested with mainline 7.1.3 (Ubuntu mainline PPA build,
7.1.3-070103-generic). The behavior is identical to 6.17: -
port1-partner is enumerated at boot, but number_of_alternate_modes
stays 0 - usb4_port3 still has no "connector" symlink (only
link/power/uevent) - dmesg shows bindings for typec port0 only: typec
port0: bound usb2-port1 (ops connector_ops) typec port0: bound
usb4_port1 (ops connector_ops [thunderbolt]) typec port0: bound
usb3-port1 (ops connector_ops) Nothing for port1. - udevadm monitor
(subsystem typec) shows change events only for port0/port0-partner on
plug/unplug. Plugging/unplugging on the affected port generates no
events at all. One additional observation: with 7.1.3 booted without
any GPU driver (the NVIDIA DKMS module does not build against it), the
monitor attached to the affected port actually displays the boot
framebuffer. The firmware sets up the DP tunnel at boot (the Lenovo
logo is shown on that monitor), so the hardware path is fully
functional. The display is lost once a kernel GPU driver takes over,
and since the UCSI/typec side never manages that connector, it is
never re-established. Happy to test any patches. Best regards, Kerly

On Fri, Jul 10, 2026 at 7:30 AM Trabajos Iafast
<trabajosiafast@gmail.com> wrote:
>
> Tested with mainline 7.1.3 (Ubuntu mainline PPA build,
> 7.1.3-070103-generic). The behavior is identical to 6.17: -
> port1-partner is enumerated at boot, but number_of_alternate_modes
> stays 0 - usb4_port3 still has no "connector" symlink (only
> link/power/uevent) - dmesg shows bindings for typec port0 only: typec
> port0: bound usb2-port1 (ops connector_ops) typec port0: bound
> usb4_port1 (ops connector_ops [thunderbolt]) typec port0: bound
> usb3-port1 (ops connector_ops) Nothing for port1. - udevadm monitor
> (subsystem typec) shows change events only for port0/port0-partner on
> plug/unplug. Plugging/unplugging on the affected port generates no
> events at all. One additional observation: with 7.1.3 booted without
> any GPU driver (NVIDIA DKMS does not build against it), the monitor
> attached to the affected port actually displays the boot framebuffer.
> The firmware/BIOS sets up the DP tunnel at boot (Lenovo logo is shown
> on that monitor), so the hardware path is fully functional. The
> display is lost once a kernel GPU driver takes over, and since the
> UCSI/typec side never manages that connector, it is never
> re-established. Happy to test any patches.
>
> Best regards, Kerly

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: UCSI: no connector change events for connector 2 on Lenovo Legion Pro 7 16IAX10H (Arrow Lake-HX) — port functional in Windows
       [not found] <CADvEaBKUBJito+rACRdrZ5xNwL7J=hHv2Cz5V+UjsEQOgj0ZTA@mail.gmail.com>
@ 2026-07-13  9:44 ` Heikki Krogerus
  0 siblings, 0 replies; 6+ messages in thread
From: Heikki Krogerus @ 2026-07-13  9:44 UTC (permalink / raw)
  To: Trabajos Iafast; +Cc: linux-usb

On Thu, Jul 09, 2026 at 11:35:07PM -0500, Trabajos Iafast wrote:
> Hi,
> 
> I'd like to report a UCSI issue on a Lenovo Legion Pro 7 16IAX10H
> (model 83F5), Intel Core Ultra 9 275HX (Arrow Lake-HX), where one of
> the two side-mounted USB-C ports is non-functional under Linux (no DP
> Alt Mode, no data, no hotplug detection), while working fully under
> Windows 11 on the same machine (dual boot).
> 
> System:
> - Kernel: 6.17.0-35-generic (Ubuntu 24.04.4)
> - BIOS/EC: Q7CN78WW (latest, issue also present on Q7CN33WW)
> - USB4 silicon: Intel Gen14, 8087:7ec2, firmware 15.1
> - Secure Boot: disabled
> 
> Symptoms:
> - /sys/class/typec shows port0 and port1. port0 works fully.
> - port1 gets a partner device enumerated at boot (PD 3.0,
>   supports_usb_power_delivery: yes) but number_of_alternate_modes
>   stays 0 and usb_power_delivery_revision reads 0.0.
> - No typec uevents are ever generated for port1 on plug/unplug
>   (verified with udevadm monitor; port0 generates remove/add/change
>   normally).
> - typec port1 never binds to usb4_port3; the "connector" symlink
>   under domain0/0-0/usb4_port3 is missing (port0 <-> usb4_port1
>   binds correctly).
> - dmesg is completely silent: no ucsi/PPM errors at all.
> 
> UCSI debugfs probing (/sys/kernel/debug/usb/ucsi/USBC000:00):
> 
> GET_CAPABILITY:
>   0x01300300012000020000040200000144
>   -> bNumConnectors = 2 (both connectors are exposed to the OS)
> 
> GET_CONNECTOR_STATUS connector 1 (working):
>   0x01300300012000011304b12c405b4000
> GET_CONNECTOR_STATUS connector 2 (broken):
>   0x01300300012000011304b12c405b0000
> 
> The responses are identical except the Connector Status Change
> field: 0x4000 (Connect Change) on connector 1, 0x0000 on connector 2,
> with a monitor attached to both ports. The EC appears to report
> connector 2's status when polled but never raises connection change
> events for it, so the event-driven ucsi driver never processes the
> port. Windows 11 (Microsoft UCSI connection manager, driver
> 10.0.26100.8521) handles the same port without issues, DP Alt Mode
> included.
> 
> Ruled out: BIOS/EC update to latest (Q7CN78WW), EC power drain,
> thunderbolt module reload, PCI remove/rescan of the USB4 NHI,
> ucsi_acpi/typec_ucsi reload (port1 never rebinds), kernels 6.14 and
> 6.17. No retimer firmware available via LVFS for this model.
> 
> Happy to provide acpidump, full sysfs dumps, or test patches.

Please report this to Lenovo. The FW really needs to report the
connector changes.

Thanks,

-- 
heikki

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: UCSI: no connector change events for connector 2 on Lenovo Legion Pro 7 16IAX10H (Arrow Lake-HX) — port functional in Windows
  2026-07-10 11:25 UCSI: no connector change events for connector 2 on Lenovo Legion Pro 7 16IAX10H (Arrow Lake-HX) — port functional in Windows Trabajos Iafast
  2026-07-10 11:59 ` Greg KH
@ 2026-07-13  9:46 ` Heikki Krogerus
  1 sibling, 0 replies; 6+ messages in thread
From: Heikki Krogerus @ 2026-07-13  9:46 UTC (permalink / raw)
  To: Trabajos Iafast; +Cc: linux-usb

On Fri, Jul 10, 2026 at 06:25:08AM -0500, Trabajos Iafast wrote:
> Hi,
> 
> I'd like to report a UCSI issue on a Lenovo Legion Pro 7 16IAX10H
> (model 83F5), Intel Core Ultra 9 275HX (Arrow Lake-HX), where one of
> the two side-mounted USB-C ports is non-functional under Linux (no DP
> Alt Mode, no data, no hotplug detection), while working fully under
> Windows 11 on the same machine (dual boot).
> 
> System:
> - Kernel: 6.17.0-35-generic (Ubuntu 24.04.4)
> - BIOS/EC: Q7CN78WW (latest, issue also present on Q7CN33WW)
> - USB4 silicon: Intel Gen14, 8087:7ec2, firmware 15.1
> - Secure Boot: disabled
> 
> Symptoms:
> - /sys/class/typec shows port0 and port1. port0 works fully.
> - port1 gets a partner device enumerated at boot (PD 3.0,
>   supports_usb_power_delivery: yes) but number_of_alternate_modes
>   stays 0 and usb_power_delivery_revision reads 0.0.
> - No typec uevents are ever generated for port1 on plug/unplug
>   (verified with udevadm monitor; port0 generates remove/add/change
>   normally).
> - typec port1 never binds to usb4_port3; the "connector" symlink
>   under domain0/0-0/usb4_port3 is missing (port0 <-> usb4_port1
>   binds correctly).
> - dmesg is completely silent: no ucsi/PPM errors at all.
> 
> UCSI debugfs probing (/sys/kernel/debug/usb/ucsi/USBC000:00):
> 
> GET_CAPABILITY:
>   0x01300300012000020000040200000144
>   -> bNumConnectors = 2 (both connectors are exposed to the OS)
> 
> GET_CONNECTOR_STATUS connector 1 (working):
>   0x01300300012000011304b12c405b4000
> GET_CONNECTOR_STATUS connector 2 (broken):
>   0x01300300012000011304b12c405b0000
> 
> The responses are identical except the Connector Status Change
> field: 0x4000 (Connect Change) on connector 1, 0x0000 on connector 2,
> with a monitor attached to both ports. The EC appears to report
> connector 2's status when polled but never raises connection change
> events for it, so the event-driven ucsi driver never processes the
> port. Windows 11 (Microsoft UCSI connection manager, driver
> 10.0.26100.8521) handles the same port without issues, DP Alt Mode
> included.
> 
> Ruled out: BIOS/EC update to latest (Q7CN78WW), EC power drain,
> thunderbolt module reload, PCI remove/rescan of the USB4 NHI,
> ucsi_acpi/typec_ucsi reload (port1 never rebinds), kernels 6.14 and
> 6.17. No retimer firmware available via LVFS for this model.
> 
> Happy to provide acpidump, full sysfs dumps, or test patches.

I'm seeing this mail in my inbox three times?

In any case, like I said before, please contact lenovo. The FW really
has to report the connector changes.

Thanks,

-- 
heikki

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-07-13  9:46 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-10 11:25 UCSI: no connector change events for connector 2 on Lenovo Legion Pro 7 16IAX10H (Arrow Lake-HX) — port functional in Windows Trabajos Iafast
2026-07-10 11:59 ` Greg KH
2026-07-10 12:30   ` Trabajos Iafast
2026-07-10 14:47     ` Trabajos Iafast
2026-07-13  9:46 ` Heikki Krogerus
     [not found] <CADvEaBKUBJito+rACRdrZ5xNwL7J=hHv2Cz5V+UjsEQOgj0ZTA@mail.gmail.com>
2026-07-13  9:44 ` Heikki Krogerus

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.