.. | .. |
---|
13 | 13 | #include <linux/regmap.h> |
---|
14 | 14 | #include <linux/mfd/rk618.h> |
---|
15 | 15 | |
---|
16 | | -#include <drm/drmP.h> |
---|
| 16 | +#include <drm/drm_drv.h> |
---|
17 | 17 | #include <drm/drm_of.h> |
---|
18 | 18 | #include <drm/drm_atomic.h> |
---|
19 | 19 | #include <drm/drm_crtc_helper.h> |
---|
20 | 20 | #include <drm/drm_atomic_helper.h> |
---|
21 | 21 | #include <drm/drm_panel.h> |
---|
| 22 | +#include <drm/drm_probe_helper.h> |
---|
22 | 23 | |
---|
23 | 24 | #include <video/videomode.h> |
---|
24 | 25 | |
---|
.. | .. |
---|
64 | 65 | u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24; |
---|
65 | 66 | int num_modes = 0; |
---|
66 | 67 | |
---|
67 | | - num_modes = drm_panel_get_modes(rgb->panel); |
---|
| 68 | + num_modes = drm_panel_get_modes(rgb->panel, connector); |
---|
68 | 69 | |
---|
69 | 70 | if (info->num_bus_formats) |
---|
70 | 71 | rgb->bus_format = info->bus_formats[0]; |
---|
.. | .. |
---|
91 | 92 | |
---|
92 | 93 | static void rk618_rgb_connector_destroy(struct drm_connector *connector) |
---|
93 | 94 | { |
---|
94 | | - struct rk618_rgb *rgb = connector_to_rgb(connector); |
---|
95 | | - |
---|
96 | | - drm_panel_detach(rgb->panel); |
---|
97 | 95 | drm_connector_cleanup(connector); |
---|
98 | 96 | } |
---|
99 | 97 | |
---|
.. | .. |
---|
161 | 159 | clk_disable_unprepare(rgb->clock); |
---|
162 | 160 | } |
---|
163 | 161 | |
---|
164 | | -static int rk618_rgb_bridge_attach(struct drm_bridge *bridge) |
---|
| 162 | +static int rk618_rgb_bridge_attach(struct drm_bridge *bridge, |
---|
| 163 | + enum drm_bridge_attach_flags flags) |
---|
165 | 164 | { |
---|
166 | 165 | struct rk618_rgb *rgb = bridge_to_rgb(bridge); |
---|
167 | 166 | struct device *dev = rgb->dev; |
---|
.. | .. |
---|
181 | 180 | drm_connector_helper_add(connector, |
---|
182 | 181 | &rk618_rgb_connector_helper_funcs); |
---|
183 | 182 | drm_connector_attach_encoder(connector, bridge->encoder); |
---|
184 | | - drm_panel_attach(rgb->panel, connector); |
---|
185 | 183 | |
---|
186 | 184 | rgb->sub_dev.connector = &rgb->connector; |
---|
187 | 185 | rgb->sub_dev.of_node = rgb->dev->of_node; |
---|
188 | 186 | rockchip_drm_register_sub_dev(&rgb->sub_dev); |
---|
189 | 187 | } else { |
---|
190 | | - ret = drm_bridge_attach(bridge->encoder, rgb->bridge, bridge); |
---|
| 188 | + ret = drm_bridge_attach(bridge->encoder, rgb->bridge, bridge, 0); |
---|
191 | 189 | if (ret) { |
---|
192 | 190 | dev_err(dev, "failed to attach bridge\n"); |
---|
193 | 191 | return ret; |
---|