[PATCH 2/4] drm/i915/vbt: add anonymous structs to group DSI VBT defs
Kandpal, Suraj
suraj.kandpal at intel.com
Tue Aug 12 03:41:23 UTC 2025
> Subject: [PATCH 2/4] drm/i915/vbt: add anonymous structs to group DSI VBT
> defs
>
> The grouping of DSI VBT definitions is hard to follow and match against the
> spec. Use anonymous structs and add comments with the spec description.
>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
LGTM,
Reviewed-by: Suraj Kandpal <suraj.kandpal at intel.com>
> ---
> .../gpu/drm/i915/display/intel_dsi_vbt_defs.h | 87 ++++++++++---------
> 1 file changed, 47 insertions(+), 40 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt_defs.h
> b/drivers/gpu/drm/i915/display/intel_dsi_vbt_defs.h
> index f83d42ed0c5a..7ac872dbba8d 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi_vbt_defs.h
> +++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt_defs.h
> @@ -47,53 +47,55 @@ struct mipi_config {
> u16 panel_id;
>
> /* General Params */
> - u32 enable_dithering:1;
> - u32 rsvd1:1;
> - u32 is_bridge:1;
> + struct {
> + u32 enable_dithering:1;
> + u32 rsvd1:1;
> + u32 is_bridge:1;
>
> - u32 panel_arch_type:2;
> - u32 is_cmd_mode:1;
> + u32 panel_arch_type:2;
> + u32 is_cmd_mode:1;
>
> #define NON_BURST_SYNC_PULSE 0x1
> #define NON_BURST_SYNC_EVENTS 0x2
> #define BURST_MODE 0x3
> - u32 video_transfer_mode:2;
> + u32 video_transfer_mode:2;
>
> - u32 cabc_supported:1;
> + u32 cabc_supported:1;
> #define PPS_BLC_PMIC 0
> #define PPS_BLC_SOC 1
> - u32 pwm_blc:1;
> + u32 pwm_blc:1;
>
> - /* Bit 13:10 */
> #define PIXEL_FORMAT_RGB565 0x1
> #define PIXEL_FORMAT_RGB666 0x2
> #define PIXEL_FORMAT_RGB666_LOOSELY_PACKED 0x3
> #define PIXEL_FORMAT_RGB888 0x4
> - u32 videomode_color_format:4;
> + u32 videomode_color_format:4;
>
> - /* Bit 15:14 */
> #define ENABLE_ROTATION_0 0x0
> #define ENABLE_ROTATION_90 0x1
> #define ENABLE_ROTATION_180 0x2
> #define ENABLE_ROTATION_270 0x3
> - u32 rotation:2;
> - u32 bta_enabled:1;
> - u32 rsvd2:15;
> + u32 rotation:2;
> + u32 bta_enabled:1;
> + u32 rsvd2:15;
> + } __packed;
>
> - /* 2 byte Port Description */
> + /* Port Desc */
> + struct {
> #define DUAL_LINK_NOT_SUPPORTED 0
> #define DUAL_LINK_FRONT_BACK 1
> #define DUAL_LINK_PIXEL_ALT 2
> - u16 dual_link:2;
> - u16 lane_cnt:2;
> - u16 pixel_overlap:3;
> - u16 rgb_flip:1;
> + u16 dual_link:2;
> + u16 lane_cnt:2;
> + u16 pixel_overlap:3;
> + u16 rgb_flip:1;
> #define DL_DCS_PORT_A 0x00
> #define DL_DCS_PORT_C 0x01
> #define DL_DCS_PORT_A_AND_C 0x02
> - u16 dl_dcs_cabc_ports:2;
> - u16 dl_dcs_backlight_ports:2;
> - u16 rsvd3:4;
> + u16 dl_dcs_cabc_ports:2;
> + u16 dl_dcs_backlight_ports:2;
> + u16 rsvd3:4;
> + } __packed;
>
> u16 rsvd4;
>
> @@ -102,18 +104,22 @@ struct mipi_config {
> u32 dsi_ddr_clk;
> u32 bridge_ref_clk;
>
> + /* LP Byte Clock */
> + struct {
> #define BYTE_CLK_SEL_20MHZ 0
> #define BYTE_CLK_SEL_10MHZ 1
> #define BYTE_CLK_SEL_5MHZ 2
> - u8 byte_clk_sel:2;
> -
> - u8 rsvd6:6;
> -
> - /* DPHY Flags */
> - u16 dphy_param_valid:1;
> - u16 eot_pkt_disabled:1;
> - u16 enable_clk_stop:1;
> - u16 rsvd7:13;
> + u8 byte_clk_sel:2;
> + u8 rsvd6:6;
> + } __packed;
> +
> + /* DPhy Flags */
> + struct {
> + u16 dphy_param_valid:1;
> + u16 eot_pkt_disabled:1;
> + u16 enable_clk_stop:1;
> + u16 rsvd7:13;
> + } __packed;
>
> u32 hs_tx_timeout;
> u32 lp_rx_timeout;
> @@ -123,14 +129,16 @@ struct mipi_config {
> u32 dbi_bw_timer;
> u32 lp_byte_clk_val;
>
> - /* 4 byte Dphy Params */
> - u32 prepare_cnt:6;
> - u32 rsvd8:2;
> - u32 clk_zero_cnt:8;
> - u32 trail_cnt:5;
> - u32 rsvd9:3;
> - u32 exit_zero_cnt:6;
> - u32 rsvd10:2;
> + /* DPhy Params */
> + struct {
> + u32 prepare_cnt:6;
> + u32 rsvd8:2;
> + u32 clk_zero_cnt:8;
> + u32 trail_cnt:5;
> + u32 rsvd9:3;
> + u32 exit_zero_cnt:6;
> + u32 rsvd10:2;
> + } __packed;
>
> u32 clk_lane_switch_cnt;
> u32 hl_switch_cnt;
> @@ -168,7 +176,6 @@ struct mipi_config {
> u8 reset_r_n;
> u8 pwr_down_r;
> u8 stdby_r_n;
> -
> } __packed;
>
> /* all delays have a unit of 100us */
> --
> 2.47.2
More information about the Intel-xe
mailing list