mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Russell King <rmk+kernel@arm.linux.org.uk>,
	dri-devel@lists.freedesktop.org
Cc: Daniel Vetter <daniel@ffwll.ch>, Rob Clark <robdclark@gmail.com>,
	David Herrmann <dh.herrmann@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v2 0/7] drm/tegra: Convert to master/component framework
Date: Tue, 13 May 2014 17:30:43 +0200	[thread overview]
Message-ID: <1399995050-28435-1-git-send-email-thierry.reding@gmail.com> (raw)

From: Thierry Reding <treding@nvidia.com>

Hi,

This series converts the Tegra DRM driver to the master/component
framework. The length of the series and the list of people in Cc is
mostly due to the fact that Tegra has some special requirements as
opposed to other drivers and therefore requires some changes outside
of DRM.

Patch 1 introduces a helper function that can be used by new DRM drivers
that don't rely on legacy userspace ABIs. It allows them to register DRM
devices much more easily and without much of the midlayer that currently
exists in the DRM subsystem.

Patches 2 and 3 make some changes to the master/component framework
which are necessary to convert Tegra DRM to use it. All current users of
the API have been converted as part of this patch. Note that at the same
time the drivers are converted to no longer use drm_platform_init() in
favour of the drm_set_unique() from patch 1 in conjunction with
drm_dev_alloc() and drm_dev_register(). I would've liked to avoid such
invasive changes in a single patch, but unfortunately I couldn't think
of a way how to do that. I'm open to suggestions.

Patch 4 adds a new interface framework that supplements the master/
component framework and can be used in situations where there is no
struct device * that a driver can bind to.

The Tegra DRM driver is converted to using the master/component
framework in patch 5 using the above four patches.

Finally patches 6 and 7 add some documentation about the new way of
registering DRM devices that don't need legacy support.

Each patch has a somewhat more elaborate description of why it is needed
or what problem it solves. The patchset applies on top of linux-next.

I welcome any questions or comments you might have.

Thierry

Thierry Reding (7):
  drm: Introduce drm_set_unique()
  drivers/base: Allow driver-data to be attached to a master
  drivers/base: Allow multiple masters per device
  drivers/base: Add interface framework
  drm/tegra: Convert to master/component framework
  drm: Add device registration documentation
  drm: Document how to register devices without struct drm_bus

 Documentation/DocBook/drm.tmpl             |  38 ++
 drivers/base/Makefile                      |   2 +-
 drivers/base/component.c                   |  31 +-
 drivers/base/interface.c                   | 186 ++++++++++
 drivers/gpu/drm/drm_ioctl.c                |  23 +-
 drivers/gpu/drm/drm_pci.c                  |  80 ++---
 drivers/gpu/drm/drm_platform.c             |  15 +-
 drivers/gpu/drm/drm_stub.c                 |  43 ++-
 drivers/gpu/drm/drm_usb.c                  |  20 +-
 drivers/gpu/drm/msm/adreno/a3xx_gpu.c      |   8 +-
 drivers/gpu/drm/msm/hdmi/hdmi.c            |   8 +-
 drivers/gpu/drm/msm/msm_drv.c              |  75 ++--
 drivers/gpu/drm/msm/msm_drv.h              |   1 +
 drivers/gpu/drm/tegra/Makefile             |   1 -
 drivers/gpu/drm/tegra/bus.c                |  64 ----
 drivers/gpu/drm/tegra/dc.c                 |  58 ++-
 drivers/gpu/drm/tegra/drm.c                | 171 ++++++---
 drivers/gpu/drm/tegra/drm.h                |  27 +-
 drivers/gpu/drm/tegra/dsi.c                | 144 ++++----
 drivers/gpu/drm/tegra/gr2d.c               |  78 ++--
 drivers/gpu/drm/tegra/gr3d.c               |  77 ++--
 drivers/gpu/drm/tegra/hdmi.c               |  69 ++--
 drivers/gpu/drm/tegra/sor.c                |  71 ++--
 drivers/gpu/host1x/Makefile                |   1 -
 drivers/gpu/host1x/bus.c                   | 553 -----------------------------
 drivers/gpu/host1x/bus.h                   |  29 --
 drivers/gpu/host1x/dev.c                   |  21 +-
 drivers/gpu/host1x/dev.h                   |   7 +-
 drivers/staging/imx-drm/imx-drm-core.c     |  58 +--
 drivers/staging/imx-drm/imx-hdmi.c         |   4 +-
 drivers/staging/imx-drm/imx-ldb.c          |   4 +-
 drivers/staging/imx-drm/imx-tve.c          |   4 +-
 drivers/staging/imx-drm/ipuv3-crtc.c       |   4 +-
 drivers/staging/imx-drm/parallel-display.c |   4 +-
 include/drm/drmP.h                         |   3 +
 include/linux/component.h                  |  20 +-
 include/linux/host1x.h                     |  64 +---
 include/linux/interface.h                  |  40 +++
 38 files changed, 849 insertions(+), 1257 deletions(-)
 create mode 100644 drivers/base/interface.c
 delete mode 100644 drivers/gpu/drm/tegra/bus.c
 delete mode 100644 drivers/gpu/host1x/bus.c
 delete mode 100644 drivers/gpu/host1x/bus.h
 create mode 100644 include/linux/interface.h

-- 
1.9.2


             reply	other threads:[~2014-05-13 15:33 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-13 15:30 Thierry Reding [this message]
2014-05-13 15:30 ` [PATCH v2 1/7] drm: Introduce drm_set_unique() Thierry Reding
2014-05-13 15:46   ` David Herrmann
2014-05-13 15:30 ` [PATCH v2 2/7] drivers/base: Allow driver-data to be attached to a master Thierry Reding
2014-05-13 15:30 ` [PATCH v2 3/7] drivers/base: Allow multiple masters per device Thierry Reding
2014-05-13 15:30 ` [PATCH v2 4/7] drivers/base: Add interface framework Thierry Reding
2014-05-13 17:57   ` Daniel Vetter
2014-05-13 21:31     ` Thierry Reding
2014-05-14 14:34       ` Daniel Vetter
2014-05-14 15:13         ` Thierry Reding
2014-05-14  0:32     ` Greg Kroah-Hartman
2014-05-14 14:37       ` Daniel Vetter
2014-05-14 17:22         ` Greg Kroah-Hartman
2014-05-15  8:53       ` Thierry Reding
2014-05-20  9:27         ` Andrzej Hajda
2014-05-13 15:30 ` [PATCH v2 5/7] drm/tegra: Convert to master/component framework Thierry Reding
2014-05-19  8:56   ` Christian Gmeiner
2014-05-19 15:25     ` Thierry Reding
2014-05-13 15:30 ` [PATCH v2 6/7] drm: Add device registration documentation Thierry Reding
2014-05-13 17:59   ` Daniel Vetter
2014-05-13 15:30 ` [PATCH v2 7/7] drm: Document how to register devices without struct drm_bus Thierry Reding
2014-05-13 15:55   ` David Herrmann
2014-05-22  9:56 ` [PATCH v2 0/7] drm/tegra: Convert to master/component framework Thierry Reding
2014-05-23 11:03   ` Greg Kroah-Hartman
2014-05-25 11:45     ` 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=1399995050-28435-1-git-send-email-thierry.reding@gmail.com \
    --to=thierry.reding@gmail.com \
    --cc=daniel@ffwll.ch \
    --cc=dh.herrmann@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=rmk+kernel@arm.linux.org.uk \
    --cc=robdclark@gmail.com \
    --cc=s.hauer@pengutronix.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome