drm/i915: move and group fbdev under display.fbdev
authorJani Nikula <jani.nikula@intel.com>
Wed, 24 Aug 2022 13:15:39 +0000 (16:15 +0300)
committerJani Nikula <jani.nikula@intel.com>
Mon, 29 Aug 2022 09:53:48 +0000 (12:53 +0300)
Move display fbdev related members under drm_i915_private display
sub-struct.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/7eb563bc88623bd3f12b9a00efec85e6a78d5800.1661346845.git.jani.nikula@intel.com
drivers/gpu/drm/i915/display/intel_display_core.h
drivers/gpu/drm/i915/display/intel_display_debugfs.c
drivers/gpu/drm/i915/display/intel_fbdev.c
drivers/gpu/drm/i915/i915_drv.h

index 34e187f173d94a2314d6a03ea75b3709dfa90620..76e60cfd3ef706bc5cae4f1e18bcd71c0f413251 100644 (file)
@@ -9,6 +9,7 @@
 #include <linux/mutex.h>
 #include <linux/types.h>
 #include <linux/wait.h>
+#include <linux/workqueue.h>
 
 #include "intel_display.h"
 #include "intel_dmc.h"
@@ -25,6 +26,7 @@ struct intel_crtc;
 struct intel_crtc_state;
 struct intel_dpll_funcs;
 struct intel_dpll_mgr;
+struct intel_fbdev;
 struct intel_fdi_funcs;
 struct intel_hotplug_funcs;
 struct intel_initial_plane_config;
@@ -128,6 +130,12 @@ struct intel_display {
        } funcs;
 
        /* Grouping using anonymous structs. Keep sorted. */
