Skip to content

fix: switch Pocket DS lower panel to ST7703 - #10

Open
pacoa-kdbg wants to merge 6 commits into
armada-os:mainfrom
pacoa-kdbg:fix/pocket-ds-dsi2-panel
Open

fix: switch Pocket DS lower panel to ST7703#10
pacoa-kdbg wants to merge 6 commits into
armada-os:mainfrom
pacoa-kdbg:fix/pocket-ds-dsi2-panel

Conversation

@pacoa-kdbg

@pacoa-kdbg pacoa-kdbg commented Jul 26, 2026

Copy link
Copy Markdown

Summary

Switch the AYANEO Pocket DS lower panel from the bespoke generated panel-ar11-5inch/AR11 path to the Sitronix ST7703 panel path, and model the lower-panel power/backlight rails so Game Mode can actually make the bottom screen dark.

Changes:

  • Replace the old Pocket DS lower-panel compatible with ayaneo,pocket-ds-lower-panel handled by the ST7703 panel driver.
  • Update Pocket DS DTS wiring:
    • vcc-supply = <&sgm3804>
    • iovcc-supply = <&vreg_panel1_iovcc>
    • vreg_panel1_iovcc wraps TCA6408 GPIO0 as a fixed 1.8 V regulator
    • lower panel remains wired to the SY7758 backlight provider
    • old bespoke enable-gpio path is removed
  • Enable CONFIG_DRM_PANEL_SITRONIX_ST7703 and drop the obsolete AR11 panel config request.
  • Make the SY7758 enable GPIO optional: Pocket DS can probe the SY7758 without a separately-described enable pin, and the first live test proved requiring one blocked the whole lower DSI chain.
  • Add static Pocket DS lower-backlight/DTS tests that apply the DTS edit patch locally.

Companion PR

Test Plan

  • bash tests/pocket-ds-bottom-backlight-test.sh static
    • Pocket DS bottom-backlight static checks passed
  • bash tests/pocket-ds-dsi2-dts-test.sh
    • Pocket DS ST7703 lower-panel DTS checks passed
  • for test_file in tests/*-test.sh; do bash "$test_file"; done
    • all current tests pass
  • git diff --check -- ':!*.patch'
    • passes; .patch files are excluded because patch context lines can false-positive on normal diff markers/context indentation.
  • Built full kernel artifact on GPD Win5:
    • artifact: out-win5-sy7758-optional/armada-kernel-7.0.11.tar.zst
    • sha256: aa5f431ca93be1d584044b885a885e66e08d6180152d56c2c155127918249881
    • archive contains vmlinuz, qcs8550-ayaneo-pocketds.dtb, and .armada-source

Live Pocket DS validation

Validated on real AYANEO Pocket DS hardware with a reversible boot/kernel hotfix and offline recovery backup:

  • First pre-SY7758-fix boot failed as expected:
    • no DRM card/connectors
    • ae96000 DSI deferred
    • sy7758 failed on missing enable GPIO
  • After making enable-gpios optional and rebuilding on Win5:
    • booted successfully: Linux fedora 7.0.11 #1 SMP PREEMPT Mon Jul 27 17:01:26 PDT 2026
    • DRM healthy: card0, card0-DSI-1, card0-DSI-2, renderD128
    • lower panel bound: panel-sitronix-st7703/ae96000.dsi.0
    • SY7758 bound: sy7758/1-002e
    • runtime smoke validation passed before the hardcoded-host test helper was removed from the PR
  • Game/Desktop physical validation with companion userspace PR:
    • Game Mode: lower screen/backlight physically dark
    • Desktop Mode: bottom screen lit and correctly oriented

Notes

  • This PR intentionally separates kernel/power sequencing from the session policy in the companion Armada PR.
  • PR CI status should be treated as build validation; published/signed installability depends on repository workflow policy for PR events.

@pacoa-kdbg pacoa-kdbg changed the title fix: expose Pocket DS lower panel DTB fix: switch Pocket DS lower panel to ST7703 Jul 27, 2026
CONFIG_DRM_PANEL_AR06_4INCH=y # AYANEO Pocket ACE
CONFIG_DRM_PANEL_AR02_3INCH=y # AYANEO Pocket DMG
CONFIG_DRM_PANEL_AR11_5INCH=y # AYANEO Pocket DS (lower panel)
# CONFIG_DRM_PANEL_AR11_5INCH is not set # superseded by ST7703 for AYANEO Pocket DS lower panel

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you delete instead if the symbol is gone?

@pacoa-kdbg pacoa-kdbg Jul 28, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in 487f2fe: removed the obsolete AR11 config line entirely and left only CONFIG_DRM_PANEL_SITRONIX_ST7703=y.

}

runtime_checks() {
local host="${TARGET_HOST:[email protected]}"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this host be hard coded here?

@pacoa-kdbg pacoa-kdbg Jul 28, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in 487f2fe: removed the runtime/on-device helper and the TARGET_HOST default entirely; the committed tests now only run static local checks and apply the DTS edit patch in a temp tree.

@pacoa-kdbg
pacoa-kdbg force-pushed the fix/pocket-ds-dsi2-panel branch from 992ffae to 487f2fe Compare July 28, 2026 02:25
@pacoa-kdbg

Copy link
Copy Markdown
Author

Provenance pass update:

  • Restored kernel/dts/qcs8550-ayaneo-pocketds.dts to the vendored ROCKNIX DTS from main; Armada-specific lower-panel wiring now lives in kernel/dts/qcs8550-ayaneo-pocketds.dts.patch again.
  • Updated kernel/PATCHES.md to keep the existing ROCKNIX source entry for the base Pocket DS patch and explicitly note that our 0053-gpu-panel-add-Pocket-DS-lower-panel-driver.patch is modified to replace the generated AR11 driver with Alexandre/Azkali Fedora DS ST7703 lower-panel support.
  • Updated the dts/qcs8550-ayaneo-pocketds.dts.patch entry to explain that it is Armada edits on top of the ROCKNIX Pocket DS DTS and follows the Azkali/Fedora DS ST7703/iovcc model.
  • Removed the hardcoded-host runtime test helper; remaining tests are local/static and apply the DTS edit patch in a temp tree before asserting final wiring.

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.

2 participants