diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c b/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c index 5a7276e4ac68..d9b1a14dabc2 100644 --- a/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c +++ b/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c @@ -632,7 +632,7 @@ struct hdmi *rockchip_hdmi_register(struct hdmi_property *property, hdmi->vic = hdmi->property->defaultmode; } hdmi->colormode = HDMI_VIDEO_DEFAULT_COLORMODE; - hdmi->colordepth = HDMI_VIDEO_DEFAULT_COLORDEPTH; + hdmi->colordepth = hdmi->property->defaultdepth; hdmi->colorimetry = HDMI_COLORIMETRY_NO_DATA; hdmi->mode_3d = HDMI_3D_NONE; hdmi->audio.type = HDMI_AUDIO_DEFAULT_TYPE; diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmi.h b/drivers/video/rockchip/hdmi/rockchip-hdmi.h index fbd5cacb92b8..70429f1ecabf 100644 --- a/drivers/video/rockchip/hdmi/rockchip-hdmi.h +++ b/drivers/video/rockchip/hdmi/rockchip-hdmi.h @@ -404,6 +404,7 @@ struct hdmi_property { int display; int feature; int defaultmode; + int defaultdepth; void *priv; }; diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2.c b/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2.c index 2de20b4793b7..c1b09872e133 100644 --- a/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2.c +++ b/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2.c @@ -545,6 +545,13 @@ static int rockchip_hdmiv2_parse_dt(struct hdmi_dev *hdmi_dev) } else { rk_hdmi_property.defaultmode = HDMI_VIDEO_DEFAULT_MODE; } + if (!of_property_read_u32(np, "rockchip,defaultdepth", &val) && + (val > 0)) { + pr_info("default depth is %d\n", val); + rk_hdmi_property.defaultdepth = val; + } else { + rk_hdmi_property.defaultdepth = HDMI_VIDEO_DEFAULT_COLORDEPTH; + } if (of_get_property(np, "rockchip,phy_table", &val)) { hdmi_dev->phy_table = kmalloc(val, GFP_KERNEL); if (!hdmi_dev->phy_table) {