Commit b3d81daf authored by Jani Nikula's avatar Jani Nikula

drm/i915: move and group fbdev under display.fbdev

Move display fbdev related members under drm_i915_private display
sub-struct.
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: default avatarArun R Murthy <arun.r.murthy@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/7eb563bc88623bd3f12b9a00efec85e6a78d5800.1661346845.git.jani.nikula@intel.com
parent 36d225f3
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <linux/mutex.h> #include <linux/mutex.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/wait.h> #include <linux/wait.h>
#include <linux/workqueue.h>
#include "intel_display.h" #include "intel_display.h"
#include "intel_dmc.h" #include "intel_dmc.h"
...@@ -25,6 +26,7 @@ struct intel_crtc; ...@@ -25,6 +26,7 @@ struct intel_crtc;
struct intel_crtc_state; struct intel_crtc_state;
struct intel_dpll_funcs; struct intel_dpll_funcs;
struct intel_dpll_mgr; struct intel_dpll_mgr;
struct intel_fbdev;
struct intel_fdi_funcs; struct intel_fdi_funcs;
struct intel_hotplug_funcs; struct intel_hotplug_funcs;
struct intel_initial_plane_config; struct intel_initial_plane_config;
...@@ -128,6 +130,12 @@ struct intel_display { ...@@ -128,6 +130,12 @@ struct intel_display {
} funcs; } funcs;
/* Grouping using anonymous structs. Keep sorted. */ /* 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 { struct {
/* /*
* Base address of where the gmbus and gpio blocks are located * Base address of where the gmbus and gpio blocks are located
......
...@@ -129,7 +129,7 @@ static int i915_gem_framebuffer_info(struct seq_file *m, void *data) ...@@ -129,7 +129,7 @@ static int i915_gem_framebuffer_info(struct seq_file *m, void *data)
struct drm_framebuffer *drm_fb; struct drm_framebuffer *drm_fb;
#ifdef CONFIG_DRM_FBDEV_EMULATION #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) { if (fbdev_fb) {
seq_printf(m, "fbcon size: %d x %d, depth %d, %d bpp, modifier 0x%llx, refcount %d, obj ", seq_printf(m, "fbcon size: %d x %d, depth %d, %d bpp, modifier 0x%llx, refcount %d, obj ",
fbdev_fb->base.width, fbdev_fb->base.width,
......
...@@ -500,7 +500,7 @@ static void intel_fbdev_suspend_worker(struct work_struct *work) ...@@ -500,7 +500,7 @@ static void intel_fbdev_suspend_worker(struct work_struct *work)
{ {
intel_fbdev_set_suspend(&container_of(work, intel_fbdev_set_suspend(&container_of(work,
struct drm_i915_private, struct drm_i915_private,
fbdev_suspend_work)->drm, display.fbdev.suspend_work)->drm,
FBINFO_STATE_RUNNING, FBINFO_STATE_RUNNING,
true); true);
} }
...@@ -530,8 +530,8 @@ int intel_fbdev_init(struct drm_device *dev) ...@@ -530,8 +530,8 @@ int intel_fbdev_init(struct drm_device *dev)
return ret; return ret;
} }
dev_priv->fbdev = ifbdev; dev_priv->display.fbdev.fbdev = ifbdev;
INIT_WORK(&dev_priv->fbdev_suspend_work, intel_fbdev_suspend_worker); INIT_WORK(&dev_priv->display.fbdev.suspend_work, intel_fbdev_suspend_worker);
return 0; return 0;
} }
...@@ -548,7 +548,7 @@ static void intel_fbdev_initial_config(void *data, async_cookie_t cookie) ...@@ -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) 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) if (!ifbdev)
return; return;
...@@ -568,12 +568,12 @@ static void intel_fbdev_sync(struct intel_fbdev *ifbdev) ...@@ -568,12 +568,12 @@ static void intel_fbdev_sync(struct intel_fbdev *ifbdev)
void intel_fbdev_unregister(struct drm_i915_private *dev_priv) 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) if (!ifbdev)
return; return;
cancel_work_sync(&dev_priv->fbdev_suspend_work); cancel_work_sync(&dev_priv->display.fbdev.suspend_work);
if (!current_is_async()) if (!current_is_async())
intel_fbdev_sync(ifbdev); intel_fbdev_sync(ifbdev);
...@@ -582,7 +582,7 @@ void intel_fbdev_unregister(struct drm_i915_private *dev_priv) ...@@ -582,7 +582,7 @@ void intel_fbdev_unregister(struct drm_i915_private *dev_priv)
void intel_fbdev_fini(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) if (!ifbdev)
return; return;
...@@ -596,7 +596,7 @@ void intel_fbdev_fini(struct drm_i915_private *dev_priv) ...@@ -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) 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; bool send_hpd = false;
mutex_lock(&ifbdev->hpd_lock); mutex_lock(&ifbdev->hpd_lock);
...@@ -614,7 +614,7 @@ static void intel_fbdev_hpd_set_suspend(struct drm_i915_private *i915, int state ...@@ -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) void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous)
{ {
struct drm_i915_private *dev_priv = to_i915(dev); 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; struct fb_info *info;
if (!ifbdev || !ifbdev->vma) if (!ifbdev || !ifbdev->vma)
...@@ -631,7 +631,7 @@ void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous ...@@ -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! * ourselves, so only flush outstanding work upon suspend!
*/ */
if (state != FBINFO_STATE_RUNNING) if (state != FBINFO_STATE_RUNNING)
flush_work(&dev_priv->fbdev_suspend_work); flush_work(&dev_priv->display.fbdev.suspend_work);
console_lock(); console_lock();
} else { } else {
...@@ -645,7 +645,7 @@ void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous ...@@ -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 /* Don't block our own workqueue as this can
* be run in parallel with other i915.ko tasks. * 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; return;
} }
} }
...@@ -666,7 +666,7 @@ void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous ...@@ -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) 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; bool send_hpd;
if (!ifbdev) if (!ifbdev)
...@@ -685,7 +685,7 @@ void intel_fbdev_output_poll_changed(struct drm_device *dev) ...@@ -685,7 +685,7 @@ void intel_fbdev_output_poll_changed(struct drm_device *dev)
void intel_fbdev_restore_mode(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) if (!ifbdev)
return; return;
......
...@@ -83,7 +83,6 @@ struct intel_cdclk_vals; ...@@ -83,7 +83,6 @@ struct intel_cdclk_vals;
struct intel_connector; struct intel_connector;
struct intel_dp; struct intel_dp;
struct intel_encoder; struct intel_encoder;
struct intel_fbdev;
struct intel_limit; struct intel_limit;
struct intel_overlay; struct intel_overlay;
struct intel_overlay_error_state; struct intel_overlay_error_state;
...@@ -478,10 +477,6 @@ struct drm_i915_private { ...@@ -478,10 +477,6 @@ struct drm_i915_private {
struct i915_gpu_error gpu_error; 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 *broadcast_rgb_property;
struct drm_property *force_audio_property; struct drm_property *force_audio_property;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment