mipi/panel: Add 'poweroff' field to panel_serializable_data

Some payloads such as depthcharge need to run MIPI panel power-off
commands before booting to the kernel. Otherwise, the abnormal power-off
timing would prevent the pixel charge from being cleared before
power-off, leading to the risk of LCD overpotential hence resulting in
image stickiness or flicker upon restarting.

Therefore, add a 'poweroff' field to the panel_serializable_data struct,
which, in a follow-up patch, will be passed to payloads for running the
power-off commands. Each MIPI panel can define the power-off commands in
that field.

As both init and power-off commands are supported, remove "_init" from
related structs and enums.

BUG=b:474187570
TEST=emerge-jedi coreboot libpayload
BRANCH=skywalker

Change-Id: I1a7c0a14d5c197a0887a26269e4c36e498e8b7ae
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90737
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
This commit is contained in:
Yu-Ping Wu 2026-01-13 14:49:47 +08:00 committed by Yu-Ping Wu
commit a6407000f1
5 changed files with 25 additions and 22 deletions

View file

@ -189,6 +189,8 @@ struct dsc_config {
u8 dsc_version_major;
};
#define PANEL_POWEROFF_CMD_MAX_LEN 16
/*
* The data to be serialized and put into CBFS.
* Note some fields, for example edid.mode.name, were actually pointers and
@ -198,7 +200,9 @@ struct panel_serializable_data {
u32 flags; /* flags of panel_flag */
struct edid edid; /* edid info of this panel */
struct dsc_config dsc_config; /* dsc config of this panel */
u8 init[]; /* A packed array of panel_init_command */
/* Packed arrays of panel_command */
u8 poweroff[PANEL_POWEROFF_CMD_MAX_LEN];
u8 init[];
};
#endif /* __MIPI_PANEL_H__ */