drm/i915/display: move register functions to display/
Now that all display-related functions are grouped in i915_driver_register(), move them to display/ so we reduce the amount of display calls from the rest of the driver. Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20210213042756.953007-3-lucas.demarchi@intel.com
This commit is contained in:
parent
ef7eff1aae
commit
141b415f9f
@ -24,6 +24,7 @@
|
||||
* Eric Anholt <eric@anholt.net>
|
||||
*/
|
||||
|
||||
#include <acpi/video.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/intel-iommu.h>
|
||||
@ -43,6 +44,7 @@
|
||||
#include <drm/drm_probe_helper.h>
|
||||
#include <drm/drm_rect.h>
|
||||
|
||||
#include "display/intel_audio.h"
|
||||
#include "display/intel_crt.h"
|
||||
#include "display/intel_ddi.h"
|
||||
#include "display/intel_display_debugfs.h"
|
||||
@ -13954,6 +13956,57 @@ void intel_modeset_driver_remove_nogem(struct drm_i915_private *i915)
|
||||
intel_bios_driver_remove(i915);
|
||||
}
|
||||
|
||||
void intel_display_driver_register(struct drm_i915_private *i915)
|
||||
{
|
||||
if (!HAS_DISPLAY(i915))
|
||||
return;
|
||||
|
||||
intel_display_debugfs_register(i915);
|
||||
|
||||
/* Must be done after probing outputs */
|
||||
intel_opregion_register(i915);
|
||||
acpi_video_register();
|
||||
|
||||
intel_audio_init(i915);
|
||||
|
||||
/*
|
||||
* Some ports require correctly set-up hpd registers for
|
||||
* detection to work properly (leading to ghost connected
|
||||
* connector status), e.g. VGA on gm45. Hence we can only set
|
||||
* up the initial fbdev config after hpd irqs are fully
|
||||
* enabled. We do it last so that the async config cannot run
|
||||
* before the connectors are registered.
|
||||
*/
|
||||
intel_fbdev_initial_config_async(&i915->drm);
|
||||
|
||||
/*
|
||||
* We need to coordinate the hotplugs with the asynchronous
|
||||
* fbdev configuration, for which we use the
|
||||
* fbdev->async_cookie.
|
||||
*/
|
||||
drm_kms_helper_poll_init(&i915->drm);
|
||||
}
|
||||
|
||||
void intel_display_driver_unregister(struct drm_i915_private *i915)
|
||||
{
|
||||
if (!HAS_DISPLAY(i915))
|
||||
return;
|
||||
|
||||
intel_fbdev_unregister(i915);
|
||||
intel_audio_deinit(i915);
|
||||
|
||||
/*
|
||||
* After flushing the fbdev (incl. a late async config which
|
||||
* will have delayed queuing of a hotplug event), then flush
|
||||
* the hotplug events.
|
||||
*/
|
||||
drm_kms_helper_poll_fini(&i915->drm);
|
||||
drm_atomic_helper_shutdown(&i915->drm);
|
||||
|
||||
acpi_video_unregister();
|
||||
intel_opregion_unregister(i915);
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR)
|
||||
|
||||
struct intel_display_error_state {
|
||||
|
@ -654,6 +654,9 @@ u32 intel_plane_adjust_aligned_offset(int *x, int *y,
|
||||
unsigned int intel_tile_width_bytes(const struct drm_framebuffer *fb, int color_plane);
|
||||
unsigned int intel_tile_height(const struct drm_framebuffer *fb, int color_plane);
|
||||
|
||||
void intel_display_driver_register(struct drm_i915_private *i915);
|
||||
void intel_display_driver_unregister(struct drm_i915_private *i915);
|
||||
|
||||
/* modesetting */
|
||||
void intel_modeset_init_hw(struct drm_i915_private *i915);
|
||||
int intel_modeset_init_noirq(struct drm_i915_private *i915);
|
||||
|
@ -38,7 +38,6 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/vga_switcheroo.h>
|
||||
#include <linux/vt.h>
|
||||
#include <acpi/video.h>
|
||||
|
||||
#include <drm/drm_atomic_helper.h>
|
||||
#include <drm/drm_ioctl.h>
|
||||
@ -51,7 +50,6 @@
|
||||
#include "display/intel_bw.h"
|
||||
#include "display/intel_cdclk.h"
|
||||
#include "display/intel_csr.h"
|
||||
#include "display/intel_display_debugfs.h"
|
||||
#include "display/intel_display_types.h"
|
||||
#include "display/intel_dp.h"
|
||||
#include "display/intel_fbdev.h"
|
||||
@ -678,32 +676,7 @@ static void i915_driver_register(struct drm_i915_private *dev_priv)
|
||||
|
||||
intel_gt_driver_register(&dev_priv->gt);
|
||||
|
||||
if (HAS_DISPLAY(dev_priv)) {
|
||||
intel_display_debugfs_register(dev_priv);
|
||||
|
||||
/* Must be done after probing outputs */
|
||||
intel_opregion_register(dev_priv);
|
||||
acpi_video_register();
|
||||
|
||||
intel_audio_init(dev_priv);
|
||||
|
||||
/*
|
||||
* Some ports require correctly set-up hpd registers for
|
||||
* detection to work properly (leading to ghost connected
|
||||
* connector status), e.g. VGA on gm45. Hence we can only set
|
||||
* up the initial fbdev config after hpd irqs are fully
|
||||
* enabled. We do it last so that the async config cannot run
|
||||
* before the connectors are registered.
|
||||
*/
|
||||
intel_fbdev_initial_config_async(dev);
|
||||
|
||||
/*
|
||||
* We need to coordinate the hotplugs with the asynchronous
|
||||
* fbdev configuration, for which we use the
|
||||
* fbdev->async_cookie.
|
||||
*/
|
||||
drm_kms_helper_poll_init(dev);
|
||||
}
|
||||
intel_display_driver_register(dev_priv);
|
||||
|
||||
intel_power_domains_enable(dev_priv);
|
||||
intel_runtime_pm_enable(&dev_priv->runtime_pm);
|
||||
@ -727,21 +700,7 @@ static void i915_driver_unregister(struct drm_i915_private *dev_priv)
|
||||
intel_runtime_pm_disable(&dev_priv->runtime_pm);
|
||||
intel_power_domains_disable(dev_priv);
|
||||
|
||||
if (HAS_DISPLAY(dev_priv)) {
|
||||
intel_fbdev_unregister(dev_priv);
|
||||
intel_audio_deinit(dev_priv);
|
||||
|
||||
/*
|
||||
* After flushing the fbdev (incl. a late async config which
|
||||
* will have delayed queuing of a hotplug event), then flush
|
||||
* the hotplug events.
|
||||
*/
|
||||
drm_kms_helper_poll_fini(&dev_priv->drm);
|
||||
drm_atomic_helper_shutdown(&dev_priv->drm);
|
||||
|
||||
acpi_video_unregister();
|
||||
intel_opregion_unregister(dev_priv);
|
||||
}
|
||||
intel_display_driver_unregister(dev_priv);
|
||||
|
||||
intel_gt_driver_unregister(&dev_priv->gt);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user