mipi: Support passing user data to mipi_cmd_func_t
The mipi_cmd_func_t callback for mipi_panel_parse_init_commands() currently doesn't support passing additional data for storing context. Therefore user code would need to store any extra data in global variables. For example, in the upcoming DSI dual channel support for MediaTek platforms, the callback needs to know whether the MIPI panel supports dual channel or not. To support that use case, pass an extra `user_data` argument to mipi_cmd_func_t. BUG=b:424782827 TEST=util/abuild/abuild -x -t GOOGLE_SAPPHIRE -a BRANCH=none Change-Id: Id5d7b168cdcadfe8d8435c29d7e855a535815057 Signed-off-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/90519 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Subrata Banik <subratabanik@google.com> Reviewed-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Yidi Lin <yidilin@google.com>
This commit is contained in:
parent
42c1947d99
commit
1dc3e45f7c
4 changed files with 20 additions and 8 deletions
|
|
@ -223,10 +223,19 @@ struct panel_serializable_data {
|
|||
u8 init[]; /* A packed array of panel_init_command */
|
||||
};
|
||||
|
||||
typedef enum cb_err (*mipi_cmd_func_t)(enum mipi_dsi_transaction type, const u8 *data, u8 len);
|
||||
/*
|
||||
* Callback function type for mipi_panel_parse_init_commands().
|
||||
* @param type MIPI DSI transaction type.
|
||||
* @param data panel_init_command data.
|
||||
* @param len panel_init_command len.
|
||||
* @param user_data Arbitrary user data passed from mipi_panel_parse_init_commands().
|
||||
*/
|
||||
typedef enum cb_err (*mipi_cmd_func_t)(enum mipi_dsi_transaction type, const u8 *data, u8 len,
|
||||
void *user_data);
|
||||
|
||||
/* Parse a command array and call cmd_func() for each entry. Delays get handled internally. */
|
||||
enum cb_err mipi_panel_parse_init_commands(const void *buf, mipi_cmd_func_t cmd_func);
|
||||
enum cb_err mipi_panel_parse_init_commands(const void *buf, mipi_cmd_func_t cmd_func,
|
||||
void *user_data);
|
||||
|
||||
#define PANEL_DCS(...) \
|
||||
PANEL_CMD_DCS, \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue