|
24 | 24 | #include <drm/drm_crtc.h>
|
25 | 25 | #include <drm/drm_crtc_helper.h>
|
26 | 26 | #include <drm/drm_drv.h>
|
| 27 | +#include <drm/drm_encoder.h> |
27 | 28 | #include <drm/drm_gem_cma_helper.h>
|
28 | 29 | #include <drm/drm_fb_cma_helper.h>
|
29 | 30 | #include <drm/drm_fb_helper.h>
|
|
37 | 38 | #include <drm/drm_plane.h>
|
38 | 39 | #include <drm/drm_plane_helper.h>
|
39 | 40 | #include <drm/drm_probe_helper.h>
|
40 |
| -#include <drm/drm_simple_kms_helper.h> |
41 | 41 | #include <drm/drm_vblank.h>
|
42 | 42 |
|
43 | 43 | struct ingenic_dma_hwdesc {
|
@@ -1024,20 +1024,17 @@ static int ingenic_drm_bind(struct device *dev, bool has_components)
|
1024 | 1024 | bridge = devm_drm_panel_bridge_add_typed(dev, panel,
|
1025 | 1025 | DRM_MODE_CONNECTOR_DPI);
|
1026 | 1026 |
|
1027 |
| - encoder = devm_kzalloc(dev, sizeof(*encoder), GFP_KERNEL); |
1028 |
| - if (!encoder) |
1029 |
| - return -ENOMEM; |
| 1027 | + encoder = drmm_plain_encoder_alloc(drm, NULL, DRM_MODE_ENCODER_DPI, NULL); |
| 1028 | + if (IS_ERR(encoder)) { |
| 1029 | + ret = PTR_ERR(encoder); |
| 1030 | + dev_err(dev, "Failed to init encoder: %d\n", ret); |
| 1031 | + return ret; |
| 1032 | + } |
1030 | 1033 |
|
1031 | 1034 | encoder->possible_crtcs = 1;
|
1032 | 1035 |
|
1033 | 1036 | drm_encoder_helper_add(encoder, &ingenic_drm_encoder_helper_funcs);
|
1034 | 1037 |
|
1035 |
| - ret = drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_DPI); |
1036 |
| - if (ret) { |
1037 |
| - dev_err(dev, "Failed to init encoder: %d\n", ret); |
1038 |
| - return ret; |
1039 |
| - } |
1040 |
| - |
1041 | 1038 | ret = drm_bridge_attach(encoder, bridge, NULL, 0);
|
1042 | 1039 | if (ret) {
|
1043 | 1040 | dev_err(dev, "Unable to attach bridge\n");
|
|
0 commit comments