mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 22:14:04 +02:00
drm/rockchip: rk618: fix compile error
Change-Id: I959217c605f0edf0db5ec60ebfd4a61c8c58479c Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
This commit is contained in:
parent
47516d0bc8
commit
d2ee17ae9f
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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/
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user