drm/i915: move and group fbdev under display.fbdev
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
This commit is contained in:
parent
36d225f365
commit
b3d81dafdc
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user