aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fimd.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
index 004bf57aa026..d04d46dab362 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -185,7 +185,7 @@ struct fimd_context {
185 atomic_t win_updated; 185 atomic_t win_updated;
186 atomic_t triggering; 186 atomic_t triggering;
187 187
188 struct fimd_driver_data *driver_data; 188 const struct fimd_driver_data *driver_data;
189 struct drm_encoder *encoder; 189 struct drm_encoder *encoder;
190 struct exynos_drm_clk dp_clk; 190 struct exynos_drm_clk dp_clk;
191}; 191};
@@ -223,15 +223,6 @@ static const uint32_t fimd_formats[] = {
223 DRM_FORMAT_ARGB8888, 223 DRM_FORMAT_ARGB8888,
224}; 224};
225 225
226static inline struct fimd_driver_data *drm_fimd_get_driver_data(
227 struct platform_device *pdev)
228{
229 const struct of_device_id *of_id =
230 of_match_device(fimd_driver_dt_match, &pdev->dev);
231
232 return (struct fimd_driver_data *)of_id->data;
233}
234
235static int fimd_enable_vblank(struct exynos_drm_crtc *crtc) 226static int fimd_enable_vblank(struct exynos_drm_crtc *crtc)
236{ 227{
237 struct fimd_context *ctx = crtc->ctx; 228 struct fimd_context *ctx = crtc->ctx;
@@ -408,7 +399,7 @@ static void fimd_commit(struct exynos_drm_crtc *crtc)
408{ 399{
409 struct fimd_context *ctx = crtc->ctx; 400 struct fimd_context *ctx = crtc->ctx;
410 struct drm_display_mode *mode = &crtc->base.state->adjusted_mode; 401 struct drm_display_mode *mode = &crtc->base.state->adjusted_mode;
411 struct fimd_driver_data *driver_data = ctx->driver_data; 402 const struct fimd_driver_data *driver_data = ctx->driver_data;
412 void *timing_base = ctx->regs + driver_data->timing_base; 403 void *timing_base = ctx->regs + driver_data->timing_base;
413 u32 val, clkdiv; 404 u32 val, clkdiv;
414 405
@@ -831,7 +822,7 @@ static void fimd_disable(struct exynos_drm_crtc *crtc)
831static void fimd_trigger(struct device *dev) 822static void fimd_trigger(struct device *dev)
832{ 823{
833 struct fimd_context *ctx = dev_get_drvdata(dev); 824 struct fimd_context *ctx = dev_get_drvdata(dev);
834 struct fimd_driver_data *driver_data = ctx->driver_data; 825 const struct fimd_driver_data *driver_data = ctx->driver_data;
835 void *timing_base = ctx->regs + driver_data->timing_base; 826 void *timing_base = ctx->regs + driver_data->timing_base;
836 u32 reg; 827 u32 reg;
837 828
@@ -1034,7 +1025,7 @@ static int fimd_probe(struct platform_device *pdev)
1034 1025
1035 ctx->dev = dev; 1026 ctx->dev = dev;
1036 ctx->suspended = true; 1027 ctx->suspended = true;
1037 ctx->driver_data = drm_fimd_get_driver_data(pdev); 1028 ctx->driver_data = of_device_get_match_data(dev);
1038 1029
1039 if (of_property_read_bool(dev->of_node, "samsung,invert-vden")) 1030 if (of_property_read_bool(dev->of_node, "samsung,invert-vden"))
1040 ctx->vidcon1 |= VIDCON1_INV_VDEN; 1031 ctx->vidcon1 |= VIDCON1_INV_VDEN;