+       struct {
+               /* list of fbdev register on this device */
+               struct intel_fbdev *fbdev;
+               struct work_struct suspend_work;
+       } fbdev;
+
        struct {
                /*
                 * Base address of where the gmbus and gpio blocks are located
index 7994f78b889a011aba27a09f21b0e18248c7e719..e568590faa823c96dbe616e4446225741863971a 100644 (file)
@@ -129,7 +129,7 @@ static int i915_gem_framebuffer_info(struct seq_file *m, void *data)
        struct drm_framebuffer *drm_fb;
 
 #ifdef CONFIG_DRM_FBDEV_EMULATION
-       fbdev_fb = intel_fbdev_framebuffer(dev_priv->fbdev);
+       fbdev_fb = intel_fbdev_framebuffer(dev_priv->display.fbdev.fbdev);
        if (fbdev_fb) {
                seq_printf(m, "fbcon size: %d x %d, depth %d, %d bpp, modifier 0x%llx, refcount %d, obj ",
                           fbdev_fb->base.width,
index 221336178991f04fe3e219108f628d58e20c90c0..c08ff6a5c2e9cc94ea08ad79ca75b9d2c69b554f 100644 (file)
@@ -500,7 +500,7 @@ static void intel_fbdev_suspend_worker(struct work_struct *work)
 {
        intel_fbdev_set_suspend(&container_of(work,
                                              struct drm_i915_private,
-                                             fbdev_suspend_work)->drm,
+                                             display.fbdev.suspend_work)->drm,
                                FBINFO_STATE_RUNNING,
                                true);
 }
@@ -530,8 +530,8 @@ int intel_fbdev_init(struct drm_device *dev)
                return ret;
        }
 
-       dev_priv->fbdev = ifbdev;
-       INIT_WORK(&dev_priv->fbdev_suspend_work, intel_fbdev_suspend_worker);
+       dev_priv->display.fbdev.fbdev = ifbdev;
+       INIT_WORK(&dev_priv->display.fbdev.suspend_work, intel_fbdev_suspend_worker);
 
        return 0;
 }
@@ -548,7 +548,7 @@ static void intel_fbdev_initial_config(void *data, async_cookie_t cookie)
 
 void intel_fbdev_initial_config_async(struct drm_device *dev)
 {
-       struct intel_fbdev *ifbdev = to_i915(dev)->fbdev;
+       struct intel_fbdev *ifbdev = to_i915(dev)->display.fbdev.fbdev;
 
        if (!ifbdev)
                return;
@@ -568,12 +568,12 @@ static void intel_fbdev_sync(struct intel_fbdev *ifbdev)
 
 void intel_fbdev_unregister(struct drm_i915_private *dev_priv)
 {
-       struct intel_fbdev *ifbdev = dev_priv->fbdev;
+       struct intel_fbdev *ifbdev = dev_priv->display.fbdev.fbdev;
 
        if (!ifbdev)
                return;
 
-       cancel_work_sync(&dev_priv->fbdev_suspend_work);
+       cancel_work_sync(&dev_priv->display.fbdev.suspend_work);
        if (!current_is_async())
                intel_fbdev_sync(ifbdev);
 
@@ -582,7 +582,7 @@ void intel_fbdev_unregister(struct drm_i915_private *dev_priv)
 
 void intel_fbdev_fini(struct drm_i915_private *dev_priv)
 {
-       struct intel_fbdev *ifbdev = fetch_and_zero(&dev_priv->fbdev);
+       struct intel_fbdev *ifbdev = fetch_and_zero(&dev_priv->display.fbdev.fbdev);
 
        if (!ifbdev)
                return;
@@ -596,7 +596,7 @@ void intel_fbdev_fini(struct drm_i915_private *dev_priv)
  */
 static void intel_fbdev_hpd_set_suspend(struct drm_i915_private *i915, int state)
 {
-       struct intel_fbdev *ifbdev = i915->fbdev;
+       struct intel_fbdev *ifbdev = i915->display.fbdev.fbdev;
        bool send_hpd = false;
 
        mutex_lock(&ifbdev->hpd_lock);
@@ -614,7 +614,7 @@ static void intel_fbdev_hpd_set_suspend(struct drm_i915_private *i915, int state
 void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous)
 {
        struct drm_i915_private *dev_priv = to_i915(dev);
-       struct intel_fbdev *ifbdev = dev_priv->fbdev;
+       struct intel_fbdev *ifbdev = dev_priv->display.fbdev.fbdev;
        struct fb_info *info;
 
        if (!ifbdev || !ifbdev->vma)
@@ -631,7 +631,7 @@ void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous
                 * ourselves, so only flush outstanding work upon suspend!
                 */
                if (state != FBINFO_STATE_RUNNING)
-                       flush_work(&dev_priv->fbdev_suspend_work);
+                       flush_work(&dev_priv->display.fbdev.suspend_work);
 
                console_lock();
        } else {
@@ -645,7 +645,7 @@ void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous
                        /* Don't block our own workqueue as this can
                         * be run in parallel with other i915.ko tasks.
                         */
-                       schedule_work(&dev_priv->fbdev_suspend_work);
+                       schedule_work(&dev_priv->display.fbdev.suspend_work);
                        return;
                }
        }
@@ -666,7 +666,7 @@ void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous
 
 void intel_fbdev_output_poll_changed(struct drm_device *dev)
 {
-       struct intel_fbdev *ifbdev = to_i915(dev)->fbdev;
+       struct intel_fbdev *ifbdev = to_i915(dev)->display.fbdev.fbdev;
        bool send_hpd;
 
        if (!ifbdev)
@@ -685,7 +685,7 @@ void intel_fbdev_output_poll_changed(struct drm_device *dev)
 
 void intel_fbdev_restore_mode(struct drm_device *dev)
 {
-       struct intel_fbdev *ifbdev = to_i915(dev)->fbdev;
+       struct intel_fbdev *ifbdev = to_i915(dev)->display.fbdev.fbdev;
 
        if (!ifbdev)
                return;
index 85ad775066edf749a919becf811e59ca667023bd..b7ad2f822dcd516c57122020a1a201a372718c44 100644 (file)
@@ -83,7 +83,6 @@ struct intel_cdclk_vals;
 struct intel_connector;
 struct intel_dp;
 struct intel_encoder;
-struct intel_fbdev;
 struct intel_limit;
 struct intel_overlay;
 struct intel_overlay_error_state;
@@ -478,10 +477,6 @@ struct drm_i915_private {
 
        struct i915_gpu_error gpu_error;
 
-       /* list of fbdev register on this device */
-       struct intel_fbdev *fbdev;
-       struct work_struct fbdev_suspend_work;
-
        struct drm_property *broadcast_rgb_property;
        struct drm_property *force_audio_property;