diff options
author | Jeykumar Sankaran <jsanka@codeaurora.org> | 2018-02-13 12:42:44 -0500 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2018-06-03 16:48:59 -0400 |
commit | 4e4902324a9b46a9111d5e514301e154f938238a (patch) | |
tree | 31c632112f6a723ff87cf8088df104ec33c38339 | |
parent | 20387275142422103c3734238685cbee6ac0dffa (diff) |
drm/msm: Add modifier to mdp_get_format arguments
This change plumbs the new fb modifier through the various mdp/disp
get_format hooks.
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
[seanpaul pimped out commit message a bit]
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
-rw-r--r-- | drivers/gpu/drm/msm/disp/mdp_format.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/disp/mdp_kms.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/msm_fb.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/msm_kms.h | 5 |
4 files changed, 9 insertions, 4 deletions
diff --git a/drivers/gpu/drm/msm/disp/mdp_format.c b/drivers/gpu/drm/msm/disp/mdp_format.c index b4a8aa4490ee..005760bee708 100644 --- a/drivers/gpu/drm/msm/disp/mdp_format.c +++ b/drivers/gpu/drm/msm/disp/mdp_format.c | |||
@@ -171,7 +171,8 @@ uint32_t mdp_get_formats(uint32_t *pixel_formats, uint32_t max_formats, | |||
171 | return i; | 171 | return i; |
172 | } | 172 | } |
173 | 173 | ||
174 | const struct msm_format *mdp_get_format(struct msm_kms *kms, uint32_t format) | 174 | const struct msm_format *mdp_get_format(struct msm_kms *kms, uint32_t format, |
175 | uint64_t modifier) | ||
175 | { | 176 | { |
176 | int i; | 177 | int i; |
177 | for (i = 0; i < ARRAY_SIZE(formats); i++) { | 178 | for (i = 0; i < ARRAY_SIZE(formats); i++) { |
diff --git a/drivers/gpu/drm/msm/disp/mdp_kms.h b/drivers/gpu/drm/msm/disp/mdp_kms.h index 1185487e7e5e..4fa8dbe4e165 100644 --- a/drivers/gpu/drm/msm/disp/mdp_kms.h +++ b/drivers/gpu/drm/msm/disp/mdp_kms.h | |||
@@ -98,7 +98,7 @@ struct mdp_format { | |||
98 | #define MDP_FORMAT_IS_YUV(mdp_format) ((mdp_format)->is_yuv) | 98 | #define MDP_FORMAT_IS_YUV(mdp_format) ((mdp_format)->is_yuv) |
99 | 99 | ||
100 | uint32_t mdp_get_formats(uint32_t *formats, uint32_t max_formats, bool rgb_only); | 100 | uint32_t mdp_get_formats(uint32_t *formats, uint32_t max_formats, bool rgb_only); |
101 | const struct msm_format *mdp_get_format(struct msm_kms *kms, uint32_t format); | 101 | const struct msm_format *mdp_get_format(struct msm_kms *kms, uint32_t format, uint64_t modifier); |
102 | 102 | ||
103 | /* MDP capabilities */ | 103 | /* MDP capabilities */ |
104 | #define MDP_CAP_SMP BIT(0) /* Shared Memory Pool */ | 104 | #define MDP_CAP_SMP BIT(0) /* Shared Memory Pool */ |
diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c index 0e0c87252ab0..7a16242bf8bf 100644 --- a/drivers/gpu/drm/msm/msm_fb.c +++ b/drivers/gpu/drm/msm/msm_fb.c | |||
@@ -183,7 +183,8 @@ static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev, | |||
183 | hsub = drm_format_horz_chroma_subsampling(mode_cmd->pixel_format); | 183 | hsub = drm_format_horz_chroma_subsampling(mode_cmd->pixel_format); |
184 | vsub = drm_format_vert_chroma_subsampling(mode_cmd->pixel_format); | 184 | vsub = drm_format_vert_chroma_subsampling(mode_cmd->pixel_format); |
185 | 185 | ||
186 | format = kms->funcs->get_format(kms, mode_cmd->pixel_format); | 186 | format = kms->funcs->get_format(kms, mode_cmd->pixel_format, |
187 | mode_cmd->modifier[0]); | ||
187 | if (!format) { | 188 | if (!format) { |
188 | dev_err(dev->dev, "unsupported pixel format: %4.4s\n", | 189 | dev_err(dev->dev, "unsupported pixel format: %4.4s\n", |
189 | (char *)&mode_cmd->pixel_format); | 190 | (char *)&mode_cmd->pixel_format); |
diff --git a/drivers/gpu/drm/msm/msm_kms.h b/drivers/gpu/drm/msm/msm_kms.h index 17d5824417ad..aaa329dc020e 100644 --- a/drivers/gpu/drm/msm/msm_kms.h +++ b/drivers/gpu/drm/msm/msm_kms.h | |||
@@ -48,8 +48,11 @@ struct msm_kms_funcs { | |||
48 | /* functions to wait for atomic commit completed on each CRTC */ | 48 | /* functions to wait for atomic commit completed on each CRTC */ |
49 | void (*wait_for_crtc_commit_done)(struct msm_kms *kms, | 49 | void (*wait_for_crtc_commit_done)(struct msm_kms *kms, |
50 | struct drm_crtc *crtc); | 50 | struct drm_crtc *crtc); |
51 | /* get msm_format w/ optional format modifiers from drm_mode_fb_cmd2 */ | ||
52 | const struct msm_format *(*get_format)(struct msm_kms *kms, | ||
53 | const uint32_t format, | ||
54 | const uint64_t modifiers); | ||
51 | /* misc: */ | 55 | /* misc: */ |
52 | const struct msm_format *(*get_format)(struct msm_kms *kms, uint32_t format); | ||
53 | long (*round_pixclk)(struct msm_kms *kms, unsigned long rate, | 56 | long (*round_pixclk)(struct msm_kms *kms, unsigned long rate, |
54 | struct drm_encoder *encoder); | 57 | struct drm_encoder *encoder); |
55 | int (*set_split_display)(struct msm_kms *kms, | 58 | int (*set_split_display)(struct msm_kms *kms, |