Loading Documentation/devicetree/bindings/drm/msm/hdmi-display.txt +1 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ Optional properties: - qcom,display-type: display type of this manager. It could be "primary", "secondary", "tertiary", etc. - qcom,non-pluggable: Boolean to indicate if display is non pluggable. - qcom,skip_ddc: Boolean to indicate if display skips ddc function. - qcom,customize-modes: Customized modes when it's non pluggable display. - qcom,customize-mode-id: Customized mode node. - qcom,mode-name: String which indicates the mode name which shall be used Loading drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.c +7 −0 Original line number Diff line number Diff line Loading @@ -3069,6 +3069,8 @@ static int _sde_hdmi_parse_dt(struct device_node *node, { int rc = 0; struct hdmi *hdmi = display->ctrl.ctrl; display->name = of_get_property(node, "label", NULL); display->display_type = of_get_property(node, Loading @@ -3079,6 +3081,11 @@ static int _sde_hdmi_parse_dt(struct device_node *node, display->non_pluggable = of_property_read_bool(node, "qcom,non-pluggable"); display->skip_ddc = of_property_read_bool(node, "qcom,skip_ddc"); if (!display->non_pluggable) hdmi_i2c_destroy(hdmi->i2c); rc = _sde_hdmi_parse_dt_modes(node, &display->mode_list, &display->num_of_modes); if (rc) Loading drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.h +1 −0 Original line number Diff line number Diff line Loading @@ -154,6 +154,7 @@ struct sde_hdmi { struct sde_edid_ctrl *edid_ctrl; bool non_pluggable; bool skip_ddc; u32 num_of_modes; struct list_head mode_list; struct drm_display_mode mode; Loading drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c +6 −3 Original line number Diff line number Diff line Loading @@ -512,7 +512,7 @@ static void _sde_hdmi_bridge_pre_enable(struct drm_bridge *bridge) } hdmi->power_on = true; } if (!display->skip_ddc) _sde_hdmi_bridge_setup_scrambler(hdmi, &display->mode); if (phy) Loading Loading @@ -822,6 +822,8 @@ static u32 _sde_hdmi_choose_best_format(struct hdmi *hdmi, */ int dc_format; struct drm_connector *connector = hdmi->connector; struct sde_connector *c_conn = to_sde_connector(connector); struct sde_hdmi *display = (struct sde_hdmi *)c_conn->display; dc_format = sde_hdmi_sink_dc_support(connector, mode); if (dc_format & MSM_MODE_FLAG_RGB444_DC_ENABLE) Loading @@ -835,6 +837,7 @@ static u32 _sde_hdmi_choose_best_format(struct hdmi *hdmi, else if (mode->flags & DRM_MODE_FLAG_SUPPORTS_YUV) return MSM_MODE_FLAG_COLOR_FORMAT_YCBCR420; if (display && !display->non_pluggable) SDE_ERROR("Can't get available best display format\n"); return MSM_MODE_FLAG_COLOR_FORMAT_RGB444; Loading Loading
Documentation/devicetree/bindings/drm/msm/hdmi-display.txt +1 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ Optional properties: - qcom,display-type: display type of this manager. It could be "primary", "secondary", "tertiary", etc. - qcom,non-pluggable: Boolean to indicate if display is non pluggable. - qcom,skip_ddc: Boolean to indicate if display skips ddc function. - qcom,customize-modes: Customized modes when it's non pluggable display. - qcom,customize-mode-id: Customized mode node. - qcom,mode-name: String which indicates the mode name which shall be used Loading
drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.c +7 −0 Original line number Diff line number Diff line Loading @@ -3069,6 +3069,8 @@ static int _sde_hdmi_parse_dt(struct device_node *node, { int rc = 0; struct hdmi *hdmi = display->ctrl.ctrl; display->name = of_get_property(node, "label", NULL); display->display_type = of_get_property(node, Loading @@ -3079,6 +3081,11 @@ static int _sde_hdmi_parse_dt(struct device_node *node, display->non_pluggable = of_property_read_bool(node, "qcom,non-pluggable"); display->skip_ddc = of_property_read_bool(node, "qcom,skip_ddc"); if (!display->non_pluggable) hdmi_i2c_destroy(hdmi->i2c); rc = _sde_hdmi_parse_dt_modes(node, &display->mode_list, &display->num_of_modes); if (rc) Loading
drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.h +1 −0 Original line number Diff line number Diff line Loading @@ -154,6 +154,7 @@ struct sde_hdmi { struct sde_edid_ctrl *edid_ctrl; bool non_pluggable; bool skip_ddc; u32 num_of_modes; struct list_head mode_list; struct drm_display_mode mode; Loading
drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c +6 −3 Original line number Diff line number Diff line Loading @@ -512,7 +512,7 @@ static void _sde_hdmi_bridge_pre_enable(struct drm_bridge *bridge) } hdmi->power_on = true; } if (!display->skip_ddc) _sde_hdmi_bridge_setup_scrambler(hdmi, &display->mode); if (phy) Loading Loading @@ -822,6 +822,8 @@ static u32 _sde_hdmi_choose_best_format(struct hdmi *hdmi, */ int dc_format; struct drm_connector *connector = hdmi->connector; struct sde_connector *c_conn = to_sde_connector(connector); struct sde_hdmi *display = (struct sde_hdmi *)c_conn->display; dc_format = sde_hdmi_sink_dc_support(connector, mode); if (dc_format & MSM_MODE_FLAG_RGB444_DC_ENABLE) Loading @@ -835,6 +837,7 @@ static u32 _sde_hdmi_choose_best_format(struct hdmi *hdmi, else if (mode->flags & DRM_MODE_FLAG_SUPPORTS_YUV) return MSM_MODE_FLAG_COLOR_FORMAT_YCBCR420; if (display && !display->non_pluggable) SDE_ERROR("Can't get available best display format\n"); return MSM_MODE_FLAG_COLOR_FORMAT_RGB444; Loading