From: Ville Syrjälä <ville.syrj...@linux.intel.com>

Done with coccinelle for the most part. However, it thinks '...' is
part of the semantic patch, so I put an 'int DOTDOTDOT' placeholder
in its place and got rid of it with sed afterwards.

@@
identifier dev, encoder, funcs;
@@
 int drm_encoder_init(struct drm_device *dev,
                      struct drm_encoder *encoder,
                      const struct drm_encoder_funcs *funcs,
                      int encoder_type
+                     ,const char *name, int DOTDOTDOT
                      )
{ ... }

@@
identifier dev, encoder, funcs;
@@
 int drm_encoder_init(struct drm_device *dev,
                      struct drm_encoder *encoder,
                      const struct drm_encoder_funcs *funcs,
                      int encoder_type
+                     ,const char *name, int DOTDOTDOT
                      );

@@
expression E1, E2, E3, E4;
@@
 drm_encoder_init(E1, E2, E3, E4
+                 ,NULL
                  )

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 drivers/gpu/drm/amd/amdgpu/dce_v10_0.c           | 14 +++++------
 drivers/gpu/drm/amd/amdgpu/dce_v11_0.c           | 14 +++++------
 drivers/gpu/drm/amd/amdgpu/dce_v8_0.c            | 14 +++++------
 drivers/gpu/drm/ast/ast_mode.c                   |  2 +-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c |  2 +-
 drivers/gpu/drm/bochs/bochs_kms.c                |  2 +-
 drivers/gpu/drm/cirrus/cirrus_mode.c             |  2 +-
 drivers/gpu/drm/drm_crtc.c                       |  3 ++-
 drivers/gpu/drm/exynos/exynos_dp_core.c          |  2 +-
 drivers/gpu/drm/exynos/exynos_drm_dpi.c          |  2 +-
 drivers/gpu/drm/exynos/exynos_drm_dsi.c          |  2 +-
 drivers/gpu/drm/exynos/exynos_drm_vidi.c         |  2 +-
 drivers/gpu/drm/exynos/exynos_hdmi.c             |  2 +-
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c        |  2 +-
 drivers/gpu/drm/gma500/cdv_intel_crt.c           |  2 +-
 drivers/gpu/drm/gma500/cdv_intel_dp.c            |  3 ++-
 drivers/gpu/drm/gma500/cdv_intel_hdmi.c          |  2 +-
 drivers/gpu/drm/gma500/cdv_intel_lvds.c          |  2 +-
 drivers/gpu/drm/gma500/mdfld_dsi_dpi.c           |  2 +-
 drivers/gpu/drm/gma500/oaktrail_hdmi.c           |  2 +-
 drivers/gpu/drm/gma500/oaktrail_lvds.c           |  2 +-
 drivers/gpu/drm/gma500/psb_intel_lvds.c          |  2 +-
 drivers/gpu/drm/gma500/psb_intel_sdvo.c          |  3 ++-
 drivers/gpu/drm/i2c/tda998x_drv.c                |  2 +-
 drivers/gpu/drm/i915/intel_crt.c                 |  2 +-
 drivers/gpu/drm/i915/intel_ddi.c                 |  2 +-
 drivers/gpu/drm/i915/intel_dp.c                  |  2 +-
 drivers/gpu/drm/i915/intel_dp_mst.c              |  2 +-
 drivers/gpu/drm/i915/intel_dsi.c                 |  3 ++-
 drivers/gpu/drm/i915/intel_dvo.c                 |  2 +-
 drivers/gpu/drm/i915/intel_hdmi.c                |  2 +-
 drivers/gpu/drm/i915/intel_lvds.c                |  2 +-
 drivers/gpu/drm/i915/intel_sdvo.c                |  3 ++-
 drivers/gpu/drm/i915/intel_tv.c                  |  2 +-
 drivers/gpu/drm/imx/dw_hdmi-imx.c                |  2 +-
 drivers/gpu/drm/imx/imx-ldb.c                    |  2 +-
 drivers/gpu/drm/imx/imx-tve.c                    |  2 +-
 drivers/gpu/drm/imx/parallel-display.c           |  2 +-
 drivers/gpu/drm/mgag200/mgag200_mode.c           |  2 +-
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_dtv_encoder.c  |  2 +-
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_lcdc_encoder.c |  2 +-
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c  |  2 +-
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c      |  2 +-
 drivers/gpu/drm/nouveau/dispnv04/dac.c           |  3 ++-
 drivers/gpu/drm/nouveau/dispnv04/dfp.c           |  2 +-
 drivers/gpu/drm/nouveau/dispnv04/tvnv04.c        |  3 ++-
 drivers/gpu/drm/nouveau/dispnv04/tvnv17.c        |  3 ++-
 drivers/gpu/drm/nouveau/nv50_display.c           |  6 ++---
 drivers/gpu/drm/omapdrm/omap_encoder.c           |  2 +-
 drivers/gpu/drm/qxl/qxl_display.c                |  2 +-
 drivers/gpu/drm/radeon/atombios_encoders.c       | 30 ++++++++++++++++--------
 drivers/gpu/drm/radeon/radeon_dp_mst.c           |  2 +-
 drivers/gpu/drm/radeon/radeon_legacy_encoders.c  | 15 ++++++++----
 drivers/gpu/drm/rcar-du/rcar_du_encoder.c        |  2 +-
 drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c        |  2 +-
 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c      |  2 +-
 drivers/gpu/drm/shmobile/shmob_drm_crtc.c        |  2 +-
 drivers/gpu/drm/sti/sti_tvout.c                  |  7 +++---
 drivers/gpu/drm/tegra/dsi.c                      |  2 +-
 drivers/gpu/drm/tegra/hdmi.c                     |  2 +-
 drivers/gpu/drm/tegra/rgb.c                      |  2 +-
 drivers/gpu/drm/tegra/sor.c                      |  2 +-
 drivers/gpu/drm/tilcdc/tilcdc_panel.c            |  2 +-
 drivers/gpu/drm/tilcdc/tilcdc_tfp410.c           |  2 +-
 drivers/gpu/drm/udl/udl_encoder.c                |  3 ++-
 drivers/gpu/drm/vc4/vc4_hdmi.c                   |  2 +-
 drivers/gpu/drm/virtio/virtgpu_display.c         |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c              |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c             |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c             |  2 +-
 include/drm/drm_crtc.h                           |  2 +-
 71 files changed, 131 insertions(+), 106 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c 
b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
index 4dcc8fba5792..093599aba64b 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
@@ -3729,7 +3729,7 @@ static void dce_v10_0_encoder_add(struct amdgpu_device 
*adev,
        case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
        case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
                drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
-                                DRM_MODE_ENCODER_DAC);
+                                DRM_MODE_ENCODER_DAC, NULL);
                drm_encoder_helper_add(encoder, &dce_v10_0_dac_helper_funcs);
                break;
        case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1:
@@ -3740,15 +3740,15 @@ static void dce_v10_0_encoder_add(struct amdgpu_device 
*adev,
                if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
                        amdgpu_encoder->rmx_type = RMX_FULL;
                        drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_LVDS);
+                                        DRM_MODE_ENCODER_LVDS, NULL);
                        amdgpu_encoder->enc_priv = 
amdgpu_atombios_encoder_get_lcd_info(amdgpu_encoder);
                } else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) 
{
                        drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_DAC);
+                                        DRM_MODE_ENCODER_DAC, NULL);
                        amdgpu_encoder->enc_priv = 
amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder);
                } else {
                        drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_TMDS);
+                                        DRM_MODE_ENCODER_TMDS, NULL);
                        amdgpu_encoder->enc_priv = 
amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder);
                }
                drm_encoder_helper_add(encoder, &dce_v10_0_dig_helper_funcs);
@@ -3766,13 +3766,13 @@ static void dce_v10_0_encoder_add(struct amdgpu_device 
*adev,
                amdgpu_encoder->is_ext_encoder = true;
                if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
                        drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_LVDS);
+                                        DRM_MODE_ENCODER_LVDS, NULL);
                else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT))
                        drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_DAC);
