- 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
{
int rc = 0;
+ struct hdmi *hdmi = display->ctrl.ctrl;
+
display->name = of_get_property(node, "label", NULL);
display->display_type = of_get_property(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)
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;
}
hdmi->power_on = true;
}
-
- _sde_hdmi_bridge_setup_scrambler(hdmi, &display->mode);
+ if (!display->skip_ddc)
+ _sde_hdmi_bridge_setup_scrambler(hdmi, &display->mode);
if (phy)
phy->funcs->powerup(phy, hdmi->pixclock);
*/
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)
else if (mode->flags & DRM_MODE_FLAG_SUPPORTS_YUV)
return MSM_MODE_FLAG_COLOR_FORMAT_YCBCR420;
- SDE_ERROR("Can't get available best display format\n");
+ if (display && !display->non_pluggable)
+ SDE_ERROR("Can't get available best display format\n");
return MSM_MODE_FLAG_COLOR_FORMAT_RGB444;
}