disp: msm: add resource caps structure and api changes

Create a data structure to maintain available hardware resources
and track capabilities. This data structure is used to send
the current available resources and caps information to
connector ops get_mode_info, get_modes and validate_mode to
process the display mode.

Change-Id: If38fc628ee5ab4729821f88c0050ab45375187b8
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
这个提交包含在:
Nilaan Gunabalachandran
2019-05-22 15:13:44 -04:00
父节点 dcea657cce
当前提交 d92000cdd4
修改 13 个文件,包含 158 行新增67 行删除

查看文件

@@ -64,10 +64,12 @@ struct sde_connector_ops {
* get_modes - add drm modes via drm_mode_probed_add()
* @connector: Pointer to drm connector structure
* @display: Pointer to private display handle
* @avail_res: Pointer with current available resources
* Returns: Number of modes added
*/
int (*get_modes)(struct drm_connector *connector,
void *display);
void *display,
const struct msm_resource_caps_info *avail_res);
/**
* update_pps - update pps command for the display panel
@@ -84,11 +86,13 @@ struct sde_connector_ops {
* @connector: Pointer to drm connector structure
* @mode: Pointer to drm mode structure
* @display: Pointer to private display handle
* @avail_res: Pointer with curr available resources
* Returns: Validity status for specified mode
*/
enum drm_mode_status (*mode_valid)(struct drm_connector *connector,
struct drm_display_mode *mode,
void *display);
void *display,
const struct msm_resource_caps_info *avail_res);
/**
* set_property - set property value
@@ -135,14 +139,15 @@ struct sde_connector_ops {
* @connector: Pointer to drm connector structure
* @drm_mode: Display mode set for the display
* @mode_info: Out parameter. information of the display mode
* @max_mixer_width: max width supported by HW layer mixer
* @display: Pointer to private display structure
* @avail_res: Pointer with curr available resources
* Returns: Zero on success
*/
int (*get_mode_info)(struct drm_connector *connector,
const struct drm_display_mode *drm_mode,
struct msm_mode_info *mode_info,
u32 max_mixer_width, void *display);
void *display,
const struct msm_resource_caps_info *avail_res);
/**
* enable_event - notify display of event registration/unregistration
@@ -859,14 +864,25 @@ int sde_connector_helper_reset_custom_properties(
struct drm_connector_state *connector_state);
/**
* sde_connector_get_mode_info - get information of the current mode in the
* given connector state.
* sde_connector_state_get_mode_info - get information of the current mode
* in the given connector state.
* conn_state: Pointer to the DRM connector state object
* mode_info: Pointer to the mode info structure
*/
int sde_connector_get_mode_info(struct drm_connector_state *conn_state,
int sde_connector_state_get_mode_info(struct drm_connector_state *conn_state,
struct msm_mode_info *mode_info);
/**
* sde_connector_get_mode_info - retrieve mode info for given mode
* @connector: Pointer to drm connector structure
* @drm_mode: Display mode set for the display
* @mode_info: Out parameter. information of the display mode
* Returns: Zero on success
*/
int sde_connector_get_mode_info(struct drm_connector *conn,
const struct drm_display_mode *drm_mode,
struct msm_mode_info *mode_info);
/**
* sde_conn_timeline_status - current buffer timeline status
* conn: Pointer to drm_connector struct