[RFC 00/12] Support render-node only drivers

Thierry Reding thierry.reding at gmail.com
Thu Feb 20 23:55:16 PST 2014


From: Thierry Reding <treding at nvidia.com>

This series builds on top of David's reliable DRM minor series:

	[PATCH 00/13] DRM Reliable Minor-IDs

Tegra K1 has a Kepler-type GPU without any display engine. Instead it
reuses the Tegra display engine. That means that effectively the GPU
becomes a render-node only device. In order to reflect that, it would
be preferable for the associated /dev/dri/cardX node not to show up.

To achieve that, the DRIVER_MODESET feature needs to be removed from
the GPU driver, but that unfortunately implies activating a bunch of
legacy behaviour for pre-KMS drivers. To allow for drivers that don't
support modesetting IOCTLs (because they drive no output) but which
aren't legacy either, the meaning of the DRIVER_MODESET needs to be
redefined.

This series attempts to do so by first renaming DRM_MINOR_LEGACY to
DRM_MINOR_PRIMARY to more accurately reflect its purpose. Legacy and
modesetting are then decoupled by introducing a DRIVER_LEGACY driver
feature that can be set by truly legacy drivers. This allows the old
DRIVER_MODESET feature to advertise support only for modesetting
functionality, without implying that it is a non-legacy driver.

After all the drivers have been updated, the core can be modified to
create the primary minor only when DRIVER_MODESET is available.

The remainder of the series cleans up some drm_core_check_feature()
usage and drop some unused code related to that.

Thierry

Thierry Reding (12):
  drm: Rename DRM_MINOR_LEGACY to DRM_MINOR_PRIMARY
  drm: Introduce DRIVER_LEGACY feature
  drm/i915: Mark as legacy if KMS is disabled
  drm: Separate DRIVER_MODESET and DRIVER_LEGACY
  drm: Create primary minor only if mode-setting is supported
  drm: Remove gratuituous blank line
  drm: Use drm_core_check_feature() where possible
  drm/exynos: Remove dead code
  drm/gma500: Remove dead code
  drm/i810: Remove dead code
  drm/i915: Remove dead code
  drm/qxl: Remove dead code

 drivers/gpu/drm/drm_bufs.c              | 12 +++++------
 drivers/gpu/drm/drm_crtc.c              |  1 -
 drivers/gpu/drm/drm_dma.c               |  4 ++--
 drivers/gpu/drm/drm_fops.c              | 14 ++++++------
 drivers/gpu/drm/drm_gem.c               |  6 +++---
 drivers/gpu/drm/drm_irq.c               | 12 +++++------
 drivers/gpu/drm/drm_pci.c               | 12 +++++------
 drivers/gpu/drm/drm_scatter.c           |  6 +++---
 drivers/gpu/drm/drm_stub.c              | 24 +++++++++++----------
 drivers/gpu/drm/drm_sysfs.c             |  8 +++----
 drivers/gpu/drm/exynos/exynos_drm_gem.c | 10 ---------
 drivers/gpu/drm/gma500/gem.c            |  3 ---
 drivers/gpu/drm/i810/i810_dma.c         |  7 ------
 drivers/gpu/drm/i810/i810_drv.c         |  3 ++-
 drivers/gpu/drm/i915/i915_dma.c         | 38 ++++++++++++++++-----------------
 drivers/gpu/drm/i915/i915_drv.c         | 18 ++++++++++------
 drivers/gpu/drm/i915/i915_gem.c         | 17 +++++++--------
 drivers/gpu/drm/i915/i915_gem_context.c |  6 ------
 drivers/gpu/drm/i915/i915_irq.c         |  6 +++---
 drivers/gpu/drm/i915/i915_suspend.c     | 15 ++++++-------
 drivers/gpu/drm/i915/intel_ringbuffer.c |  2 +-
 drivers/gpu/drm/mga/mga_drv.c           |  3 ++-
 drivers/gpu/drm/qxl/qxl_kms.c           |  4 ----
 drivers/gpu/drm/radeon/radeon_drv.c     |  3 ++-
 drivers/gpu/drm/savage/savage_drv.c     |  2 +-
 drivers/gpu/drm/sis/sis_drv.c           |  2 +-
 drivers/gpu/drm/tdfx/tdfx_drv.c         |  1 +
 drivers/gpu/drm/via/via_drv.c           |  2 +-
 include/drm/drmP.h                      |  3 ++-
 29 files changed, 112 insertions(+), 132 deletions(-)

-- 
1.8.4.2



More information about the dri-devel mailing list