Skip to content

[Bug] Wrong parsing on monitor frequency #596

Description

@JarvisDong

What's wrong

WhatCable incorrectly treats the EDID vertical frequency range maximum (75 Hz) as the maximum refresh rate of the monitor’s native 3840×2160 mode. U24P10R supports 3840×2160 at 60 Hz, while its EDID reports a vertical scan range up to 75 Hz. This causes WhatCable to incorrectly calculate bandwidth for 4K75 and emit a false insufficient-bandwidth warning.

Mac model

M5 Pro MacBook Pro

macOS version

26.6.2

WhatCable version

1.4.0

Cable

A Thunderbolt/USB4 e-marker cable with Belkin International Thunderbolt4 5-in-1 Core Hub

What's plugged into the other end?

AOC U24P10R

whatcable --json --raw output

❯ whatcable --version
1.4.0
❯ whatcable --raw
=== Port-USB-C@3 (USB-C) ===
Thunderbolt / USB4 · 60W charger
Supports high-speed data, smart cable.

  • Linked at up to 20 Gb/s × 2
  • Connected to Belkin International Thunderbolt 4 5-in-1 Core Hub
  • Connected device: USB Hub, Belkin International, Inc. (0x050D) (PD 3.0)
  • Cable has an e-marker chip (advertises its capabilities)
  • Cable speed: USB 3.2 Gen 2 (10 Gbps)
  • Cable rated for 3 A at up to 20V (~60W)
  • Controller confirms Thunderbolt cable (40 Gbps capable)
  • E-marker reports passive. This is normal for Thunderbolt cables where the active electronics handle Thunderbolt, not USB.
  • Cable made by Lintes Technology Co., Ltd. (0x2B1D)
  • Charger advertises up to 60W
  • Currently negotiated: 20V @ 3.00A (60W)

Charging: Plugged in, charging on hold
  Charger and cable are fine. macOS has paused charging for now, usually a battery charge limit or Optimized Battery Charging. The Mac still draws power from the charger.

Data: Device runs at 40 Gbps
  This is the fastest the connected device supports. It is not a cable problem. The cable's e-marker and the Thunderbolt controller disagree on its speed. The controller measured a higher, confirmed rate, so that figure is used.

Display: Display running at full quality
  Your U24P10R is connected and the link has the bandwidth for its top mode. Nothing is holding the picture back.

Display: Monitor can do more than the link is carrying
  Your U24P10R can run up to 75Hz, which needs about 14.4 Gbps, but the link is currently carrying about 13.0 Gbps (2 of 4 lanes at 8.1 Gbps (HBR3)). The video is tunneled over Thunderbolt or USB4, so the cable carries far more than the display needs: this is unlikely to be the cable. It's most likely the resolution or refresh rate selected in Display settings, or this Mac's limit for this display. High-resolution displays often use compression (DSC) to fit their top mode through a link like this, so selecting the higher mode in Display settings may reach it normally.

Thunderbolt fabric:
  • Belkin International Thunderbolt 4 5-in-1 Core Hub - Up to 20 Gb/s × 2

Active tunnels:
  • Video → Belkin International Thunderbolt 4 5-in-1 Core Hub · adapter 13
  • Video → Belkin International Thunderbolt 4 5-in-1 Core Hub · adapter 14
  • PCIe data → Belkin International Thunderbolt 4 5-in-1 Core Hub · adapter 9

Connected devices:
  • Belkin International Thunderbolt 4 5-in-1 Core Hub - Thunderbolt link active at 40 Gbps
    ↳ Display: U24P10R
    ↳ Display: U24P10R
    ↳ USB2.0 Hub (Fresco Logic, Inc.) - High Speed (480 Mbps)
      ↳ USB2.1 Hub (GenesysLogic) - High Speed (480 Mbps)
        ↳ REALFORCE C1H (Topre) - Full Speed (12 Mbps)
      ↳ USB2.1 Hub (GenesysLogic) - High Speed (480 Mbps)
        ↳ U30 Air (Unisoc) - High Speed (480 Mbps)
      ↳ MCHOSE A7 Pro (RealTek) - Full Speed (12 Mbps)

