All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel.vetter@ffwll.ch>
To: DRI Development <dri-devel@lists.freedesktop.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Subject: [PATCH 00/16] [RFC] drm fb helper cleanups
Date: Thu, 24 Jan 2013 17:20:32 +0100	[thread overview]
Message-ID: <1359044448-3861-1-git-send-email-daniel.vetter@ffwll.ch> (raw)

Hi all,

This series is mostly just a bit of fallout from my modeset locking rework which
just landed, and some other things I've noticed while rearchitecting the modeset
infrastructure for i915.k in 3.7.

First two patches are for omapdrm, but included here since they depend upon the
locking rework in drm-next. Dunno what to do with these patches, so I'll just
drop them here. Rob, you really need to put the finishing touches on
omapdrm and move it out of staging!

The remainder just mostly cleans up the fb helper interfaces and how the helper
code calls down into drivers. Icing on the cake is a good doc update. I'm rather
happy with what the fbdev helper code now looks like after this. A few areas
with potential for improvement remain though:

- Locking around setup/teardown smells a bit fishy, but that ties in with the
  fbdev setup locking (which is insane) and the drm core setup locking (which is
  riddled with legacy stuff and also ripe for some overhaul). I think most of
  pertaining the fbdev emulation is safe though.

- Much worse is the situation around the panic, sysrq and kdbg handlers - those
  simply grab no locks at all. Safe for the ->blank callback, which may not
  sleep since it can be called while the kernel panics in interrupt context. Bug
  spotted by Konstantin Khlebnikov, I've only simplified his originally proposed
  patch a bit.

- The fb helpers have their own special interface for handling gamma/luts. I've
  looked a bit at the code, and I'm pretty sure this can be reworked to only use
  the real kms interfaces for updating the gamma table. That would leave the
  fb helpers with ->best_encoder and ->fb_probe as the two only special
  interfaces. But reworking the gamma code is a bit of work, so I've postponed
  it for now.

Comments, flames, reviews and testing highly welcome.

Cheers, Daniel

Daniel Vetter (16):
  omapdrm: only take crtc->mutex in crtc callbacks
  omapdrm: simply locking in the fb debugfs file
  drm: review locking for drm_fb_helper_restore_fbdev_mode
  drm/fb-helper: kill drm_fb_helper_restore
  drm/fb-helper: unexport drm_fb_helper_panic
  drm/fb-helper: inline drm_fb_helper_single_add_all_connectors
  drm/fb-helper: unexport drm_fb_helper_single_fb_probe
  drm/tegra: don't set up initial fbcon config twice
  drm/fb-helper: don't disable everything in initial_config
  drm/i915: rip out helper->disable noop functions
  drm/fb-helper: fixup up set_config semantics
  drm/fb-helper: directly call set_par from the hotplug handler
  drm/fb-helper: streamline drm_fb_helper_single_fb_probe
  drm/<drivers>: simplify ->fb_probe callback
  drm/fb-helper: improve kerneldoc
  drm/fb-helper: don't sleep for screen unblank when an oopps is in
    progress

 drivers/gpu/drm/ast/ast_fb.c              |   26 +---
 drivers/gpu/drm/cirrus/cirrus_fbdev.c     |   26 +---
 drivers/gpu/drm/drm_fb_cma_helper.c       |   27 +---
 drivers/gpu/drm/drm_fb_helper.c           |  216 +++++++++++++++++++++--------
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c |   40 +-----
 drivers/gpu/drm/gma500/framebuffer.c      |   14 +-
 drivers/gpu/drm/i915/intel_crt.c          |    1 -
 drivers/gpu/drm/i915/intel_ddi.c          |    1 -
 drivers/gpu/drm/i915/intel_display.c      |   20 +--
 drivers/gpu/drm/i915/intel_dp.c           |    1 -
 drivers/gpu/drm/i915/intel_drv.h          |    1 -
 drivers/gpu/drm/i915/intel_dvo.c          |    1 -
 drivers/gpu/drm/i915/intel_fb.c           |   23 +--
 drivers/gpu/drm/i915/intel_hdmi.c         |    1 -
 drivers/gpu/drm/i915/intel_lvds.c         |    1 -
 drivers/gpu/drm/i915/intel_sdvo.c         |    1 -
 drivers/gpu/drm/i915/intel_tv.c           |    1 -
 drivers/gpu/drm/mgag200/mgag200_fb.c      |   26 +---
 drivers/gpu/drm/nouveau/nouveau_fbcon.c   |   27 +---
 drivers/gpu/drm/radeon/radeon_fb.c        |   25 +---
 drivers/gpu/drm/tegra/fb.c                |    4 -
 drivers/gpu/drm/udl/udl_fb.c              |   26 +---
 drivers/staging/omapdrm/omap_crtc.c       |   12 +-
 drivers/staging/omapdrm/omap_debugfs.c    |   14 --
 drivers/staging/omapdrm/omap_fbdev.c      |   21 +--
 include/drm/drm_fb_helper.h               |    5 -
 26 files changed, 227 insertions(+), 334 deletions(-)

