[PATCH 00/16] [RFC] drm fb helper cleanups
Daniel Vetter
daniel.vetter at ffwll.ch
Thu Jan 24 08:20:32 PST 2013
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
More information about the dri-devel
mailing list