18
18
#include <drm/drm_bridge.h>
19
19
#include <drm/drm_managed.h>
20
20
#include <drm/drm_of.h>
21
- #include <drm/drm_panel.h>
22
21
#include <drm/drm_probe_helper.h>
23
22
#include <drm/drm_simple_kms_helper.h>
24
23
@@ -36,7 +35,6 @@ struct imx_parallel_display {
36
35
u32 bus_format ;
37
36
u32 bus_flags ;
38
37
struct drm_display_mode mode ;
39
- struct drm_panel * panel ;
40
38
struct drm_bridge * next_bridge ;
41
39
};
42
40
@@ -56,10 +54,6 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
56
54
struct device_node * np = imxpd -> dev -> of_node ;
57
55
int num_modes ;
58
56
59
- num_modes = drm_panel_get_modes (imxpd -> panel , connector );
60
- if (num_modes > 0 )
61
- return num_modes ;
62
-
63
57
if (np ) {
64
58
struct drm_display_mode * mode = drm_mode_create (connector -> dev );
65
59
int ret ;
@@ -84,22 +78,6 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
84
78
return num_modes ;
85
79
}
86
80
87
- static void imx_pd_bridge_enable (struct drm_bridge * bridge )
88
- {
89
- struct imx_parallel_display * imxpd = bridge_to_imxpd (bridge );
90
-
91
- drm_panel_prepare (imxpd -> panel );
92
- drm_panel_enable (imxpd -> panel );
93
- }
94
-
95
- static void imx_pd_bridge_disable (struct drm_bridge * bridge )
96
- {
97
- struct imx_parallel_display * imxpd = bridge_to_imxpd (bridge );
98
-
99
- drm_panel_disable (imxpd -> panel );
100
- drm_panel_unprepare (imxpd -> panel );
101
- }
102
-
103
81
static const u32 imx_pd_bus_fmts [] = {
104
82
MEDIA_BUS_FMT_RGB888_1X24 ,
105
83
MEDIA_BUS_FMT_BGR888_1X24 ,
@@ -237,8 +215,6 @@ static const struct drm_connector_helper_funcs imx_pd_connector_helper_funcs = {
237
215
};
238
216
239
217
static const struct drm_bridge_funcs imx_pd_bridge_funcs = {
240
- .enable = imx_pd_bridge_enable ,
241
- .disable = imx_pd_bridge_disable ,
242
218
.atomic_reset = drm_atomic_helper_bridge_reset ,
243
219
.atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state ,
244
220
.atomic_destroy_state = drm_atomic_helper_bridge_destroy_state ,
@@ -315,10 +291,14 @@ static int imx_pd_probe(struct platform_device *pdev)
315
291
return - ENOMEM ;
316
292
317
293
/* port@1 is the output port */
318
- ret = drm_of_find_panel_or_bridge (np , 1 , 0 , & imxpd -> panel ,
319
- & imxpd -> next_bridge );
320
- if (ret && ret != - ENODEV )
321
- return ret ;
294
+ imxpd -> next_bridge = devm_drm_of_get_bridge (dev , np , 1 , 0 );
295
+ if (IS_ERR (imxpd -> next_bridge )) {
296
+ ret = PTR_ERR (imxpd -> next_bridge );
297
+ if (ret != - ENODEV )
298
+ return ret ;
299
+
300
+ imxpd -> next_bridge = NULL ;
301
+ }
322
302
323
303
ret = of_property_read_string (np , "interface-pix-fmt" , & fmt );
324
304
if (!ret ) {
0 commit comments