Skip to content

WORKAROUND: Gdsc synced poweroff disable patches for QCS615#724

Open
Kriskura176767 wants to merge 4 commits into
qualcomm-linux:qcom-6.18.yfrom
Kriskura176767:gdscpatches
Open

WORKAROUND: Gdsc synced poweroff disable patches for QCS615#724
Kriskura176767 wants to merge 4 commits into
qualcomm-linux:qcom-6.18.yfrom
Kriskura176767:gdscpatches

Conversation

@Kriskura176767

Copy link
Copy Markdown
Contributor

Add support to keep GDSC On during host mode bus suspend

On targets pre-sm8750, when DUT enters bus suspend in host mode, there is a xHCI crash seen on resume. During bus susend use case if the device is wakeup capable, the GDSC needs to be kept ON to retain memory and avoid SMMU faults. Set synced_poweroff flag to false to ensure GDSC is turned OFF during cable disconnect or non-bus suspend host mode scenario.

CRs-Fixed: 4492412

The GX GDSC is a special power domain that should only be disabled
by OS during GMU recovery. In all other scenarios, the GMU firmware
is responsible for handling its disable sequence, and OS must not
interfere.

During the resume_noirq() phase of system resume, the GenPD framework
enables all power domains and later disables them in the complete()
phase if there are no active votes from OS. This behavior can
incorrectly disable the GX GDSC while the GMU firmware is still using
it.

To prevent this, implement a custom disable callback for GX GDSC that
relies on GenPD’s synced_poweroff flag. The GMU driver sets this flag
only during recovery, allowing OS to explicitly disable GX GDSC in
hardware in that case. In all other situations, the disable callback
will avoid touching GX GDSC hardware.

Signed-off-by: Jagadeesh Kona <jagadeesh.kona@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260427-gfx-clk-fixes-v2-1-797e54b3d464@oss.qualcomm.com
Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
@Kriskura176767 Kriskura176767 requested review from a team, aiquny, idlethread and ndechesne June 16, 2026 13:09
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No Change Task Found

No associated change tasks found for CR 4492412 on any of the following entities:

Entities:

  • kernel.qli.2.0

CR: 4492412

Please ensure the CR has a change task associated with at least one of the entities for this branch.

@Kriskura176767

Copy link
Copy Markdown
Contributor Author

"qli-2.0 GA Critical Fix"

@qlijarvis

Copy link
Copy Markdown

PR #724 — validate-patch

PR: #724

Verdict Issues Detailed Report
⚠️ 1 Full report

