Lines Matching refs:imxpd

48 	struct imx_parallel_display *imxpd = con_to_imxpd(connector);  in imx_pd_connector_get_modes()  local
49 struct device_node *np = imxpd->dev->of_node; in imx_pd_connector_get_modes()
52 num_modes = drm_panel_get_modes(imxpd->panel); in imx_pd_connector_get_modes()
56 if (imxpd->edid) { in imx_pd_connector_get_modes()
57 drm_connector_update_edid_property(connector, imxpd->edid); in imx_pd_connector_get_modes()
58 num_modes = drm_add_edid_modes(connector, imxpd->edid); in imx_pd_connector_get_modes()
68 ret = of_get_drm_display_mode(np, &imxpd->mode, in imx_pd_connector_get_modes()
69 &imxpd->bus_flags, in imx_pd_connector_get_modes()
74 drm_mode_copy(mode, &imxpd->mode); in imx_pd_connector_get_modes()
86 struct imx_parallel_display *imxpd = con_to_imxpd(connector); in imx_pd_connector_best_encoder() local
88 return &imxpd->encoder; in imx_pd_connector_best_encoder()
93 struct imx_parallel_display *imxpd = enc_to_imxpd(encoder); in imx_pd_encoder_enable() local
95 drm_panel_prepare(imxpd->panel); in imx_pd_encoder_enable()
96 drm_panel_enable(imxpd->panel); in imx_pd_encoder_enable()
101 struct imx_parallel_display *imxpd = enc_to_imxpd(encoder); in imx_pd_encoder_disable() local
103 drm_panel_disable(imxpd->panel); in imx_pd_encoder_disable()
104 drm_panel_unprepare(imxpd->panel); in imx_pd_encoder_disable()
113 struct imx_parallel_display *imxpd = enc_to_imxpd(encoder); in imx_pd_encoder_atomic_check() local
115 if (!imxpd->bus_format && di->num_bus_formats) { in imx_pd_encoder_atomic_check()
119 imx_crtc_state->bus_flags = imxpd->bus_flags; in imx_pd_encoder_atomic_check()
120 imx_crtc_state->bus_format = imxpd->bus_format; in imx_pd_encoder_atomic_check()
152 struct imx_parallel_display *imxpd) in imx_pd_register() argument
154 struct drm_encoder *encoder = &imxpd->encoder; in imx_pd_register()
157 ret = imx_drm_encoder_parse_of(drm, encoder, imxpd->dev->of_node); in imx_pd_register()
166 imxpd->connector.dpms = DRM_MODE_DPMS_OFF; in imx_pd_register()
172 if (!imxpd->bridge) { in imx_pd_register()
173 drm_connector_helper_add(&imxpd->connector, in imx_pd_register()
175 drm_connector_init(drm, &imxpd->connector, in imx_pd_register()
180 if (imxpd->panel) in imx_pd_register()
181 drm_panel_attach(imxpd->panel, &imxpd->connector); in imx_pd_register()
183 if (imxpd->bridge) { in imx_pd_register()
184 ret = drm_bridge_attach(encoder, imxpd->bridge, NULL); in imx_pd_register()
186 dev_err(imxpd->dev, "failed to attach bridge: %d\n", in imx_pd_register()
191 drm_connector_attach_encoder(&imxpd->connector, encoder); in imx_pd_register()
202 struct imx_parallel_display *imxpd; in imx_pd_bind() local
207 imxpd = devm_kzalloc(dev, sizeof(*imxpd), GFP_KERNEL); in imx_pd_bind()
208 if (!imxpd) in imx_pd_bind()
211 edidp = of_get_property(np, "edid", &imxpd->edid_len); in imx_pd_bind()
213 imxpd->edid = kmemdup(edidp, imxpd->edid_len, GFP_KERNEL); in imx_pd_bind()
226 imxpd->bus_format = bus_format; in imx_pd_bind()
229 ret = drm_of_find_panel_or_bridge(np, 1, 0, &imxpd->panel, &imxpd->bridge); in imx_pd_bind()
233 imxpd->dev = dev; in imx_pd_bind()
235 ret = imx_pd_register(drm, imxpd); in imx_pd_bind()
239 dev_set_drvdata(dev, imxpd); in imx_pd_bind()
247 struct imx_parallel_display *imxpd = dev_get_drvdata(dev); in imx_pd_unbind() local
249 if (imxpd->panel) in imx_pd_unbind()
250 drm_panel_detach(imxpd->panel); in imx_pd_unbind()
252 kfree(imxpd->edid); in imx_pd_unbind()