mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
drm/rockchip: dw-hdmi: attach CONNECTOR_ID prop to identify multi HDMI
Change-Id: I10efb880a050b5db54571f8041d5841ac368488d Signed-off-by: Sandy Huang <hjc@rock-chips.com>
This commit is contained in:
@@ -115,6 +115,7 @@ struct rockchip_hdmi {
|
||||
bool unsupported_yuv_input;
|
||||
bool unsupported_deep_color;
|
||||
bool mode_changed;
|
||||
u8 id;
|
||||
|
||||
unsigned long bus_format;
|
||||
unsigned long output_bus_format;
|
||||
@@ -924,6 +925,7 @@ dw_hdmi_rockchip_attach_properties(struct drm_connector *connector,
|
||||
{
|
||||
struct rockchip_hdmi *hdmi = (struct rockchip_hdmi *)data;
|
||||
struct drm_property *prop;
|
||||
struct rockchip_drm_private *private = connector->dev->dev_private;
|
||||
|
||||
switch (color) {
|
||||
case MEDIA_BUS_FMT_RGB101010_1X30:
|
||||
@@ -1029,6 +1031,7 @@ dw_hdmi_rockchip_attach_properties(struct drm_connector *connector,
|
||||
prop = connector->dev->mode_config.hdr_output_metadata_property;
|
||||
if (version >= 0x211a)
|
||||
drm_object_attach_property(&connector->base, prop, 0);
|
||||
drm_object_attach_property(&connector->base, private->connector_id_prop, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1123,6 +1126,7 @@ dw_hdmi_rockchip_get_property(struct drm_connector *connector,
|
||||
struct rockchip_hdmi *hdmi = (struct rockchip_hdmi *)data;
|
||||
struct drm_display_info *info = &connector->display_info;
|
||||
struct drm_mode_config *config = &connector->dev->mode_config;
|
||||
struct rockchip_drm_private *private = connector->dev->dev_private;
|
||||
|
||||
if (property == hdmi->color_depth_property) {
|
||||
*val = hdmi->colordepth;
|
||||
@@ -1168,6 +1172,9 @@ dw_hdmi_rockchip_get_property(struct drm_connector *connector,
|
||||
} else if (property == hdmi->colorimetry_property) {
|
||||
*val = hdmi->colorimetry;
|
||||
return 0;
|
||||
} else if (property == private->connector_id_prop) {
|
||||
*val = hdmi->id;
|
||||
return 0;
|
||||
}
|
||||
|
||||
DRM_ERROR("failed to get rockchip hdmi connector property\n");
|
||||
@@ -1431,7 +1438,7 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,
|
||||
struct drm_device *drm = data;
|
||||
struct drm_encoder *encoder;
|
||||
struct rockchip_hdmi *hdmi;
|
||||
int ret;
|
||||
int ret, id;
|
||||
|
||||
if (!pdev->dev.of_node)
|
||||
return -ENODEV;
|
||||
@@ -1446,6 +1453,10 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,
|
||||
if (!plat_data)
|
||||
return -ENOMEM;
|
||||
|
||||
id = of_alias_get_id(dev->of_node, "hdmi");
|
||||
if (id < 0)
|
||||
id = 0;
|
||||
hdmi->id = id;
|
||||
hdmi->dev = &pdev->dev;
|
||||
hdmi->chip_data = plat_data->phy_data;
|
||||
plat_data->phy_data = hdmi;
|
||||
|
||||
Reference in New Issue
Block a user