
Hi Thierry,
On Thu, Jul 19, 2012 at 8:58 AM, Thierry Reding thierry.reding@avionic-design.de wrote:
On Thu, Jul 12, 2012 at 08:25:00AM -0700, Simon Glass wrote:
This series adds support for the Tegra2x's display peripheral. This supports the LCD display on Seaboard and we use this to enable console output in U-Boot on the LCD.
Configuration is via the device tree. Proposed bindings are included in this series, taken from pwm bindings that should be in linux-next, a Tegra video binding that might be accepted in devicetree-discuss and a proposed video mode binding posted to dri-devel.
While I agree EDID is convenient for machines I would prefer to provide a user-friendly way of selecting LCD settings as well, with EDID more as a fallback and auto-detection when available.
To improve performance two optimisations are offered:
- The LCD frame buffer is cached, with the cache being flushed after
each newline sent to putc(), and in a few other situations. This dramatically increases performance (around 10x). This requires a few additions to the ARM cache support.
- The console supports scrolling in steps of more than 1 line. This
speeds up scrolling output considerably, particularly commands like 'printenv' which display a lot of output, and particular when the dcache is off. This requires a new CONFIG and a change to the console_scrollup() function.
Changes in v2:
- Add new patch to use const in pinmux_config_pingroup/table()
- Add nvidia prefix to device tree properties
- Align tegra display using new CONFIG_LCD_ALIGNMENT feature
- Put the LCD cache flush logic into lcd_putc() instead of lcd_puts()
- Update LCD driver to deal with new fdt bindings
- Update seaboard LCD definitions for new fdt binding
- Use a more generic config CONFIG_LCD_ALIGNMENT for lcd alignment
- Use const where possible in funcmux
Changes in v3:
- Add new commit for pwm binding and node
- Add new panel binding to fit with tegra display controller binding
- Add probe function to read in fdt parameters in display driver
- Add separate call to pwm_init() in board_init()
- Adjust LCD driver to use new SOC display driver structures
- Bring in proposed tegra display controller binding
- Decode fdt node within the pwm driver
- Fix tiny bug in mult-line lcd scrolling
- Handle a cached frame buffer out of normal U-Boot memory
- Introduce concept of a pwm channel, rather than separate peripherals
- Move some fdt decode code from LCD driver to SOC display driver
- Put the LCD cache flush logic back into lcd_puts()
- Remove LPW1 pin which is not needed by display
- Remove spurious newline from fdtdec_get_addr() debug output
- Rename fdt config structures
- Rename pwfm driver to pwm
- Separate display driver and LCD driver more in fdt
- Tidy up fdtdec_decode_gpios() debug output
- Use displaymode binding for fdt
- Use new proposed upstream pwm binding
- Use new pwm binding from pre-linux-next
- Use new upstream proposed LCD definitions
Mayuresh Kulkarni (1): tegra: Enable display/lcd support on Seaboard
Simon Glass (16): fdt: Tidy debugging, add to fdtdec_get_int/addr() fdt: Add header guard to fdtdec.h tegra: Use const for pinmux_config_pingroup/table() tegra: Add display support to funcmux tegra: fdt: Add pwm binding and node tegra: fdt: Add LCD definitions for Tegra tegra: Add support for PWM tegra: Add LCD driver tegra: Add LCD support to Nvidia boards arm: Add control over cachability of memory regions lcd: Add CONFIG_LCD_ALIGNMENT to select frame buffer alignment lcd: Add support for flushing LCD fb from dcache after update tegra: Align LCD frame buffer to section boundary tegra: Support control of cache settings for LCD tegra: fdt: Add LCD definitions for Seaboard lcd: Add CONSOLE_SCROLL_LINES option to speed console
Wei Ni (1): tegra: Add SOC support for display/lcd
I was able to make this work on the Medcom with the one workaround to make backlight and panel GPIOs optional and adding the corresponding DTS and configuration entries for Medcom, so:
Tested-by: Thierry Reding thierry.reding@avionic-design.de
Thanks, I am waiting until the binding is agreed before addressing comments and sending a new version.
The display corruption does no longer seem to happen. While I haven't thoroughly reviewed, I think this is in pretty good shape. Thanks Simon.
Thierry
Regards, Simon