linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC 0/4] Use the Common Display Framework in tegra-drm
@ 2013-01-30  3:02 Alexandre Courbot
  2013-01-30  3:02 ` [RFC 1/4] video: panel: add CLAA101WA01A panel support Alexandre Courbot
                   ` (4 more replies)
  0 siblings, 5 replies; 31+ messages in thread
From: Alexandre Courbot @ 2013-01-30  3:02 UTC (permalink / raw)
  To: Laurent Pinchart, Thierry Reding, Stephen Warren, Mark Zhang
  Cc: linux-kernel, linux-fbdev, linux-tegra, gnurou, Alexandre Courbot

This series leverages the (still work-in-progress) Common Display Framework to
add panel support to the tegra-drm driver. It also adds a driver for the
CLAA101WA01A panel used on the Ventana board.

The CDF is a moving target but Tegra needs some sort of display framework and
even in its current state the CDF seems to be the best candidate. Besides, by
using the CDF from now on we hope to provide useful feedback to Laurent and the
other CDF designers.

The changes to tegra-drm are rather minimal. Panels are referenced from Tegra DC
output nodes through the "nvidia,panel" property. This property is looked up
when a display connect notification is received in order to see if it points to
the connected display entity. If it does, the entity is then used for output.

The DPMS states are then propagated to the output entity, which is then supposed
to call back into the set_stream() hook in order to enable/disable the output
stream as needed.

Although the overall design seems to work ok, a few specific issues need to be
addressed:

1) The CDF has a get_modes() hook, but this is already implemented by
tegra_connector_get_modes(). Ideally everything should be moved to the CDF hook,
but Tegra's implementation uses DRM functions to retrieve the EDID and CDF
should, AFAIK, remain DRM-agnostic.

2) There is currently no panel/backlight interaction, e.g. backlight status is
controlled through FB events, independantly from the panel state. It could make
sense to have the panel DT node reference the backlight and control it as part
of its own power on/off sequence. Right now however, a backlight device cannot
ignore FB events.

3) Probably related to 2), now the backlight's power controls are part of the
panel driver, because the pwm-backlight driver cannot control the power
regulator and enable GPIO. This means that the backlight power is not turned off
when its brightness is set to 0 through sysfs. Once again this speaks in favor
of having stronger panel/backlight interaction: for instance, the panel driver
could reference the backlight and hijack its update_status() op to replace it by
one that does the correct power sequencing before calling the original function.
This would require some extra infrastructure though. Another possibility would
be to have a dedicated backlight driver for each panel, with its own
"compatible" string.

The code is based on 3.8rc5 + Steffen's videomode patches and the CDF v2.

Alexandre Courbot (4):
  video: panel: add CLAA101WA01A panel support
  tegra: ventana: add display and backlight DT nodes
  drm: tegra: use the Common Display Framework
  tegra: enable CDF and claa101 panel

 .../bindings/gpu/nvidia,tegra20-host1x.txt         |   2 +
 .../video/display/chunghwa,claa101wa01a.txt        |   8 +
 arch/arm/boot/dts/tegra20-ventana.dts              |  34 +++-
 arch/arm/configs/tegra_defconfig                   |   2 +
 drivers/gpu/drm/tegra/drm.h                        |  16 ++
 drivers/gpu/drm/tegra/output.c                     | 118 +++++++++++-
 drivers/video/display/Kconfig                      |   8 +
 drivers/video/display/Makefile                     |   1 +
 drivers/video/display/panel-claa101wa01a.c         | 209 +++++++++++++++++++++
 9 files changed, 393 insertions(+), 5 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/video/display/chunghwa,claa101wa01a.txt
 create mode 100644 drivers/video/display/panel-claa101wa01a.c

-- 
1.8.1.1


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

end of thread, other threads:[~2013-02-01  4:19 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-30  3:02 [RFC 0/4] Use the Common Display Framework in tegra-drm Alexandre Courbot
2013-01-30  3:02 ` [RFC 1/4] video: panel: add CLAA101WA01A panel support Alexandre Courbot
2013-01-30  7:20   ` Mark Zhang
2013-01-30  7:27     ` Alex Courbot
2013-01-30  7:48       ` Thierry Reding
2013-01-30  8:08         ` Mark Zhang
2013-01-30  8:28         ` Alex Courbot
2013-01-30 20:19     ` Stephen Warren
2013-01-31  3:51       ` Mark Zhang
2013-01-31  4:24         ` Alexandre Courbot
2013-01-31  4:54           ` Mark Zhang
2013-01-31  6:36             ` Alexandre Courbot
2013-01-31  7:30               ` Mark Zhang
2013-01-31 17:25                 ` Stephen Warren
2013-01-31 17:20         ` Stephen Warren
2013-02-01  4:19           ` Mark Zhang
2013-01-30 20:27   ` Stephen Warren
2013-01-31  4:14     ` Alexandre Courbot
2013-01-31 17:23       ` Stephen Warren
2013-01-30 20:30   ` Stephen Warren
2013-01-30  3:02 ` [RFC 2/4] tegra: ventana: add display and backlight DT nodes Alexandre Courbot
2013-01-30  3:02 ` [RFC 3/4] drm: tegra: use the Common Display Framework Alexandre Courbot
2013-01-30  6:50   ` Mark Zhang
2013-01-30  7:01     ` Alex Courbot
2013-01-30  7:24       ` Thierry Reding
2013-01-30  7:30         ` Alex Courbot
2013-01-30  7:46       ` Mark Zhang
2013-01-30  3:02 ` [RFC 4/4] tegra: enable CDF and claa101 panel Alexandre Courbot
2013-01-30  7:40 ` [RFC 0/4] Use the Common Display Framework in tegra-drm Thierry Reding
2013-01-30  8:23   ` Alex Courbot
2013-01-30  8:38     ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).