Skip to content

Commit 20a0dfe

Browse files
committed
drm/pl111: Handle the RealView variant separately
We want to cut down the default bpp to 16 on the RealView so we can have a 1024x768 framebuffer console by default. The memory bandwidth limitations makes this not work with the PL111 default of 32bpp. This builds on top of the earlier patches making the framebuffer default bpp a per-variant variable. Reviewed-by: Eric Anholt <[email protected]> Signed-off-by: Linus Walleij <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent 9f8d4fe commit 20a0dfe

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

drivers/gpu/drm/pl111/pl111_versatile.c

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,23 @@ static const u32 pl110_versatile_pixel_formats[] = {
230230
DRM_FORMAT_XRGB1555,
231231
};
232232

233+
static const u32 pl111_realview_pixel_formats[] = {
234+
DRM_FORMAT_ABGR8888,
235+
DRM_FORMAT_XBGR8888,
236+
DRM_FORMAT_ARGB8888,
237+
DRM_FORMAT_XRGB8888,
238+
DRM_FORMAT_BGR565,
239+
DRM_FORMAT_RGB565,
240+
DRM_FORMAT_ABGR1555,
241+
DRM_FORMAT_XBGR1555,
242+
DRM_FORMAT_ARGB1555,
243+
DRM_FORMAT_XRGB1555,
244+
DRM_FORMAT_ABGR4444,
245+
DRM_FORMAT_XBGR4444,
246+
DRM_FORMAT_ARGB4444,
247+
DRM_FORMAT_XRGB4444,
248+
};
249+
233250
/*
234251
* The Integrator variant is a PL110 with a bunch of broken, or not
235252
* yet implemented features
@@ -257,6 +274,18 @@ static const struct pl111_variant_data pl110_versatile = {
257274
.fb_bpp = 16,
258275
};
259276

277+
/*
278+
* RealView PL111 variant, the only real difference from the vanilla
279+
* PL111 is that we select 16bpp framebuffer by default to be able
280+
* to get 1024x768 without saturating the memory bus.
281+
*/
282+
static const struct pl111_variant_data pl111_realview = {
283+
.name = "PL111 RealView",
284+
.formats = pl111_realview_pixel_formats,
285+
.nformats = ARRAY_SIZE(pl111_realview_pixel_formats),
286+
.fb_bpp = 16,
287+
};
288+
260289
int pl111_versatile_init(struct device *dev, struct pl111_drm_dev_private *priv)
261290
{
262291
const struct of_device_id *clcd_id;
@@ -306,6 +335,7 @@ int pl111_versatile_init(struct device *dev, struct pl111_drm_dev_private *priv)
306335
case REALVIEW_CLCD_PBA8:
307336
case REALVIEW_CLCD_PBX:
308337
versatile_syscon_map = map;
338+
priv->variant = &pl111_realview;
309339
priv->variant_display_enable = pl111_realview_clcd_enable;
310340
priv->variant_display_disable = pl111_realview_clcd_disable;
311341
dev_info(dev, "set up callbacks for RealView PL111\n");

0 commit comments

Comments
 (0)