aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/rcar-du
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2013-06-15 09:02:12 -0400
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2013-08-09 17:17:43 -0400
commit6978f123776594b251d26dac9bcdf3ce8e9781c8 (patch)
treef33b49179d6fad67fd723b5c4bda8d5ef230200b /drivers/gpu/drm/rcar-du
parent9e8be27233c1e98b06edeb801640b1f96b09e466 (diff)
drm/rcar-du: Merge LVDS and VGA encoder code
Create a single rcar_du_encoder structure that implements a KMS encoder. The current implementation is straightforward and only configures CRTC output routing. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Diffstat (limited to 'drivers/gpu/drm/rcar-du')
-rw-r--r--drivers/gpu/drm/rcar-du/Makefile3
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_crtc.c2
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_encoder.c (renamed from drivers/gpu/drm/rcar-du/rcar_du_lvds.c)74
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_encoder.h45
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_kms.c49
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_kms.h29
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_lvds.h24
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c1
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_vga.c67
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_vga.h24
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_vgacon.c1
11 files changed, 118 insertions, 201 deletions
diff --git a/drivers/gpu/drm/rcar-du/Makefile b/drivers/gpu/drm/rcar-du/Makefile
index 45a8479aed0d..57b0fe1fa66e 100644
--- a/drivers/gpu/drm/rcar-du/Makefile
+++ b/drivers/gpu/drm/rcar-du/Makefile
@@ -1,10 +1,9 @@
1rcar-du-drm-y := rcar_du_crtc.o \ 1rcar-du-drm-y := rcar_du_crtc.o \
2 rcar_du_drv.o \ 2 rcar_du_drv.o \
3 rcar_du_encoder.o \
3 rcar_du_kms.o \ 4 rcar_du_kms.o \
4 rcar_du_lvds.o \
5 rcar_du_lvdscon.o \ 5 rcar_du_lvdscon.o \
6 rcar_du_plane.o \ 6 rcar_du_plane.o \
7 rcar_du_vga.o \
8 rcar_du_vgacon.o 7 rcar_du_vgacon.o
9 8
10obj-$(CONFIG_DRM_RCAR_DU) += rcar-du-drm.o 9obj-$(CONFIG_DRM_RCAR_DU) += rcar-du-drm.o
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
index aefc8a0cbcbc..03dd7018dde8 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
@@ -23,10 +23,8 @@
23#include "rcar_du_crtc.h" 23#include "rcar_du_crtc.h"
24#include "rcar_du_drv.h" 24#include "rcar_du_drv.h"
25#include "rcar_du_kms.h" 25#include "rcar_du_kms.h"
26#include "rcar_du_lvds.h"
27#include "rcar_du_plane.h" 26#include "rcar_du_plane.h"
28#include "rcar_du_regs.h" 27#include "rcar_du_regs.h"
29#include "rcar_du_vga.h"
30 28
31#define to_rcar_crtc(c) container_of(c, struct rcar_du_crtc, crtc) 29#define to_rcar_crtc(c) container_of(c, struct rcar_du_crtc, crtc)
32 30
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_lvds.c b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c
index 82e515741f89..15a56433c80c 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_lvds.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * rcar_du_lvds.c -- R-Car Display Unit LVDS Encoder 2 * rcar_du_encoder.c -- R-Car Display Unit Encoder
3 * 3 *
4 * Copyright (C) 2013 Renesas Corporation 4 * Copyright (C) 2013 Renesas Corporation
5 * 5 *
@@ -16,23 +16,44 @@
16#include <drm/drm_crtc_helper.h> 16#include <drm/drm_crtc_helper.h>
17 17
18#include "rcar_du_drv.h" 18#include "rcar_du_drv.h"
19#include "rcar_du_encoder.h"
19#include "rcar_du_kms.h" 20#include "rcar_du_kms.h"
20#include "rcar_du_lvds.h"
21#include "rcar_du_lvdscon.h" 21#include "rcar_du_lvdscon.h"
22#include "rcar_du_vgacon.h"
22 23
23static void rcar_du_lvds_encoder_dpms(struct drm_encoder *encoder, int mode) 24/* -----------------------------------------------------------------------------
25 * Common connector functions
26 */
27
28struct drm_encoder *
29rcar_du_connector_best_encoder(struct drm_connector *connector)
24{ 30{
31 struct rcar_du_connector *rcon = to_rcar_connector(connector);
32
33 return &rcon->encoder->encoder;
25} 34}
26 35
27static bool rcar_du_lvds_encoder_mode_fixup(struct drm_encoder *encoder, 36/* -----------------------------------------------------------------------------
28 const struct drm_display_mode *mode, 37 * Encoder
29 struct drm_display_mode *adjusted_mode) 38 */
39
40static void rcar_du_encoder_dpms(struct drm_encoder *encoder, int mode)
41{
42}
43
44static bool rcar_du_encoder_mode_fixup(struct drm_encoder *encoder,
45 const struct drm_display_mode *mode,
46 struct drm_display_mode *adjusted_mode)
30{ 47{
31 const struct drm_display_mode *panel_mode; 48 const struct drm_display_mode *panel_mode;
32 struct drm_device *dev = encoder->dev; 49 struct drm_device *dev = encoder->dev;
33 struct drm_connector *connector; 50 struct drm_connector *connector;
34 bool found = false; 51 bool found = false;
35 52
53 /* DAC encoders have currently no restriction on the mode. */
54 if (encoder->encoder_type == DRM_MODE_ENCODER_DAC)
55 return true;
56
36 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { 57 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
37 if (connector->encoder == encoder) { 58 if (connector->encoder == encoder) {
38 found = true; 59 found = true;
@@ -64,9 +85,26 @@ static bool rcar_du_lvds_encoder_mode_fixup(struct drm_encoder *encoder,
64 return true; 85 return true;
65} 86}
66 87
88static void rcar_du_encoder_mode_prepare(struct drm_encoder *encoder)
89{
90}
91
92static void rcar_du_encoder_mode_commit(struct drm_encoder *encoder)
93{
94}
95
96static void rcar_du_encoder_mode_set(struct drm_encoder *encoder,
97 struct drm_display_mode *mode,
98 struct drm_display_mode *adjusted_mode)
99{
100 struct rcar_du_encoder *renc = to_rcar_encoder(encoder);
101
102 rcar_du_crtc_route_output(encoder->crtc, renc->output);
103}
104
67static const struct drm_encoder_helper_funcs encoder_helper_funcs = { 105static const struct drm_encoder_helper_funcs encoder_helper_funcs = {
68 .dpms = rcar_du_lvds_encoder_dpms, 106 .dpms = rcar_du_encoder_dpms,
69 .mode_fixup = rcar_du_lvds_encoder_mode_fixup, 107 .mode_fixup = rcar_du_encoder_mode_fixup,
70 .prepare = rcar_du_encoder_mode_prepare, 108 .prepare = rcar_du_encoder_mode_prepare,
71 .commit = rcar_du_encoder_mode_commit, 109 .commit = rcar_du_encoder_mode_commit,
72 .mode_set = rcar_du_encoder_mode_set, 110 .mode_set = rcar_du_encoder_mode_set,
@@ -76,9 +114,9 @@ static const struct drm_encoder_funcs encoder_funcs = {
76 .destroy = drm_encoder_cleanup, 114 .destroy = drm_encoder_cleanup,
77}; 115};
78 116
79int rcar_du_lvds_init(struct rcar_du_device *rcdu, 117int rcar_du_encoder_init(struct rcar_du_device *rcdu,
80 const struct rcar_du_encoder_lvds_data *data, 118 enum rcar_du_encoder_type type, unsigned int output,
81 unsigned int output) 119 const struct rcar_du_encoder_data *data)
82{ 120{
83 struct rcar_du_encoder *renc; 121 struct rcar_du_encoder *renc;
84 int ret; 122 int ret;
@@ -90,11 +128,21 @@ int rcar_du_lvds_init(struct rcar_du_device *rcdu,
90 renc->output = output; 128 renc->output = output;
91 129
92 ret = drm_encoder_init(rcdu->ddev, &renc->encoder, &encoder_funcs, 130 ret = drm_encoder_init(rcdu->ddev, &renc->encoder, &encoder_funcs,
93 DRM_MODE_ENCODER_LVDS); 131 type);
94 if (ret < 0) 132 if (ret < 0)
95 return ret; 133 return ret;
96 134
97 drm_encoder_helper_add(&renc->encoder, &encoder_helper_funcs); 135 drm_encoder_helper_add(&renc->encoder, &encoder_helper_funcs);
98 136
99 return rcar_du_lvds_connector_init(rcdu, renc, &data->panel); 137 switch (type) {
138 case RCAR_DU_ENCODER_LVDS:
139 return rcar_du_lvds_connector_init(rcdu, renc,
140 &data->u.lvds.panel);
141
142 case RCAR_DU_ENCODER_VGA:
143 return rcar_du_vga_connector_init(rcdu, renc);
144
145 default:
146 return -EINVAL;
147 }
100} 148}
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.h b/drivers/gpu/drm/rcar-du/rcar_du_encoder.h
new file mode 100644
index 000000000000..4f76e16bca88
--- /dev/null
+++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.h
@@ -0,0 +1,45 @@
1/*
2 * rcar_du_encoder.h -- R-Car Display Unit Encoder
3 *
4 * Copyright (C) 2013 Renesas Corporation
5 *
6 * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 */
13
14#ifndef __RCAR_DU_ENCODER_H__
15#define __RCAR_DU_ENCODER_H__
16
17#include <drm/drm_crtc.h>
18
19struct rcar_du_device;
20struct rcar_du_encoder_data;
21
22struct rcar_du_encoder {
23 struct drm_encoder encoder;
24 unsigned int output;
25};
26
27#define to_rcar_encoder(e) \
28 container_of(e, struct rcar_du_encoder, encoder)
29
30struct rcar_du_connector {
31 struct drm_connector connector;
32 struct rcar_du_encoder *encoder;
33};
34
35#define to_rcar_connector(c) \
36 container_of(c, struct rcar_du_connector, connector)
37
38struct drm_encoder *
39rcar_du_connector_best_encoder(struct drm_connector *connector);
40
41int rcar_du_encoder_init(struct rcar_du_device *rcdu,
42 enum rcar_du_encoder_type type, unsigned int output,
43 const struct rcar_du_encoder_data *data);
44
45#endif /* __RCAR_DU_ENCODER_H__ */
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/rcar-du/rcar_du_kms.c
index d30c2e29bee2..3f8483cc0483 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_kms.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_kms.c
@@ -19,10 +19,9 @@
19 19
20#include "rcar_du_crtc.h" 20#include "rcar_du_crtc.h"
21#include "rcar_du_drv.h" 21#include "rcar_du_drv.h"
22#include "rcar_du_encoder.h"
22#include "rcar_du_kms.h" 23#include "rcar_du_kms.h"
23#include "rcar_du_lvds.h"
24#include "rcar_du_regs.h" 24#include "rcar_du_regs.h"
25#include "rcar_du_vga.h"
26 25
27/* ----------------------------------------------------------------------------- 26/* -----------------------------------------------------------------------------
28 * Format helpers 27 * Format helpers
@@ -106,35 +105,6 @@ const struct rcar_du_format_info *rcar_du_format_info(u32 fourcc)
106} 105}
107 106
108/* ----------------------------------------------------------------------------- 107/* -----------------------------------------------------------------------------
109 * Common connector and encoder functions
110 */
111
112struct drm_encoder *
113rcar_du_connector_best_encoder(struct drm_connector *connector)
114{
115 struct rcar_du_connector *rcon = to_rcar_connector(connector);
116
117 return &rcon->encoder->encoder;
118}
119
120void rcar_du_encoder_mode_prepare(struct drm_encoder *encoder)
121{
122}
123
124void rcar_du_encoder_mode_set(struct drm_encoder *encoder,
125 struct drm_display_mode *mode,
126 struct drm_display_mode *adjusted_mode)
127{
128 struct rcar_du_encoder *renc = to_rcar_encoder(encoder);
129
130 rcar_du_crtc_route_output(encoder->crtc, renc->output);
131}
132
133void rcar_du_encoder_mode_commit(struct drm_encoder *encoder)
134{
135}
136
137/* -----------------------------------------------------------------------------
138 * Frame buffer 108 * Frame buffer
139 */ 109 */
140 110
@@ -221,6 +191,9 @@ int rcar_du_modeset_init(struct rcar_du_device *rcdu)
221 const struct rcar_du_encoder_data *pdata = 191 const struct rcar_du_encoder_data *pdata =
222 &rcdu->pdata->encoders[i]; 192 &rcdu->pdata->encoders[i];
223 193
194 if (pdata->encoder == RCAR_DU_ENCODER_UNUSED)
195 continue;
196
224 if (pdata->output >= ARRAY_SIZE(rcdu->crtcs)) { 197 if (pdata->output >= ARRAY_SIZE(rcdu->crtcs)) {
225 dev_warn(rcdu->dev, 198 dev_warn(rcdu->dev,
226 "encoder %u references unexisting output %u, skipping\n", 199 "encoder %u references unexisting output %u, skipping\n",
@@ -228,18 +201,8 @@ int rcar_du_modeset_init(struct rcar_du_device *rcdu)
228 continue; 201 continue;
229 } 202 }
230 203
231 switch (pdata->encoder) { 204 rcar_du_encoder_init(rcdu, pdata->encoder, pdata->output,
232 case RCAR_DU_ENCODER_VGA: 205 pdata);
233 rcar_du_vga_init(rcdu, &pdata->u.vga, pdata->output);
234 break;
235
236 case RCAR_DU_ENCODER_LVDS:
237 rcar_du_lvds_init(rcdu, &pdata->u.lvds, pdata->output);
238 break;
239
240 default:
241 break;
242 }
243 } 206 }
244 207
245 /* Set the possible CRTCs and possible clones. All encoders can be 208 /* Set the possible CRTCs and possible clones. All encoders can be
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.h b/drivers/gpu/drm/rcar-du/rcar_du_kms.h
index dba472263486..5750e6af5655 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_kms.h
+++ b/drivers/gpu/drm/rcar-du/rcar_du_kms.h
@@ -16,8 +16,9 @@
16 16
17#include <linux/types.h> 17#include <linux/types.h>
18 18
19#include <drm/drm_crtc.h> 19struct drm_file;
20 20struct drm_device;
21struct drm_mode_create_dumb;
21struct rcar_du_device; 22struct rcar_du_device;
22 23
23struct rcar_du_format_info { 24struct rcar_du_format_info {
@@ -28,32 +29,8 @@ struct rcar_du_format_info {
28 unsigned int edf; 29 unsigned int edf;
29}; 30};
30 31
31struct rcar_du_encoder {
32 struct drm_encoder encoder;
33 unsigned int output;
34};
35
36#define to_rcar_encoder(e) \
37 container_of(e, struct rcar_du_encoder, encoder)
38
39struct rcar_du_connector {
40 struct drm_connector connector;
41 struct rcar_du_encoder *encoder;
42};
43
44#define to_rcar_connector(c) \
45 container_of(c, struct rcar_du_connector, connector)
46
47const struct rcar_du_format_info *rcar_du_format_info(u32 fourcc); 32const struct rcar_du_format_info *rcar_du_format_info(u32 fourcc);
48 33
49struct drm_encoder *
50rcar_du_connector_best_encoder(struct drm_connector *connector);
51void rcar_du_encoder_mode_prepare(struct drm_encoder *encoder);
52void rcar_du_encoder_mode_set(struct drm_encoder *encoder,
53 struct drm_display_mode *mode,
54 struct drm_display_mode *adjusted_mode);
55void rcar_du_encoder_mode_commit(struct drm_encoder *encoder);
56
57int rcar_du_modeset_init(struct rcar_du_device *rcdu); 34int rcar_du_modeset_init(struct rcar_du_device *rcdu);
58 35
59int rcar_du_dumb_create(struct drm_file *file, struct drm_device *dev, 36int rcar_du_dumb_create(struct drm_file *file, struct drm_device *dev,
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_lvds.h b/drivers/gpu/drm/rcar-du/rcar_du_lvds.h
deleted file mode 100644
index b47f8328e103..000000000000
--- a/drivers/gpu/drm/rcar-du/rcar_du_lvds.h
+++ /dev/null
@@ -1,24 +0,0 @@
1/*
2 * rcar_du_lvds.h -- R-Car Display Unit LVDS Encoder and Connector
3 *
4 * Copyright (C) 2013 Renesas Corporation
5 *
6 * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 */
13
14#ifndef __RCAR_DU_LVDS_H__
15#define __RCAR_DU_LVDS_H__
16
17struct rcar_du_device;
18struct rcar_du_encoder_lvds_data;
19
20int rcar_du_lvds_init(struct rcar_du_device *rcdu,
21 const struct rcar_du_encoder_lvds_data *data,
22 unsigned int output);
23
24#endif /* __RCAR_DU_LVDS_H__ */
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
index 6cfcc9438c68..4f3ba93cd91d 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
@@ -16,6 +16,7 @@
16#include <drm/drm_crtc_helper.h> 16#include <drm/drm_crtc_helper.h>
17 17
18#include "rcar_du_drv.h" 18#include "rcar_du_drv.h"
19#include "rcar_du_encoder.h"
19#include "rcar_du_kms.h" 20#include "rcar_du_kms.h"
20#include "rcar_du_lvdscon.h" 21#include "rcar_du_lvdscon.h"
21 22
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vga.c b/drivers/gpu/drm/rcar-du/rcar_du_vga.c
deleted file mode 100644
index 369ab32d5652..000000000000
--- a/drivers/gpu/drm/rcar-du/rcar_du_vga.c
+++ /dev/null
@@ -1,67 +0,0 @@
1/*
2 * rcar_du_vga.c -- R-Car Display Unit VGA DAC
3 *
4 * Copyright (C) 2013 Renesas Corporation
5 *
6 * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 */
13
14#include <drm/drmP.h>
15#include <drm/drm_crtc.h>
16#include <drm/drm_crtc_helper.h>
17
18#include "rcar_du_drv.h"
19#include "rcar_du_kms.h"
20#include "rcar_du_vga.h"
21#include "rcar_du_vgacon.h"
22
23static void rcar_du_vga_encoder_dpms(struct drm_encoder *encoder, int mode)
24{
25}
26
27static bool rcar_du_vga_encoder_mode_fixup(struct drm_encoder *encoder,
28 const struct drm_display_mode *mode,
29 struct drm_display_mode *adjusted_mode)
30{
31 return true;
32}
33
34static const struct drm_encoder_helper_funcs encoder_helper_funcs = {
35 .dpms = rcar_du_vga_encoder_dpms,
36 .mode_fixup = rcar_du_vga_encoder_mode_fixup,
37 .prepare = rcar_du_encoder_mode_prepare,
38 .commit = rcar_du_encoder_mode_commit,
39 .mode_set = rcar_du_encoder_mode_set,
40};
41
42static const struct drm_encoder_funcs encoder_funcs = {
43 .destroy = drm_encoder_cleanup,
44};
45
46int rcar_du_vga_init(struct rcar_du_device *rcdu,
47 const struct rcar_du_encoder_vga_data *data,
48 unsigned int output)
49{
50 struct rcar_du_encoder *renc;
51 int ret;
52
53 renc = devm_kzalloc(rcdu->dev, sizeof(*renc), GFP_KERNEL);
54 if (renc == NULL)
55 return -ENOMEM;
56
57 renc->output = output;
58
59 ret = drm_encoder_init(rcdu->ddev, &renc->encoder, &encoder_funcs,
60 DRM_MODE_ENCODER_DAC);
61 if (ret < 0)
62 return ret;
63
64 drm_encoder_helper_add(&renc->encoder, &encoder_helper_funcs);
65
66 return rcar_du_vga_connector_init(rcdu, renc);
67}
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vga.h b/drivers/gpu/drm/rcar-du/rcar_du_vga.h
deleted file mode 100644
index b969b2075b57..000000000000
--- a/drivers/gpu/drm/rcar-du/rcar_du_vga.h
+++ /dev/null
@@ -1,24 +0,0 @@
1/*
2 * rcar_du_vga.h -- R-Car Display Unit VGA DAC
3 *
4 * Copyright (C) 2013 Renesas Corporation
5 *
6 * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 */
13
14#ifndef __RCAR_DU_VGA_H__
15#define __RCAR_DU_VGA_H__
16
17struct rcar_du_device;
18struct rcar_du_encoder_vga_data;
19
20int rcar_du_vga_init(struct rcar_du_device *rcdu,
21 const struct rcar_du_encoder_vga_data *data,
22 unsigned int output);
23
24#endif /* __RCAR_DU_VGA_H__ */
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vgacon.c b/drivers/gpu/drm/rcar-du/rcar_du_vgacon.c
index 2ee320333615..36105db9bda1 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_vgacon.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_vgacon.c
@@ -16,6 +16,7 @@
16#include <drm/drm_crtc_helper.h> 16#include <drm/drm_crtc_helper.h>
17 17
18#include "rcar_du_drv.h" 18#include "rcar_du_drv.h"
19#include "rcar_du_encoder.h"
19#include "rcar_du_kms.h" 20#include "rcar_du_kms.h"
20#include "rcar_du_vgacon.h" 21#include "rcar_du_vgacon.h"
21 22