+                                        DRM_MODE_ENCODER_DAC, NULL);
                else
                        drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_TMDS);
+                                        DRM_MODE_ENCODER_TMDS, NULL);
                drm_encoder_helper_add(encoder, &dce_v10_0_ext_helper_funcs);
                break;
        }
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c 
b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
index 8f1e51128b33..8701661a8868 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
@@ -3722,7 +3722,7 @@ static void dce_v11_0_encoder_add(struct amdgpu_device 
*adev,
        case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
        case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
                drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
-                                DRM_MODE_ENCODER_DAC);
+                                DRM_MODE_ENCODER_DAC, NULL);
                drm_encoder_helper_add(encoder, &dce_v11_0_dac_helper_funcs);
                break;
        case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1:
@@ -3733,15 +3733,15 @@ static void dce_v11_0_encoder_add(struct amdgpu_device 
*adev,
                if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
                        amdgpu_encoder->rmx_type = RMX_FULL;
                        drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_LVDS);
+                                        DRM_MODE_ENCODER_LVDS, NULL);
                        amdgpu_encoder->enc_priv = 
amdgpu_atombios_encoder_get_lcd_info(amdgpu_encoder);
                } else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) 
{
                        drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_DAC);
+                                        DRM_MODE_ENCODER_DAC, NULL);
                        amdgpu_encoder->enc_priv = 
amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder);
                } else {
                        drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_TMDS);
+                                        DRM_MODE_ENCODER_TMDS, NULL);
                        amdgpu_encoder->enc_priv = 
amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder);
                }
                drm_encoder_helper_add(encoder, &dce_v11_0_dig_helper_funcs);
@@ -3759,13 +3759,13 @@ static void dce_v11_0_encoder_add(struct amdgpu_device 
*adev,
                amdgpu_encoder->is_ext_encoder = true;
                if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
                        drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_LVDS);
+                                        DRM_MODE_ENCODER_LVDS, NULL);
                else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT))
                        drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_DAC);
+                                        DRM_MODE_ENCODER_DAC, NULL);
                else
                        drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_TMDS);
+                                        DRM_MODE_ENCODER_TMDS, NULL);
                drm_encoder_helper_add(encoder, &dce_v11_0_ext_helper_funcs);
                break;
        }
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c 
b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
index 42d954dc436d..d0e128c24813 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
@@ -3659,7 +3659,7 @@ static void dce_v8_0_encoder_add(struct amdgpu_device 
*adev,
        case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
        case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
                drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
-                                DRM_MODE_ENCODER_DAC);
+                                DRM_MODE_ENCODER_DAC, NULL);
                drm_encoder_helper_add(encoder, &dce_v8_0_dac_helper_funcs);
                break;
        case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1:
@@ -3670,15 +3670,15 @@ static void dce_v8_0_encoder_add(struct amdgpu_device 
*adev,
                if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
                        amdgpu_encoder->rmx_type = RMX_FULL;
                        drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_LVDS);
+                                        DRM_MODE_ENCODER_LVDS, NULL);
                        amdgpu_encoder->enc_priv = 
amdgpu_atombios_encoder_get_lcd_info(amdgpu_encoder);
                } else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) 
{
                        drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_DAC);
+                                        DRM_MODE_ENCODER_DAC, NULL);
                        amdgpu_encoder->enc_priv = 
amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder);
                } else {
                        drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_TMDS);
+                                        DRM_MODE_ENCODER_TMDS, NULL);
                        amdgpu_encoder->enc_priv = 
amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder);
                }
                drm_encoder_helper_add(encoder, &dce_v8_0_dig_helper_funcs);
@@ -3696,13 +3696,13 @@ static void dce_v8_0_encoder_add(struct amdgpu_device 
*adev,
                amdgpu_encoder->is_ext_encoder = true;
                if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
                        drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_LVDS);
+                                        DRM_MODE_ENCODER_LVDS, NULL);
                else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT))
                        drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_DAC);
+                                        DRM_MODE_ENCODER_DAC, NULL);
                else
                        drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
-                                        DRM_MODE_ENCODER_TMDS);
+                                        DRM_MODE_ENCODER_TMDS, NULL);
                drm_encoder_helper_add(encoder, &dce_v8_0_ext_helper_funcs);
                break;
        }
diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
index 69d19f3304a5..0123458cbd83 100644
--- a/drivers/gpu/drm/ast/ast_mode.c
+++ b/drivers/gpu/drm/ast/ast_mode.c
@@ -751,7 +751,7 @@ static int ast_encoder_init(struct drm_device *dev)
                return -ENOMEM;

        drm_encoder_init(dev, &ast_encoder->base, &ast_enc_funcs,
-                        DRM_MODE_ENCODER_DAC);
+                        DRM_MODE_ENCODER_DAC, NULL);
        drm_encoder_helper_add(&ast_encoder->base, &ast_enc_helper_funcs);

        ast_encoder->base.possible_crtcs = 1;
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c 
b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c
index 067e4c144bd6..d1129000c5cf 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c
@@ -256,7 +256,7 @@ static int atmel_hlcdc_create_panel_output(struct 
drm_device *dev,
                               &atmel_hlcdc_panel_encoder_helper_funcs);
        ret = drm_encoder_init(dev, &panel->base.encoder,
                               &atmel_hlcdc_panel_encoder_funcs,
-                              DRM_MODE_ENCODER_LVDS);
+                              DRM_MODE_ENCODER_LVDS, NULL);
        if (ret)
                return ret;

diff --git a/drivers/gpu/drm/bochs/bochs_kms.c 
b/drivers/gpu/drm/bochs/bochs_kms.c
index 26bcd03a8cb6..a88be6dd34a4 100644
--- a/drivers/gpu/drm/bochs/bochs_kms.c
+++ b/drivers/gpu/drm/bochs/bochs_kms.c
@@ -196,7 +196,7 @@ static void bochs_encoder_init(struct drm_device *dev)

        encoder->possible_crtcs = 0x1;
        drm_encoder_init(dev, encoder, &bochs_encoder_encoder_funcs,
-                        DRM_MODE_ENCODER_DAC);
+                        DRM_MODE_ENCODER_DAC, NULL);
        drm_encoder_helper_add(encoder, &bochs_encoder_helper_funcs);
 }

diff --git a/drivers/gpu/drm/cirrus/cirrus_mode.c 
b/drivers/gpu/drm/cirrus/cirrus_mode.c
index 61385f2298bf..276719e52153 100644
--- a/drivers/gpu/drm/cirrus/cirrus_mode.c
+++ b/drivers/gpu/drm/cirrus/cirrus_mode.c
@@ -489,7 +489,7 @@ static struct drm_encoder *cirrus_encoder_init(struct 
drm_device *dev)
        encoder->possible_crtcs = 0x1;

        drm_encoder_init(dev, encoder, &cirrus_encoder_encoder_funcs,
-                        DRM_MODE_ENCODER_DAC);
+                        DRM_MODE_ENCODER_DAC, NULL);
        drm_encoder_helper_add(encoder, &cirrus_encoder_helper_funcs);

        return encoder;
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index e1adf2060730..3efff5dfe4f6 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -1077,6 +1077,7 @@ EXPORT_SYMBOL(drm_connector_unplug_all);
  * @encoder: the encoder to init
  * @funcs: callbacks for this encoder
  * @encoder_type: user visible type of the encoder
+ * @name: printf style format string for the encoder name
  *
  * Initialises a preallocated encoder. Encoder should be
  * subclassed as part of driver encoder objects.
@@ -1087,7 +1088,7 @@ EXPORT_SYMBOL(drm_connector_unplug_all);
 int drm_encoder_init(struct drm_device *dev,
                      struct drm_encoder *encoder,
                      const struct drm_encoder_funcs *funcs,
-                     int encoder_type)
+                     int encoder_type, const char *name, ...)
 {
        int ret;

diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c 
b/drivers/gpu/drm/exynos/exynos_dp_core.c
index 124fb9a56f02..cf17713907bd 100644
--- a/drivers/gpu/drm/exynos/exynos_dp_core.c
+++ b/drivers/gpu/drm/exynos/exynos_dp_core.c
@@ -1313,7 +1313,7 @@ static int exynos_dp_bind(struct device *dev, struct 
device *master, void *data)
        DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs);

        drm_encoder_init(drm_dev, encoder, &exynos_dp_encoder_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);

        drm_encoder_helper_add(encoder, &exynos_dp_encoder_helper_funcs);

diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c 
b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
index c748b8790de3..1dbf8dca2d6b 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
@@ -309,7 +309,7 @@ int exynos_dpi_bind(struct drm_device *dev, struct 
drm_encoder *encoder)
        DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs);

        drm_encoder_init(dev, encoder, &exynos_dpi_encoder_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);

        drm_encoder_helper_add(encoder, &exynos_dpi_encoder_helper_funcs);

diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c 
b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index 12b03b364703..0a99160afaaa 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1831,7 +1831,7 @@ static int exynos_dsi_bind(struct device *dev, struct 
device *master,
        DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs);

        drm_encoder_init(drm_dev, encoder, &exynos_dsi_encoder_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);

        drm_encoder_helper_add(encoder, &exynos_dsi_encoder_helper_funcs);

diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c 
b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
index 669362c53f49..c34d49a8fd84 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
@@ -473,7 +473,7 @@ static int vidi_bind(struct device *dev, struct device 
*master, void *data)
        DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs);

        drm_encoder_init(drm_dev, encoder, &exynos_vidi_encoder_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);

        drm_encoder_helper_add(encoder, &exynos_vidi_encoder_helper_funcs);

diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
b/drivers/gpu/drm/exynos/exynos_hdmi.c
index 57b675563e94..ba3543e1af6e 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -1793,7 +1793,7 @@ static int hdmi_bind(struct device *dev, struct device 
*master, void *data)
        DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs);

        drm_encoder_init(drm_dev, encoder, &exynos_hdmi_encoder_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);

        drm_encoder_helper_add(encoder, &exynos_hdmi_encoder_helper_funcs);

diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c 
b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
index fe8ab5da04fb..8780deba5e8a 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
@@ -57,7 +57,7 @@ int fsl_dcu_drm_encoder_create(struct fsl_dcu_drm_device 
*fsl_dev,

        encoder->possible_crtcs = 1;
        ret = drm_encoder_init(fsl_dev->drm, encoder, &encoder_funcs,
-                              DRM_MODE_ENCODER_LVDS);
+                              DRM_MODE_ENCODER_LVDS, NULL);
        if (ret < 0)
                return ret;

diff --git a/drivers/gpu/drm/gma500/cdv_intel_crt.c 
b/drivers/gpu/drm/gma500/cdv_intel_crt.c
index 248c33a35ebf..d0717a85c7ec 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_crt.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_crt.c
@@ -273,7 +273,7 @@ void cdv_intel_crt_init(struct drm_device *dev,

        encoder = &gma_encoder->base;
        drm_encoder_init(dev, encoder,
-               &cdv_intel_crt_enc_funcs, DRM_MODE_ENCODER_DAC);
+               &cdv_intel_crt_enc_funcs, DRM_MODE_ENCODER_DAC, NULL);

        gma_connector_attach_encoder(gma_connector, gma_encoder);

diff --git a/drivers/gpu/drm/gma500/cdv_intel_dp.c 
b/drivers/gpu/drm/gma500/cdv_intel_dp.c
index 17cea400ae32..7bb1f1aff932 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_dp.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_dp.c
@@ -2020,7 +2020,8 @@ cdv_intel_dp_init(struct drm_device *dev, struct 
psb_intel_mode_device *mode_dev
        encoder = &gma_encoder->base;

        drm_connector_init(dev, connector, &cdv_intel_dp_connector_funcs, type);
-       drm_encoder_init(dev, encoder, &cdv_intel_dp_enc_funcs, 
DRM_MODE_ENCODER_TMDS);
+       drm_encoder_init(dev, encoder, &cdv_intel_dp_enc_funcs,
+                        DRM_MODE_ENCODER_TMDS, NULL);

        gma_connector_attach_encoder(gma_connector, gma_encoder);

diff --git a/drivers/gpu/drm/gma500/cdv_intel_hdmi.c 
b/drivers/gpu/drm/gma500/cdv_intel_hdmi.c
index e7b1e99fe2cc..ddf2d7700759 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_hdmi.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_hdmi.c
@@ -313,7 +313,7 @@ void cdv_hdmi_init(struct drm_device *dev,
                           DRM_MODE_CONNECTOR_DVID);

        drm_encoder_init(dev, encoder, &psb_intel_lvds_enc_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);

        gma_connector_attach_encoder(gma_connector, gma_encoder);
        gma_encoder->type = INTEL_OUTPUT_HDMI;
diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c 
b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
index 9e648bcb81a7..813ef23a8054 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
@@ -652,7 +652,7 @@ void cdv_intel_lvds_init(struct drm_device *dev,

        drm_encoder_init(dev, encoder,
                         &cdv_intel_lvds_enc_funcs,
-                        DRM_MODE_ENCODER_LVDS);
+                        DRM_MODE_ENCODER_LVDS, NULL);


        gma_connector_attach_encoder(gma_connector, gma_encoder);
diff --git a/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c 
b/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
index d4813e03f5ee..1a1acd3cb049 100644
--- a/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
+++ b/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
@@ -994,7 +994,7 @@ struct mdfld_dsi_encoder *mdfld_dsi_dpi_init(struct 
drm_device *dev,
        drm_encoder_init(dev,
                        encoder,
                        p_funcs->encoder_funcs,
-                       DRM_MODE_ENCODER_LVDS);
+                       DRM_MODE_ENCODER_LVDS, NULL);
        drm_encoder_helper_add(encoder,
                                p_funcs->encoder_helper_funcs);

diff --git a/drivers/gpu/drm/gma500/oaktrail_hdmi.c 
b/drivers/gpu/drm/gma500/oaktrail_hdmi.c
index 2310d879cdc2..2d18499d6060 100644
--- a/drivers/gpu/drm/gma500/oaktrail_hdmi.c
+++ b/drivers/gpu/drm/gma500/oaktrail_hdmi.c
@@ -654,7 +654,7 @@ void oaktrail_hdmi_init(struct drm_device *dev,

        drm_encoder_init(dev, encoder,
                         &oaktrail_hdmi_enc_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);

        gma_connector_attach_encoder(gma_connector, gma_encoder);

diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds.c 
b/drivers/gpu/drm/gma500/oaktrail_lvds.c
index 83bbc271bcfb..f7038f12ac76 100644
--- a/drivers/gpu/drm/gma500/oaktrail_lvds.c
+++ b/drivers/gpu/drm/gma500/oaktrail_lvds.c
@@ -323,7 +323,7 @@ void oaktrail_lvds_init(struct drm_device *dev,
                           DRM_MODE_CONNECTOR_LVDS);

        drm_encoder_init(dev, encoder, &psb_intel_lvds_enc_funcs,
-                        DRM_MODE_ENCODER_LVDS);
+                        DRM_MODE_ENCODER_LVDS, NULL);

        gma_connector_attach_encoder(gma_connector, gma_encoder);
        gma_encoder->type = INTEL_OUTPUT_LVDS;
diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c 
b/drivers/gpu/drm/gma500/psb_intel_lvds.c
index 0d6143702b86..b1b93317d054 100644
--- a/drivers/gpu/drm/gma500/psb_intel_lvds.c
+++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c
@@ -723,7 +723,7 @@ void psb_intel_lvds_init(struct drm_device *dev,

        drm_encoder_init(dev, encoder,
                         &psb_intel_lvds_enc_funcs,
-                        DRM_MODE_ENCODER_LVDS);
+                        DRM_MODE_ENCODER_LVDS, NULL);

        gma_connector_attach_encoder(gma_connector, gma_encoder);
        gma_encoder->type = INTEL_OUTPUT_LVDS;
diff --git a/drivers/gpu/drm/gma500/psb_intel_sdvo.c 
b/drivers/gpu/drm/gma500/psb_intel_sdvo.c
index 86f28ac1e673..e787d376ba67 100644
--- a/drivers/gpu/drm/gma500/psb_intel_sdvo.c
+++ b/drivers/gpu/drm/gma500/psb_intel_sdvo.c
@@ -2526,7 +2526,8 @@ bool psb_intel_sdvo_init(struct drm_device *dev, int 
sdvo_reg)
        /* encoder type will be decided later */
        gma_encoder = &psb_intel_sdvo->base;
        gma_encoder->type = INTEL_OUTPUT_SDVO;
-       drm_encoder_init(dev, &gma_encoder->base, &psb_intel_sdvo_enc_funcs, 0);
+       drm_encoder_init(dev, &gma_encoder->base, &psb_intel_sdvo_enc_funcs,
+                        0, NULL);

        /* Read the regs to test if we can talk to the device */
        for (i = 0; i < 0x40; i++) {
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c 
b/drivers/gpu/drm/i2c/tda998x_drv.c
index 79cb9208530e..a46248f0c9c3 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -1423,7 +1423,7 @@ static int tda998x_bind(struct device *dev, struct device 
*master, void *data)

        drm_encoder_helper_add(&priv->encoder, &tda998x_encoder_helper_funcs);
        ret = drm_encoder_init(drm, &priv->encoder, &tda998x_encoder_funcs,
-                              DRM_MODE_ENCODER_TMDS);
+                              DRM_MODE_ENCODER_TMDS, NULL);
        if (ret)
                goto err_encoder;

diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index cef359958c73..9c89df1af036 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -824,7 +824,7 @@ void intel_crt_init(struct drm_device *dev)
                           &intel_crt_connector_funcs, DRM_MODE_CONNECTOR_VGA);

        drm_encoder_init(dev, &crt->base.base, &intel_crt_enc_funcs,
-                        DRM_MODE_ENCODER_DAC);
+                        DRM_MODE_ENCODER_DAC, NULL);

        intel_connector_attach_encoder(intel_connector, &crt->base);

diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 5d20c64d8566..b0b1a4838cea 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -3290,7 +3290,7 @@ void intel_ddi_init(struct drm_device *dev, enum port 
port)
        encoder = &intel_encoder->base;

        drm_encoder_init(dev, encoder, &intel_ddi_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);

        intel_encoder->compute_config = intel_ddi_compute_config;
        intel_encoder->enable = intel_enable_ddi;
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index f335c92b4fa7..0f0573aa1b0d 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5989,7 +5989,7 @@ intel_dp_init(struct drm_device *dev,
        encoder = &intel_encoder->base;

        drm_encoder_init(dev, &intel_encoder->base, &intel_dp_enc_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);

        intel_encoder->compute_config = intel_dp_compute_config;
        intel_encoder->disable = intel_disable_dp;
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c 
b/drivers/gpu/drm/i915/intel_dp_mst.c
index 8c4e7dfe304c..e8d369d0a713 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -536,7 +536,7 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port 
*intel_dig_port, enum
        intel_mst->primary = intel_dig_port;

        drm_encoder_init(dev, &intel_encoder->base, &intel_dp_mst_enc_funcs,
-                        DRM_MODE_ENCODER_DPMST);
+                        DRM_MODE_ENCODER_DPMST, NULL);

        intel_encoder->type = INTEL_OUTPUT_DP_MST;
        intel_encoder->crtc_mask = 0x7;
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
index 230957f9f663..fff9a66c32a1 100644
--- a/drivers/gpu/drm/i915/intel_dsi.c
+++ b/drivers/gpu/drm/i915/intel_dsi.c
@@ -1152,7 +1152,8 @@ void intel_dsi_init(struct drm_device *dev)

        connector = &intel_connector->base;

-       drm_encoder_init(dev, encoder, &intel_dsi_funcs, DRM_MODE_ENCODER_DSI);
+       drm_encoder_init(dev, encoder, &intel_dsi_funcs, DRM_MODE_ENCODER_DSI,
+                        NULL);

        intel_encoder->compute_config = intel_dsi_compute_config;
        intel_encoder->pre_enable = intel_dsi_pre_enable;
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
index 7161deb2aed8..286baec979c8 100644
--- a/drivers/gpu/drm/i915/intel_dvo.c
+++ b/drivers/gpu/drm/i915/intel_dvo.c
@@ -429,7 +429,7 @@ void intel_dvo_init(struct drm_device *dev)

        intel_encoder = &intel_dvo->base;
        drm_encoder_init(dev, &intel_encoder->base,
-                        &intel_dvo_enc_funcs, encoder_type);
+                        &intel_dvo_enc_funcs, encoder_type, NULL);

        intel_encoder->disable = intel_disable_dvo;
        intel_encoder->enable = intel_enable_dvo;
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c 
b/drivers/gpu/drm/i915/intel_hdmi.c
index c3978bad5ca0..00d065fee506 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -2164,7 +2164,7 @@ void intel_hdmi_init(struct drm_device *dev,
        intel_encoder = &intel_dig_port->base;

        drm_encoder_init(dev, &intel_encoder->base, &intel_hdmi_enc_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);

        intel_encoder->compute_config = intel_hdmi_compute_config;
        if (HAS_PCH_SPLIT(dev)) {
diff --git a/drivers/gpu/drm/i915/intel_lvds.c 
b/drivers/gpu/drm/i915/intel_lvds.c
index 61f1145f6579..0da0240caf81 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -1025,7 +1025,7 @@ void intel_lvds_init(struct drm_device *dev)
                           DRM_MODE_CONNECTOR_LVDS);

        drm_encoder_init(dev, &intel_encoder->base, &intel_lvds_enc_funcs,
-                        DRM_MODE_ENCODER_LVDS);
+                        DRM_MODE_ENCODER_LVDS, NULL);

        intel_encoder->enable = intel_enable_lvds;
        intel_encoder->pre_enable = intel_pre_enable_lvds;
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c 
b/drivers/gpu/drm/i915/intel_sdvo.c
index 06679f164b3e..2e1da060b0e1 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -2978,7 +2978,8 @@ bool intel_sdvo_init(struct drm_device *dev,
        /* encoder type will be decided later */
        intel_encoder = &intel_sdvo->base;
        intel_encoder->type = INTEL_OUTPUT_SDVO;
-       drm_encoder_init(dev, &intel_encoder->base, &intel_sdvo_enc_funcs, 0);
+       drm_encoder_init(dev, &intel_encoder->base, &intel_sdvo_enc_funcs, 0,
+                        NULL);

        /* Read the regs to test if we can talk to the device */
        for (i = 0; i < 0x40; i++) {
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index 6bea78944cd6..948cbff6c62e 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1645,7 +1645,7 @@ intel_tv_init(struct drm_device *dev)
                           DRM_MODE_CONNECTOR_SVIDEO);

        drm_encoder_init(dev, &intel_encoder->base, &intel_tv_enc_funcs,
-                        DRM_MODE_ENCODER_TVDAC);
+                        DRM_MODE_ENCODER_TVDAC, NULL);

        intel_encoder->compute_config = intel_tv_compute_config;
        intel_encoder->get_config = intel_tv_get_config;
diff --git a/drivers/gpu/drm/imx/dw_hdmi-imx.c 
b/drivers/gpu/drm/imx/dw_hdmi-imx.c
index 98605ea2ad9d..35fcf6b84537 100644
--- a/drivers/gpu/drm/imx/dw_hdmi-imx.c
+++ b/drivers/gpu/drm/imx/dw_hdmi-imx.c
@@ -251,7 +251,7 @@ static int dw_hdmi_imx_bind(struct device *dev, struct 
device *master,

        drm_encoder_helper_add(encoder, &dw_hdmi_imx_encoder_helper_funcs);
        drm_encoder_init(drm, encoder, &dw_hdmi_imx_encoder_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);

        return dw_hdmi_bind(dev, master, data, encoder, iores, irq, plat_data);
 }
diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
index abacc8f67469..c79a61b67ded 100644
--- a/drivers/gpu/drm/imx/imx-ldb.c
+++ b/drivers/gpu/drm/imx/imx-ldb.c
@@ -422,7 +422,7 @@ static int imx_ldb_register(struct drm_device *drm,
        drm_encoder_helper_add(&imx_ldb_ch->encoder,
                        &imx_ldb_encoder_helper_funcs);
        drm_encoder_init(drm, &imx_ldb_ch->encoder, &imx_ldb_encoder_funcs,
-                        DRM_MODE_ENCODER_LVDS);
+                        DRM_MODE_ENCODER_LVDS, NULL);

        drm_connector_helper_add(&imx_ldb_ch->connector,
                        &imx_ldb_connector_helper_funcs);
diff --git a/drivers/gpu/drm/imx/imx-tve.c b/drivers/gpu/drm/imx/imx-tve.c
index f9597146dc67..e61a8fca77cd 100644
--- a/drivers/gpu/drm/imx/imx-tve.c
+++ b/drivers/gpu/drm/imx/imx-tve.c
@@ -508,7 +508,7 @@ static int imx_tve_register(struct drm_device *drm, struct 
imx_tve *tve)

        drm_encoder_helper_add(&tve->encoder, &imx_tve_encoder_helper_funcs);
        drm_encoder_init(drm, &tve->encoder, &imx_tve_encoder_funcs,
-                        encoder_type);
+                        encoder_type, NULL);

        drm_connector_helper_add(&tve->connector,
                        &imx_tve_connector_helper_funcs);
diff --git a/drivers/gpu/drm/imx/parallel-display.c 
b/drivers/gpu/drm/imx/parallel-display.c
index 2e9b9f1b5cd2..fcbe4d2eeabf 100644
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
@@ -192,7 +192,7 @@ static int imx_pd_register(struct drm_device *drm,

        drm_encoder_helper_add(&imxpd->encoder, &imx_pd_encoder_helper_funcs);
        drm_encoder_init(drm, &imxpd->encoder, &imx_pd_encoder_funcs,
-                        DRM_MODE_ENCODER_NONE);
+                        DRM_MODE_ENCODER_NONE, NULL);

        drm_connector_helper_add(&imxpd->connector,
                        &imx_pd_connector_helper_funcs);
diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c 
b/drivers/gpu/drm/mgag200/mgag200_mode.c
index c99d3fe12881..31802128dfbb 100644
--- a/drivers/gpu/drm/mgag200/mgag200_mode.c
+++ b/drivers/gpu/drm/mgag200/mgag200_mode.c
@@ -1538,7 +1538,7 @@ static struct drm_encoder *mga_encoder_init(struct 
drm_device *dev)
        encoder->possible_crtcs = 0x1;

        drm_encoder_init(dev, encoder, &mga_encoder_encoder_funcs,
-                        DRM_MODE_ENCODER_DAC);
+                        DRM_MODE_ENCODER_DAC, NULL);
        drm_encoder_helper_add(encoder, &mga_encoder_helper_funcs);

        return encoder;
diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_dtv_encoder.c 
b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_dtv_encoder.c
index 89614c6a6c1b..a21df54cb50f 100644
--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_dtv_encoder.c
+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_dtv_encoder.c
@@ -262,7 +262,7 @@ struct drm_encoder *mdp4_dtv_encoder_init(struct drm_device 
*dev)
        encoder = &mdp4_dtv_encoder->base;

        drm_encoder_init(dev, encoder, &mdp4_dtv_encoder_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);
        drm_encoder_helper_add(encoder, &mdp4_dtv_encoder_helper_funcs);

        mdp4_dtv_encoder->src_clk = devm_clk_get(dev->dev, "src_clk");
diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lcdc_encoder.c 
b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lcdc_encoder.c
index 4cd6e721aa0a..f824c643a7d1 100644
--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lcdc_encoder.c
+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lcdc_encoder.c
@@ -460,7 +460,7 @@ struct drm_encoder *mdp4_lcdc_encoder_init(struct 
drm_device *dev,
        encoder = &mdp4_lcdc_encoder->base;

        drm_encoder_init(dev, encoder, &mdp4_lcdc_encoder_funcs,
-                        DRM_MODE_ENCODER_LVDS);
+                        DRM_MODE_ENCODER_LVDS, NULL);
        drm_encoder_helper_add(encoder, &mdp4_lcdc_encoder_helper_funcs);

        /* TODO: do we need different pll in other cases? */
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c 
b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c
index 8e6c9b598a57..1aa21dba663d 100644
--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c
@@ -326,7 +326,7 @@ struct drm_encoder *mdp5_cmd_encoder_init(struct drm_device 
*dev,
        mdp5_cmd_enc->ctl = ctl;

        drm_encoder_init(dev, encoder, &mdp5_cmd_encoder_funcs,
-                       DRM_MODE_ENCODER_DSI);
+                       DRM_MODE_ENCODER_DSI, NULL);

        drm_encoder_helper_add(encoder, &mdp5_cmd_encoder_helper_funcs);

diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c 
b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c
index c9e32b08a7a0..278e307c36fd 100644
--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c
@@ -354,7 +354,7 @@ struct drm_encoder *mdp5_encoder_init(struct drm_device 
*dev,

        spin_lock_init(&mdp5_encoder->intf_lock);

-       drm_encoder_init(dev, encoder, &mdp5_encoder_funcs, enc_type);
+       drm_encoder_init(dev, encoder, &mdp5_encoder_funcs, enc_type, NULL);

        drm_encoder_helper_add(encoder, &mdp5_encoder_helper_funcs);

diff --git a/drivers/gpu/drm/nouveau/dispnv04/dac.c 
b/drivers/gpu/drm/nouveau/dispnv04/dac.c
index 6c442def403d..b48eec395f07 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/dac.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/dac.c
@@ -549,7 +549,8 @@ nv04_dac_create(struct drm_connector *connector, struct 
dcb_output *entry)
        else
                helper = &nv04_dac_helper_funcs;

-       drm_encoder_init(dev, encoder, &nv04_dac_funcs, DRM_MODE_ENCODER_DAC);
+       drm_encoder_init(dev, encoder, &nv04_dac_funcs, DRM_MODE_ENCODER_DAC,
+                        NULL);
        drm_encoder_helper_add(encoder, helper);

        encoder->possible_crtcs = entry->heads;
diff --git a/drivers/gpu/drm/nouveau/dispnv04/dfp.c 
b/drivers/gpu/drm/nouveau/dispnv04/dfp.c
index 4c5fb89d74db..05bfd151d1d8 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/dfp.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/dfp.c
@@ -705,7 +705,7 @@ nv04_dfp_create(struct drm_connector *connector, struct 
dcb_output *entry)
        nv_encoder->dcb = entry;
        nv_encoder->or = ffs(entry->or) - 1;

-       drm_encoder_init(connector->dev, encoder, &nv04_dfp_funcs, type);
+       drm_encoder_init(connector->dev, encoder, &nv04_dfp_funcs, type, NULL);
        drm_encoder_helper_add(encoder, helper);

        encoder->possible_crtcs = entry->heads;
diff --git a/drivers/gpu/drm/nouveau/dispnv04/tvnv04.c 
b/drivers/gpu/drm/nouveau/dispnv04/tvnv04.c
index 91d689400d2e..54e9fb9eb5c0 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/tvnv04.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/tvnv04.c
@@ -223,7 +223,8 @@ nv04_tv_create(struct drm_connector *connector, struct 
dcb_output *entry)
        /* Initialize the common members */
        encoder = to_drm_encoder(nv_encoder);

-       drm_encoder_init(dev, encoder, &nv04_tv_funcs, DRM_MODE_ENCODER_TVDAC);
+       drm_encoder_init(dev, encoder, &nv04_tv_funcs, DRM_MODE_ENCODER_TVDAC,
+                        NULL);
        drm_encoder_helper_add(encoder, &nv04_tv_helper_funcs);

        nv_encoder->enc_save = drm_i2c_encoder_save;
diff --git a/drivers/gpu/drm/nouveau/dispnv04/tvnv17.c 
b/drivers/gpu/drm/nouveau/dispnv04/tvnv17.c
index ff8c55866b18..d9644c0c5a83 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/tvnv17.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/tvnv17.c
@@ -814,7 +814,8 @@ nv17_tv_create(struct drm_connector *connector, struct 
dcb_output *entry)
        tv_enc->base.dcb = entry;
        tv_enc->base.or = ffs(entry->or) - 1;

-       drm_encoder_init(dev, encoder, &nv17_tv_funcs, DRM_MODE_ENCODER_TVDAC);
+       drm_encoder_init(dev, encoder, &nv17_tv_funcs, DRM_MODE_ENCODER_TVDAC,
+                        NULL);
        drm_encoder_helper_add(encoder, &nv17_tv_helper_funcs);
        to_encoder_slave(encoder)->slave_funcs = &nv17_tv_slave_funcs;

diff --git a/drivers/gpu/drm/nouveau/nv50_display.c 
b/drivers/gpu/drm/nouveau/nv50_display.c
index a240939beca4..44e1952582aa 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -1718,7 +1718,7 @@ nv50_dac_create(struct drm_connector *connector, struct 
dcb_output *dcbe)
        encoder = to_drm_encoder(nv_encoder);
        encoder->possible_crtcs = dcbe->heads;
        encoder->possible_clones = 0;
-       drm_encoder_init(connector->dev, encoder, &nv50_dac_func, type);
+       drm_encoder_init(connector->dev, encoder, &nv50_dac_func, type, NULL);
        drm_encoder_helper_add(encoder, &nv50_dac_hfunc);

        drm_mode_connector_attach_encoder(connector, encoder);
@@ -2126,7 +2126,7 @@ nv50_sor_create(struct drm_connector *connector, struct 
dcb_output *dcbe)
        encoder = to_drm_encoder(nv_encoder);
        encoder->possible_crtcs = dcbe->heads;
        encoder->possible_clones = 0;
-       drm_encoder_init(connector->dev, encoder, &nv50_sor_func, type);
+       drm_encoder_init(connector->dev, encoder, &nv50_sor_func, type, NULL);
        drm_encoder_helper_add(encoder, &nv50_sor_hfunc);

        drm_mode_connector_attach_encoder(connector, encoder);
@@ -2306,7 +2306,7 @@ nv50_pior_create(struct drm_connector *connector, struct 
dcb_output *dcbe)
        encoder = to_drm_encoder(nv_encoder);
        encoder->possible_crtcs = dcbe->heads;
        encoder->possible_clones = 0;
-       drm_encoder_init(connector->dev, encoder, &nv50_pior_func, type);
+       drm_encoder_init(connector->dev, encoder, &nv50_pior_func, type, NULL);
        drm_encoder_helper_add(encoder, &nv50_pior_hfunc);

        drm_mode_connector_attach_encoder(connector, encoder);
diff --git a/drivers/gpu/drm/omapdrm/omap_encoder.c 
b/drivers/gpu/drm/omapdrm/omap_encoder.c
index 7d9b32a0eb43..0c104ad7ef66 100644
--- a/drivers/gpu/drm/omapdrm/omap_encoder.c
+++ b/drivers/gpu/drm/omapdrm/omap_encoder.c
@@ -178,7 +178,7 @@ struct drm_encoder *omap_encoder_init(struct drm_device 
*dev,
        encoder = &omap_encoder->base;

        drm_encoder_init(dev, encoder, &omap_encoder_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);
        drm_encoder_helper_add(encoder, &omap_encoder_helper_funcs);

        return encoder;
diff --git a/drivers/gpu/drm/qxl/qxl_display.c 
b/drivers/gpu/drm/qxl/qxl_display.c
index ebf7f3946a65..9be1af41e8d7 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -968,7 +968,7 @@ static int qdev_output_init(struct drm_device *dev, int 
num_output)
                           &qxl_connector_funcs, DRM_MODE_CONNECTOR_VIRTUAL);

        drm_encoder_init(dev, &qxl_output->enc, &qxl_enc_funcs,
-                        DRM_MODE_ENCODER_VIRTUAL);
+                        DRM_MODE_ENCODER_VIRTUAL, NULL);

        /* we get HPD via client monitors config */
        connector->polled = DRM_CONNECTOR_POLL_HPD;
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c 
b/drivers/gpu/drm/radeon/atombios_encoders.c
index bb292143997e..01b20e14a247 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -2767,23 +2767,27 @@ radeon_add_atom_encoder(struct drm_device *dev,
        case ENCODER_OBJECT_ID_INTERNAL_LVTM1:
                if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
                        radeon_encoder->rmx_type = RMX_FULL;
-                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, 
DRM_MODE_ENCODER_LVDS);
+                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
+                                        DRM_MODE_ENCODER_LVDS, NULL);
                        radeon_encoder->enc_priv = 
radeon_atombios_get_lvds_info(radeon_encoder);
                } else {
-                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, 
DRM_MODE_ENCODER_TMDS);
+                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
+                                        DRM_MODE_ENCODER_TMDS, NULL);
                        radeon_encoder->enc_priv = 
radeon_atombios_set_dig_info(radeon_encoder);
                }
                drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs);
                break;
        case ENCODER_OBJECT_ID_INTERNAL_DAC1:
-               drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, 
DRM_MODE_ENCODER_DAC);
+               drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
+                                DRM_MODE_ENCODER_DAC, NULL);
                radeon_encoder->enc_priv = 
radeon_atombios_set_dac_info(radeon_encoder);
                drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs);
                break;
        case ENCODER_OBJECT_ID_INTERNAL_DAC2:
        case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
        case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
-               drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, 
DRM_MODE_ENCODER_TVDAC);
+               drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
+                                DRM_MODE_ENCODER_TVDAC, NULL);
                radeon_encoder->enc_priv = 
radeon_atombios_set_dac_info(radeon_encoder);
                drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs);
                break;
@@ -2797,13 +2801,16 @@ radeon_add_atom_encoder(struct drm_device *dev,
        case ENCODER_OBJECT_ID_INTERNAL_UNIPHY3:
                if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
                        radeon_encoder->rmx_type = RMX_FULL;
-                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, 
DRM_MODE_ENCODER_LVDS);
+                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
+                                        DRM_MODE_ENCODER_LVDS, NULL);
                        radeon_encoder->enc_priv = 
radeon_atombios_get_lvds_info(radeon_encoder);
                } else if (radeon_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) 
{
-                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, 
DRM_MODE_ENCODER_DAC);
+                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
+                                        DRM_MODE_ENCODER_DAC, NULL);
                        radeon_encoder->enc_priv = 
radeon_atombios_set_dig_info(radeon_encoder);
                } else {
-                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, 
DRM_MODE_ENCODER_TMDS);
+                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
+                                        DRM_MODE_ENCODER_TMDS, NULL);
                        radeon_encoder->enc_priv = 
radeon_atombios_set_dig_info(radeon_encoder);
                }
                drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs);
@@ -2820,11 +2827,14 @@ radeon_add_atom_encoder(struct drm_device *dev,
                /* these are handled by the primary encoders */
                radeon_encoder->is_ext_encoder = true;
                if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
-                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, 
DRM_MODE_ENCODER_LVDS);
+                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
+                                        DRM_MODE_ENCODER_LVDS, NULL);
                else if (radeon_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT))
-                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, 
DRM_MODE_ENCODER_DAC);
+                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
+                                        DRM_MODE_ENCODER_DAC, NULL);
                else
-                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, 
DRM_MODE_ENCODER_TMDS);
+                       drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
+                                        DRM_MODE_ENCODER_TMDS, NULL);
                drm_encoder_helper_add(encoder, &radeon_atom_ext_helper_funcs);
                break;
        }