Final Summary

  1. Lore link present: Yes for patch 1/4 (https://lore.kernel.org/r/20260427-gfx-clk-fixes-v2-1-797e54b3d464@oss.qualcomm.com); No for patches 2-4 (PENDING prefix indicates vendor-only changes not posted upstream)

  2. Lore link matches PR commits: Cannot verify - network access to lore.kernel.org is restricted; unable to fetch upstream patch for comparison

  3. Upstream patch status: Patch 1/4: In review (FROMLIST prefix indicates posted but not yet merged); Patches 2-4: Not upstream (PENDING prefix indicates vendor-only extensions)

  4. PR present in qcom-next: Not checked - no kernel source tree available in read-only environment

Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #724
Patches: 4 commits (1 FROMLIST, 3 PENDING)
Verdict: ⚠️ PARTIAL


Patch 1/4: FROMLIST: clk: qcom: gdsc: Add custom disable callback for GX GDSC

Upstream commit: https://lore.kernel.org/r/20260427-gfx-clk-fixes-v2-1-797e54b3d464@oss.qualcomm.com

Commit Message

Check Status Note
Subject matches upstream ⚠️ Cannot verify - network restricted; lore.kernel.org unreachable
Body preserves rationale Comprehensive explanation of GX GDSC special handling
Fixes tag present/correct N/A No Fixes tag (new feature, not a fix)
Authorship preserved Jagadeesh Kona jagadeesh.kona@oss.qualcomm.com
Backport note (if applicable) N/A FROMLIST prefix indicates pending upstream acceptance

Diff

File Status Notes
drivers/clk/qcom/gdsc.c ⚠️ Cannot verify against upstream - network restricted
drivers/clk/qcom/gdsc.h ⚠️ Cannot verify against upstream - network restricted

Trailers

  • ✅ Signed-off-by: Jagadeesh Kona (author)
  • ✅ Reviewed-by: Konrad Dybcio
  • ✅ Link: lore.kernel.org reference present
  • ✅ Signed-off-by: Taniya Das (committer/maintainer)

Patch 2/4: PENDING: clk: qcom: gdsc: Conditionally disable GDSC if synced_poweroff flag is set

Upstream commit: N/A (PENDING prefix)

Commit Message

Check Status Note
Subject matches upstream N/A PENDING - not posted upstream
Body preserves rationale Explains USB/PCIE GDSC suspend requirements
Fixes tag present/correct N/A New feature, not a fix
Authorship preserved Jagadeesh Kona jagadeesh.kona@oss.qualcomm.com
Backport note (if applicable) N/A PENDING - vendor extension

Diff

File Status Notes
drivers/clk/qcom/gdsc.h Adds macro alias gdsc_synced_poweroff_disable

Issues

  • Typo in commit message: "explictly" should be "explicitly"

Patch 3/4: PENDING: clk: qcom: gcc: Use gdsc_synced_poweroff_disable for USB, PCIE GDSC's

Upstream commit: N/A (PENDING prefix)

Commit Message

Check Status Note
Subject matches upstream N/A PENDING - not posted upstream
Body preserves rationale Explains qcs615 USB/PCIE GDSC usage
Fixes tag present/correct N/A New feature, not a fix
Authorship preserved Jagadeesh Kona jagadeesh.kona@oss.qualcomm.com
Backport note (if applicable) N/A PENDING - vendor extension

Diff

File Status Notes
drivers/clk/qcom/gcc-qcs615.c Applies callback to pcie_0, usb20_sec, usb30_prim GDSCs

Issues

  • Typo in commit message: "explictly" should be "explicitly"

Patch 4/4: PENDING: usb: dwc3: qcom: Add support to keep GDSC On during host mode bus suspend

Upstream commit: N/A (PENDING prefix)

Commit Message

Check Status Note
Subject matches upstream N/A PENDING - not posted upstream
Body preserves rationale Explains xHCI crash workaround for pre-sm8750 targets
Fixes tag present/correct N/A Workaround, not a fix
Authorship preserved Krishna Kurapati krishna.kurapati@oss.qualcomm.com
Backport note (if applicable) N/A PENDING - vendor extension

Diff

File Status Notes
drivers/usb/dwc3/dwc3-qcom.c Adds pm_domain.h include and synced_poweroff call

Issues

  • Typo in commit message: "susend" should be "suspend"
  • ⚠️ Grammar: "there is a xHCI crash" should be "there is an xHCI crash"

Overall Issues

Commit Message Quality:

  1. ❌ Patch 2/4: Typo "explictly" → "explicitly"
  2. ❌ Patch 3/4: Typo "explictly" → "explicitly"
  3. ❌ Patch 4/4: Typo "susend" → "suspend"
  4. ⚠️ Patch 4/4: Grammar "a xHCI" → "an xHCI"

Diff Correctness:

  • ✅ All diffs are syntactically correct
  • ✅ Logical dependency chain: Patch 1 adds gdsc_gx_disable(), Patch 2 aliases it, Patch 3 uses alias, Patch 4 calls the API
  • ✅ No obvious functional issues in code changes

Upstream Alignment:

  • ⚠️ Patch 1/4: Cannot verify faithfulness to upstream due to network restrictions
  • ✅ Patches 2-4: PENDING prefix correctly indicates vendor-only changes

Verdict

Merge with corrections required. The patch series is functionally sound and follows a logical progression, but contains spelling and grammar errors in commit messages that should be fixed before merging:

  1. Fix "explictly" → "explicitly" in patches 2/4 and 3/4
  2. Fix "susend" → "suspend" in patch 4/4
  3. Fix "a xHCI" → "an xHCI" in patch 4/4

The FROMLIST patch (1/4) cannot be fully validated against upstream due to network restrictions, but appears structurally correct with proper trailers and lore link.


Final Summary

  1. Lore link present: Yes for patch 1/4 (https://lore.kernel.org/r/20260427-gfx-clk-fixes-v2-1-797e54b3d464@oss.qualcomm.com); No for patches 2-4 (PENDING prefix indicates vendor-only changes not posted upstream)

  2. Lore link matches PR commits: Cannot verify - network access to lore.kernel.org is restricted; unable to fetch upstream patch for comparison

  3. Upstream patch status: Patch 1/4: In review (FROMLIST prefix indicates posted but not yet merged); Patches 2-4: Not upstream (PENDING prefix indicates vendor-only extensions)

  4. PR present in qcom-next: Not checked - no kernel source tree available in read-only environment

@qlijarvis

Copy link
Copy Markdown

PR #724 — checker-log-analyzer

PR: #724
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/27619987491

Checker Result Summary
Checker Result Summary
checkpatch 1 warning: typo 'explictly' → 'explicitly' in commit 58b3389
dt-binding-check ⏭️ No DT binding changes
dtb-check ⏭️ No devicetree changes
sparse-check Passed
check-uapi-headers No UAPI header changes
check-patch-compliance 3 commits missing required prefix (PENDING: not allowed)
tag-check N/A Not applicable for qcom-6.18.y
qcom-next-check N/A Not applicable for qcom-6.18.y

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #724 - clk: qcom: gdsc: Add custom disable callback for GX GDSC
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/27619987491

Checker Result Summary
checkpatch 1 warning: typo 'explictly' → 'explicitly' in commit 58b3389
dt-binding-check ⏭️ No DT binding changes
dtb-check ⏭️ No devicetree changes
sparse-check Passed
check-uapi-headers No UAPI header changes
check-patch-compliance 3 commits missing required prefix (PENDING: not allowed)
tag-check N/A Not applicable for qcom-6.18.y
qcom-next-check N/A Not applicable for qcom-6.18.y

❌ checkpatch

Root cause: Typo in commit message of commit 58b3389

Failure details:

WARNING: 'explictly' may be misspelled - perhaps 'explicitly'?
#9: 
explictly invoke dev_pm_genpd_synced_poweroff() API before suspend.
^^^^^^^^^

58b3389541093927a1a15c63b22fcfd0b0d53cba total: 0 errors, 1 warnings, 0 checks, 21 lines checked

Fix: Change explictly to explicitly in the commit message of commit 58b3389 ("PENDING: clk: qcom: gcc: Use gdsc_synced_poweroff_disable for USB, PCIE GDSC's")

Reproduce locally:

./scripts/checkpatch.pl --strict --summary-file --ignore FILE_PATH_CHANGES --git 360986b713f88d182fb17fdf5decedf665a77834..9dd85e5eb7e4b2653c71a2cfbce6c63fb1e7f36d

❌ check-patch-compliance

Root cause: Three commits use PENDING: prefix which is not a recognized upstream prefix

Failure details:

Checking commit: PENDING: clk: qcom: gdsc: Conditionally disable GDSC if synced_poweroff flag is set
Commit summary does not start with a required prefix

Checking commit: PENDING: clk: qcom: gcc: Use gdsc_synced_poweroff_disable for USB, PCIE GDSC's
Commit summary does not start with a required prefix

Checking commit: PENDING: usb: dwc3: qcom: Add support to keep GDSC On during host mode bus suspend
Commit summary does not start with a required prefix

Fix: The PENDING: prefix is not recognized by the checker. For internal Qualcomm branches like qcom-6.18.y, commits should use one of these prefixes:

  • FROMLIST: - for patches posted to upstream mailing lists
  • UPSTREAM: - for patches already merged upstream
  • BACKPORT: - for backported patches
  • Or no prefix for internal-only changes

Since these are internal changes not yet posted upstream, you have two options:

  1. Remove the PENDING: prefix entirely
  2. Replace PENDING: with FROMLIST: if you plan to submit these upstream

Reproduce locally:

# The check-patch-compliance.sh script validates commit prefixes
# It expects FROMLIST:, UPSTREAM:, or BACKPORT: for qcom branches

Verdict

2 blockers must be fixed before merge:

  1. checkpatch warning: Fix typo explictlyexplicitly in commit 58b3389
  2. check-patch-compliance failure: Remove or replace PENDING: prefix on commits 2, 3, and 4

All other checkers passed or were skipped (no relevant changes). Once these two issues are resolved, the PR will be ready to merge.

…eroff flag is set

USB, PCIE GDSCs require the GDSC to left ON in USB host mode and PCIE
non-D3 cold usecases even during system suspend. To handle this use the
GenPD's synced_poweroff flag which can be set by USB/PCIE drivers if
they require the GDSC to be disabled before suspend. If the GDSC is
required to be left ON, the USB/PCIE drivers can avoid setting this
flag before suspend. Add support for custom gdsc disable callback that
disables GDSC based on GenPD's synced_poweroff flag.

Signed-off-by: Jagadeesh Kona <jagadeesh.kona@oss.qualcomm.com>
@Kriskura176767 Kriskura176767 changed the title Gdsc synced poweroff disable patches for QCS615 WORKAROUND: Gdsc synced poweroff disable patches for QCS615 Jun 16, 2026
@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Case lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 x1e80100-crd
BT_FW_KMD_Service ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
BT_ON_OFF ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
BT_SCAN ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
CPUFreq_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
CPU_affinity ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
DSP_AudioPD ✅ Pass ✅ Pass ⚠️ skip ✅ Pass ✅ Pass ⚠️ skip ◻️
Ethernet ⚠️ skip ✅ Pass ⚠️ skip ⚠️ skip ⚠️ skip ⚠️ skip ◻️
Freq_Scaling ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
GIC ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
IPA ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
Interrupts ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
OpenCV ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
PCIe ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
Probe_Failure_Check ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ◻️
RMNET ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
UFS_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
USBHost ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ◻️
WiFi_Firmware_Driver ❌ Fail ❌ Fail ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
WiFi_OnOff ✅ Pass ❌ Fail ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
adsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️
cdsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️
gpdsp_remoteproc ✅ Pass ✅ Pass ⚠️ skip ⚠️ skip ✅ 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 ✅ Pass ✅ Pass ❌ Fail ◻️
rngtest ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
shmbridge ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
smmu ❌ Fail ✅ Pass ❌ Fail ✅ Pass ✅ Pass ❌ Fail ◻️
watchdog ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
wpss_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️

@psarma-qcom

Copy link
Copy Markdown

"qli-2.0 GA Critical Fix"

kona-jagadeesh and others added 2 commits June 17, 2026 14:22
…GDSC's

Use gdsc_synced_poweroff_disable callback for USB GDSC's on qcs615
platforms so these GDSC's get disabled only when consumer drivers
explicitly invoke dev_pm_genpd_synced_poweroff() API before suspend.

Signed-off-by: Jagadeesh Kona <jagadeesh.kona@oss.qualcomm.com>
…mode bus suspend

On targets pre-sm8750, when DUT enters bus suspend in host mode, there is
a xHCI crash seen on resume. During bus susend use case if the device is
wakeup capable, the GDSC needs to be kept ON to retain memory and avoid
SMMU faults. Set synced_poweroff flag to false to ensure GDSC is turned
OFF during cable disconnect or non-bus suspend host mode scenario.

Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
@Kriskura176767

Copy link
Copy Markdown
Contributor Author

Exception for 2.0 : https://jira-dc.qualcomm.com/jira/browse/QLIJIRA-137

@qlijarvis

Copy link
Copy Markdown

PR #724 — validate-patch

PR: #724

Verdict Issues Detailed Report
⚠️ 3 Full report

Final Summary

  1. Lore link present: Not provided in agent output
  2. Lore link matches PR commits: Not provided in agent output
  3. Upstream patch status: Not provided in agent output
  4. PR present in qcom-next: Not provided in agent output
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #724 - GX GDSC and USB GDSC power management fixes
Upstream commit: https://lore.kernel.org/r/20260427-gfx-clk-fixes-v2-1-797e54b3d464@oss.qualcomm.com (patch 1/4 only)
Verdict: ⚠️ PARTIAL


Patch 1/4: FROMLIST: clk: qcom: gdsc: Add custom disable callback for GX GDSC

Commit Message

Check Status Note
Subject matches upstream FROMLIST: prefix correct for patches under review
Body preserves rationale Complete explanation of GX GDSC special handling
Fixes tag present/correct N/A Not a fix; new feature for GMU recovery
Authorship preserved Original author Jagadeesh Kona preserved
Backport note (if applicable) N/A FROMLIST indicates patch is in review, not yet merged

Diff

File Status Notes
drivers/clk/qcom/gdsc.c Adds gdsc_gx_disable() with synced_poweroff logic
drivers/clk/qcom/gdsc.h Adds function declaration

Analysis

  • Lore link present: Yes — Link tag points to v2 series on lore
  • Reviewed-by: Konrad Dybcio present
  • Signed-off-by chain: Author → Maintainer (Taniya Das) — correct
  • Code quality: Clean implementation with detailed comment explaining GX GDSC special case
  • Upstream status: Cannot verify (network restricted) but FROMLIST: prefix indicates under review

Patch 2/4: WORKAROUND: clk: qcom: gdsc: Conditionally disable GDSC if synced_poweroff flag is set

Commit Message

Check Status Note
Subject matches upstream N/A WORKAROUND: prefix — vendor-only patch
Body preserves rationale ⚠️ Explains USB/PCIE use case but lacks detail
Fixes tag present/correct N/A Not a fix
Authorship preserved Jagadeesh Kona
Backport note (if applicable) N/A Vendor workaround

Diff

File Status Notes
drivers/clk/qcom/gdsc.h ⚠️ Adds #define alias; reuses gdsc_gx_disable for different purpose

Issues

  • Semantic overload: The patch reuses gdsc_gx_disable() (designed for GX GDSC GMU recovery) for USB/PCIE suspend scenarios via a #define alias. This conflates two different use cases:
    • GX GDSC: Disable only during GMU recovery
    • USB/PCIE GDSC: Disable only when driver explicitly requests via synced_poweroff
  • Missing rationale: Commit message doesn't explain why a new function wasn't created or why reusing GX logic is safe
  • No upstream path: WORKAROUND: prefix indicates this is not intended for upstream

Patch 3/4: WORKAROUND: clk: qcom: gcc: Use gdsc_synced_poweroff_disable for USB GDSC's

Commit Message

Check Status Note
Subject matches upstream N/A WORKAROUND: prefix — vendor-only
Body preserves rationale ⚠️ Brief explanation; lacks detail on why qcs615 specific
Fixes tag present/correct N/A Not a fix
Authorship preserved Jagadeesh Kona
Backport note (if applicable) N/A Vendor workaround

Diff

File Status Notes
drivers/clk/qcom/gcc-qcs615.c Assigns custom power_off callback to USB GDSCs

Issues

  • Platform specificity: Only applies to qcs615; commit message doesn't explain if other platforms need similar treatment
  • Dependency on patch 2/4: Relies on the #define alias from previous patch

Patch 4/4: WORKAROUND: usb: dwc3: qcom: Add support to keep GDSC On during host mode bus suspend

Commit Message

Check Status Note
Subject matches upstream N/A WORKAROUND: prefix — vendor-only
Body preserves rationale ⚠️ Mentions xHCI crash and SMMU faults but lacks detail
Fixes tag present/correct Should reference the crash/bug being worked around
Authorship preserved Krishna Kurapati
Backport note (if applicable) N/A Vendor workaround

Diff

File Status Notes
drivers/usb/dwc3/dwc3-qcom.c ⚠️ Adds synced_poweroff call in else branch only

Issues

  • Logic concern: dev_pm_genpd_synced_poweroff() is called in the else branch (when device is NOT wakeup capable). The commit message states "if the device is wakeup capable, the GDSC needs to be kept ON" — but the code does the opposite: it calls synced_poweroff when NOT wakeup capable
  • Missing header check: Adds #include <linux/pm_domain.h> but doesn't verify if dev_pm_genpd_synced_poweroff() is the correct API
  • Platform scope: "On targets pre-sm8750" — unclear if this should be conditional or applies to all qcom platforms
  • Missing Fixes tag: Should reference the commit that introduced the xHCI crash

Overall Issues

  1. Semantic confusion: Patches 2-4 repurpose the GX GDSC disable logic (patch 1/4) for USB/PCIE use cases without clear justification
  2. Logic error in patch 4/4: The synced_poweroff call appears to be in the wrong branch based on commit message
  3. Incomplete commit messages: WORKAROUND patches lack sufficient detail for future maintainers
  4. No upstream path: 3 of 4 patches are vendor workarounds with no clear upstream strategy

Verdict

Patch 1/4: ✅ Ready to merge — well-structured FROMLIST patch with proper review tags

Patches 2-4: ⚠️ Need revision:

  • Patch 4/4 has a logic error (synced_poweroff in wrong branch)
  • Patch 2/4 needs justification for reusing GX GDSC logic
  • All WORKAROUND patches need more detailed commit messages

Final Summary

Patch 1/4 (FROMLIST)

  1. Lore link present: Yes — https://lore.kernel.org/r/20260427-gfx-clk-fixes-v2-1-797e54b3d464@oss.qualcomm.com
  2. Lore link matches PR commits: Cannot verify (network restricted) — but commit has proper Link tag and review chain
  3. Upstream patch status: In review — FROMLIST: prefix indicates posted but not yet merged
  4. PR present in qcom-next: Not checked — network restricted

Patches 2-4 (WORKAROUND)

  1. Lore link present: No — WORKAROUND: prefix; no lore link expected or required
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: N/A — vendor-only workarounds, not posted upstream
  4. PR present in qcom-next: Not checked — WORKAROUND: vendor-only commits

Recommendation

  • Merge patch 1/4 as-is (pending upstream acceptance)
  • Block patches 2-4 until:
    • Logic error in patch 4/4 is fixed (synced_poweroff branch)
    • Commit messages are enhanced with more detail
    • Justification for reusing GX GDSC logic is provided

@qlijarvis

Copy link
Copy Markdown

PR #724 — checker-log-analyzer

PR: #724
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/27677532318

Checker Result Summary
Checker Result Summary
checkpatch All 4 commits passed with 0 errors, 0 warnings
dt-binding-check ⏭️ Skipped - no changes in Documentation/devicetree/bindings
dtb-check ⏭️ Skipped - no changes in arch/arm64/boot/dts/
sparse-check Build completed successfully with sparse checks
check-uapi-headers No changes to UAPI headers
check-patch-compliance 3 commits use invalid "WORKAROUND:" prefix
tag-check N/A Not applicable for this branch
qcom-next-check FROMLIST: commit properly tagged

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #724 - GX GDSC custom disable callback and USB GDSC workarounds
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/27677532318

Checker Result Summary
checkpatch All 4 commits passed with 0 errors, 0 warnings
dt-binding-check ⏭️ Skipped - no changes in Documentation/devicetree/bindings
dtb-check ⏭️ Skipped - no changes in arch/arm64/boot/dts/
sparse-check Build completed successfully with sparse checks
check-uapi-headers No changes to UAPI headers
check-patch-compliance 3 commits use invalid "WORKAROUND:" prefix
tag-check N/A Not applicable for this branch
qcom-next-check FROMLIST: commit properly tagged

❌ check-patch-compliance

Root cause: Three commits use the "WORKAROUND:" prefix which is not a recognized commit subject prefix in the Qualcomm Linux kernel workflow.

Failure details:

Checking commit: WORKAROUND: clk: qcom: gdsc: Conditionally disable GDSC if synced_poweroff flag is set
Commit summary does not start with a required prefix

Checking commit: WORKAROUND: clk: qcom: gcc: Use gdsc_synced_poweroff_disable for USB GDSC's
Commit summary does not start with a required prefix

Checking commit: WORKAROUND: usb: dwc3: qcom: Add support to keep GDSC On during host mode bus suspend
Commit summary does not start with a required prefix

Fix: Replace the "WORKAROUND:" prefix with one of the recognized prefixes:

  • FROMLIST: - For patches posted to upstream mailing lists but not yet merged
  • UPSTREAM: - For patches already merged in upstream Linux
  • BACKPORT: - For backported patches from newer kernel versions
  • DOWNSTREAM: - For Qualcomm-specific patches not intended for upstream

Since these appear to be temporary workarounds for issues being addressed by the first FROMLIST patch, the recommended approach is:

  1. If these workarounds are temporary and will be removed once the upstream patch is merged, use DOWNSTREAM: prefix
  2. If these are intended to go upstream eventually, post them to the mailing list first and use FROMLIST: prefix
  3. Consider whether these workarounds are actually needed or if the first patch alone is sufficient

Example fix for commit 2:

Before: WORKAROUND: clk: qcom: gdsc: Conditionally disable GDSC if synced_poweroff flag is set
After:  DOWNSTREAM: clk: qcom: gdsc: Conditionally disable GDSC if synced_poweroff flag is set

Reproduce locally:

git clone https://github.com/qualcomm-linux/kernel-checkers.git
cd kernel-checkers
./check-patch-compliance.sh --kernel-src /path/to/kernel --base 360986b713f88d182fb17fdf5decedf665a77834 --head 5ef7ddfa0e0e2f9ef9688507b452901dd73921f8

Verdict

3 blockers to fix: All three commits with "WORKAROUND:" prefix must be updated to use a recognized prefix (FROMLIST:, UPSTREAM:, BACKPORT:, or DOWNSTREAM:) before this PR can be merged.

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Case lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 x1e80100-crd
BT_FW_KMD_Service ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
BT_ON_OFF ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
BT_SCAN ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
CPUFreq_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
CPU_affinity ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
DSP_AudioPD ✅ Pass ✅ Pass ⚠️ skip ✅ Pass ✅ Pass ⚠️ skip ◻️
Ethernet ⚠️ skip ✅ Pass ⚠️ skip ⚠️ skip ⚠️ skip ⚠️ skip ◻️
Freq_Scaling ✅ Pass ✅ Pass ✅ Pass ❌ Fail ✅ Pass ✅ Pass ◻️
GIC ✅ Pass ✅ Pass ✅ Pass ❌ Fail ✅ Pass ✅ Pass ◻️
IPA ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
Interrupts ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
OpenCV ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
PCIe ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
Probe_Failure_Check ❌ Fail ❌ Fail ✅ Pass ❌ Fail ❌ Fail ❌ Fail ◻️
RMNET ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
UFS_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
USBHost ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ◻️
WiFi_Firmware_Driver ❌ Fail ❌ Fail ❌ Fail ✅ Pass ✅ Pass ✅ Pass ◻️
WiFi_OnOff ✅ Pass ❌ Fail ⚠️ skip ✅ Pass ✅ Pass ✅ Pass ◻️
adsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️
cdsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️
gpdsp_remoteproc ✅ Pass ✅ Pass ⚠️ skip ⚠️ skip ✅ 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 ✅ Pass ✅ Pass ❌ Fail ◻️
rngtest ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
shmbridge ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
smmu ❌ Fail ✅ Pass ❌ Fail ✅ Pass ✅ Pass ❌ Fail ◻️
watchdog ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
wpss_remoteproc ✅ Pass ✅ Pass ⚠️ skip ✅ Pass ✅ Pass ✅ Pass ◻️

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Case lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 x1e80100-crd
BT_FW_KMD_Service ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
BT_ON_OFF ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
BT_SCAN ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
CPUFreq_Validation ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
CPU_affinity ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
DSP_AudioPD ✅ Pass ✅ Pass ⚠️ skip ◻️ ✅ Pass ⚠️ skip ◻️
Ethernet ⚠️ skip ✅ Pass ⚠️ skip ◻️ ⚠️ skip ⚠️ skip ◻️
Freq_Scaling ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
GIC ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
IPA ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
Interrupts ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
OpenCV ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
PCIe ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
Probe_Failure_Check ❌ Fail ❌ Fail ✅ Pass ◻️ ❌ Fail ❌ Fail ◻️
RMNET ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
UFS_Validation ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
USBHost ❌ Fail ❌ Fail ❌ Fail ◻️ ❌ Fail ❌ Fail ◻️
WiFi_Firmware_Driver ❌ Fail ❌ Fail ❌ Fail ◻️ ✅ Pass ✅ Pass ◻️
WiFi_OnOff ✅ Pass ❌ Fail ⚠️ skip ◻️ ✅ Pass ✅ Pass ◻️
adsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ❌ Fail ◻️
cdsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ❌ Fail ◻️
gpdsp_remoteproc ✅ Pass ✅ Pass ⚠️ skip ◻️ ✅ 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 ✅ Pass ◻️ ✅ Pass ❌ Fail ◻️
rngtest ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
shmbridge ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
smmu ❌ Fail ✅ Pass ❌ Fail ◻️ ✅ Pass ❌ Fail ◻️
watchdog ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass ◻️
wpss_remoteproc ✅ Pass ✅ Pass ⚠️ skip ◻️ ✅ Pass ✅ Pass ◻️

Sign up for free to 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.

6 participants