-- 
1.7.10.4

             reply	other threads:[~2013-01-24 16:20 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-24 16:20 Daniel Vetter [this message]
2013-01-24 16:20 ` [PATCH 01/16] omapdrm: only take crtc->mutex in crtc callbacks Daniel Vetter
2013-01-24 16:45   ` Rob Clark
2013-01-24 16:20 ` [PATCH 02/16] omapdrm: simply locking in the fb debugfs file Daniel Vetter
2013-01-24 16:46   ` Rob Clark
2013-01-24 16:20 ` [PATCH 03/16] drm: review locking for drm_fb_helper_restore_fbdev_mode Daniel Vetter
2013-02-11 22:10   ` Rob Clark
2013-01-24 16:20 ` [PATCH 04/16] drm/fb-helper: kill drm_fb_helper_restore Daniel Vetter
2013-02-11 22:08   ` Rob Clark
2013-01-24 16:20 ` [PATCH 05/16] drm/fb-helper: unexport drm_fb_helper_panic Daniel Vetter
2013-02-11 22:11   ` Rob Clark
2013-01-24 16:20 ` [PATCH 06/16] drm/fb-helper: inline drm_fb_helper_single_add_all_connectors Daniel Vetter
2013-01-24 21:27   ` Dave Airlie
2013-01-24 22:50     ` Daniel Vetter
2013-01-24 16:20 ` [PATCH 07/16] drm/fb-helper: unexport drm_fb_helper_single_fb_probe Daniel Vetter
2013-02-11 22:14   ` Rob Clark
2013-01-24 16:20 ` [PATCH 08/16] drm/tegra: don't set up initial fbcon config twice Daniel Vetter
2013-01-24 16:20 ` [PATCH 09/16] drm/fb-helper: don't disable everything in initial_config Daniel Vetter
2013-01-27 17:41   ` [PATCH] " Daniel Vetter
2013-02-12  0:49     ` Rob Clark
2013-01-24 16:20 ` [PATCH 10/16] drm/i915: rip out helper->disable noop functions Daniel Vetter
2013-01-24 16:20 ` [PATCH 11/16] drm/fb-helper: fixup up set_config semantics Daniel Vetter
2013-02-11 23:15   ` Rob Clark
2013-02-12  0:24     ` [PATCH] drm/fb-helper: fixup " Daniel Vetter
2013-02-12  0:24     ` [PATCH] drm/fb-helper: remove unused members of struct drm_fb_helper Daniel Vetter
2013-02-12  0:25     ` [PATCH] drm/fb-helper: fixup set_config semantics Daniel Vetter
2013-02-12  0:33       ` Rob Clark
2013-01-24 16:20 ` [PATCH 12/16] drm/fb-helper: directly call set_par from the hotplug handler Daniel Vetter
2013-02-12  0:16   ` Rob Clark
2013-01-24 16:20 ` [PATCH 13/16] drm/fb-helper: streamline drm_fb_helper_single_fb_probe Daniel Vetter
2013-02-12  0:24   ` Rob Clark
2013-02-12  0:33     ` Daniel Vetter
2013-02-12  0:35       ` Rob Clark
2013-01-24 16:20 ` [PATCH 14/16] drm/<drivers>: simplify ->fb_probe callback Daniel Vetter
2013-02-13 21:51   ` Rob Clark
2013-01-24 16:20 ` [PATCH 15/16] drm/fb-helper: improve kerneldoc Daniel Vetter
2013-01-27 17:42   ` [PATCH] " Daniel Vetter
2013-02-01 12:21     ` Laurent Pinchart
2013-02-05 21:43       ` Daniel Vetter
2013-01-24 16:20 ` [PATCH 16/16] drm/fb-helper: don't sleep for screen unblank when an oopps is in progress Daniel Vetter
2013-01-27 17:42   ` [PATCH] " Daniel Vetter
2013-02-13 21:59     ` Rob Clark
2013-01-24 16:53 ` [PATCH 00/16] [RFC] drm fb helper cleanups Rob Clark
2013-01-24 21:00   ` Greg KH

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=1359044448-3861-1-git-send-email-daniel.vetter@ffwll.ch \
    --to=daniel.vetter@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.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.