Skip to content

FROMLIST: net: phy: qcom: qca808x: Add .get_rate_matching support - #252

Merged
Salendarsingh Gaud (sgaud-quic) merged 1 commit into
qualcomm-linux:qcom-6.18.yfrom
ayaan-anwar:qcom-6.18.y
Feb 11, 2026
Merged

FROMLIST: net: phy: qcom: qca808x: Add .get_rate_matching support#252
Salendarsingh Gaud (sgaud-quic) merged 1 commit into
qualcomm-linux:qcom-6.18.yfrom
ayaan-anwar:qcom-6.18.y

Conversation

@ayaan-anwar

Copy link
Copy Markdown
Contributor

IQ8 and IQ9 currently report support for only 2.5G due to a design mismatch between the QCA808X PHY and the stmmac MAC drivers. Historically, the stmmac driver has not supported dynamic switching of PHY interface modes, whereas the QCA808X requires switching between 2500BASE-X and SGMII for proper operation at lower link speeds.
Although the upstream community previously NACKed this specific change, a broader PCS rework is underway, and there is active discussion to properly address this behavior. Relevant discussions and context are shared in the links below, along with the associated QLIJIRA for exception approval.

QLIJIRA: QLIJIRA-100
QLI0.0-PR: qualcomm-linux/kernel-topics#642
CRs-Fixed: 4432813
Link: https://lore.kernel.org/netdev/20250914-qca808x_rate_match-v1-1-0f9e6a331c3b@oss.qualcomm.com/T/#u
Link: https://lore.kernel.org/netdev/aX4v499Zz0CymZI5@oss.qualcomm.com/#t
Link: https://lore.kernel.org/netdev/aXsLyb+x76%2FWaXcs@oss.qualcomm.com/

