Skip to content

A panel_hw_off board flag for #283 (M3 Max J516C) - #284

Open
samucarre wants to merge 1 commit into
omacom:feat/m3-pro-panel-dark-sleepfrom
samucarre:m3-max-panel-on-283
Open

samucarre wants to merge 1 commit into
omacom:feat/m3-pro-panel-dark-sleepfrom
samucarre:m3-max-panel-on-283

Conversation

@samucarre

Copy link
Copy Markdown

Problem. #283 tells the J514S/J516S panel by its level block (dcp_v14_board_nits()), both for the A472 power off on DPMS off and for the five callbacks of that transition, which the #274 review asked to keep to those panels. #259 gives the J516C record that block for its brightness, so with both merged, DPMS off would also stop the J516C panel's display controller, which hasn't been tried on it, and the J516C session would answer those callbacks.

Change. One commit on top of feat/m3-pro-panel-dark-sleep (71019b83a624), for you to take or leave: drm/apple: v14.7: Stop only the J514S/J516S panel's controller on DPMS off. It adds a panel_hw_off flag to the board record, set on the T6030 record only, so panel levels and the A472 path are admitted separately. Nothing changes on J514S/J516S, appledrm.panel_hw_off=0 included; every other panel is only blanked and leaves those callbacks unhandled, with or without levels.

Checked on this branch (arm64, clang 21):

  • drm/apple with its display KUnit tests builds with W=1 and no warnings.
  • KUnit, drm/apple display suites (arm64 QEMU): 86/86 pass, also with drm/apple: v14.7: admit panel brightness on the J516C #259 applied on top. The two new lifetime cases fail when the flag is ignored, which is what dcp_v14_board_nits() alone does.
  • check-commits.py is clean.

Not checked.

🤖 Generated with Claude Code

…S off

DPMS off stops the panel's display controller (A472 with the
hardware-power selector), and the callbacks of that transition are
answered, only on the panel this was measured on, the J514S one (the
J516S takes the same path), which the code tells by
dcp_v14_board_nits(): an internal panel admitted to the level block of
its board record. Only the T6030 record has that block today, but a
record that gains it gets the hardware power off with it: the J516C
record does with the J516C panel brightness change, sent separately,
and the J516C panel would then be stopped as well, where it has not
been tried.

Give the board record a panel_hw_off flag, set on the T6030 record
alone, and send A472 and answer its callbacks only where it is set.
Nothing changes on the J514S/J516S, and every other panel is only
blanked and leaves those callbacks unhandled, as before. The board test
checks the flag on the T6030, J516C, J514C and J613 records. Two
lifetime cases use a record with levels but without the flag: DPMS off
and on only blank its panel and find no controller to restart, and the
five callbacks stay unhandled there while the T6030 record answers
them.

Generated-by: LLM
Signed-off-by: Samuel Carreño <soyminero11yt@gmail.com>
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.

1 participant