aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v10_0.c14
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v11_0.c14
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v8_0.c14
-rw-r--r--drivers/gpu/drm/ast/ast_mode.c2
-rw-r--r--drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c2
-rw-r--r--drivers/gpu/drm/bochs/bochs_kms.c2
-rw-r--r--drivers/gpu/drm/cirrus/cirrus_mode.c2
-rw-r--r--drivers/gpu/drm/drm_crtc.c3
-rw-r--r--drivers/gpu/drm/exynos/exynos_dp_core.c2
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_dpi.c2
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_dsi.c2
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_vidi.c2
-rw-r--r--drivers/gpu/drm/exynos/exynos_hdmi.c2
-rw-r--r--drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c2
-rw-r--r--drivers/gpu/drm/gma500/cdv_intel_crt.c2
-rw-r--r--drivers/gpu/drm/gma500/cdv_intel_dp.c3
-rw-r--r--drivers/gpu/drm/gma500/cdv_intel_hdmi.c2
-rw-r--r--drivers/gpu/drm/gma500/cdv_intel_lvds.c2
-rw-r--r--drivers/gpu/drm/gma500/mdfld_dsi_dpi.c2
-rw-r--r--drivers/gpu/drm/gma500/oaktrail_hdmi.c2
-rw-r--r--drivers/gpu/drm/gma500/oaktrail_lvds.c2
-rw-r--r--drivers/gpu/drm/gma500/psb_intel_lvds.c2
-rw-r--r--drivers/gpu/drm/gma500/psb_intel_sdvo.c3
-rw-r--r--drivers/gpu/drm/i2c/tda998x_drv.c2
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c2
-rw-r--r--drivers/gpu/drm/i915/intel_ddi.c2
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c2
-rw-r--r--drivers/gpu/drm/i915/intel_dp_mst.c2
-rw-r--r--drivers/gpu/drm/i915/intel_dsi.c3
-rw-r--r--drivers/gpu/drm/i915/intel_dvo.c2
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c2
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c2
-rw-r--r--drivers/gpu/drm/i915/intel_sdvo.c3
-rw-r--r--drivers/gpu/drm/i915/intel_tv.c2
-rw-r--r--drivers/gpu/drm/imx/dw_hdmi-imx.c2
-rw-r--r--drivers/gpu/drm/imx/imx-ldb.c2
-rw-r--r--drivers/gpu/drm/imx/imx-tve.c2
-rw-r--r--drivers/gpu/drm/imx/parallel-display.c2
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_mode.c2
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4_dtv_encoder.c2
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4_lcdc_encoder.c2
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c2
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c2
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/dac.c3
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/dfp.c2
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/tvnv04.c3
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/tvnv17.c3
-rw-r--r--drivers/gpu/drm/nouveau/nv50_display.c6
-rw-r--r--drivers/gpu/drm/omapdrm/omap_encoder.c2
-rw-r--r--drivers/gpu/drm/qxl/qxl_display.c2
-rw-r--r--drivers/gpu/drm/radeon/atombios_encoders.c30
-rw-r--r--drivers/gpu/drm/radeon/radeon_dp_mst.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_legacy_encoders.c15
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_encoder.c2
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c2
-rw-r--r--drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c2
-rw-r--r--drivers/gpu/drm/shmobile/shmob_drm_crtc.c2
-rw-r--r--drivers/gpu/drm/sti/sti_tvout.c7
-rw-r--r--drivers/gpu/drm/tegra/dsi.c2
-rw-r--r--drivers/gpu/drm/tegra/hdmi.c2
-rw-r--r--drivers/gpu/drm/tegra/rgb.c2
-rw-r--r--drivers/gpu/drm/tegra/sor.c2
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_panel.c2
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_tfp410.c2
-rw-r--r--drivers/gpu/drm/udl/udl_encoder.c3
-rw-r--r--drivers/gpu/drm/vc4/vc4_hdmi.c2
-rw-r--r--drivers/gpu/drm/virtio/virtgpu_display.c2
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c2
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c2
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c2
-rw-r--r--include/drm/drm_crtc.h9
71 files changed, 135 insertions, 109 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,
3729 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: 3729 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
3730 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: 3730 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
3731 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, 3731 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
3732 DRM_MODE_ENCODER_DAC); 3732 DRM_MODE_ENCODER_DAC, NULL);
3733 drm_encoder_helper_add(encoder, &dce_v10_0_dac_helper_funcs); 3733 drm_encoder_helper_add(encoder, &dce_v10_0_dac_helper_funcs);
3734 break; 3734 break;
3735 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1: 3735 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1:
@@ -3740,15 +3740,15 @@ static void dce_v10_0_encoder_add(struct amdgpu_device *adev,
3740 if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) { 3740 if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
3741 amdgpu_encoder->rmx_type = RMX_FULL; 3741 amdgpu_encoder->rmx_type = RMX_FULL;
3742 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, 3742 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
3743 DRM_MODE_ENCODER_LVDS); 3743 DRM_MODE_ENCODER_LVDS, NULL);
3744 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_lcd_info(amdgpu_encoder); 3744 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_lcd_info(amdgpu_encoder);
3745 } else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) { 3745 } else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) {
3746 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, 3746 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
3747 DRM_MODE_ENCODER_DAC); 3747 DRM_MODE_ENCODER_DAC, NULL);
3748 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder); 3748 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder);
3749 } else { 3749 } else {
3750 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, 3750 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
3751 DRM_MODE_ENCODER_TMDS); 3751 DRM_MODE_ENCODER_TMDS, NULL);
3752 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder); 3752 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder);
3753 } 3753 }
3754 drm_encoder_helper_add(encoder, &dce_v10_0_dig_helper_funcs); 3754 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,
3766 amdgpu_encoder->is_ext_encoder = true; 3766 amdgpu_encoder->is_ext_encoder = true;
3767 if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) 3767 if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
3768 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, 3768 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
3769 DRM_MODE_ENCODER_LVDS); 3769 DRM_MODE_ENCODER_LVDS, NULL);
3770 else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) 3770 else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT))
3771 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, 3771 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
3772 DRM_MODE_ENCODER_DAC); 3772 DRM_MODE_ENCODER_DAC, NULL);
3773 else 3773 else
3774 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, 3774 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs,
3775 DRM_MODE_ENCODER_TMDS); 3775 DRM_MODE_ENCODER_TMDS, NULL);
3776 drm_encoder_helper_add(encoder, &dce_v10_0_ext_helper_funcs); 3776 drm_encoder_helper_add(encoder, &dce_v10_0_ext_helper_funcs);
3777 break; 3777 break;
3778 } 3778 }
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,
3722 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: 3722 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
3723 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: 3723 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
3724 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs, 3724 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
3725 DRM_MODE_ENCODER_DAC); 3725 DRM_MODE_ENCODER_DAC, NULL);
3726 drm_encoder_helper_add(encoder, &dce_v11_0_dac_helper_funcs); 3726 drm_encoder_helper_add(encoder, &dce_v11_0_dac_helper_funcs);
3727 break; 3727 break;
3728 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1: 3728 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1:
@@ -3733,15 +3733,15 @@ static void dce_v11_0_encoder_add(struct amdgpu_device *adev,
3733 if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) { 3733 if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
3734 amdgpu_encoder->rmx_type = RMX_FULL; 3734 amdgpu_encoder->rmx_type = RMX_FULL;
3735 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs, 3735 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
3736 DRM_MODE_ENCODER_LVDS); 3736 DRM_MODE_ENCODER_LVDS, NULL);
3737 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_lcd_info(amdgpu_encoder); 3737 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_lcd_info(amdgpu_encoder);
3738 } else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) { 3738 } else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) {
3739 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs, 3739 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
3740 DRM_MODE_ENCODER_DAC); 3740 DRM_MODE_ENCODER_DAC, NULL);
3741 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder); 3741 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder);
3742 } else { 3742 } else {
3743 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs, 3743 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
3744 DRM_MODE_ENCODER_TMDS); 3744 DRM_MODE_ENCODER_TMDS, NULL);
3745 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder); 3745 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder);
3746 } 3746 }
3747 drm_encoder_helper_add(encoder, &dce_v11_0_dig_helper_funcs); 3747 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,
3759 amdgpu_encoder->is_ext_encoder = true; 3759 amdgpu_encoder->is_ext_encoder = true;
3760 if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) 3760 if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
3761 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs, 3761 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
3762 DRM_MODE_ENCODER_LVDS); 3762 DRM_MODE_ENCODER_LVDS, NULL);
3763 else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) 3763 else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT))
3764 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs, 3764 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
3765 DRM_MODE_ENCODER_DAC); 3765 DRM_MODE_ENCODER_DAC, NULL);
3766 else 3766 else
3767 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs, 3767 drm_encoder_init(dev, encoder, &dce_v11_0_encoder_funcs,
3768 DRM_MODE_ENCODER_TMDS); 3768 DRM_MODE_ENCODER_TMDS, NULL);
3769 drm_encoder_helper_add(encoder, &dce_v11_0_ext_helper_funcs); 3769 drm_encoder_helper_add(encoder, &dce_v11_0_ext_helper_funcs);
3770 break; 3770 break;
3771 } 3771 }
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,
3659 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: 3659 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
3660 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: 3660 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
3661 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, 3661 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
3662 DRM_MODE_ENCODER_DAC); 3662 DRM_MODE_ENCODER_DAC, NULL);
3663 drm_encoder_helper_add(encoder, &dce_v8_0_dac_helper_funcs); 3663 drm_encoder_helper_add(encoder, &dce_v8_0_dac_helper_funcs);
3664 break; 3664 break;
3665 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1: 3665 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1:
@@ -3670,15 +3670,15 @@ static void dce_v8_0_encoder_add(struct amdgpu_device *adev,
3670 if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) { 3670 if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
3671 amdgpu_encoder->rmx_type = RMX_FULL; 3671 amdgpu_encoder->rmx_type = RMX_FULL;
3672 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, 3672 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
3673 DRM_MODE_ENCODER_LVDS); 3673 DRM_MODE_ENCODER_LVDS, NULL);
3674 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_lcd_info(amdgpu_encoder); 3674 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_lcd_info(amdgpu_encoder);
3675 } else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) { 3675 } else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) {
3676 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, 3676 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
3677 DRM_MODE_ENCODER_DAC); 3677 DRM_MODE_ENCODER_DAC, NULL);
3678 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder); 3678 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder);
3679 } else { 3679 } else {
3680 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, 3680 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
3681 DRM_MODE_ENCODER_TMDS); 3681 DRM_MODE_ENCODER_TMDS, NULL);
3682 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder); 3682 amdgpu_encoder->enc_priv = amdgpu_atombios_encoder_get_dig_info(amdgpu_encoder);
3683 } 3683 }
3684 drm_encoder_helper_add(encoder, &dce_v8_0_dig_helper_funcs); 3684 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,
3696 amdgpu_encoder->is_ext_encoder = true; 3696 amdgpu_encoder->is_ext_encoder = true;
3697 if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) 3697 if (amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
3698 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, 3698 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
3699 DRM_MODE_ENCODER_LVDS); 3699 DRM_MODE_ENCODER_LVDS, NULL);
3700 else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) 3700 else if (amdgpu_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT))
3701 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, 3701 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
3702 DRM_MODE_ENCODER_DAC); 3702 DRM_MODE_ENCODER_DAC, NULL);
3703 else 3703 else
3704 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, 3704 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs,
3705 DRM_MODE_ENCODER_TMDS); 3705 DRM_MODE_ENCODER_TMDS, NULL);
3706 drm_encoder_helper_add(encoder, &dce_v8_0_ext_helper_funcs); 3706 drm_encoder_helper_add(encoder, &dce_v8_0_ext_helper_funcs);
3707 break; 3707 break;
3708 } 3708 }
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)
751 return -ENOMEM; 751 return -ENOMEM;
752 752
753 drm_encoder_init(dev, &ast_encoder->base, &ast_enc_funcs, 753 drm_encoder_init(dev, &ast_encoder->base, &ast_enc_funcs,
754 DRM_MODE_ENCODER_DAC); 754 DRM_MODE_ENCODER_DAC, NULL);
755 drm_encoder_helper_add(&ast_encoder->base, &ast_enc_helper_funcs); 755 drm_encoder_helper_add(&ast_encoder->base, &ast_enc_helper_funcs);
756 756
757 ast_encoder->base.possible_crtcs = 1; 757 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,
256 &atmel_hlcdc_panel_encoder_helper_funcs); 256 &atmel_hlcdc_panel_encoder_helper_funcs);
257 ret = drm_encoder_init(dev, &panel->base.encoder, 257 ret = drm_encoder_init(dev, &panel->base.encoder,
258 &atmel_hlcdc_panel_encoder_funcs, 258 &atmel_hlcdc_panel_encoder_funcs,
259 DRM_MODE_ENCODER_LVDS); 259 DRM_MODE_ENCODER_LVDS, NULL);
260 if (ret) 260 if (ret)
261 return ret; 261 return ret;
262 262
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)
196 196
197 encoder->possible_crtcs = 0x1; 197 encoder->possible_crtcs = 0x1;
198 drm_encoder_init(dev, encoder, &bochs_encoder_encoder_funcs, 198 drm_encoder_init(dev, encoder, &bochs_encoder_encoder_funcs,
199 DRM_MODE_ENCODER_DAC); 199 DRM_MODE_ENCODER_DAC, NULL);
200 drm_encoder_helper_add(encoder, &bochs_encoder_helper_funcs); 200 drm_encoder_helper_add(encoder, &bochs_encoder_helper_funcs);
201} 201}
202 202
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)
489 encoder->possible_crtcs = 0x1; 489 encoder->possible_crtcs = 0x1;
490 490
491 drm_encoder_init(dev, encoder, &cirrus_encoder_encoder_funcs, 491 drm_encoder_init(dev, encoder, &cirrus_encoder_encoder_funcs,
492 DRM_MODE_ENCODER_DAC); 492 DRM_MODE_ENCODER_DAC, NULL);
493 drm_encoder_helper_add(encoder, &cirrus_encoder_helper_funcs); 493 drm_encoder_helper_add(encoder, &cirrus_encoder_helper_funcs);
494 494
495 return encoder; 495 return encoder;
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 20d67a06efce..b1111ea2b29d 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);
1077 * @encoder: the encoder to init 1077 * @encoder: the encoder to init
1078 * @funcs: callbacks for this encoder 1078 * @funcs: callbacks for this encoder
1079 * @encoder_type: user visible type of the encoder 1079 * @encoder_type: user visible type of the encoder
1080 * @name: printf style format string for the encoder name, or NULL for default name
1080 * 1081 *
1081 * Initialises a preallocated encoder. Encoder should be 1082 * Initialises a preallocated encoder. Encoder should be
1082 * subclassed as part of driver encoder objects. 1083 * subclassed as part of driver encoder objects.
@@ -1087,7 +1088,7 @@ EXPORT_SYMBOL(drm_connector_unplug_all);
1087int drm_encoder_init(struct drm_device *dev, 1088int drm_encoder_init(struct drm_device *dev,
1088 struct drm_encoder *encoder, 1089 struct drm_encoder *encoder,
1089 const struct drm_encoder_funcs *funcs, 1090 const struct drm_encoder_funcs *funcs,
1090 int encoder_type) 1091 int encoder_type, const char *name, ...)
1091{ 1092{
1092 int ret; 1093 int ret;
1093 1094
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)
1313 DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs); 1313 DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs);
1314 1314
1315 drm_encoder_init(drm_dev, encoder, &exynos_dp_encoder_funcs, 1315 drm_encoder_init(drm_dev, encoder, &exynos_dp_encoder_funcs,
1316 DRM_MODE_ENCODER_TMDS); 1316 DRM_MODE_ENCODER_TMDS, NULL);
1317 1317
1318 drm_encoder_helper_add(encoder, &exynos_dp_encoder_helper_funcs); 1318 drm_encoder_helper_add(encoder, &exynos_dp_encoder_helper_funcs);
1319 1319
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)
309 DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs); 309 DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs);
310 310
311 drm_encoder_init(dev, encoder, &exynos_dpi_encoder_funcs, 311 drm_encoder_init(dev, encoder, &exynos_dpi_encoder_funcs,
312 DRM_MODE_ENCODER_TMDS); 312 DRM_MODE_ENCODER_TMDS, NULL);
313 313
314 drm_encoder_helper_add(encoder, &exynos_dpi_encoder_helper_funcs); 314 drm_encoder_helper_add(encoder, &exynos_dpi_encoder_helper_funcs);
315 315
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,
1831 DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs); 1831 DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs);
1832 1832
1833 drm_encoder_init(drm_dev, encoder, &exynos_dsi_encoder_funcs, 1833 drm_encoder_init(drm_dev, encoder, &exynos_dsi_encoder_funcs,
1834 DRM_MODE_ENCODER_TMDS); 1834 DRM_MODE_ENCODER_TMDS, NULL);
1835 1835
1836 drm_encoder_helper_add(encoder, &exynos_dsi_encoder_helper_funcs); 1836 drm_encoder_helper_add(encoder, &exynos_dsi_encoder_helper_funcs);
1837 1837
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)
473 DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs); 473 DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs);
474 474
475 drm_encoder_init(drm_dev, encoder, &exynos_vidi_encoder_funcs, 475 drm_encoder_init(drm_dev, encoder, &exynos_vidi_encoder_funcs,
476 DRM_MODE_ENCODER_TMDS); 476 DRM_MODE_ENCODER_TMDS, NULL);
477 477
478 drm_encoder_helper_add(encoder, &exynos_vidi_encoder_helper_funcs); 478 drm_encoder_helper_add(encoder, &exynos_vidi_encoder_helper_funcs);
479 479
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)
1793 DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs); 1793 DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs);
1794 1794
1795 drm_encoder_init(drm_dev, encoder, &exynos_hdmi_encoder_funcs, 1795 drm_encoder_init(drm_dev, encoder, &exynos_hdmi_encoder_funcs,
1796 DRM_MODE_ENCODER_TMDS); 1796 DRM_MODE_ENCODER_TMDS, NULL);
1797 1797
1798 drm_encoder_helper_add(encoder, &exynos_hdmi_encoder_helper_funcs); 1798 drm_encoder_helper_add(encoder, &exynos_hdmi_encoder_helper_funcs);
1799 1799
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,
57 57
58 encoder->possible_crtcs = 1; 58 encoder->possible_crtcs = 1;
59 ret = drm_encoder_init(fsl_dev->drm, encoder, &encoder_funcs, 59 ret = drm_encoder_init(fsl_dev->drm, encoder, &encoder_funcs,
60 DRM_MODE_ENCODER_LVDS); 60 DRM_MODE_ENCODER_LVDS, NULL);
61 if (ret < 0) 61 if (ret < 0)
62 return ret; 62 return ret;
63 63
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,
273 273
274 encoder = &gma_encoder->base; 274 encoder = &gma_encoder->base;
275 drm_encoder_init(dev, encoder, 275 drm_encoder_init(dev, encoder,
276 &cdv_intel_crt_enc_funcs, DRM_MODE_ENCODER_DAC); 276 &cdv_intel_crt_enc_funcs, DRM_MODE_ENCODER_DAC, NULL);
277 277
278 gma_connector_attach_encoder(gma_connector, gma_encoder); 278 gma_connector_attach_encoder(gma_connector, gma_encoder);
279 279
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
2020 encoder = &gma_encoder->base; 2020 encoder = &gma_encoder->base;
2021 2021
2022 drm_connector_init(dev, connector, &cdv_intel_dp_connector_funcs, type); 2022 drm_connector_init(dev, connector, &cdv_intel_dp_connector_funcs, type);
2023 drm_encoder_init(dev, encoder, &cdv_intel_dp_enc_funcs, DRM_MODE_ENCODER_TMDS); 2023 drm_encoder_init(dev, encoder, &cdv_intel_dp_enc_funcs,
2024 DRM_MODE_ENCODER_TMDS, NULL);
2024 2025
2025 gma_connector_attach_encoder(gma_connector, gma_encoder); 2026 gma_connector_attach_encoder(gma_connector, gma_encoder);
2026 2027
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,
313 DRM_MODE_CONNECTOR_DVID); 313 DRM_MODE_CONNECTOR_DVID);
314 314
315 drm_encoder_init(dev, encoder, &psb_intel_lvds_enc_funcs, 315 drm_encoder_init(dev, encoder, &psb_intel_lvds_enc_funcs,
316 DRM_MODE_ENCODER_TMDS); 316 DRM_MODE_ENCODER_TMDS, NULL);
317 317
318 gma_connector_attach_encoder(gma_connector, gma_encoder); 318 gma_connector_attach_encoder(gma_connector, gma_encoder);
319 gma_encoder->type = INTEL_OUTPUT_HDMI; 319 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,
652 652
653 drm_encoder_init(dev, encoder, 653 drm_encoder_init(dev, encoder,
654 &cdv_intel_lvds_enc_funcs, 654 &cdv_intel_lvds_enc_funcs,
655 DRM_MODE_ENCODER_LVDS); 655 DRM_MODE_ENCODER_LVDS, NULL);
656 656
657 657
658 gma_connector_attach_encoder(gma_connector, gma_encoder); 658 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,
994 drm_encoder_init(dev, 994 drm_encoder_init(dev,
995 encoder, 995 encoder,
996 p_funcs->encoder_funcs, 996 p_funcs->encoder_funcs,
997 DRM_MODE_ENCODER_LVDS); 997 DRM_MODE_ENCODER_LVDS, NULL);
998 drm_encoder_helper_add(encoder, 998 drm_encoder_helper_add(encoder,
999 p_funcs->encoder_helper_funcs); 999 p_funcs->encoder_helper_funcs);
1000 1000
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,
654 654
655 drm_encoder_init(dev, encoder, 655 drm_encoder_init(dev, encoder,
656 &oaktrail_hdmi_enc_funcs, 656 &oaktrail_hdmi_enc_funcs,
657 DRM_MODE_ENCODER_TMDS); 657 DRM_MODE_ENCODER_TMDS, NULL);
658 658
659 gma_connector_attach_encoder(gma_connector, gma_encoder); 659 gma_connector_attach_encoder(gma_connector, gma_encoder);
660 660
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,
323 DRM_MODE_CONNECTOR_LVDS); 323 DRM_MODE_CONNECTOR_LVDS);
324 324
325 drm_encoder_init(dev, encoder, &psb_intel_lvds_enc_funcs, 325 drm_encoder_init(dev, encoder, &psb_intel_lvds_enc_funcs,
326 DRM_MODE_ENCODER_LVDS); 326 DRM_MODE_ENCODER_LVDS, NULL);
327 327
328 gma_connector_attach_encoder(gma_connector, gma_encoder); 328 gma_connector_attach_encoder(gma_connector, gma_encoder);
329 gma_encoder->type = INTEL_OUTPUT_LVDS; 329 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,
723 723
724 drm_encoder_init(dev, encoder, 724 drm_encoder_init(dev, encoder,
725 &psb_intel_lvds_enc_funcs, 725 &psb_intel_lvds_enc_funcs,
726 DRM_MODE_ENCODER_LVDS); 726 DRM_MODE_ENCODER_LVDS, NULL);
727 727
728 gma_connector_attach_encoder(gma_connector, gma_encoder); 728 gma_connector_attach_encoder(gma_connector, gma_encoder);
729 gma_encoder->type = INTEL_OUTPUT_LVDS; 729 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)
2526 /* encoder type will be decided later */ 2526 /* encoder type will be decided later */
2527 gma_encoder = &psb_intel_sdvo->base; 2527 gma_encoder = &psb_intel_sdvo->base;
2528 gma_encoder->type = INTEL_OUTPUT_SDVO; 2528 gma_encoder->type = INTEL_OUTPUT_SDVO;
2529 drm_encoder_init(dev, &gma_encoder->base, &psb_intel_sdvo_enc_funcs, 0); 2529 drm_encoder_init(dev, &gma_encoder->base, &psb_intel_sdvo_enc_funcs,
2530 0, NULL);
2530 2531
2531 /* Read the regs to test if we can talk to the device */ 2532 /* Read the regs to test if we can talk to the device */
2532 for (i = 0; i < 0x40; i++) { 2533 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)
1423 1423
1424 drm_encoder_helper_add(&priv->encoder, &tda998x_encoder_helper_funcs); 1424 drm_encoder_helper_add(&priv->encoder, &tda998x_encoder_helper_funcs);
1425 ret = drm_encoder_init(drm, &priv->encoder, &tda998x_encoder_funcs, 1425 ret = drm_encoder_init(drm, &priv->encoder, &tda998x_encoder_funcs,
1426 DRM_MODE_ENCODER_TMDS); 1426 DRM_MODE_ENCODER_TMDS, NULL);
1427 if (ret) 1427 if (ret)
1428 goto err_encoder; 1428 goto err_encoder;
1429 1429
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index 27b3e610e8f0..912c0ac95f2a 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -798,7 +798,7 @@ void intel_crt_init(struct drm_device *dev)
798 &intel_crt_connector_funcs, DRM_MODE_CONNECTOR_VGA); 798 &intel_crt_connector_funcs, DRM_MODE_CONNECTOR_VGA);
799 799
800 drm_encoder_init(dev, &crt->base.base, &intel_crt_enc_funcs, 800 drm_encoder_init(dev, &crt->base.base, &intel_crt_enc_funcs,
801 DRM_MODE_ENCODER_DAC); 801 DRM_MODE_ENCODER_DAC, NULL);
802 802
803 intel_connector_attach_encoder(intel_connector, &crt->base); 803 intel_connector_attach_encoder(intel_connector, &crt->base);
804 804
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 76ce7c2960b6..37efcd16ec81 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -3284,7 +3284,7 @@ void intel_ddi_init(struct drm_device *dev, enum port port)
3284 encoder = &intel_encoder->base; 3284 encoder = &intel_encoder->base;
3285 3285
3286 drm_encoder_init(dev, encoder, &intel_ddi_funcs, 3286 drm_encoder_init(dev, encoder, &intel_ddi_funcs,
3287 DRM_MODE_ENCODER_TMDS); 3287 DRM_MODE_ENCODER_TMDS, NULL);
3288 3288
3289 intel_encoder->compute_config = intel_ddi_compute_config; 3289 intel_encoder->compute_config = intel_ddi_compute_config;
3290 intel_encoder->enable = intel_enable_ddi; 3290 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 e1ceff7ab265..9b10526cc6dd 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5977,7 +5977,7 @@ intel_dp_init(struct drm_device *dev,
5977 encoder = &intel_encoder->base; 5977 encoder = &intel_encoder->base;
5978 5978
5979 drm_encoder_init(dev, &intel_encoder->base, &intel_dp_enc_funcs, 5979 drm_encoder_init(dev, &intel_encoder->base, &intel_dp_enc_funcs,
5980 DRM_MODE_ENCODER_TMDS); 5980 DRM_MODE_ENCODER_TMDS, NULL);
5981 5981
5982 intel_encoder->compute_config = intel_dp_compute_config; 5982 intel_encoder->compute_config = intel_dp_compute_config;
5983 intel_encoder->disable = intel_disable_dp; 5983 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
536 intel_mst->primary = intel_dig_port; 536 intel_mst->primary = intel_dig_port;
537 537
538 drm_encoder_init(dev, &intel_encoder->base, &intel_dp_mst_enc_funcs, 538 drm_encoder_init(dev, &intel_encoder->base, &intel_dp_mst_enc_funcs,
539 DRM_MODE_ENCODER_DPMST); 539 DRM_MODE_ENCODER_DPMST, NULL);
540 540
541 intel_encoder->type = INTEL_OUTPUT_DP_MST; 541 intel_encoder->type = INTEL_OUTPUT_DP_MST;
542 intel_encoder->crtc_mask = 0x7; 542 intel_encoder->crtc_mask = 0x7;
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
index efb5a27dd49c..add2cf541218 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)
1152 1152
1153 connector = &intel_connector->base; 1153 connector = &intel_connector->base;
1154 1154
1155 drm_encoder_init(dev, encoder, &intel_dsi_funcs, DRM_MODE_ENCODER_DSI); 1155 drm_encoder_init(dev, encoder, &intel_dsi_funcs, DRM_MODE_ENCODER_DSI,
1156 NULL);
1156 1157
1157 /* XXX: very likely not all of these are needed */ 1158 /* XXX: very likely not all of these are needed */
1158 intel_encoder->compute_config = intel_dsi_compute_config; 1159 intel_encoder->compute_config = intel_dsi_compute_config;
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)
429 429
430 intel_encoder = &intel_dvo->base; 430 intel_encoder = &intel_dvo->base;
431 drm_encoder_init(dev, &intel_encoder->base, 431 drm_encoder_init(dev, &intel_encoder->base,
432 &intel_dvo_enc_funcs, encoder_type); 432 &intel_dvo_enc_funcs, encoder_type, NULL);
433 433
434 intel_encoder->disable = intel_disable_dvo; 434 intel_encoder->disable = intel_disable_dvo;
435 intel_encoder->enable = intel_enable_dvo; 435 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 bdd462e7c690..6dd1e09a894b 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -2165,7 +2165,7 @@ void intel_hdmi_init(struct drm_device *dev,
2165 intel_encoder = &intel_dig_port->base; 2165 intel_encoder = &intel_dig_port->base;
2166 2166
2167 drm_encoder_init(dev, &intel_encoder->base, &intel_hdmi_enc_funcs, 2167 drm_encoder_init(dev, &intel_encoder->base, &intel_hdmi_enc_funcs,
2168 DRM_MODE_ENCODER_TMDS); 2168 DRM_MODE_ENCODER_TMDS, NULL);
2169 2169
2170 intel_encoder->compute_config = intel_hdmi_compute_config; 2170 intel_encoder->compute_config = intel_hdmi_compute_config;
2171 if (HAS_PCH_SPLIT(dev)) { 2171 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)
1025 DRM_MODE_CONNECTOR_LVDS); 1025 DRM_MODE_CONNECTOR_LVDS);
1026 1026
1027 drm_encoder_init(dev, &intel_encoder->base, &intel_lvds_enc_funcs, 1027 drm_encoder_init(dev, &intel_encoder->base, &intel_lvds_enc_funcs,
1028 DRM_MODE_ENCODER_LVDS); 1028 DRM_MODE_ENCODER_LVDS, NULL);
1029 1029
1030 intel_encoder->enable = intel_enable_lvds; 1030 intel_encoder->enable = intel_enable_lvds;
1031 intel_encoder->pre_enable = intel_pre_enable_lvds; 1031 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,
2978 /* encoder type will be decided later */ 2978 /* encoder type will be decided later */
2979 intel_encoder = &intel_sdvo->base; 2979 intel_encoder = &intel_sdvo->base;
2980 intel_encoder->type = INTEL_OUTPUT_SDVO; 2980 intel_encoder->type = INTEL_OUTPUT_SDVO;
2981 drm_encoder_init(dev, &intel_encoder->base, &intel_sdvo_enc_funcs, 0); 2981 drm_encoder_init(dev, &intel_encoder->base, &intel_sdvo_enc_funcs, 0,
2982 NULL);
2982 2983
2983 /* Read the regs to test if we can talk to the device */ 2984 /* Read the regs to test if we can talk to the device */
2984 for (i = 0; i < 0x40; i++) { 2985 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)
1645 DRM_MODE_CONNECTOR_SVIDEO); 1645 DRM_MODE_CONNECTOR_SVIDEO);
1646 1646
1647 drm_encoder_init(dev, &intel_encoder->base, &intel_tv_enc_funcs, 1647 drm_encoder_init(dev, &intel_encoder->base, &intel_tv_enc_funcs,
1648 DRM_MODE_ENCODER_TVDAC); 1648 DRM_MODE_ENCODER_TVDAC, NULL);
1649 1649
1650 intel_encoder->compute_config = intel_tv_compute_config; 1650 intel_encoder->compute_config = intel_tv_compute_config;
1651 intel_encoder->get_config = intel_tv_get_config; 1651 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,
251 251
252 drm_encoder_helper_add(encoder, &dw_hdmi_imx_encoder_helper_funcs); 252 drm_encoder_helper_add(encoder, &dw_hdmi_imx_encoder_helper_funcs);
253 drm_encoder_init(drm, encoder, &dw_hdmi_imx_encoder_funcs, 253 drm_encoder_init(drm, encoder, &dw_hdmi_imx_encoder_funcs,
254 DRM_MODE_ENCODER_TMDS); 254 DRM_MODE_ENCODER_TMDS, NULL);
255 255
256 return dw_hdmi_bind(dev, master, data, encoder, iores, irq, plat_data); 256 return dw_hdmi_bind(dev, master, data, encoder, iores, irq, plat_data);
257} 257}
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,
422 drm_encoder_helper_add(&imx_ldb_ch->encoder, 422 drm_encoder_helper_add(&imx_ldb_ch->encoder,
423 &imx_ldb_encoder_helper_funcs); 423 &imx_ldb_encoder_helper_funcs);
424 drm_encoder_init(drm, &imx_ldb_ch->encoder, &imx_ldb_encoder_funcs, 424 drm_encoder_init(drm, &imx_ldb_ch->encoder, &imx_ldb_encoder_funcs,
425 DRM_MODE_ENCODER_LVDS); 425 DRM_MODE_ENCODER_LVDS, NULL);
426 426
427 drm_connector_helper_add(&imx_ldb_ch->connector, 427 drm_connector_helper_add(&imx_ldb_ch->connector,
428 &imx_ldb_connector_helper_funcs); 428 &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)
508 508
509 drm_encoder_helper_add(&tve->encoder, &imx_tve_encoder_helper_funcs); 509 drm_encoder_helper_add(&tve->encoder, &imx_tve_encoder_helper_funcs);
510 drm_encoder_init(drm, &tve->encoder, &imx_tve_encoder_funcs, 510 drm_encoder_init(drm, &tve->encoder, &imx_tve_encoder_funcs,
511 encoder_type); 511 encoder_type, NULL);
512 512
513 drm_connector_helper_add(&tve->connector, 513 drm_connector_helper_add(&tve->connector,
514 &imx_tve_connector_helper_funcs); 514 &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,
192 192
193 drm_encoder_helper_add(&imxpd->encoder, &imx_pd_encoder_helper_funcs); 193 drm_encoder_helper_add(&imxpd->encoder, &imx_pd_encoder_helper_funcs);
194 drm_encoder_init(drm, &imxpd->encoder, &imx_pd_encoder_funcs, 194 drm_encoder_init(drm, &imxpd->encoder, &imx_pd_encoder_funcs,
195 DRM_MODE_ENCODER_NONE); 195 DRM_MODE_ENCODER_NONE, NULL);
196 196
197 drm_connector_helper_add(&imxpd->connector, 197 drm_connector_helper_add(&imxpd->connector,
198 &imx_pd_connector_helper_funcs); 198 &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)
1538 encoder->possible_crtcs = 0x1; 1538 encoder->possible_crtcs = 0x1;
1539 1539
1540 drm_encoder_init(dev, encoder, &mga_encoder_encoder_funcs, 1540 drm_encoder_init(dev, encoder, &mga_encoder_encoder_funcs,
1541 DRM_MODE_ENCODER_DAC); 1541 DRM_MODE_ENCODER_DAC, NULL);
1542 drm_encoder_helper_add(encoder, &mga_encoder_helper_funcs); 1542 drm_encoder_helper_add(encoder, &mga_encoder_helper_funcs);
1543 1543
1544 return encoder; 1544 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)
262 encoder = &mdp4_dtv_encoder->base; 262 encoder = &mdp4_dtv_encoder->base;
263 263
264 drm_encoder_init(dev, encoder, &mdp4_dtv_encoder_funcs, 264 drm_encoder_init(dev, encoder, &mdp4_dtv_encoder_funcs,
265 DRM_MODE_ENCODER_TMDS); 265 DRM_MODE_ENCODER_TMDS, NULL);
266 drm_encoder_helper_add(encoder, &mdp4_dtv_encoder_helper_funcs); 266 drm_encoder_helper_add(encoder, &mdp4_dtv_encoder_helper_funcs);
267 267
268 mdp4_dtv_encoder->src_clk = devm_clk_get(dev->dev, "src_clk"); 268 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,
460 encoder = &mdp4_lcdc_encoder->base; 460 encoder = &mdp4_lcdc_encoder->base;
461 461
462 drm_encoder_init(dev, encoder, &mdp4_lcdc_encoder_funcs, 462 drm_encoder_init(dev, encoder, &mdp4_lcdc_encoder_funcs,
463 DRM_MODE_ENCODER_LVDS); 463 DRM_MODE_ENCODER_LVDS, NULL);
464 drm_encoder_helper_add(encoder, &mdp4_lcdc_encoder_helper_funcs); 464 drm_encoder_helper_add(encoder, &mdp4_lcdc_encoder_helper_funcs);
465 465
466 /* TODO: do we need different pll in other cases? */ 466 /* 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,
326 mdp5_cmd_enc->ctl = ctl; 326 mdp5_cmd_enc->ctl = ctl;
327 327
328 drm_encoder_init(dev, encoder, &mdp5_cmd_encoder_funcs, 328 drm_encoder_init(dev, encoder, &mdp5_cmd_encoder_funcs,
329 DRM_MODE_ENCODER_DSI); 329 DRM_MODE_ENCODER_DSI, NULL);
330 330
331 drm_encoder_helper_add(encoder, &mdp5_cmd_encoder_helper_funcs); 331 drm_encoder_helper_add(encoder, &mdp5_cmd_encoder_helper_funcs);
332 332
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,
354 354
355 spin_lock_init(&mdp5_encoder->intf_lock); 355 spin_lock_init(&mdp5_encoder->intf_lock);
356 356
357 drm_encoder_init(dev, encoder, &mdp5_encoder_funcs, enc_type); 357 drm_encoder_init(dev, encoder, &mdp5_encoder_funcs, enc_type, NULL);
358 358
359 drm_encoder_helper_add(encoder, &mdp5_encoder_helper_funcs); 359 drm_encoder_helper_add(encoder, &mdp5_encoder_helper_funcs);
360 360
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)
549 else 549 else
550 helper = &nv04_dac_helper_funcs; 550 helper = &nv04_dac_helper_funcs;
551 551
552 drm_encoder_init(dev, encoder, &nv04_dac_funcs, DRM_MODE_ENCODER_DAC); 552 drm_encoder_init(dev, encoder, &nv04_dac_funcs, DRM_MODE_ENCODER_DAC,
553 NULL);
553 drm_encoder_helper_add(encoder, helper); 554 drm_encoder_helper_add(encoder, helper);
554 555
555 encoder->possible_crtcs = entry->heads; 556 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)
705 nv_encoder->dcb = entry; 705 nv_encoder->dcb = entry;
706 nv_encoder->or = ffs(entry->or) - 1; 706 nv_encoder->or = ffs(entry->or) - 1;
707 707
708 drm_encoder_init(connector->dev, encoder, &nv04_dfp_funcs, type); 708 drm_encoder_init(connector->dev, encoder, &nv04_dfp_funcs, type, NULL);
709 drm_encoder_helper_add(encoder, helper); 709 drm_encoder_helper_add(encoder, helper);
710 710
711 encoder->possible_crtcs = entry->heads; 711 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)
223 /* Initialize the common members */ 223 /* Initialize the common members */
224 encoder = to_drm_encoder(nv_encoder); 224 encoder = to_drm_encoder(nv_encoder);
225 225
226 drm_encoder_init(dev, encoder, &nv04_tv_funcs, DRM_MODE_ENCODER_TVDAC); 226 drm_encoder_init(dev, encoder, &nv04_tv_funcs, DRM_MODE_ENCODER_TVDAC,
227 NULL);
227 drm_encoder_helper_add(encoder, &nv04_tv_helper_funcs); 228 drm_encoder_helper_add(encoder, &nv04_tv_helper_funcs);
228 229
229 nv_encoder->enc_save = drm_i2c_encoder_save; 230 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)
814 tv_enc->base.dcb = entry; 814 tv_enc->base.dcb = entry;
815 tv_enc->base.or = ffs(entry->or) - 1; 815 tv_enc->base.or = ffs(entry->or) - 1;
816 816
817 drm_encoder_init(dev, encoder, &nv17_tv_funcs, DRM_MODE_ENCODER_TVDAC); 817 drm_encoder_init(dev, encoder, &nv17_tv_funcs, DRM_MODE_ENCODER_TVDAC,
818 NULL);
818 drm_encoder_helper_add(encoder, &nv17_tv_helper_funcs); 819 drm_encoder_helper_add(encoder, &nv17_tv_helper_funcs);
819 to_encoder_slave(encoder)->slave_funcs = &nv17_tv_slave_funcs; 820 to_encoder_slave(encoder)->slave_funcs = &nv17_tv_slave_funcs;
820 821
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)
1718 encoder = to_drm_encoder(nv_encoder); 1718 encoder = to_drm_encoder(nv_encoder);
1719 encoder->possible_crtcs = dcbe->heads; 1719 encoder->possible_crtcs = dcbe->heads;
1720 encoder->possible_clones = 0; 1720 encoder->possible_clones = 0;
1721 drm_encoder_init(connector->dev, encoder, &nv50_dac_func, type); 1721 drm_encoder_init(connector->dev, encoder, &nv50_dac_func, type, NULL);
1722 drm_encoder_helper_add(encoder, &nv50_dac_hfunc); 1722 drm_encoder_helper_add(encoder, &nv50_dac_hfunc);
1723 1723
1724 drm_mode_connector_attach_encoder(connector, encoder); 1724 drm_mode_connector_attach_encoder(connector, encoder);
@@ -2126,7 +2126,7 @@ nv50_sor_create(struct drm_connector *connector, struct dcb_output *dcbe)
2126 encoder = to_drm_encoder(nv_encoder); 2126 encoder = to_drm_encoder(nv_encoder);
2127 encoder->possible_crtcs = dcbe->heads; 2127 encoder->possible_crtcs = dcbe->heads;
2128 encoder->possible_clones = 0; 2128 encoder->possible_clones = 0;
2129 drm_encoder_init(connector->dev, encoder, &nv50_sor_func, type); 2129 drm_encoder_init(connector->dev, encoder, &nv50_sor_func, type, NULL);
2130 drm_encoder_helper_add(encoder, &nv50_sor_hfunc); 2130 drm_encoder_helper_add(encoder, &nv50_sor_hfunc);
2131 2131
2132 drm_mode_connector_attach_encoder(connector, encoder); 2132 drm_mode_connector_attach_encoder(connector, encoder);
@@ -2306,7 +2306,7 @@ nv50_pior_create(struct drm_connector *connector, struct dcb_output *dcbe)
2306 encoder = to_drm_encoder(nv_encoder); 2306 encoder = to_drm_encoder(nv_encoder);
2307 encoder->possible_crtcs = dcbe->heads; 2307 encoder->possible_crtcs = dcbe->heads;
2308 encoder->possible_clones = 0; 2308 encoder->possible_clones = 0;
2309 drm_encoder_init(connector->dev, encoder, &nv50_pior_func, type); 2309 drm_encoder_init(connector->dev, encoder, &nv50_pior_func, type, NULL);
2310 drm_encoder_helper_add(encoder, &nv50_pior_hfunc); 2310 drm_encoder_helper_add(encoder, &nv50_pior_hfunc);
2311 2311
2312 drm_mode_connector_attach_encoder(connector, encoder); 2312 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,
178 encoder = &omap_encoder->base; 178 encoder = &omap_encoder->base;
179 179
180 drm_encoder_init(dev, encoder, &omap_encoder_funcs, 180 drm_encoder_init(dev, encoder, &omap_encoder_funcs,
181 DRM_MODE_ENCODER_TMDS); 181 DRM_MODE_ENCODER_TMDS, NULL);
182 drm_encoder_helper_add(encoder, &omap_encoder_helper_funcs); 182 drm_encoder_helper_add(encoder, &omap_encoder_helper_funcs);
183 183
184 return encoder; 184 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)
968 &qxl_connector_funcs, DRM_MODE_CONNECTOR_VIRTUAL); 968 &qxl_connector_funcs, DRM_MODE_CONNECTOR_VIRTUAL);
969 969
970 drm_encoder_init(dev, &qxl_output->enc, &qxl_enc_funcs, 970 drm_encoder_init(dev, &qxl_output->enc, &qxl_enc_funcs,
971 DRM_MODE_ENCODER_VIRTUAL); 971 DRM_MODE_ENCODER_VIRTUAL, NULL);
972 972
973 /* we get HPD via client monitors config */ 973 /* we get HPD via client monitors config */
974 connector->polled = DRM_CONNECTOR_POLL_HPD; 974 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,
2767 case ENCODER_OBJECT_ID_INTERNAL_LVTM1: 2767 case ENCODER_OBJECT_ID_INTERNAL_LVTM1:
2768 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) { 2768 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
2769 radeon_encoder->rmx_type = RMX_FULL; 2769 radeon_encoder->rmx_type = RMX_FULL;
2770 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_LVDS); 2770 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
2771 DRM_MODE_ENCODER_LVDS, NULL);
2771 radeon_encoder->enc_priv = radeon_atombios_get_lvds_info(radeon_encoder); 2772 radeon_encoder->enc_priv = radeon_atombios_get_lvds_info(radeon_encoder);
2772 } else { 2773 } else {
2773 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_TMDS); 2774 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
2775 DRM_MODE_ENCODER_TMDS, NULL);
2774 radeon_encoder->enc_priv = radeon_atombios_set_dig_info(radeon_encoder); 2776 radeon_encoder->enc_priv = radeon_atombios_set_dig_info(radeon_encoder);
2775 } 2777 }
2776 drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs); 2778 drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs);
2777 break; 2779 break;
2778 case ENCODER_OBJECT_ID_INTERNAL_DAC1: 2780 case ENCODER_OBJECT_ID_INTERNAL_DAC1:
2779 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_DAC); 2781 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
2782 DRM_MODE_ENCODER_DAC, NULL);
2780 radeon_encoder->enc_priv = radeon_atombios_set_dac_info(radeon_encoder); 2783 radeon_encoder->enc_priv = radeon_atombios_set_dac_info(radeon_encoder);
2781 drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs); 2784 drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs);
2782 break; 2785 break;
2783 case ENCODER_OBJECT_ID_INTERNAL_DAC2: 2786 case ENCODER_OBJECT_ID_INTERNAL_DAC2:
2784 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: 2787 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
2785 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: 2788 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
2786 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_TVDAC); 2789 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
2790 DRM_MODE_ENCODER_TVDAC, NULL);
2787 radeon_encoder->enc_priv = radeon_atombios_set_dac_info(radeon_encoder); 2791 radeon_encoder->enc_priv = radeon_atombios_set_dac_info(radeon_encoder);
2788 drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs); 2792 drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs);
2789 break; 2793 break;
@@ -2797,13 +2801,16 @@ radeon_add_atom_encoder(struct drm_device *dev,
2797 case ENCODER_OBJECT_ID_INTERNAL_UNIPHY3: 2801 case ENCODER_OBJECT_ID_INTERNAL_UNIPHY3:
2798 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) { 2802 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
2799 radeon_encoder->rmx_type = RMX_FULL; 2803 radeon_encoder->rmx_type = RMX_FULL;
2800 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_LVDS); 2804 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
2805 DRM_MODE_ENCODER_LVDS, NULL);
2801 radeon_encoder->enc_priv = radeon_atombios_get_lvds_info(radeon_encoder); 2806 radeon_encoder->enc_priv = radeon_atombios_get_lvds_info(radeon_encoder);
2802 } else if (radeon_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) { 2807 } else if (radeon_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) {
2803 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_DAC); 2808 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
2809 DRM_MODE_ENCODER_DAC, NULL);
2804 radeon_encoder->enc_priv = radeon_atombios_set_dig_info(radeon_encoder); 2810 radeon_encoder->enc_priv = radeon_atombios_set_dig_info(radeon_encoder);
2805 } else { 2811 } else {
2806 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_TMDS); 2812 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
2813 DRM_MODE_ENCODER_TMDS, NULL);
2807 radeon_encoder->enc_priv = radeon_atombios_set_dig_info(radeon_encoder); 2814 radeon_encoder->enc_priv = radeon_atombios_set_dig_info(radeon_encoder);
2808 } 2815 }
2809 drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs); 2816 drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs);
@@ -2820,11 +2827,14 @@ radeon_add_atom_encoder(struct drm_device *dev,
2820 /* these are handled by the primary encoders */ 2827 /* these are handled by the primary encoders */
2821 radeon_encoder->is_ext_encoder = true; 2828 radeon_encoder->is_ext_encoder = true;
2822 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) 2829 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
2823 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_LVDS); 2830 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
2831 DRM_MODE_ENCODER_LVDS, NULL);
2824 else if (radeon_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT)) 2832 else if (radeon_encoder->devices & (ATOM_DEVICE_CRT_SUPPORT))
2825 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_DAC); 2833 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
2834 DRM_MODE_ENCODER_DAC, NULL);
2826 else 2835 else
2827 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_TMDS); 2836 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs,
2837 DRM_MODE_ENCODER_TMDS, NULL);
2828 drm_encoder_helper_add(encoder, &radeon_atom_ext_helper_funcs); 2838 drm_encoder_helper_add(encoder, &radeon_atom_ext_helper_funcs);
2829 break; 2839 break;
2830 } 2840 }
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)
641 } 641 }
642 642
643 drm_encoder_init(dev, &radeon_encoder->base, &radeon_dp_mst_enc_funcs, 643 drm_encoder_init(dev, &radeon_encoder->base, &radeon_dp_mst_enc_funcs,
644 DRM_MODE_ENCODER_DPMST); 644 DRM_MODE_ENCODER_DPMST, NULL);
645 drm_encoder_helper_add(encoder, &radeon_mst_helper_funcs); 645 drm_encoder_helper_add(encoder, &radeon_mst_helper_funcs);
646 646
647 mst_enc = radeon_encoder->enc_priv; 647 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_
1772 switch (radeon_encoder->encoder_id) { 1772 switch (radeon_encoder->encoder_id) {
1773 case ENCODER_OBJECT_ID_INTERNAL_LVDS: 1773 case ENCODER_OBJECT_ID_INTERNAL_LVDS:
1774 encoder->possible_crtcs = 0x1; 1774 encoder->possible_crtcs = 0x1;
1775 drm_encoder_init(dev, encoder, &radeon_legacy_lvds_enc_funcs, DRM_MODE_ENCODER_LVDS); 1775 drm_encoder_init(dev, encoder, &radeon_legacy_lvds_enc_funcs,
1776 DRM_MODE_ENCODER_LVDS, NULL);
1776 drm_encoder_helper_add(encoder, &radeon_legacy_lvds_helper_funcs); 1777 drm_encoder_helper_add(encoder, &radeon_legacy_lvds_helper_funcs);
1777 if (rdev->is_atom_bios) 1778 if (rdev->is_atom_bios)
1778 radeon_encoder->enc_priv = radeon_atombios_get_lvds_info(radeon_encoder); 1779 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_
1781 radeon_encoder->rmx_type = RMX_FULL; 1782 radeon_encoder->rmx_type = RMX_FULL;
1782 break; 1783 break;
1783 case ENCODER_OBJECT_ID_INTERNAL_TMDS1: 1784 case ENCODER_OBJECT_ID_INTERNAL_TMDS1:
1784 drm_encoder_init(dev, encoder, &radeon_legacy_tmds_int_enc_funcs, DRM_MODE_ENCODER_TMDS); 1785 drm_encoder_init(dev, encoder, &radeon_legacy_tmds_int_enc_funcs,
1786 DRM_MODE_ENCODER_TMDS, NULL);
1785 drm_encoder_helper_add(encoder, &radeon_legacy_tmds_int_helper_funcs); 1787 drm_encoder_helper_add(encoder, &radeon_legacy_tmds_int_helper_funcs);
1786 radeon_encoder->enc_priv = radeon_legacy_get_tmds_info(radeon_encoder); 1788 radeon_encoder->enc_priv = radeon_legacy_get_tmds_info(radeon_encoder);
1787 break; 1789 break;
1788 case ENCODER_OBJECT_ID_INTERNAL_DAC1: 1790 case ENCODER_OBJECT_ID_INTERNAL_DAC1:
1789 drm_encoder_init(dev, encoder, &radeon_legacy_primary_dac_enc_funcs, DRM_MODE_ENCODER_DAC); 1791 drm_encoder_init(dev, encoder, &radeon_legacy_primary_dac_enc_funcs,
1792 DRM_MODE_ENCODER_DAC, NULL);
1790 drm_encoder_helper_add(encoder, &radeon_legacy_primary_dac_helper_funcs); 1793 drm_encoder_helper_add(encoder, &radeon_legacy_primary_dac_helper_funcs);
1791 if (rdev->is_atom_bios) 1794 if (rdev->is_atom_bios)
1792 radeon_encoder->enc_priv = radeon_atombios_get_primary_dac_info(radeon_encoder); 1795 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_
1794 radeon_encoder->enc_priv = radeon_combios_get_primary_dac_info(radeon_encoder); 1797 radeon_encoder->enc_priv = radeon_combios_get_primary_dac_info(radeon_encoder);
1795 break; 1798 break;
1796 case ENCODER_OBJECT_ID_INTERNAL_DAC2: 1799 case ENCODER_OBJECT_ID_INTERNAL_DAC2:
1797 drm_encoder_init(dev, encoder, &radeon_legacy_tv_dac_enc_funcs, DRM_MODE_ENCODER_TVDAC); 1800 drm_encoder_init(dev, encoder, &radeon_legacy_tv_dac_enc_funcs,
1801 DRM_MODE_ENCODER_TVDAC, NULL);
1798 drm_encoder_helper_add(encoder, &radeon_legacy_tv_dac_helper_funcs); 1802 drm_encoder_helper_add(encoder, &radeon_legacy_tv_dac_helper_funcs);
1799 if (rdev->is_atom_bios) 1803 if (rdev->is_atom_bios)
1800 radeon_encoder->enc_priv = radeon_atombios_get_tv_dac_info(radeon_encoder); 1804 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_
1802 radeon_encoder->enc_priv = radeon_combios_get_tv_dac_info(radeon_encoder); 1806 radeon_encoder->enc_priv = radeon_combios_get_tv_dac_info(radeon_encoder);
1803 break; 1807 break;
1804 case ENCODER_OBJECT_ID_INTERNAL_DVO1: 1808 case ENCODER_OBJECT_ID_INTERNAL_DVO1:
1805 drm_encoder_init(dev, encoder, &radeon_legacy_tmds_ext_enc_funcs, DRM_MODE_ENCODER_TMDS); 1809 drm_encoder_init(dev, encoder, &radeon_legacy_tmds_ext_enc_funcs,
1810 DRM_MODE_ENCODER_TMDS, NULL);
1806 drm_encoder_helper_add(encoder, &radeon_legacy_tmds_ext_helper_funcs); 1811 drm_encoder_helper_add(encoder, &radeon_legacy_tmds_ext_helper_funcs);
1807 if (!rdev->is_atom_bios) 1812 if (!rdev->is_atom_bios)
1808 radeon_encoder->enc_priv = radeon_legacy_get_ext_tmds_info(radeon_encoder); 1813 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,
173 goto done; 173 goto done;
174 } else { 174 } else {
175 ret = drm_encoder_init(rcdu->ddev, encoder, &encoder_funcs, 175 ret = drm_encoder_init(rcdu->ddev, encoder, &encoder_funcs,
176 encoder_type); 176 encoder_type, NULL);
177 if (ret < 0) 177 if (ret < 0)
178 goto done; 178 goto done;
179 179
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,
151 goto error; 151 goto error;
152 152
153 ret = drm_encoder_init(rcdu->ddev, encoder, &encoder_funcs, 153 ret = drm_encoder_init(rcdu->ddev, encoder, &encoder_funcs,
154 DRM_MODE_ENCODER_TMDS); 154 DRM_MODE_ENCODER_TMDS, NULL);
155 if (ret < 0) 155 if (ret < 0)
156 goto error; 156 goto error;
157 157
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,
295 295
296 drm_encoder_helper_add(encoder, &dw_hdmi_rockchip_encoder_helper_funcs); 296 drm_encoder_helper_add(encoder, &dw_hdmi_rockchip_encoder_helper_funcs);
297 drm_encoder_init(drm, encoder, &dw_hdmi_rockchip_encoder_funcs, 297 drm_encoder_init(drm, encoder, &dw_hdmi_rockchip_encoder_funcs,
298 DRM_MODE_ENCODER_TMDS); 298 DRM_MODE_ENCODER_TMDS, NULL);
299 299
300 return dw_hdmi_bind(dev, master, data, encoder, iores, irq, plat_data); 300 return dw_hdmi_bind(dev, master, data, encoder, iores, irq, plat_data);
301} 301}
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)
613 encoder->possible_crtcs = 1; 613 encoder->possible_crtcs = 1;
614 614
615 ret = drm_encoder_init(sdev->ddev, encoder, &encoder_funcs, 615 ret = drm_encoder_init(sdev->ddev, encoder, &encoder_funcs,
616 DRM_MODE_ENCODER_LVDS); 616 DRM_MODE_ENCODER_LVDS, NULL);
617 if (ret < 0) 617 if (ret < 0)
618 return ret; 618 return ret;
619 619
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,
512 drm_encoder->possible_clones = 1 << 0; 512 drm_encoder->possible_clones = 1 << 0;
513 513
514 drm_encoder_init(dev, drm_encoder, 514 drm_encoder_init(dev, drm_encoder,
515 &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_LVDS); 515 &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_LVDS,
516 NULL);
516 517
517 drm_encoder_helper_add(drm_encoder, &sti_dvo_encoder_helper_funcs); 518 drm_encoder_helper_add(drm_encoder, &sti_dvo_encoder_helper_funcs);
518 519
@@ -564,7 +565,7 @@ static struct drm_encoder *sti_tvout_create_hda_encoder(struct drm_device *dev,
564 drm_encoder->possible_clones = 1 << 0; 565 drm_encoder->possible_clones = 1 << 0;
565 566
566 drm_encoder_init(dev, drm_encoder, 567 drm_encoder_init(dev, drm_encoder,
567 &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_DAC); 568 &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_DAC, NULL);
568 569
569 drm_encoder_helper_add(drm_encoder, &sti_hda_encoder_helper_funcs); 570 drm_encoder_helper_add(drm_encoder, &sti_hda_encoder_helper_funcs);
570 571
@@ -613,7 +614,7 @@ static struct drm_encoder *sti_tvout_create_hdmi_encoder(struct drm_device *dev,
613 drm_encoder->possible_clones = 1 << 1; 614 drm_encoder->possible_clones = 1 << 1;
614 615
615 drm_encoder_init(dev, drm_encoder, 616 drm_encoder_init(dev, drm_encoder,
616 &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_TMDS); 617 &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_TMDS, NULL);
617 618
618 drm_encoder_helper_add(drm_encoder, &sti_hdmi_encoder_helper_funcs); 619 drm_encoder_helper_add(drm_encoder, &sti_hdmi_encoder_helper_funcs);
619 620
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)
1023 1023
1024 drm_encoder_init(drm, &dsi->output.encoder, 1024 drm_encoder_init(drm, &dsi->output.encoder,
1025 &tegra_dsi_encoder_funcs, 1025 &tegra_dsi_encoder_funcs,
1026 DRM_MODE_ENCODER_DSI); 1026 DRM_MODE_ENCODER_DSI, NULL);
1027 drm_encoder_helper_add(&dsi->output.encoder, 1027 drm_encoder_helper_add(&dsi->output.encoder,
1028 &tegra_dsi_encoder_helper_funcs); 1028 &tegra_dsi_encoder_helper_funcs);
1029 1029
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)
1320 hdmi->output.connector.dpms = DRM_MODE_DPMS_OFF; 1320 hdmi->output.connector.dpms = DRM_MODE_DPMS_OFF;
1321 1321
1322 drm_encoder_init(drm, &hdmi->output.encoder, &tegra_hdmi_encoder_funcs, 1322 drm_encoder_init(drm, &hdmi->output.encoder, &tegra_hdmi_encoder_funcs,
1323 DRM_MODE_ENCODER_TMDS); 1323 DRM_MODE_ENCODER_TMDS, NULL);
1324 drm_encoder_helper_add(&hdmi->output.encoder, 1324 drm_encoder_helper_add(&hdmi->output.encoder,
1325 &tegra_hdmi_encoder_helper_funcs); 1325 &tegra_hdmi_encoder_helper_funcs);
1326 1326
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)
287 output->connector.dpms = DRM_MODE_DPMS_OFF; 287 output->connector.dpms = DRM_MODE_DPMS_OFF;
288 288
289 drm_encoder_init(drm, &output->encoder, &tegra_rgb_encoder_funcs, 289 drm_encoder_init(drm, &output->encoder, &tegra_rgb_encoder_funcs,
290 DRM_MODE_ENCODER_LVDS); 290 DRM_MODE_ENCODER_LVDS, NULL);
291 drm_encoder_helper_add(&output->encoder, 291 drm_encoder_helper_add(&output->encoder,
292 &tegra_rgb_encoder_helper_funcs); 292 &tegra_rgb_encoder_helper_funcs);
293 293
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)
2178 sor->output.connector.dpms = DRM_MODE_DPMS_OFF; 2178 sor->output.connector.dpms = DRM_MODE_DPMS_OFF;
2179 2179
2180 drm_encoder_init(drm, &sor->output.encoder, &tegra_sor_encoder_funcs, 2180 drm_encoder_init(drm, &sor->output.encoder, &tegra_sor_encoder_funcs,
2181 encoder); 2181 encoder, NULL);
2182 drm_encoder_helper_add(&sor->output.encoder, helpers); 2182 drm_encoder_helper_add(&sor->output.encoder, helpers);
2183 2183
2184 drm_mode_connector_attach_encoder(&sor->output.connector, 2184 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,
128 encoder->possible_crtcs = 1; 128 encoder->possible_crtcs = 1;
129 129
130 ret = drm_encoder_init(dev, encoder, &panel_encoder_funcs, 130 ret = drm_encoder_init(dev, encoder, &panel_encoder_funcs,
131 DRM_MODE_ENCODER_LVDS); 131 DRM_MODE_ENCODER_LVDS, NULL);
132 if (ret < 0) 132 if (ret < 0)
133 goto fail; 133 goto fail;
134 134
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,
138 encoder->possible_crtcs = 1; 138 encoder->possible_crtcs = 1;
139 139
140 ret = drm_encoder_init(dev, encoder, &tfp410_encoder_funcs, 140 ret = drm_encoder_init(dev, encoder, &tfp410_encoder_funcs,
141 DRM_MODE_ENCODER_TMDS); 141 DRM_MODE_ENCODER_TMDS, NULL);
142 if (ret < 0) 142 if (ret < 0)
143 goto fail; 143 goto fail;
144 144
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)
73 if (!encoder) 73 if (!encoder)
74 return NULL; 74 return NULL;
75 75
76 drm_encoder_init(dev, encoder, &udl_enc_funcs, DRM_MODE_ENCODER_TMDS); 76 drm_encoder_init(dev, encoder, &udl_enc_funcs, DRM_MODE_ENCODER_TMDS,
77 NULL);
77 drm_encoder_helper_add(encoder, &udl_helper_funcs); 78 drm_encoder_helper_add(encoder, &udl_helper_funcs);
78 encoder->possible_crtcs = 1; 79 encoder->possible_crtcs = 1;
79 return encoder; 80 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)
519 WARN_ON_ONCE((HD_READ(VC4_HD_M_CTL) & VC4_HD_M_ENABLE) == 0); 519 WARN_ON_ONCE((HD_READ(VC4_HD_M_CTL) & VC4_HD_M_ENABLE) == 0);
520 520
521 drm_encoder_init(drm, hdmi->encoder, &vc4_hdmi_encoder_funcs, 521 drm_encoder_init(drm, hdmi->encoder, &vc4_hdmi_encoder_funcs,
522 DRM_MODE_ENCODER_TMDS); 522 DRM_MODE_ENCODER_TMDS, NULL);
523 drm_encoder_helper_add(hdmi->encoder, &vc4_hdmi_encoder_helper_funcs); 523 drm_encoder_helper_add(hdmi->encoder, &vc4_hdmi_encoder_helper_funcs);
524 524
525 hdmi->connector = vc4_hdmi_connector_init(drm, hdmi->encoder); 525 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)
441 drm_connector_helper_add(connector, &virtio_gpu_conn_helper_funcs); 441 drm_connector_helper_add(connector, &virtio_gpu_conn_helper_funcs);
442 442
443 drm_encoder_init(dev, encoder, &virtio_gpu_enc_funcs, 443 drm_encoder_init(dev, encoder, &virtio_gpu_enc_funcs,
444 DRM_MODE_ENCODER_VIRTUAL); 444 DRM_MODE_ENCODER_VIRTUAL, NULL);
445 drm_encoder_helper_add(encoder, &virtio_gpu_enc_helper_funcs); 445 drm_encoder_helper_add(encoder, &virtio_gpu_enc_helper_funcs);
446 encoder->possible_crtcs = 1 << index; 446 encoder->possible_crtcs = 1 << index;
447 447
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)
363 connector->status = vmw_du_connector_detect(connector, true); 363 connector->status = vmw_du_connector_detect(connector, true);
364 364
365 drm_encoder_init(dev, encoder, &vmw_legacy_encoder_funcs, 365 drm_encoder_init(dev, encoder, &vmw_legacy_encoder_funcs,
366 DRM_MODE_ENCODER_VIRTUAL); 366 DRM_MODE_ENCODER_VIRTUAL, NULL);
367 drm_mode_connector_attach_encoder(connector, encoder); 367 drm_mode_connector_attach_encoder(connector, encoder);
368 encoder->possible_crtcs = (1 << unit); 368 encoder->possible_crtcs = (1 << unit);
369 encoder->possible_clones = 0; 369 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)
597 connector->status = vmw_du_connector_detect(connector, true); 597 connector->status = vmw_du_connector_detect(connector, true);
598 598
599 drm_encoder_init(dev, encoder, &vmw_screen_object_encoder_funcs, 599 drm_encoder_init(dev, encoder, &vmw_screen_object_encoder_funcs,
600 DRM_MODE_ENCODER_VIRTUAL); 600 DRM_MODE_ENCODER_VIRTUAL, NULL);
601 drm_mode_connector_attach_encoder(connector, encoder); 601 drm_mode_connector_attach_encoder(connector, encoder);
602 encoder->possible_crtcs = (1 << unit); 602 encoder->possible_crtcs = (1 << unit);
603 encoder->possible_clones = 0; 603 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)
1145 connector->status = vmw_du_connector_detect(connector, false); 1145 connector->status = vmw_du_connector_detect(connector, false);
1146 1146
1147 drm_encoder_init(dev, encoder, &vmw_stdu_encoder_funcs, 1147 drm_encoder_init(dev, encoder, &vmw_stdu_encoder_funcs,
1148 DRM_MODE_ENCODER_VIRTUAL); 1148 DRM_MODE_ENCODER_VIRTUAL, NULL);
1149 drm_mode_connector_attach_encoder(connector, encoder); 1149 drm_mode_connector_attach_encoder(connector, encoder);
1150 encoder->possible_crtcs = (1 << unit); 1150 encoder->possible_crtcs = (1 << unit);
1151 encoder->possible_clones = 0; 1151 encoder->possible_clones = 0;
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index a6f0e25cbd51..5b5e6b650c11 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -2196,10 +2196,11 @@ void drm_bridge_mode_set(struct drm_bridge *bridge,
2196void drm_bridge_pre_enable(struct drm_bridge *bridge); 2196void drm_bridge_pre_enable(struct drm_bridge *bridge);
2197void drm_bridge_enable(struct drm_bridge *bridge); 2197void drm_bridge_enable(struct drm_bridge *bridge);
2198 2198
2199extern int drm_encoder_init(struct drm_device *dev, 2199extern __printf(5, 6)
2200 struct drm_encoder *encoder, 2200int drm_encoder_init(struct drm_device *dev,
2201 const struct drm_encoder_funcs *funcs, 2201 struct drm_encoder *encoder,
2202 int encoder_type); 2202 const struct drm_encoder_funcs *funcs,
2203 int encoder_type, const char *name, ...);
2203 2204
2204/** 2205/**
2205 * drm_encoder_crtc_ok - can a given crtc drive a given encoder? 2206 * drm_encoder_crtc_ok - can a given crtc drive a given encoder?