Add support for rate matching to the QCA8081 PHY driver to correctly
report its capabilities. Some boards[0][1] with this PHY currently
report support only for 2.5G.
Implement the .get_rate_matching callback to allow phylink to determine
the actual PHY capabilities and report them accurately.
Before:
# ethtool eth0
Settings for eth0:
Supported ports: [ ]
Supported link modes: 2500baseT/Full
Supported pause frame use: Symmetric Receive-only
...
After:
# ethtool eth0
Settings for eth0:
Supported ports: [ ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
Supported pause frame use: Symmetric Receive-only
...
[0] https://lore.kernel.org/all/20250905192350.1223812-3-umang.chheda@oss.qualcomm.com/
[1] https://lore.kernel.org/all/20250908-lemans-evk-bu-v4-12-5c319c696a7d@oss.qualcomm.com/
(cherry picked from commit d02d173)
Link: https://lore.kernel.org/netdev/20250914-qca808x_rate_match-v1-1-0f9e6a331c3b@oss.qualcomm.com/
Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
@qcom-sarohasa

Copy link
Copy Markdown

Change looks fine.
Reviewed-by: Sarosh Hasan sarosh.hasan@oss.qualcomm.com

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Casekaanapali-qrdlemans-evkqcs615-rideqcs6490-rb3gen2qcs8300-rideqcs9100-ride-r3sm8750-mtpx1e80100-crd
BT_FW_KMD_Service◻️❌ Fail◻️✅ Pass✅ Pass✅ Pass❌ Fail◻️
BT_ON_OFF◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass⚠️ skip◻️
BT_SCAN◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass⚠️ skip◻️
CPUFreq_Validation◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
CPU_affinity◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
DSP_AudioPD◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
Ethernet◻️⚠️ skip◻️⚠️ skip⚠️ skip⚠️ skip⚠️ skip◻️
Freq_Scaling◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass❌ Fail◻️
GIC◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
IPA◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
Interrupts◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
OpenCV◻️⚠️ skip◻️⚠️ skip⚠️ skip⚠️ skip⚠️ skip◻️
PCIe◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
Probe_Failure_Check◻️❌ Fail◻️✅ Pass✅ Pass✅ Pass❌ Fail◻️
RMNET◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
UFS_Validation◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
USBHost◻️❌ Fail◻️❌ Fail✅ Pass✅ Pass❌ Fail◻️
WiFi_Firmware_Driver◻️✅ Pass◻️❌ Fail✅ Pass✅ Pass⚠️ skip◻️
WiFi_OnOff◻️✅ Pass◻️❌ Fail✅ Pass✅ Pass⚠️ skip◻️
cdsp_remoteproc◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass❌ Fail◻️
hotplug◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
irq◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
kaslr◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
pinctrl◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
qcom_hwrng◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
remoteproc◻️✅ Pass◻️✅ Pass❌ Fail✅ Pass❌ Fail◻️
rngtest◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
shmbridge◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
smmu◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
watchdog◻️✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass◻️
wpss_remoteproc◻️✅ Pass◻️❌ Fail✅ Pass✅ Pass✅ Pass◻️

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Casekaanapali-qrdlemans-evkqcs615-rideqcs6490-rb3gen2qcs8300-rideqcs9100-ride-r3sm8750-mtpx1e80100-crd
BT_FW_KMD_Service◻️❌ Fail❌ Fail✅ Pass✅ Pass✅ Pass❌ Fail◻️
BT_ON_OFF◻️✅ Pass⚠️ skip✅ Pass✅ Pass✅ Pass⚠️ skip◻️
BT_SCAN◻️✅ Pass⚠️ skip✅ Pass✅ Pass✅ Pass⚠️ skip◻️
CPUFreq_Validation◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
CPU_affinity◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
DSP_AudioPD◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
Ethernet◻️⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip◻️
Freq_Scaling◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass❌ Fail◻️
GIC◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
IPA◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
Interrupts◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
OpenCV◻️⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip◻️
PCIe◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
Probe_Failure_Check◻️❌ Fail❌ Fail✅ Pass✅ Pass✅ Pass❌ Fail◻️
RMNET◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
UFS_Validation◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
USBHost◻️❌ Fail✅ Pass❌ Fail✅ Pass✅ Pass❌ Fail◻️
WiFi_Firmware_Driver◻️✅ Pass✅ Pass❌ Fail✅ Pass✅ Pass⚠️ skip◻️
WiFi_OnOff◻️✅ Pass⚠️ skip❌ Fail✅ Pass✅ Pass⚠️ skip◻️
cdsp_remoteproc◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass❌ Fail◻️
hotplug◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
irq◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
kaslr◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
pinctrl◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
qcom_hwrng◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
remoteproc◻️✅ Pass✅ Pass✅ Pass❌ Fail✅ Pass❌ Fail◻️
rngtest◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
shmbridge◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
smmu◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
watchdog◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
wpss_remoteproc◻️✅ Pass✅ Pass❌ Fail✅ Pass✅ Pass✅ Pass◻️

@sgaud-quic

Copy link
Copy Markdown
Contributor

wpss_remoteproc failed on rb3gen2 :

[ 356.766425][ T2024] remoteproc remoteproc2: can't start rproc wpss: -110
[ 356.778102][ T2024] remoteproc remoteproc2: Boot failed: -110
[INFO] 1970-01-01 00:06:15 - Dumping remoteproc2 [after-start-fail] → rproc_remoteproc2_after-start-fail_19700101_000615.log
[FAIL] 1970-01-01 00:06:15 - remoteproc2: start FAIL
[INFO] 1970-01-01 00:06:15 - Instance results:
remoteproc2: boot=PASS, stop=PASS, start=FAIL, ping=SKIPPED
[FAIL] 1970-01-01 00:06:15 - One or more wpss instance(s) failed (1)

@ayaan-anwar

Copy link
Copy Markdown
ContributorAuthor

Salendarsingh Gaud (@sgaud-quic), the PR should not affect remote proc functionality. Can you please help in requeuing the tests to rule out intermittent infra issues?

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Casekaanapali-qrdlemans-evkqcs615-rideqcs6490-rb3gen2qcs8300-rideqcs9100-ride-r3sm8750-mtpx1e80100-crd
BT_FW_KMD_Service◻️❌ Fail❌ Fail✅ Pass✅ Pass✅ Pass❌ Fail◻️
BT_ON_OFF◻️✅ Pass⚠️ skip✅ Pass✅ Pass✅ Pass⚠️ skip◻️
BT_SCAN◻️✅ Pass⚠️ skip✅ Pass✅ Pass✅ Pass⚠️ skip◻️
CPUFreq_Validation◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
CPU_affinity◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
DSP_AudioPD◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
Ethernet◻️⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip◻️
Freq_Scaling◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass❌ Fail◻️
GIC◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
IPA◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
Interrupts◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
OpenCV◻️⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip◻️
PCIe◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
Probe_Failure_Check◻️❌ Fail❌ Fail✅ Pass✅ Pass✅ Pass❌ Fail◻️
RMNET◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
UFS_Validation◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
USBHost◻️❌ Fail✅ Pass❌ Fail✅ Pass✅ Pass❌ Fail◻️
WiFi_Firmware_Driver◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass⚠️ skip◻️
WiFi_OnOff◻️✅ Pass⚠️ skip✅ Pass✅ Pass✅ Pass⚠️ skip◻️
cdsp_remoteproc◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass❌ Fail◻️
hotplug◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
irq◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
kaslr◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
pinctrl◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
qcom_hwrng◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
remoteproc◻️✅ Pass✅ Pass✅ Pass❌ Fail✅ Pass❌ Fail◻️
rngtest◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
shmbridge◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
smmu◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
watchdog◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
wpss_remoteproc◻️✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️

@sgaud-quic

Copy link
Copy Markdown
Contributor

Salendarsingh Gaud (@sgaud-quic), the PR should not affect remote proc functionality. Can you please help in requeuing the tests to rule out intermittent infra issues?

Passed in retry.

@sgaud-quic
Salendarsingh Gaud (sgaud-quic) merged commit c424fc5 into qualcomm-linux:qcom-6.18.yFeb 11, 2026
6 of 8 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@ayaan-anwar@qcom-sarohasa@qcomlnxci@sgaud-quic@shashim-quic