Commit | Line | Data |
---|---|---|
109eee2f JW |
1 | /* |
2 | * Copyright 2015 Freescale Semiconductor, Inc. | |
3 | * | |
4 | * Freescale DCU drm device driver | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
9 | * (at your option) any later version. | |
10 | */ | |
11 | ||
12 | #include <drm/drmP.h> | |
13 | #include <drm/drm_atomic_helper.h> | |
14 | #include <drm/drm_crtc_helper.h> | |
15 | #include <drm/drm_fb_cma_helper.h> | |
16 | ||
17 | #include "fsl_dcu_drm_crtc.h" | |
18 | #include "fsl_dcu_drm_drv.h" | |
19 | ||
20 | static const struct drm_mode_config_funcs fsl_dcu_drm_mode_config_funcs = { | |
21 | .atomic_check = drm_atomic_helper_check, | |
22 | .atomic_commit = drm_atomic_helper_commit, | |
23 | .fb_create = drm_fb_cma_create, | |
24 | }; | |
25 | ||
26 | int fsl_dcu_drm_modeset_init(struct fsl_dcu_drm_device *fsl_dev) | |
27 | { | |
28 | drm_mode_config_init(fsl_dev->drm); | |
29 | ||
30 | fsl_dev->drm->mode_config.min_width = 0; | |
31 | fsl_dev->drm->mode_config.min_height = 0; | |
32 | fsl_dev->drm->mode_config.max_width = 2031; | |
33 | fsl_dev->drm->mode_config.max_height = 2047; | |
34 | fsl_dev->drm->mode_config.funcs = &fsl_dcu_drm_mode_config_funcs; | |
35 | ||
36 | drm_kms_helper_poll_init(fsl_dev->drm); | |
37 | fsl_dcu_drm_crtc_create(fsl_dev); | |
38 | fsl_dcu_drm_encoder_create(fsl_dev, &fsl_dev->crtc); | |
39 | fsl_dcu_drm_connector_create(fsl_dev, &fsl_dev->encoder); | |
40 | drm_mode_config_reset(fsl_dev->drm); | |
41 | ||
42 | return 0; | |
43 | } |