Skip to content

Commit

Permalink
drm/pl111: Make the default BPP a per-variant variable
Browse files Browse the repository at this point in the history
The PL110, Integrator and Versatile boards strongly prefer to
use 16 BPP even if other modes are supported, both to keep down
memory consumption and also to easier find a good match to
supported resolutions with consideration taken to the memory
bandwidth of the platforms.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20180302090948.6399-2-linus.walleij@linaro.org
Link: https://patchwork.freedesktop.org/patch/msgid/20180307084316.23623-1-linus.walleij@linaro.org
Link: https://patchwork.freedesktop.org/patch/msgid/20180307084316.23623-1-linus.walleij@linaro.org
  • Loading branch information
Linus Walleij committed Mar 7, 2018
1 parent afe09e4 commit 9f8d4fe
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 1 deletion.
2 changes: 2 additions & 0 deletions drivers/gpu/drm/pl111/pl111_drm.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ struct drm_minor;
* @broken_vblank: the vblank IRQ is broken on this variant
* @formats: array of supported pixel formats on this variant
* @nformats: the length of the array of supported pixel formats
* @fb_bpp: desired bits per pixel on the default framebuffer
*/
struct pl111_variant_data {
const char *name;
Expand All @@ -52,6 +53,7 @@ struct pl111_variant_data {
bool broken_vblank;
const u32 *formats;
unsigned int nformats;
unsigned int fb_bpp;
};

struct pl111_drm_dev_private {
Expand Down
4 changes: 3 additions & 1 deletion drivers/gpu/drm/pl111/pl111_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ static int pl111_modeset_init(struct drm_device *dev)

drm_mode_config_reset(dev);

drm_fb_cma_fbdev_init(dev, 32, 0);
drm_fb_cma_fbdev_init(dev, priv->variant->fb_bpp, 0);

drm_kms_helper_poll_init(dev);

Expand Down Expand Up @@ -336,6 +336,7 @@ static const struct pl111_variant_data pl110_variant = {
.is_pl110 = true,
.formats = pl110_pixel_formats,
.nformats = ARRAY_SIZE(pl110_pixel_formats),
.fb_bpp = 16,
};

/* RealView, Versatile Express etc use this modern variant */
Expand All @@ -360,6 +361,7 @@ static const struct pl111_variant_data pl111_variant = {
.name = "PL111",
.formats = pl111_pixel_formats,
.nformats = ARRAY_SIZE(pl111_pixel_formats),
.fb_bpp = 32,
};

static const struct amba_id pl111_id_table[] = {
Expand Down
2 changes: 2 additions & 0 deletions drivers/gpu/drm/pl111/pl111_versatile.c
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ static const struct pl111_variant_data pl110_integrator = {
.broken_vblank = true,
.formats = pl110_integrator_pixel_formats,
.nformats = ARRAY_SIZE(pl110_integrator_pixel_formats),
.fb_bpp = 16,
};

/*
Expand All @@ -253,6 +254,7 @@ static const struct pl111_variant_data pl110_versatile = {
.external_bgr = true,
.formats = pl110_versatile_pixel_formats,
.nformats = ARRAY_SIZE(pl110_versatile_pixel_formats),
.fb_bpp = 16,
};

int pl111_versatile_init(struct device *dev, struct pl111_drm_dev_private *priv)
Expand Down

0 comments on commit 9f8d4fe

Please sign in to comment.