Merge "disp: msm: specify default value for msm enum property"

This commit is contained in:
qctecmdr
2020-06-27 23:15:27 -07:00
committed by Gerrit - the friendly Code Review server
6 changed files with 23 additions and 20 deletions

View File

@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
*/
#include "msm_prop.h"
@@ -203,7 +203,7 @@ void msm_property_install_volatile_range(struct msm_property_info *info,
void msm_property_install_enum(struct msm_property_info *info,
const char *name, int flags, int is_bitmask,
const struct drm_prop_enum_list *values, int num_values,
uint32_t property_idx)
u32 init_idx, uint32_t property_idx)
{
struct drm_property **prop;
@@ -239,10 +239,10 @@ void msm_property_install_enum(struct msm_property_info *info,
info->property_data[property_idx].default_value = 0;
info->property_data[property_idx].force_dirty = false;
/* select first defined value for enums */
if (!is_bitmask)
/* initialize with the given idx if valid */
if (!is_bitmask && init_idx && (init_idx < num_values))
info->property_data[property_idx].default_value =
values->type;
values[init_idx].type;
/* always attach property, if created */
if (*prop) {

View File

@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
*/
#ifndef _MSM_PROP_H_
@@ -250,6 +250,7 @@ void msm_property_install_volatile_range(struct msm_property_info *info,
* enumeration one
* @values: Array of allowable enumeration/bitmask values
* @num_values: Size of values array
* @init_idx: index of the values array entry to initialize the property
* @property_idx: Property index
*/
void msm_property_install_enum(struct msm_property_info *info,
@@ -258,6 +259,7 @@ void msm_property_install_enum(struct msm_property_info *info,
int is_bitmask,
const struct drm_prop_enum_list *values,
int num_values,
u32 init_idx,
uint32_t property_idx);
/**

View File

@@ -2511,14 +2511,14 @@ static int _sde_connector_install_properties(struct drm_device *dev,
if (sde_kms->catalog->has_qsync && display_info->qsync_min_fps)
msm_property_install_enum(&c_conn->property_info,
"qsync_mode", 0, 0, e_qsync_mode,
ARRAY_SIZE(e_qsync_mode),
ARRAY_SIZE(e_qsync_mode), 0,
CONNECTOR_PROP_QSYNC_MODE);
if (display_info->capabilities & MSM_DISPLAY_CAP_CMD_MODE)
msm_property_install_enum(&c_conn->property_info,
"frame_trigger_mode", 0, 0,
e_frame_trigger_mode,
ARRAY_SIZE(e_frame_trigger_mode),
ARRAY_SIZE(e_frame_trigger_mode), 0,
CONNECTOR_PROP_CMD_FRAME_TRIGGER_MODE);
if (sde_kms->catalog->has_demura) {
@@ -2554,15 +2554,15 @@ static int _sde_connector_install_properties(struct drm_device *dev,
/* enum/bitmask properties */
msm_property_install_enum(&c_conn->property_info, "topology_name",
DRM_MODE_PROP_IMMUTABLE, 0, e_topology_name,
ARRAY_SIZE(e_topology_name),
ARRAY_SIZE(e_topology_name), 0,
CONNECTOR_PROP_TOPOLOGY_NAME);
msm_property_install_enum(&c_conn->property_info, "topology_control",
0, 1, e_topology_control,
ARRAY_SIZE(e_topology_control),
ARRAY_SIZE(e_topology_control), 0,
CONNECTOR_PROP_TOPOLOGY_CONTROL);
msm_property_install_enum(&c_conn->property_info, "LP",
0, 0, e_power_mode,
ARRAY_SIZE(e_power_mode),
ARRAY_SIZE(e_power_mode), 0,
CONNECTOR_PROP_LP);
return 0;

View File

@@ -5277,13 +5277,13 @@ static void sde_crtc_install_properties(struct drm_crtc *crtc,
if (catalog->has_idle_pc)
msm_property_install_enum(&sde_crtc->property_info,
"idle_pc_state", 0x0, 0, e_idle_pc_state,
ARRAY_SIZE(e_idle_pc_state),
ARRAY_SIZE(e_idle_pc_state), 0,
CRTC_PROP_IDLE_PC_STATE);
if (catalog->has_cwb_support)
msm_property_install_enum(&sde_crtc->property_info,
"capture_mode", 0, 0, e_cwb_data_points,
ARRAY_SIZE(e_cwb_data_points),
ARRAY_SIZE(e_cwb_data_points), 0,
CRTC_PROP_CAPTURE_OUTPUT);
msm_property_install_volatile_range(&sde_crtc->property_info,
@@ -5291,12 +5291,12 @@ static void sde_crtc_install_properties(struct drm_crtc *crtc,
msm_property_install_enum(&sde_crtc->property_info, "security_level",
0x0, 0, e_secure_level,
ARRAY_SIZE(e_secure_level),
ARRAY_SIZE(e_secure_level), 0,
CRTC_PROP_SECURITY_LEVEL);
msm_property_install_enum(&sde_crtc->property_info, "cache_state",
0x0, 0, e_cache_state,
ARRAY_SIZE(e_cache_state),
ARRAY_SIZE(e_cache_state), 0,
CRTC_PROP_CACHE_STATE);
if (catalog->has_dim_layer) {

View File

@@ -3715,7 +3715,7 @@ static void _sde_plane_install_properties(struct drm_plane *plane,
else
msm_property_install_enum(&psde->property_info,
"multirect_mode", 0x0, 0, e_multirect_mode,
ARRAY_SIZE(e_multirect_mode),
ARRAY_SIZE(e_multirect_mode), 0,
PLANE_PROP_MULTIRECT_MODE);
if (psde->features & BIT(SDE_SSPP_EXCL_RECT))
@@ -3725,10 +3725,11 @@ static void _sde_plane_install_properties(struct drm_plane *plane,
sde_plane_rot_install_properties(plane, catalog);
msm_property_install_enum(&psde->property_info, "blend_op", 0x0, 0,
e_blend_op, ARRAY_SIZE(e_blend_op), PLANE_PROP_BLEND_OP);
e_blend_op, ARRAY_SIZE(e_blend_op), 0, PLANE_PROP_BLEND_OP);
msm_property_install_enum(&psde->property_info, "src_config", 0x0, 1,
e_src_config, ARRAY_SIZE(e_src_config), PLANE_PROP_SRC_CONFIG);
e_src_config, ARRAY_SIZE(e_src_config), 0,
PLANE_PROP_SRC_CONFIG);
if (psde->pipe_hw->ops.setup_solidfill)
msm_property_install_range(&psde->property_info, "color_fill",
@@ -3754,7 +3755,7 @@ static void _sde_plane_install_properties(struct drm_plane *plane,
msm_property_install_enum(&psde->property_info, "fb_translation_mode",
0x0, 0, e_fb_translation_mode,
ARRAY_SIZE(e_fb_translation_mode),
ARRAY_SIZE(e_fb_translation_mode), 0,
PLANE_PROP_FB_TRANSLATION_MODE);
kfree(info);

View File

@@ -443,7 +443,7 @@ int sde_wb_connector_post_init(struct drm_connector *connector, void *display)
"fb_translation_mode",
0x0,
0, e_fb_translation_mode,
ARRAY_SIZE(e_fb_translation_mode),
ARRAY_SIZE(e_fb_translation_mode), 0,
CONNECTOR_PROP_FB_TRANSLATION_MODE);
return 0;