diff --git a/drivers/gpu/drm/radeon/radeon_dp_mst.c 
b/drivers/gpu/drm/radeon/radeon_dp_mst.c
index 744f5c49c664..94323f51ffcf 100644
--- a/drivers/gpu/drm/radeon/radeon_dp_mst.c
+++ b/drivers/gpu/drm/radeon/radeon_dp_mst.c
@@ -641,7 +641,7 @@ radeon_dp_create_fake_mst_encoder(struct radeon_connector 
*connector)
        }

        drm_encoder_init(dev, &radeon_encoder->base, &radeon_dp_mst_enc_funcs,
-                        DRM_MODE_ENCODER_DPMST);
+                        DRM_MODE_ENCODER_DPMST, NULL);
        drm_encoder_helper_add(encoder, &radeon_mst_helper_funcs);

        mst_enc = radeon_encoder->enc_priv;
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c 
b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
index 30de43366eae..88dc973fb209 100644
--- a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
@@ -1772,7 +1772,8 @@ radeon_add_legacy_encoder(struct drm_device *dev, 
uint32_t encoder_enum, uint32_
        switch (radeon_encoder->encoder_id) {
        case ENCODER_OBJECT_ID_INTERNAL_LVDS:
                encoder->possible_crtcs = 0x1;
-               drm_encoder_init(dev, encoder, &radeon_legacy_lvds_enc_funcs, 
DRM_MODE_ENCODER_LVDS);
+               drm_encoder_init(dev, encoder, &radeon_legacy_lvds_enc_funcs,
+                                DRM_MODE_ENCODER_LVDS, NULL);
                drm_encoder_helper_add(encoder, 
&radeon_legacy_lvds_helper_funcs);
                if (rdev->is_atom_bios)
                        radeon_encoder->enc_priv = 
radeon_atombios_get_lvds_info(radeon_encoder);
@@ -1781,12 +1782,14 @@ radeon_add_legacy_encoder(struct drm_device *dev, 
uint32_t encoder_enum, uint32_
                radeon_encoder->rmx_type = RMX_FULL;
                break;
        case ENCODER_OBJECT_ID_INTERNAL_TMDS1:
-               drm_encoder_init(dev, encoder, 
&radeon_legacy_tmds_int_enc_funcs, DRM_MODE_ENCODER_TMDS);
+               drm_encoder_init(dev, encoder, 
&radeon_legacy_tmds_int_enc_funcs,
+                                DRM_MODE_ENCODER_TMDS, NULL);
                drm_encoder_helper_add(encoder, 
&radeon_legacy_tmds_int_helper_funcs);
                radeon_encoder->enc_priv = 
radeon_legacy_get_tmds_info(radeon_encoder);
                break;
        case ENCODER_OBJECT_ID_INTERNAL_DAC1:
-               drm_encoder_init(dev, encoder, 
&radeon_legacy_primary_dac_enc_funcs, DRM_MODE_ENCODER_DAC);
+               drm_encoder_init(dev, encoder, 
&radeon_legacy_primary_dac_enc_funcs,
+                                DRM_MODE_ENCODER_DAC, NULL);
                drm_encoder_helper_add(encoder, 
&radeon_legacy_primary_dac_helper_funcs);
                if (rdev->is_atom_bios)
                        radeon_encoder->enc_priv = 
radeon_atombios_get_primary_dac_info(radeon_encoder);
@@ -1794,7 +1797,8 @@ radeon_add_legacy_encoder(struct drm_device *dev, 
uint32_t encoder_enum, uint32_
                        radeon_encoder->enc_priv = 
radeon_combios_get_primary_dac_info(radeon_encoder);
                break;
        case ENCODER_OBJECT_ID_INTERNAL_DAC2:
-               drm_encoder_init(dev, encoder, &radeon_legacy_tv_dac_enc_funcs, 
DRM_MODE_ENCODER_TVDAC);
+               drm_encoder_init(dev, encoder, &radeon_legacy_tv_dac_enc_funcs,
+                                DRM_MODE_ENCODER_TVDAC, NULL);
                drm_encoder_helper_add(encoder, 
&radeon_legacy_tv_dac_helper_funcs);
                if (rdev->is_atom_bios)
                        radeon_encoder->enc_priv = 
radeon_atombios_get_tv_dac_info(radeon_encoder);
@@ -1802,7 +1806,8 @@ radeon_add_legacy_encoder(struct drm_device *dev, 
uint32_t encoder_enum, uint32_
                        radeon_encoder->enc_priv = 
radeon_combios_get_tv_dac_info(radeon_encoder);
                break;
        case ENCODER_OBJECT_ID_INTERNAL_DVO1:
-               drm_encoder_init(dev, encoder, 
&radeon_legacy_tmds_ext_enc_funcs, DRM_MODE_ENCODER_TMDS);
+               drm_encoder_init(dev, encoder, 
&radeon_legacy_tmds_ext_enc_funcs,
+                                DRM_MODE_ENCODER_TMDS, NULL);
                drm_encoder_helper_add(encoder, 
&radeon_legacy_tmds_ext_helper_funcs);
                if (!rdev->is_atom_bios)
                        radeon_encoder->enc_priv = 
radeon_legacy_get_ext_tmds_info(radeon_encoder);
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c 
b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c
index d0ae1e8009c6..c08700757feb 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c
@@ -173,7 +173,7 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu,
                        goto done;
        } else {
                ret = drm_encoder_init(rcdu->ddev, encoder, &encoder_funcs,
-                                      encoder_type);
+                                      encoder_type, NULL);
                if (ret < 0)
                        goto done;

diff --git a/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c 
b/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c
index 81da8419282b..11267de26a51 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c
@@ -151,7 +151,7 @@ int rcar_du_hdmienc_init(struct rcar_du_device *rcdu,
                goto error;

        ret = drm_encoder_init(rcdu->ddev, encoder, &encoder_funcs,
-                              DRM_MODE_ENCODER_TMDS);
+                              DRM_MODE_ENCODER_TMDS, NULL);
        if (ret < 0)
                goto error;

diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c 
b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
index 80d6fc8a5cee..525b5a81e96e 100644
--- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
+++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
@@ -295,7 +295,7 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct 
device *master,

        drm_encoder_helper_add(encoder, &dw_hdmi_rockchip_encoder_helper_funcs);
        drm_encoder_init(drm, encoder, &dw_hdmi_rockchip_encoder_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);

        return dw_hdmi_bind(dev, master, data, encoder, iores, irq, plat_data);
 }
diff --git a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c 
b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
index e9272b0a8592..b80802f55143 100644
--- a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
+++ b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
@@ -613,7 +613,7 @@ int shmob_drm_encoder_create(struct shmob_drm_device *sdev)
        encoder->possible_crtcs = 1;

        ret = drm_encoder_init(sdev->ddev, encoder, &encoder_funcs,
-                              DRM_MODE_ENCODER_LVDS);
+                              DRM_MODE_ENCODER_LVDS, NULL);
        if (ret < 0)
                return ret;

diff --git a/drivers/gpu/drm/sti/sti_tvout.c b/drivers/gpu/drm/sti/sti_tvout.c
index c8a4c5dae2b6..f2afcf5438b8 100644
--- a/drivers/gpu/drm/sti/sti_tvout.c
+++ b/drivers/gpu/drm/sti/sti_tvout.c
@@ -512,7 +512,8 @@ sti_tvout_create_dvo_encoder(struct drm_device *dev,
        drm_encoder->possible_clones = 1 << 0;

        drm_encoder_init(dev, drm_encoder,
-                        &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_LVDS);
+                        &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_LVDS,
+                        NULL);

        drm_encoder_helper_add(drm_encoder, &sti_dvo_encoder_helper_funcs);

@@ -564,7 +565,7 @@ static struct drm_encoder 
*sti_tvout_create_hda_encoder(struct drm_device *dev,
        drm_encoder->possible_clones = 1 << 0;

        drm_encoder_init(dev, drm_encoder,
-                       &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_DAC);
+                       &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_DAC, NULL);

        drm_encoder_helper_add(drm_encoder, &sti_hda_encoder_helper_funcs);

@@ -613,7 +614,7 @@ static struct drm_encoder 
*sti_tvout_create_hdmi_encoder(struct drm_device *dev,
        drm_encoder->possible_clones = 1 << 1;

        drm_encoder_init(dev, drm_encoder,
-                       &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_TMDS);
+                       &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_TMDS, NULL);

        drm_encoder_helper_add(drm_encoder, &sti_hdmi_encoder_helper_funcs);

diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
index f0a138ef68ce..50d46ae3786b 100644
--- a/drivers/gpu/drm/tegra/dsi.c
+++ b/drivers/gpu/drm/tegra/dsi.c
@@ -1023,7 +1023,7 @@ static int tegra_dsi_init(struct host1x_client *client)

                drm_encoder_init(drm, &dsi->output.encoder,
                                 &tegra_dsi_encoder_funcs,
-                                DRM_MODE_ENCODER_DSI);
+                                DRM_MODE_ENCODER_DSI, NULL);
                drm_encoder_helper_add(&dsi->output.encoder,
                                       &tegra_dsi_encoder_helper_funcs);

diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
index 52b32cbd9de6..b7ef4929e347 100644
--- a/drivers/gpu/drm/tegra/hdmi.c
+++ b/drivers/gpu/drm/tegra/hdmi.c
@@ -1320,7 +1320,7 @@ static int tegra_hdmi_init(struct host1x_client *client)
        hdmi->output.connector.dpms = DRM_MODE_DPMS_OFF;

        drm_encoder_init(drm, &hdmi->output.encoder, &tegra_hdmi_encoder_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);
        drm_encoder_helper_add(&hdmi->output.encoder,
                               &tegra_hdmi_encoder_helper_funcs);

diff --git a/drivers/gpu/drm/tegra/rgb.c b/drivers/gpu/drm/tegra/rgb.c
index bc9735b4ad60..e246334e0252 100644
--- a/drivers/gpu/drm/tegra/rgb.c
+++ b/drivers/gpu/drm/tegra/rgb.c
@@ -287,7 +287,7 @@ int tegra_dc_rgb_init(struct drm_device *drm, struct 
tegra_dc *dc)
        output->connector.dpms = DRM_MODE_DPMS_OFF;

        drm_encoder_init(drm, &output->encoder, &tegra_rgb_encoder_funcs,
-                        DRM_MODE_ENCODER_LVDS);
+                        DRM_MODE_ENCODER_LVDS, NULL);
        drm_encoder_helper_add(&output->encoder,
                               &tegra_rgb_encoder_helper_funcs);

diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index 3eff7cf75d25..3e012ee25242 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -2178,7 +2178,7 @@ static int tegra_sor_init(struct host1x_client *client)
        sor->output.connector.dpms = DRM_MODE_DPMS_OFF;

        drm_encoder_init(drm, &sor->output.encoder, &tegra_sor_encoder_funcs,
-                        encoder);
+                        encoder, NULL);
        drm_encoder_helper_add(&sor->output.encoder, helpers);

        drm_mode_connector_attach_encoder(&sor->output.connector,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c 
b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
index 0af8bed7ce1e..4dda6e2f464b 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
@@ -128,7 +128,7 @@ static struct drm_encoder *panel_encoder_create(struct 
drm_device *dev,
        encoder->possible_crtcs = 1;

        ret = drm_encoder_init(dev, encoder, &panel_encoder_funcs,
-                       DRM_MODE_ENCODER_LVDS);
+                       DRM_MODE_ENCODER_LVDS, NULL);
        if (ret < 0)
                goto fail;

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c 
b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
index 354c47ca6374..5052a8af7ecb 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
@@ -138,7 +138,7 @@ static struct drm_encoder *tfp410_encoder_create(struct 
drm_device *dev,
        encoder->possible_crtcs = 1;

        ret = drm_encoder_init(dev, encoder, &tfp410_encoder_funcs,
-                       DRM_MODE_ENCODER_TMDS);
+                       DRM_MODE_ENCODER_TMDS, NULL);
        if (ret < 0)
                goto fail;

diff --git a/drivers/gpu/drm/udl/udl_encoder.c 
b/drivers/gpu/drm/udl/udl_encoder.c
index 4052c4656498..a181a647fcf9 100644
--- a/drivers/gpu/drm/udl/udl_encoder.c
+++ b/drivers/gpu/drm/udl/udl_encoder.c
@@ -73,7 +73,8 @@ struct drm_encoder *udl_encoder_init(struct drm_device *dev)
        if (!encoder)
                return NULL;

-       drm_encoder_init(dev, encoder, &udl_enc_funcs, DRM_MODE_ENCODER_TMDS);
+       drm_encoder_init(dev, encoder, &udl_enc_funcs, DRM_MODE_ENCODER_TMDS,
+                        NULL);
        drm_encoder_helper_add(encoder, &udl_helper_funcs);
        encoder->possible_crtcs = 1;
        return encoder;
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index da9a36d6e1d1..c69c0460196b 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -519,7 +519,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device 
*master, void *data)
        WARN_ON_ONCE((HD_READ(VC4_HD_M_CTL) & VC4_HD_M_ENABLE) == 0);

        drm_encoder_init(drm, hdmi->encoder, &vc4_hdmi_encoder_funcs,
-                        DRM_MODE_ENCODER_TMDS);
+                        DRM_MODE_ENCODER_TMDS, NULL);
        drm_encoder_helper_add(hdmi->encoder, &vc4_hdmi_encoder_helper_funcs);

        hdmi->connector = vc4_hdmi_connector_init(drm, hdmi->encoder);
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c 
b/drivers/gpu/drm/virtio/virtgpu_display.c
index ef4cef0c8ece..588a7aec60bf 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -441,7 +441,7 @@ static int vgdev_output_init(struct virtio_gpu_device 
*vgdev, int index)
        drm_connector_helper_add(connector, &virtio_gpu_conn_helper_funcs);

        drm_encoder_init(dev, encoder, &virtio_gpu_enc_funcs,
-                        DRM_MODE_ENCODER_VIRTUAL);
+                        DRM_MODE_ENCODER_VIRTUAL, NULL);
        drm_encoder_helper_add(encoder, &virtio_gpu_enc_helper_funcs);
        encoder->possible_crtcs = 1 << index;

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
index c1c09b338cc1..2aff5e51d926 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
@@ -363,7 +363,7 @@ static int vmw_ldu_init(struct vmw_private *dev_priv, 
unsigned unit)
        connector->status = vmw_du_connector_detect(connector, true);

        drm_encoder_init(dev, encoder, &vmw_legacy_encoder_funcs,
-                        DRM_MODE_ENCODER_VIRTUAL);
+                        DRM_MODE_ENCODER_VIRTUAL, NULL);
        drm_mode_connector_attach_encoder(connector, encoder);
        encoder->possible_crtcs = (1 << unit);
        encoder->possible_clones = 0;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
index 5379dc4bbcac..6bb7af37934a 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
@@ -597,7 +597,7 @@ static int vmw_sou_init(struct vmw_private *dev_priv, 
unsigned unit)
        connector->status = vmw_du_connector_detect(connector, true);

        drm_encoder_init(dev, encoder, &vmw_screen_object_encoder_funcs,
-                        DRM_MODE_ENCODER_VIRTUAL);
+                        DRM_MODE_ENCODER_VIRTUAL, NULL);
        drm_mode_connector_attach_encoder(connector, encoder);
        encoder->possible_crtcs = (1 << unit);
        encoder->possible_clones = 0;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
index 05375a8cc129..45e72c2f15cd 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
@@ -1145,7 +1145,7 @@ static int vmw_stdu_init(struct vmw_private *dev_priv, 
unsigned unit)
        connector->status = vmw_du_connector_detect(connector, false);

        drm_encoder_init(dev, encoder, &vmw_stdu_encoder_funcs,
-                        DRM_MODE_ENCODER_VIRTUAL);
+                        DRM_MODE_ENCODER_VIRTUAL, NULL);
        drm_mode_connector_attach_encoder(connector, encoder);
        encoder->possible_crtcs = (1 << unit);
        encoder->possible_clones = 0;
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 4199602b9b4d..292919e44734 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -2198,7 +2198,7 @@ void drm_bridge_enable(struct drm_bridge *bridge);
 extern int drm_encoder_init(struct drm_device *dev,
                            struct drm_encoder *encoder,
                            const struct drm_encoder_funcs *funcs,
-                           int encoder_type);
+                           int encoder_type, const char *name, ...);

 /**
  * drm_encoder_crtc_ok - can a given crtc drive a given encoder?
-- 
2.4.10

Reply via email to