[PATCH 00/16] [RFC] drm fb helper cleanups

Rob Clark robdclark at gmail.com
Thu Jan 24 08:53:25 PST 2013


On Thu, Jan 24, 2013 at 10:20 AM, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> 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!

Yeah, I think that omapdrm is ready to move out of staging, and it
would simplify a lot of things to not have to merge changes across
drm/staging/omapdss..

I do prefer that over time, omapdrm and omapdss merge closer together
(ie. move omapdss into omapdrm, so we can make better use of drm
helpers in the omapdss bits.. and probably this starts to make even
more sense as CDF comes into the picture).  But from a functional
standpoint, now that "drm/omap: use omapdss low level API" has landed,
the kms stuff works sanely/properly finally.

Dave/Greg, how do I go about this?

BR,
-R

> 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
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list