[Intel-gfx] [PATCH 00/13] drm/i915: modeset probe/remove path refactoring

Jani Nikula jani.nikula at intel.com
Thu Sep 19 14:03:47 UTC 2019


Hi all, I started looking into cleaning up the modeset probe/remove
paths. We have a number of issues there. Modeset and non-modeset
initialization and cleanup happily mixed up. Initialization and cleanup
of various things happen at different layers in the stack.

This is tied to the previous patches on display disable / no display.

The first 6 patches are really straightforward cleanup. Then things
start getting interesting. In general I'm trying to split the
init/cleanup to parts before and after irq&gem init/cleanup, so that we
can have the irq&gem stuff at the higher level of i915 probe instead of
in modeset code.

There are several levels of ugliness associated with this. First,
naming. (Door open for bikeshedding, yay.) Second, the split init and
cleanup are not symmetrical. The init before irq installed does not
match the cleanup after irq uninstalled, for various reasons. This is
not so bad for overall probe and driver remove in general, but: Third,
the probe failure paths are a total mess. They are already now, in many
ways, but this doesn't really help, either. So I'm not sure this should
be a blocker, but it's not pretty.

BR,
Jani.


Jani Nikula (13):
  drm/i915: add i915_driver_modeset_remove()
  drm/i915: pass i915 to i915_driver_modeset_probe()
  drm/i915: pass i915 to intel_modeset_driver_remove()
  drm/i915: abstract intel_panel_sanitize_ssc() from
    intel_modeset_init()
  drm/i915: abstract intel_mode_config_init() from intel_modeset_init()
  drm/i915: pass i915 to intel_modeset_init() and
    intel_modeset_init_hw()
  drm/i915: split intel_modeset_driver_remove() to pre/post irq
    uninstall
  drm/i915: split i915_driver_modeset_remove() to pre/post irq uninstall
  drm/i915: move gmbus setup down to intel_modeset_init()
  drm/i915: split i915_driver_modeset_probe() to pre/post irq install
  drm/i915: move gem init up from modeset init
  drm/i915: push intel_overlay_init() down to intel_modeset_init()
  drm/i915: split intel_modeset_init() to pre/post irq install

 drivers/gpu/drm/i915/display/intel_display.c | 249 ++++++++++---------
 drivers/gpu/drm/i915/display/intel_display.h |   8 +-
 drivers/gpu/drm/i915/i915_drv.c              | 139 +++++++----
 3 files changed, 225 insertions(+), 171 deletions(-)

-- 
2.20.1



More information about the Intel-gfx mailing list