@@ -34,7 +34,7 @@ struct imx_parallel_display_encoder {
34
34
35
35
struct imx_parallel_display {
36
36
struct device * dev ;
37
- void * edid ;
37
+ const struct drm_edid * drm_edid ;
38
38
u32 bus_format ;
39
39
u32 bus_flags ;
40
40
struct drm_display_mode mode ;
@@ -62,9 +62,9 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
62
62
if (num_modes > 0 )
63
63
return num_modes ;
64
64
65
- if (imxpd -> edid ) {
66
- drm_connector_update_edid_property (connector , imxpd -> edid );
67
- num_modes = drm_add_edid_modes (connector , imxpd -> edid );
65
+ if (imxpd -> drm_edid ) {
66
+ drm_edid_connector_update (connector , imxpd -> drm_edid );
67
+ num_modes = drm_edid_connector_add_modes (connector );
68
68
}
69
69
70
70
if (np ) {
@@ -331,7 +331,7 @@ static int imx_pd_probe(struct platform_device *pdev)
331
331
332
332
edidp = of_get_property (np , "edid" , & edid_len );
333
333
if (edidp )
334
- imxpd -> edid = devm_kmemdup ( dev , edidp , edid_len , GFP_KERNEL );
334
+ imxpd -> drm_edid = drm_edid_alloc ( edidp , edid_len );
335
335
336
336
ret = of_property_read_string (np , "interface-pix-fmt" , & fmt );
337
337
if (!ret ) {
@@ -355,7 +355,11 @@ static int imx_pd_probe(struct platform_device *pdev)
355
355
356
356
static void imx_pd_remove (struct platform_device * pdev )
357
357
{
358
+ struct imx_parallel_display * imxpd = platform_get_drvdata (pdev );
359
+
358
360
component_del (& pdev -> dev , & imx_pd_ops );
361
+
362
+ drm_edid_free (imxpd -> drm_edid );
359
363
}
360
364
361
365
static const struct of_device_id imx_pd_dt_ids [] = {
0 commit comments