All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [RFC 0/3] drm: Add panel support
Date: Fri, 30 Aug 2013 17:25:18 +0200	[thread overview]
Message-ID: <1377876321-26835-1-git-send-email-treding@nvidia.com> (raw)

Hi,

This patch series adds support for panels to DRM. The current implementation
is very basic and only provides hooks for a panel to handle DPMS changes and
return a list of supported modes. That should be enough to support a rather
large number of panels. It should also be easy to extend the framework for
more sophisticated panels such as DSI.

I'm aware of the existing efforts to create such a framework, called CDF. My
impression was that a lot of people thought it overengineered and that it
doesn't fit well into the existing DRM infrastructure. This alternative
proposal is an attempt to start with something simpler (yet extensible) that
fits into DRM more nicely.

Patch 1 adds the "framework" if one can call it that. At the moment it isn't
anything more than a global registry that panel drivers can register panels
with and display drivers can retrieve them. All of this is very device tree
centric right now, but it shouldn't be difficult to add support for platform
data.

Patch 2 implements a simple driver for dumb panels that can have a regulator
for the supply voltage of the panel and a separate GPIO to enable the panel.
Three simple panels are currently supported by that driver.

Finally patch 3 hooks up the panel framework with the Tegra DRM driver. Note
that the framework isn't tied to the core at the moment. That can easily be
changed if we want to, but I didn't see a need so far. Instead the driver
calls the .dpms() and .get_modes() hooks in it's encoder/connector
implementation.

Thierry

Thierry Reding (3):
  drm: Add panel support
  drm/panel: Add simple panel support
  drm/tegra: Implement panel support

 .../devicetree/bindings/panel/panel-simple.txt     |  25 ++
 drivers/gpu/drm/Kconfig                            |   2 +
 drivers/gpu/drm/Makefile                           |   2 +
 drivers/gpu/drm/drm_panel.c                        |  96 ++++++
 drivers/gpu/drm/panel/Kconfig                      |  17 ++
 drivers/gpu/drm/panel/Makefile                     |   1 +
 drivers/gpu/drm/panel/panel-simple.c               | 335 +++++++++++++++++++++
 drivers/gpu/host1x/drm/Kconfig                     |   1 +
 drivers/gpu/host1x/drm/drm.h                       |   1 +
 drivers/gpu/host1x/drm/output.c                    |  28 +-
 include/drm/drm_panel.h                            |  65 ++++
 11 files changed, 571 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/panel/panel-simple.txt
 create mode 100644 drivers/gpu/drm/drm_panel.c
 create mode 100644 drivers/gpu/drm/panel/Kconfig
 create mode 100644 drivers/gpu/drm/panel/Makefile
 create mode 100644 drivers/gpu/drm/panel/panel-simple.c
 create mode 100644 include/drm/drm_panel.h

-- 
1.8.4

             reply	other threads:[~2013-08-30 15:25 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-30 15:25 Thierry Reding [this message]
     [not found] ` <1377876321-26835-1-git-send-email-treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-08-30 15:25   ` [RFC 1/3] drm: Add panel support Thierry Reding
     [not found]     ` <1377876321-26835-2-git-send-email-treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-09-03  2:20       ` Alex Courbot
2013-08-30 15:25   ` [RFC 2/3] drm/panel: Add simple " Thierry Reding
     [not found]     ` <1377876321-26835-3-git-send-email-treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-08-30 19:24       ` Kumar Gala
     [not found]         ` <60046BAF-42E8-40FB-A45D-045B7C92513E-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2013-09-03 18:49           ` Stephen Warren
2013-09-03 18:52       ` Stephen Warren
     [not found]         ` <52262FF4.6050605-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-09-04 14:38           ` Thierry Reding
2013-08-30 15:25   ` [RFC 3/3] drm/tegra: Implement " Thierry Reding

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1377876321-26835-1-git-send-email-treding@nvidia.com \
    --to=thierry.reding-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.