mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 00:22:00 +02:00
drm/i915/display: start high level display driver file
The only way to truly clean up intel_display.[ch] is to move stuff out of them until there's absolutely nothing left. Start moving the high level display driver entry points, i.e. functions called from top level driver code only, to a new file, which we'll call intel_display_driver.c. The intention is that there's no low-level display code or details here. This is an in-between layer. Initially, move intel_display_driver_register() and intel_display_driver_unregister() there. Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/e42cc037881a4c6042948a34bd4a9698f9e8487c.1681465222.git.jani.nikula@intel.com
This commit is contained in:
parent
ae52dd7d6d
commit
77316e7552
|
|
@ -237,6 +237,7 @@ i915-y += \
|
|||
display/intel_crtc_state_dump.o \
|
||||
display/intel_cursor.o \
|
||||
display/intel_display.o \
|
||||
display/intel_display_driver.o \
|
||||
display/intel_display_power.o \
|
||||
display/intel_display_power_map.o \
|
||||
display/intel_display_power_well.o \
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/string_helpers.h>
|
||||
#include <linux/vga_switcheroo.h>
|
||||
#include <acpi/video.h>
|
||||
|
||||
#include <drm/display/drm_dp_helper.h>
|
||||
#include <drm/drm_atomic.h>
|
||||
|
|
@ -70,7 +69,6 @@
|
|||
#include "intel_crtc_state_dump.h"
|
||||
#include "intel_ddi.h"
|
||||
#include "intel_de.h"
|
||||
#include "intel_display_debugfs.h"
|
||||
#include "intel_display_power.h"
|
||||
#include "intel_display_types.h"
|
||||
#include "intel_dmc.h"
|
||||
|
|
@ -8839,57 +8837,6 @@ bool intel_modeset_probe_defer(struct pci_dev *pdev)
|
|||
return false;
|
||||
}
|
||||
|
||||
void intel_display_driver_register(struct drm_i915_private *i915)
|
||||
{
|
||||
if (!HAS_DISPLAY(i915))
|
||||
return;
|
||||
|
||||
/* Must be done after probing outputs */
|
||||
intel_opregion_register(i915);
|
||||
intel_acpi_video_register(i915);
|
||||
|
||||
intel_audio_init(i915);
|
||||
|
||||
intel_display_debugfs_register(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);
|
||||
|
||||
/*
|
||||
* 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);
|
||||
}
|
||||
|
||||
bool intel_scanout_needs_vtd_wa(struct drm_i915_private *i915)
|
||||
{
|
||||
return DISPLAY_VER(i915) >= 6 && i915_vtd_active(i915);
|
||||
|
|
|
|||
|
|
@ -518,9 +518,6 @@ void intel_set_plane_visible(struct intel_crtc_state *crtc_state,
|
|||
bool visible);
|
||||
void intel_plane_fixup_bitmasks(struct intel_crtc_state *crtc_state);
|
||||
|
||||
void intel_display_driver_register(struct drm_i915_private *i915);
|
||||
void intel_display_driver_unregister(struct drm_i915_private *i915);
|
||||
|
||||
void intel_update_watermarks(struct drm_i915_private *i915);
|
||||
|
||||
/* modesetting */
|
||||
|
|
|
|||
71
drivers/gpu/drm/i915/display/intel_display_driver.c
Normal file
71
drivers/gpu/drm/i915/display/intel_display_driver.c
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
// SPDX-License-Identifier: MIT
|
||||
/*
|
||||
* Copyright © 2022-2023 Intel Corporation
|
||||
*
|
||||
* High level display driver entry points. This is a layer between top level
|
||||
* driver code and low level display functionality; no low level display code or
|
||||
* details here.
|
||||
*/
|
||||
|
||||
#include <acpi/video.h>
|
||||
#include <drm/drm_atomic_helper.h>
|
||||
#include <drm/drm_probe_helper.h>
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "intel_acpi.h"
|
||||
#include "intel_audio.h"
|
||||
#include "intel_display_debugfs.h"
|
||||
#include "intel_display_driver.h"
|
||||
#include "intel_fbdev.h"
|
||||
#include "intel_opregion.h"
|
||||
|
||||
void intel_display_driver_register(struct drm_i915_private *i915)
|
||||
{
|
||||
if (!HAS_DISPLAY(i915))
|
||||
return;
|
||||
|
||||
/* Must be done after probing outputs */
|
||||
intel_opregion_register(i915);
|
||||
intel_acpi_video_register(i915);
|
||||
|
||||
intel_audio_init(i915);
|
||||
|
||||
intel_display_debugfs_register(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);
|
||||
|
||||
/*
|
||||
* 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);
|
||||
}
|
||||
15
drivers/gpu/drm/i915/display/intel_display_driver.h
Normal file
15
drivers/gpu/drm/i915/display/intel_display_driver.h
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
/* SPDX-License-Identifier: MIT */
|
||||
/*
|
||||
* Copyright © 2022-2023 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef __INTEL_DISPLAY_DRIVER_H__
|
||||
#define __INTEL_DISPLAY_DRIVER_H__
|
||||
|
||||
struct drm_i915_private;
|
||||
|
||||
void intel_display_driver_register(struct drm_i915_private *i915);
|
||||
void intel_display_driver_unregister(struct drm_i915_private *i915);
|
||||
|
||||
#endif /* __INTEL_DISPLAY_DRIVER_H__ */
|
||||
|
||||
|
|
@ -48,6 +48,7 @@
|
|||
#include "display/intel_acpi.h"
|
||||
#include "display/intel_bw.h"
|
||||
#include "display/intel_cdclk.h"
|
||||
#include "display/intel_display_driver.h"
|
||||
#include "display/intel_display_types.h"
|
||||
#include "display/intel_dmc.h"
|
||||
#include "display/intel_dp.h"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user