diff mbox series

[02/10] drm/i915/display: start high level display driver file

Message ID 6b73f3e8cbb286c9323057445afbcd81606af82e.1681379167.git.jani.nikula@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915/display: split out high level display entry points | expand

Commit Message

Jani Nikula April 13, 2023, 9:47 a.m. UTC
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.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/Makefile                 |  1 +
 drivers/gpu/drm/i915/display/intel_display.c  | 53 --------------
 drivers/gpu/drm/i915/display/intel_display.h  |  3 -
 .../drm/i915/display/intel_display_driver.c   | 71 +++++++++++++++++++
 .../drm/i915/display/intel_display_driver.h   | 15 ++++
 drivers/gpu/drm/i915/i915_driver.c            |  1 +
 6 files changed, 88 insertions(+), 56 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/display/intel_display_driver.c
 create mode 100644 drivers/gpu/drm/i915/display/intel_display_driver.h

Comments

Gustavo Sousa April 13, 2023, 4:55 p.m. UTC | #1
Quoting Jani Nikula (2023-04-13 06:47:28)
> 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.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>

> ---
>  drivers/gpu/drm/i915/Makefile                 |  1 +
>  drivers/gpu/drm/i915/display/intel_display.c  | 53 --------------
>  drivers/gpu/drm/i915/display/intel_display.h  |  3 -
>  .../drm/i915/display/intel_display_driver.c   | 71 +++++++++++++++++++
>  .../drm/i915/display/intel_display_driver.h   | 15 ++++
>  drivers/gpu/drm/i915/i915_driver.c            |  1 +
>  6 files changed, 88 insertions(+), 56 deletions(-)
>  create mode 100644 drivers/gpu/drm/i915/display/intel_display_driver.c
>  create mode 100644 drivers/gpu/drm/i915/display/intel_display_driver.h
> 
> diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
> index 97b0d4ae221a..91f0c214ef28 100644
> --- a/drivers/gpu/drm/i915/Makefile
> +++ b/drivers/gpu/drm/i915/Makefile
> @@ -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 \
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 1c0149adcf49..7c66b9ce0db5 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -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"
> @@ -8833,57 +8831,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);
> diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
> index 287159bdeb0d..e46732d26b7c 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.h
> +++ b/drivers/gpu/drm/i915/display/intel_display.h
> @@ -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 */
> diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c
> new file mode 100644
> index 000000000000..d4a1893e9218
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
> @@ -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);
> +}
> diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.h b/drivers/gpu/drm/i915/display/intel_display_driver.h
> new file mode 100644
> index 000000000000..4f6deef5a23f
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/display/intel_display_driver.h
> @@ -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__ */
> +
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index 93fdc40d724f..5ccb24498cbf 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -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"
> -- 
> 2.39.2
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 97b0d4ae221a..91f0c214ef28 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -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 \
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 1c0149adcf49..7c66b9ce0db5 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -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"
@@ -8833,57 +8831,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);
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index 287159bdeb0d..e46732d26b7c 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -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 */
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c
new file mode 100644
index 000000000000..d4a1893e9218
--- /dev/null
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
@@ -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);
+}
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.h b/drivers/gpu/drm/i915/display/intel_display_driver.h
new file mode 100644
index 000000000000..4f6deef5a23f
--- /dev/null
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.h
@@ -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__ */
+
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index 93fdc40d724f..5ccb24498cbf 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -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"