diff options
author | Jani Nikula <jani.nikula@intel.com> | 2022-08-24 16:15:42 +0300 |
---|---|---|
committer | Jani Nikula <jani.nikula@intel.com> | 2022-08-29 13:20:27 +0300 |
commit | 5a4dd6f0e846541e57a58f97fce86da1f3ab3a88 (patch) | |
tree | 6d342958b0a5d20169d6f956d0cf80a9f59931a9 /drivers/gpu/drm/i915/display/intel_display_core.h | |
parent | a30a6fe9e56c401307d534b2c224002f9b2d33ff (diff) | |
download | linux-5a4dd6f0e846541e57a58f97fce86da1f3ab3a88.tar.gz linux-5a4dd6f0e846541e57a58f97fce86da1f3ab3a88.tar.bz2 linux-5a4dd6f0e846541e57a58f97fce86da1f3ab3a88.zip |
drm/i915: move hotplug to display.hotplug
Move display hotplug related members under drm_i915_private display
sub-struct.
Rename struct i915_hotplug to intel_hotplug while at it.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/c1c7562a31c115e9d6a131861e4ca9c97d4f7e09.1661346845.git.jani.nikula@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_display_core.h')
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_display_core.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h index 72133893dfb1..0dcf50f86b1d 100644 --- a/drivers/gpu/drm/i915/display/intel_display_core.h +++ b/drivers/gpu/drm/i915/display/intel_display_core.h @@ -102,6 +102,45 @@ struct intel_dpll { } ref_clks; }; +struct intel_hotplug { + struct delayed_work hotplug_work; + + const u32 *hpd, *pch_hpd; + + struct { + unsigned long last_jiffies; + int count; + enum { + HPD_ENABLED = 0, + HPD_DISABLED = 1, + HPD_MARK_DISABLED = 2 + } state; + } stats[HPD_NUM_PINS]; + u32 event_bits; + u32 retry_bits; + struct delayed_work reenable_work; + + u32 long_port_mask; + u32 short_port_mask; + struct work_struct dig_port_work; + + struct work_struct poll_init_work; + bool poll_enabled; + + unsigned int hpd_storm_threshold; + /* Whether or not to count short HPD IRQs in HPD storms */ + u8 hpd_short_storm_enabled; + + /* + * if we get a HPD irq from DP and a HPD irq from non-DP + * the non-DP HPD could block the workqueue on a mode config + * mutex getting, that userspace may have taken. However + * userspace is waiting on the DP workqueue to run which is + * blocked behind the non-DP one. + */ + struct workqueue_struct *dp_wq; +}; + struct intel_wm { /* * Raw watermark latency values: @@ -202,6 +241,7 @@ struct intel_display { struct intel_audio audio; struct intel_dmc dmc; struct intel_dpll dpll; + struct intel_hotplug hotplug; struct intel_wm wm; }; |