diff options
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_drv.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_fb.c | 22 | ||||
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_plane.c | 15 |
3 files changed, 7 insertions, 32 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h b/drivers/gpu/drm/omapdrm/omap_drv.h index d78b3ff94a07..ca087a993909 100644 --- a/drivers/gpu/drm/omapdrm/omap_drv.h +++ b/drivers/gpu/drm/omapdrm/omap_drv.h | |||
@@ -150,8 +150,6 @@ struct drm_encoder *omap_connector_attached_encoder( | |||
150 | struct drm_connector *connector); | 150 | struct drm_connector *connector); |
151 | bool omap_connector_get_hdmi_mode(struct drm_connector *connector); | 151 | bool omap_connector_get_hdmi_mode(struct drm_connector *connector); |
152 | 152 | ||
153 | uint32_t omap_framebuffer_get_formats(uint32_t *pixel_formats, | ||
154 | uint32_t max_formats, const u32 *supported_modes); | ||
155 | struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev, | 153 | struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev, |
156 | struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd); | 154 | struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd); |
157 | struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev, | 155 | struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev, |
diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c index 9d5f6ad2059e..489d17ce8f11 100644 --- a/drivers/gpu/drm/omapdrm/omap_fb.c +++ b/drivers/gpu/drm/omapdrm/omap_fb.c | |||
@@ -55,28 +55,6 @@ static const struct { | |||
55 | { DRM_FORMAT_UYVY, DRM_FORMAT_UYVY }, | 55 | { DRM_FORMAT_UYVY, DRM_FORMAT_UYVY }, |
56 | }; | 56 | }; |
57 | 57 | ||
58 | /* convert from overlay's pixel formats bitmask to an array of fourcc's */ | ||
59 | uint32_t omap_framebuffer_get_formats(uint32_t *pixel_formats, | ||
60 | uint32_t max_formats, const u32 *supported_modes) | ||
61 | { | ||
62 | uint32_t nformats = 0; | ||
63 | int i = 0; | ||
64 | |||
65 | for (i = 0; i < ARRAY_SIZE(formats) && nformats < max_formats; i++) { | ||
66 | unsigned int t; | ||
67 | |||
68 | for (t = 0; supported_modes[t]; ++t) { | ||
69 | if (supported_modes[t] != formats[i].dss_format) | ||
70 | continue; | ||
71 | |||
72 | pixel_formats[nformats++] = formats[i].pixel_format; | ||
73 | break; | ||
74 | } | ||
75 | } | ||
76 | |||
77 | return nformats; | ||
78 | } | ||
79 | |||
80 | /* per-plane info for the fb: */ | 58 | /* per-plane info for the fb: */ |
81 | struct plane { | 59 | struct plane { |
82 | struct drm_gem_object *bo; | 60 | struct drm_gem_object *bo; |
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c index 40747a625374..96c15e6d7397 100644 --- a/drivers/gpu/drm/omapdrm/omap_plane.c +++ b/drivers/gpu/drm/omapdrm/omap_plane.c | |||
@@ -34,9 +34,6 @@ struct omap_plane { | |||
34 | struct drm_plane base; | 34 | struct drm_plane base; |
35 | enum omap_plane_id id; | 35 | enum omap_plane_id id; |
36 | const char *name; | 36 | const char *name; |
37 | |||
38 | uint32_t nformats; | ||
39 | uint32_t formats[32]; | ||
40 | }; | 37 | }; |
41 | 38 | ||
42 | static int omap_plane_prepare_fb(struct drm_plane *plane, | 39 | static int omap_plane_prepare_fb(struct drm_plane *plane, |
@@ -294,6 +291,8 @@ struct drm_plane *omap_plane_init(struct drm_device *dev, | |||
294 | struct omap_plane *omap_plane; | 291 | struct omap_plane *omap_plane; |
295 | enum omap_plane_id id; | 292 | enum omap_plane_id id; |
296 | int ret; | 293 | int ret; |
294 | u32 nformats; | ||
295 | const u32 *formats; | ||
297 | 296 | ||
298 | if (WARN_ON(idx >= ARRAY_SIZE(plane_idx_to_id))) | 297 | if (WARN_ON(idx >= ARRAY_SIZE(plane_idx_to_id))) |
299 | return ERR_PTR(-EINVAL); | 298 | return ERR_PTR(-EINVAL); |
@@ -306,17 +305,17 @@ struct drm_plane *omap_plane_init(struct drm_device *dev, | |||
306 | if (!omap_plane) | 305 | if (!omap_plane) |
307 | return ERR_PTR(-ENOMEM); | 306 | return ERR_PTR(-ENOMEM); |
308 | 307 | ||
309 | omap_plane->nformats = omap_framebuffer_get_formats( | 308 | formats = priv->dispc_ops->ovl_get_color_modes(id); |
310 | omap_plane->formats, ARRAY_SIZE(omap_plane->formats), | 309 | for (nformats = 0; formats[nformats]; ++nformats) |
311 | priv->dispc_ops->ovl_get_color_modes(id)); | 310 | ; |
312 | omap_plane->id = id; | 311 | omap_plane->id = id; |
313 | omap_plane->name = plane_id_to_name[id]; | 312 | omap_plane->name = plane_id_to_name[id]; |
314 | 313 | ||
315 | plane = &omap_plane->base; | 314 | plane = &omap_plane->base; |
316 | 315 | ||
317 | ret = drm_universal_plane_init(dev, plane, possible_crtcs, | 316 | ret = drm_universal_plane_init(dev, plane, possible_crtcs, |
318 | &omap_plane_funcs, omap_plane->formats, | 317 | &omap_plane_funcs, formats, |
319 | omap_plane->nformats, type, NULL); | 318 | nformats, type, NULL); |
320 | if (ret < 0) | 319 | if (ret < 0) |
321 | goto error; | 320 | goto error; |
322 | 321 | ||