drm/rockchip: rk618: fix compile error

Change-Id: I959217c605f0edf0db5ec60ebfd4a61c8c58479c
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
This commit is contained in:
Wyon Bi 2019-10-08 16:41:53 +08:00 committed by Tao Huang
parent 47516d0bc8
commit d2ee17ae9f
8 changed files with 27 additions and 61 deletions

View File

@ -92,4 +92,7 @@ config ROCKCHIP_RGB
Some Rockchip CRTCs, like rv1108, can directly output parallel
and serial RGB format to panel or connect to a conversion chip.
say Y to enable its driver.
source "drivers/gpu/drm/rockchip/rk618/Kconfig"
endif

View File

@ -18,3 +18,5 @@ rockchipdrm-$(CONFIG_ROCKCHIP_DRM_TVE) += rockchip_drm_tve.o
rockchipdrm-$(CONFIG_ROCKCHIP_RGB) += rockchip_rgb.o
obj-$(CONFIG_DRM_ROCKCHIP) += rockchipdrm.o
obj-$(CONFIG_DRM_ROCKCHIP_RK618) += rk618/

View File

@ -756,7 +756,6 @@ static void rk618_dsi_connector_destroy(struct drm_connector *connector)
}
static const struct drm_connector_funcs rk618_dsi_connector_funcs = {
.dpms = drm_atomic_helper_connector_dpms,
.detect = rk618_dsi_connector_detect,
.fill_modes = drm_helper_probe_single_connector_modes,
.destroy = rk618_dsi_connector_destroy,
@ -819,7 +818,7 @@ static int rk618_dsi_bridge_attach(struct drm_bridge *bridge)
}
drm_connector_helper_add(connector, &rk618_dsi_connector_helper_funcs);
drm_mode_connector_attach_encoder(connector, bridge->encoder);
drm_connector_attach_encoder(connector, bridge->encoder);
ret = drm_panel_attach(dsi->panel, connector);
if (ret) {
@ -1145,11 +1144,7 @@ static int rk618_dsi_probe(struct platform_device *pdev)
dsi->base.funcs = &rk618_dsi_bridge_funcs;
dsi->base.of_node = dev->of_node;
ret = drm_bridge_add(&dsi->base);
if (ret) {
dev_err(dev, "failed to add drm_bridge: %d\n", ret);
return ret;
}
drm_bridge_add(&dsi->base);
dsi->host.dev = dev;
dsi->host.ops = &rk618_dsi_host_ops;

View File

@ -705,6 +705,7 @@ static int rk618_hdmi_config_video_vsi(struct rk618_hdmi *hdmi,
int rc;
rc = drm_hdmi_vendor_infoframe_from_display_mode(&frame.vendor.hdmi,
&hdmi->connector,
mode);
return rk618_hdmi_upload_frame(hdmi, rc, &frame,
@ -970,7 +971,7 @@ static int rk618_hdmi_connector_get_modes(struct drm_connector *connector)
if (edid) {
hdmi->hdmi_data.sink_is_hdmi = drm_detect_hdmi_monitor(edid);
hdmi->hdmi_data.sink_has_audio = drm_detect_monitor_audio(edid);
drm_mode_connector_update_edid_property(connector, edid);
drm_connector_update_edid_property(connector, edid);
ret = drm_add_edid_modes(connector, edid);
kfree(edid);
} else {
@ -1024,7 +1025,6 @@ rk618_hdmi_probe_single_connector_modes(struct drm_connector *connector,
}
static const struct drm_connector_funcs rk618_hdmi_connector_funcs = {
.dpms = drm_atomic_helper_connector_dpms,
.fill_modes = rk618_hdmi_probe_single_connector_modes,
.detect = rk618_hdmi_connector_detect,
.destroy = drm_connector_cleanup,
@ -1091,7 +1091,7 @@ static int rk618_hdmi_bridge_attach(struct drm_bridge *bridge)
drm_connector_helper_add(connector,
&rk618_hdmi_connector_helper_funcs);
drm_mode_connector_attach_encoder(connector, bridge->encoder);
drm_connector_attach_encoder(connector, bridge->encoder);
endpoint = of_graph_get_endpoint_by_regs(dev->of_node, 1, -1);
if (endpoint && of_device_is_available(endpoint)) {
@ -1107,15 +1107,11 @@ static int rk618_hdmi_bridge_attach(struct drm_bridge *bridge)
if (!hdmi->bridge)
return -EPROBE_DEFER;
hdmi->bridge->encoder = bridge->encoder;
ret = drm_bridge_attach(bridge->dev, hdmi->bridge);
ret = drm_bridge_attach(bridge->encoder, hdmi->bridge, bridge);
if (ret) {
dev_err(dev, "failed to attach bridge\n");
return ret;
}
bridge->next = hdmi->bridge;
}
return 0;
@ -1551,11 +1547,7 @@ static int rk618_hdmi_probe(struct platform_device *pdev)
hdmi->base.funcs = &rk618_hdmi_bridge_funcs;
hdmi->base.of_node = dev->of_node;
ret = drm_bridge_add(&hdmi->base);
if (ret) {
dev_err(dev, "failed to add drm_bridge: %d\n", ret);
return ret;
}
drm_bridge_add(&hdmi->base);
#ifdef CONFIG_SWITCH
hdmi->switchdev.name = "hdmi";

View File

@ -89,7 +89,6 @@ static void rk618_lvds_connector_destroy(struct drm_connector *connector)
}
static const struct drm_connector_funcs rk618_lvds_connector_funcs = {
.dpms = drm_atomic_helper_connector_dpms,
.detect = rk618_lvds_connector_detect,
.fill_modes = drm_helper_probe_single_connector_modes,
.destroy = rk618_lvds_connector_destroy,
@ -186,7 +185,7 @@ static int rk618_lvds_bridge_attach(struct drm_bridge *bridge)
}
drm_connector_helper_add(connector, &rk618_lvds_connector_helper_funcs);
drm_mode_connector_attach_encoder(connector, bridge->encoder);
drm_connector_attach_encoder(connector, bridge->encoder);
ret = drm_panel_attach(lvds->panel, connector);
if (ret) {
@ -271,11 +270,7 @@ static int rk618_lvds_probe(struct platform_device *pdev)
lvds->base.funcs = &rk618_lvds_bridge_funcs;
lvds->base.of_node = dev->of_node;
ret = drm_bridge_add(&lvds->base);
if (ret) {
dev_err(dev, "failed to add drm_bridge: %d\n", ret);
return ret;
}
drm_bridge_add(&lvds->base);
return 0;
}

View File

@ -82,7 +82,6 @@ static void rk618_rgb_connector_destroy(struct drm_connector *connector)
}
static const struct drm_connector_funcs rk618_rgb_connector_funcs = {
.dpms = drm_atomic_helper_connector_dpms,
.detect = rk618_rgb_connector_detect,
.fill_modes = drm_helper_probe_single_connector_modes,
.destroy = rk618_rgb_connector_destroy,
@ -185,18 +184,14 @@ static int rk618_rgb_bridge_attach(struct drm_bridge *bridge)
drm_connector_helper_add(connector,
&rk618_rgb_connector_helper_funcs);
drm_mode_connector_attach_encoder(connector, bridge->encoder);
drm_connector_attach_encoder(connector, bridge->encoder);
drm_panel_attach(rgb->panel, connector);
} else {
rgb->bridge->encoder = bridge->encoder;
ret = drm_bridge_attach(bridge->dev, rgb->bridge);
ret = drm_bridge_attach(bridge->encoder, rgb->bridge, bridge);
if (ret) {
dev_err(dev, "failed to attach bridge\n");
return ret;
}
bridge->next = rgb->bridge;
}
return 0;
@ -265,11 +260,7 @@ static int rk618_rgb_probe(struct platform_device *pdev)
rgb->base.funcs = &rk618_rgb_bridge_funcs;
rgb->base.of_node = dev->of_node;
ret = drm_bridge_add(&rgb->base);
if (ret) {
dev_err(dev, "failed to add drm_bridge: %d\n", ret);
return ret;
}
drm_bridge_add(&rgb->base);
return 0;
}

View File

@ -15,7 +15,8 @@
#include <linux/regmap.h>
#include <drm/drm_of.h>
#include <drm/drmP.h>
#include <drm/drm_encoder.h>
#include <drm/drm_print.h>
#include <video/videomode.h>
#define RK618_SCALER_REG0 0x0030
@ -273,10 +274,12 @@ static void rk618_scaler_bridge_mode_set(struct drm_bridge *bridge,
struct drm_display_mode *dst = &scl->dst;
unsigned long dclk_rate;
u64 sclk_rate;
struct drm_connector_list_iter conn_iter;
drm_mode_copy(&scl->src, adjusted);
drm_for_each_connector(connector, bridge->dev) {
drm_connector_list_iter_begin(bridge->dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) {
const struct drm_display_mode *mode;
if (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA)
@ -292,6 +295,7 @@ static void rk618_scaler_bridge_mode_set(struct drm_bridge *bridge,
}
}
}
drm_connector_list_iter_end(&conn_iter);
dclk_rate = src->clock * 1000;
sclk_rate = (u64)dclk_rate * dst->vdisplay * dst->htotal;
@ -326,15 +330,11 @@ static int rk618_scaler_bridge_attach(struct drm_bridge *bridge)
if (!scl->bridge)
return -EPROBE_DEFER;
scl->bridge->encoder = bridge->encoder;
ret = drm_bridge_attach(bridge->dev, scl->bridge);
ret = drm_bridge_attach(bridge->encoder, scl->bridge, bridge);
if (ret) {
dev_err(dev, "failed to attach bridge\n");
return ret;
}
bridge->next = scl->bridge;
}
return 0;
@ -390,11 +390,7 @@ static int rk618_scaler_probe(struct platform_device *pdev)
scl->base.funcs = &rk618_scaler_bridge_funcs;
scl->base.of_node = dev->of_node;
ret = drm_bridge_add(&scl->base);
if (ret) {
dev_err(dev, "failed to add bridge\n");
return ret;
}
drm_bridge_add(&scl->base);
return 0;
}

View File

@ -175,15 +175,11 @@ static int rk618_vif_bridge_attach(struct drm_bridge *bridge)
if (!vif->bridge)
return -EPROBE_DEFER;
vif->bridge->encoder = bridge->encoder;
ret = drm_bridge_attach(bridge->dev, vif->bridge);
ret = drm_bridge_attach(bridge->encoder, vif->bridge, bridge);
if (ret) {
dev_err(dev, "failed to attach bridge\n");
return ret;
}
bridge->next = vif->bridge;
}
return 0;
@ -232,11 +228,7 @@ static int rk618_vif_probe(struct platform_device *pdev)
vif->base.funcs = &rk618_vif_bridge_funcs;
vif->base.of_node = dev->of_node;
ret = drm_bridge_add(&vif->base);
if (ret) {
dev_err(dev, "failed to add bridge\n");
return ret;
}
drm_bridge_add(&vif->base);
return 0;
}