All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/10] Fix CLCD framebuffer formats and consolidate ARM platform CLCD support
@ 2011-01-27 12:57 Russell King - ARM Linux
  2011-01-27 12:58 ` [PATCH 01/10] ARM: versatile: support CLCD RGB565 layout with blue LSB Russell King - ARM Linux
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: Russell King - ARM Linux @ 2011-01-27 12:57 UTC (permalink / raw)
  To: linux-arm-kernel

This patch series fixes the framebuffer formatting for the various
CLCD colour modes - including those which the CLCD doesn't actually
support.

PL110 in TFT mode only supports 888 and 5551 connectivity.  Some ARM
platforms have additional muxing on their outputs which rewire this
to allow the 5551 output to be used in 565 mode:

FBMEM bit (RGB)	5551	565
0		R0	R0
1		R1	R1
2		R2	R2
3		R3	R3
4		R4	R4
5		G0	G0
6		G1	G1
7		G2	G2
8		G3	G3
9		G4	G4
10		B0	G5
11		B1	B0
12		B2	B1
13		B3	B2
14		B4	B3
15		I	B4

This means that when BGR mode is selected, it in green mapping to bits
0, 9, 8, 7, 6, 5 in the framebuffer, which is not sane.  There appears
to be no external MUX selection for this format.

PL111 on the other hand supports 888, 5551, 565 and 444 natively, so it
can support RGB and BGR pixel formats directly.

Introduce a set of capabilities one bit for each format (RGB888, BGR888,
RGB5551, BGR5551 etc) describing what formats the panel itself can support,
and also what the board can support.  These are combined, and from that
we select the appropriate 16bpp pixel format which the panel and board can
support.  Where a panel and board combination supports multiple 16bpp
formats, pick the closest format to the requested format.

Implementations which do not supply the capabilities fall back to the old
way of doing things, which is based on the cntl register to indicate
whether we should be using RGB or BGR mode.

This then allows us to unify the CLCD support across Integrator, Versatile,
Realview and Versatile Express.  This has been successfully tested on:

Integrator/CP - RGB565, RGB5551, BGR5551.
Versatile PB926 - RGB565, BGR565, RGB5551, BGR5551.
Realview EB ARM11MPcore - RGB565, BGR565, RGB5551, BGR5551, RGB444, BGR444.

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2011-02-18 11:15 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-27 12:57 [PATCH 00/10] Fix CLCD framebuffer formats and consolidate ARM platform CLCD support Russell King - ARM Linux
2011-01-27 12:58 ` [PATCH 01/10] ARM: versatile: support CLCD RGB565 layout with blue LSB Russell King - ARM Linux
2011-01-27 12:58 ` [PATCH 02/10] ARM: integrator: support CLCD RGB5551 layout for 16bpp Russell King - ARM Linux
2011-01-27 12:58 ` [PATCH 03/10] ARM: clcd: clean up CLCD announcement printks Russell King - ARM Linux
2011-01-27 12:59 ` [PATCH 04/10] ARM: clcd: use amba_part() to determine if we have a PL110 primecell Russell King - ARM Linux
2011-01-27 12:59 ` [PATCH 05/10] ARM: clcd: add method for describing display capabilities Russell King - ARM Linux
2011-01-27 12:59 ` [PATCH 06/10] ARM: add versatile family consolidated CLCD support Russell King - ARM Linux
2011-01-27 13:00 ` [PATCH 07/10] ARM: integrator: switch Integrator platforms to use consolidated CLCD Russell King - ARM Linux
2011-01-27 13:00 ` [PATCH 08/10] ARM: versatile: switch Versatile " Russell King - ARM Linux
2011-01-27 13:00 ` [PATCH 09/10] ARM: realview: switch Realview " Russell King - ARM Linux
2011-01-27 13:01 ` [PATCH 10/10] ARM: vexpress: switch Versatile Express " Russell King - ARM Linux
2011-02-17 23:37 ` [PATCH 00/10] Fix CLCD framebuffer formats and consolidate ARM platform CLCD support Russell King - ARM Linux
2011-02-18 11:15 ` Catalin Marinas

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.