[PATCH 14/16] drm/omap: remove omap_framebuffer_get_formats()
Tomi Valkeinen
tomi.valkeinen at ti.com
Thu May 4 10:23:30 UTC 2017
We now get a fourcc array from dispc when asking for a plane's supported
pixel formats, so we can drop omap_framebuffer_get_formats() which was
used to convert between DSS and DRM pixel formats.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
---
drivers/gpu/drm/omapdrm/omap_drv.h | 2 --
drivers/gpu/drm/omapdrm/omap_fb.c | 22 ----------------------
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 67bb3be6b412..bdd346fb38f4 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.h
+++ b/drivers/gpu/drm/omapdrm/omap_drv.h
@@ -158,8 +158,6 @@ struct drm_encoder *omap_connector_attached_encoder(
struct drm_connector *connector);
bool omap_connector_get_hdmi_mode(struct drm_connector *connector);
-uint32_t omap_framebuffer_get_formats(uint32_t *pixel_formats,
- uint32_t max_formats, const u32 *supported_modes);
struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd);
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 7820b61d7c1a..ec60620fe2d1 100644
--- a/drivers/gpu/drm/omapdrm/omap_fb.c
+++ b/drivers/gpu/drm/omapdrm/omap_fb.c
@@ -55,28 +55,6 @@ static const struct {
{ DRM_FORMAT_UYVY, DRM_FORMAT_UYVY },
};
-/* convert from overlay's pixel formats bitmask to an array of fourcc's */
-uint32_t omap_framebuffer_get_formats(uint32_t *pixel_formats,
- uint32_t max_formats, const u32 *supported_modes)
-{
- uint32_t nformats = 0;
- int i = 0;
-
- for (i = 0; i < ARRAY_SIZE(formats) && nformats < max_formats; i++) {
- unsigned int t;
-
- for (t = 0; supported_modes[t]; ++t) {
- if (supported_modes[t] != formats[i].dss_format)
- continue;
-
- pixel_formats[nformats++] = formats[i].pixel_format;
- break;
- }
- }
-
- return nformats;
-}
-
/* per-plane info for the fb: */
struct plane {
struct drm_gem_object *bo;
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
index 6cabbda5ec57..6e2ea83b560c 100644
--- a/drivers/gpu/drm/omapdrm/omap_plane.c
+++ b/drivers/gpu/drm/omapdrm/omap_plane.c
@@ -34,9 +34,6 @@ struct omap_plane {
struct drm_plane base;
enum omap_plane_id id;
const char *name;
-
- uint32_t nformats;
- uint32_t formats[32];
};
struct omap_plane_state {
@@ -346,6 +343,8 @@ struct drm_plane *omap_plane_init(struct drm_device *dev,
struct omap_plane *omap_plane;
enum omap_plane_id id;
int ret;
+ u32 nformats;
+ const u32 *formats;
if (WARN_ON(idx >= ARRAY_SIZE(plane_idx_to_id)))
return ERR_PTR(-EINVAL);
@@ -358,17 +357,17 @@ struct drm_plane *omap_plane_init(struct drm_device *dev,
if (!omap_plane)
return ERR_PTR(-ENOMEM);
- omap_plane->nformats = omap_framebuffer_get_formats(
- omap_plane->formats, ARRAY_SIZE(omap_plane->formats),
- priv->dispc_ops->ovl_get_color_modes(id));
+ formats = priv->dispc_ops->ovl_get_color_modes(id);
+ for (nformats = 0; formats[nformats]; ++nformats)
+ ;
omap_plane->id = id;
omap_plane->name = plane_id_to_name[id];
plane = &omap_plane->base;
ret = drm_universal_plane_init(dev, plane, possible_crtcs,
- &omap_plane_funcs, omap_plane->formats,
- omap_plane->nformats, type, NULL);
+ &omap_plane_funcs, formats,
+ nformats, type, NULL);
if (ret < 0)
goto error;
--
2.7.4
More information about the dri-devel
mailing list