Raw IOKit properties:
  AccessoryMode = 0
  ActiveCable = 0
  AppLoaded Count = 1
  AuthorizationPending = 0
  AuthorizationRequired = 1
  AutoMatched = 0
  Boot Flags = 41 02 10 00 01 80 03 1E 00 00 00 00
  BuiltIn = 1
  CFBundleIdentifier = com.apple.driver.AppleHPM
  CFBundleIdentifierKernel = com.apple.driver.AppleHPM
  ConnectionActive = 1
  ConnectionCount = 2
  Description = Port-USB-C@3
  DisplayPortPinAssignment = 0
  FW Version = 00 02 31 00
  FeaturesEnabled = [TRM, LDCM, Power In]
  FeaturesSupported = [TRM, LDCM, Power In]
  HChk = 63 00 00 00 00 00
  HPDAsserted = 0
  HPM Mode Block Active = 0
  IOAccessoryActivePowerMode = 1
  IOAccessoryDetect = 1
  IOAccessoryID = 89
  IOAccessoryManagerAllowedFeatures = 0
  IOAccessoryManagerSleepPower = 0
  IOAccessoryManagerType = 3
  IOAccessoryPowerCurrentLimits = [0, 0, 0, 0, 0]
  IOAccessoryPowerMode = 3
  IOAccessoryPrimaryDevicePort = 259
  IOAccessorySleepPowerCurrentLimit = 0
  IOAccessorySupportedPowerModes = [1, 3]
  IOAccessoryUSBActive = 1
  IOAccessoryUSBConnectString = Device
  IOAccessoryUSBConnectType = 4
  IOAccessoryUSBConnectTypePublished = 4
  IOAccessoryUSBModeType = 2
  IOAccessoryUSBSuperSpeedActive = 0
  IOClass = AppleHPMInterfaceType10
  IOFunctionParent000003B2 =
  IOGeneralInterest = IOCommand is not serializable
  IOMatchCategory = IODefaultMatchCategory
  IOMatchedAtBoot = 1
  IOPersonalityPublisher = com.apple.driver.AppleHPM
  IOPowerManagement = {CapabilityFlags: 32768, CurrentPowerState: 1, DevicePowerState: 1, MaxPowerState: 1}
  IOProbeScore = 110
  IOProviderClass = AppleHPMDeviceHAL
  IOUserClientClass = IOAccessoryManagerUserClient
  LDCMPin = 1
  LDCMPinDescription = Reference
  LDCM_LiquidDetected = 0
  LDCM_MeasurementStatus = 0
  LDCM_MeasurementStatusDescription = No Error
  LDCM_MitigationsEnabled = 0
  LDCM_State = 1
  LDCM_StateDescription = Idle
  LDCM_UserOverrideActive = 0
  Metadata = {}
  OpticalCable = 0
  Overcurrent Count = 0
  Pin Configuration = {rx1: 12, rx2: 10, sbu1: 3, sbu2: 4, tx1: 11, tx2: 9}
  Plug Event Count = 3
  PlugOrientation = 2
  PortDescription = Port-USB-C@3
  PortNumber = 3
  PortType = 2
  PortTypeDescription = USB-C
  SOP UVDM Update Count = 2
  SOPMfgString = Cypress
  SOPPID = 6E 00
  SOPVID = 0D 05
  TransportsActive = [CC, USB2, CIO]
  TransportsProvisioned = [CC, USB2, CIO]
  TransportsSupported = [CC, USB2, USB3, CIO, DisplayPort]
  TransportsUnauthorized = []
  UserAuthorizationPending = 0
  UserAuthorizationStatus = 1
  UserAuthorizationStatusDescription = No Action

=== Port-MagSafe 3@1 (MagSafe 3) ===
Nothing connected
Plug a cable into Port-MagSafe 3@1 to see what it can do.

System Information cross-check (optional)

No response

How often does this happen?

Every time

Anything else

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions