aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/imx/imx-drm-core.c
diff options
context:
space:
mode:
authorLiu Ying <gnuiyl@gmail.com>2016-07-08 05:40:58 -0400
committerPhilipp Zabel <p.zabel@pengutronix.de>2016-07-12 12:23:58 -0400
commit032003c5cd744e8e0baf5430fc5b3fd5462208e4 (patch)
tree0ad9cbdfb21a3a336f2d4470881a4bce1b7b9a4b /drivers/gpu/drm/imx/imx-drm-core.c
parentae2531ab70864c00b49a986cd8bdc5eec7ec881a (diff)
drm/imx: Remove encoders' ->prepare callbacks
The main task of imx encoders' ->prepare callbacks is to set bus_format, bus_flags, di_vsync_pin and di_hsync_pin. We may create a structure named imx_encoder to cache them. The atomic encoder callback ->disable may replace ->prepare later, so let's remove ->prepare. Signed-off-by: Liu Ying <gnuiyl@gmail.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Diffstat (limited to 'drivers/gpu/drm/imx/imx-drm-core.c')
-rw-r--r--drivers/gpu/drm/imx/imx-drm-core.c39
1 files changed, 0 insertions, 39 deletions
diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
index b5a5173b05af..f6e44c220874 100644
--- a/drivers/gpu/drm/imx/imx-drm-core.c
+++ b/drivers/gpu/drm/imx/imx-drm-core.c
@@ -85,45 +85,6 @@ static int imx_drm_driver_unload(struct drm_device *drm)
85 return 0; 85 return 0;
86} 86}
87 87
88static struct imx_drm_crtc *imx_drm_find_crtc(struct drm_crtc *crtc)
89{
90 struct imx_drm_device *imxdrm = crtc->dev->dev_private;
91 unsigned i;
92
93 for (i = 0; i < MAX_CRTC; i++)
94 if (imxdrm->crtc[i] && imxdrm->crtc[i]->crtc == crtc)
95 return imxdrm->crtc[i];
96
97 return NULL;
98}
99
100int imx_drm_set_bus_config(struct drm_encoder *encoder, u32 bus_format,
101 int hsync_pin, int vsync_pin, u32 bus_flags)
102{
103 struct imx_drm_crtc_helper_funcs *helper;
104 struct imx_drm_crtc *imx_crtc;
105
106 imx_crtc = imx_drm_find_crtc(encoder->crtc);
107 if (!imx_crtc)
108 return -EINVAL;
109
110 helper = &imx_crtc->imx_drm_helper_funcs;
111 if (helper->set_interface_pix_fmt)
112 return helper->set_interface_pix_fmt(encoder->crtc,
113 bus_format, hsync_pin, vsync_pin,
114 bus_flags);
115 return 0;
116}
117EXPORT_SYMBOL_GPL(imx_drm_set_bus_config);
118
119int imx_drm_set_bus_format(struct drm_encoder *encoder, u32 bus_format)
120{
121 return imx_drm_set_bus_config(encoder, bus_format, 2, 3,
122 DRM_BUS_FLAG_DE_HIGH |
123 DRM_BUS_FLAG_PIXDATA_NEGEDGE);
124}
125EXPORT_SYMBOL_GPL(imx_drm_set_bus_format);
126
127int imx_drm_crtc_vblank_get(struct imx_drm_crtc *imx_drm_crtc) 88int imx_drm_crtc_vblank_get(struct imx_drm_crtc *imx_drm_crtc)
128{ 89{
129 return drm_crtc_vblank_get(imx_drm_crtc->crtc); 90 return drm_crtc_vblank_get(imx_drm_crtc->crtc);