Skip to content

gc2: es: Add retry for unexpected VR IC_DEVICE_ID reads - #2759

Open
Joseph-Shih-ww wants to merge 1 commit into
facebook:mainfrom
Wiwynn:Mandy/gc2-es/JIRA-284-vr-retry
Open

gc2: es: Add retry for unexpected VR IC_DEVICE_ID reads#2759
Joseph-Shih-ww wants to merge 1 commit into
facebook:mainfrom
Wiwynn:Mandy/gc2-es/JIRA-284-vr-retry

Conversation

@Joseph-Shih-ww

Copy link
Copy Markdown
Contributor

[Task Description]

  • Related to GC20T5T7-284
  • BIC VR module detection may misidentify the populated VR IC when the PMBus IC_DEVICE_ID read returns an unexpected or unrecognized value.
  • Vendor analysis indicated that this may occur when a BIC reset interrupts an in-flight I2C transaction and the previous transaction does not complete with a STOP condition before IC_DEVICE_ID is read.
  • Add retry handling so BIC re-reads and re-matches IC_DEVICE_ID against known VR signatures before falling back to the default VR module type, reducing false detection caused by transient I2C read failures.

[Motivation]

  • detect_vr_module_via_pmbus() previously performed only one PMBus read of IC_DEVICE_ID.
  • If the read failed or the returned value did not match any known VR signature (TPS53689 / XDPE15284D / ISL69259), the function immediately fell back to VR_MODULE_ISL69259.
  • Because an I2C transaction can be interrupted by a BIC reset, a single failed or unexpected IC_DEVICE_ID read may be transient and should not be treated as conclusive.

[Design]

  • Wrap the IC_DEVICE_ID read-and-match flow in a retry loop with a maximum of 5 attempts.
  • Retry after a 50 ms delay when the PMBus read fails or the returned IC_DEVICE_ID does not match any known VR signature.
  • Add LOG_INF/LOG_ERR messages for successful detection, per-attempt read failures, and unrecognized IC_DEVICE_ID values for debugging.
  • Fall back to the existing default, VR_MODULE_ISL69259, only after all retry attempts are exhausted.

[Task Description]
- Related to GC20T5T7-284.
- BIC VR module detection may misidentify the populated VR IC when the PMBus IC_DEVICE_ID read returns an unexpected or unrecognized value.
- Vendor analysis indicated that this may occur when a BIC reset interrupts an in-flight I2C transaction and the previous transaction does not complete with a STOP condition before IC_DEVICE_ID is read.
- Add retry handling so BIC re-reads and re-matches IC_DEVICE_ID against known VR signatures before falling back to the default VR module type, reducing false detection caused by transient I2C read failures.

[Motivation]
- detect_vr_module_via_pmbus() previously performed only one PMBus read of IC_DEVICE_ID.
- If the read failed or the returned value did not match any known VR signature (TPS53689 / XDPE15284D / ISL69259), the function immediately fell back to VR_MODULE_ISL69259.
- Because an I2C transaction can be interrupted by a BIC reset, a single failed or unexpected IC_DEVICE_ID read may be transient and should not be treated as conclusive.

[Design]
- Wrap the IC_DEVICE_ID read-and-match flow in a retry loop with a maximum of 5 attempts.
- Retry after a 50 ms delay when the PMBus read fails or the returned IC_DEVICE_ID does not match any known VR signature.
- Add LOG_INF/LOG_ERR messages for successful detection, per-attempt read failures, and unrecognized IC_DEVICE_ID values for debugging.
- Fall back to the existing default, VR_MODULE_ISL69259, only after all retry attempts are exhausted.
@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Aug 13, 2026
@meta-codesync

meta-codesync Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

This pull request has been imported. If you are a Meta employee, you can view this in D115870568. (Because this pull request was imported automatically, there will not be any future comments.)

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

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants