mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-07 19:14:21 +08:00
drm/i915/pps: abstract panel power sequencer from intel_dp.c
In a long overdue refactoring, split out all panel sequencer code from intel_dp.c to new intel_pps.[ch]. The first part is mostly just code movement as-is, without cleanups or functional changes. We need to add a vlv_get_dpll() helper to get at the vlv/chv dpll from pps code. v2: Rebase. Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/14cc59d5734432ad976cd49ff8efce8fa413e5b2.1610127741.git.jani.nikula@intel.com
This commit is contained in:
parent
7853b43739
commit
abad6805ee
@ -248,6 +248,7 @@ i915-y += \
|
||||
display/intel_lspcon.o \
|
||||
display/intel_lvds.o \
|
||||
display/intel_panel.o \
|
||||
display/intel_pps.o \
|
||||
display/intel_sdvo.o \
|
||||
display/intel_tv.o \
|
||||
display/intel_vdsc.o \
|
||||
|
@ -46,6 +46,7 @@
|
||||
#include "intel_hotplug.h"
|
||||
#include "intel_lspcon.h"
|
||||
#include "intel_panel.h"
|
||||
#include "intel_pps.h"
|
||||
#include "intel_psr.h"
|
||||
#include "intel_sprite.h"
|
||||
#include "intel_tc.h"
|
||||
|
@ -4,7 +4,6 @@
|
||||
*/
|
||||
|
||||
#include "display/intel_crt.h"
|
||||
#include "display/intel_dp.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_irq.h"
|
||||
@ -16,6 +15,7 @@
|
||||
#include "intel_dpio_phy.h"
|
||||
#include "intel_hotplug.h"
|
||||
#include "intel_pm.h"
|
||||
#include "intel_pps.h"
|
||||
#include "intel_sideband.h"
|
||||
#include "intel_tc.h"
|
||||
#include "intel_vga.h"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -70,15 +70,11 @@ enum irqreturn intel_dp_hpd_pulse(struct intel_digital_port *dig_port,
|
||||
void intel_edp_backlight_on(const struct intel_crtc_state *crtc_state,
|
||||
const struct drm_connector_state *conn_state);
|
||||
void intel_edp_backlight_off(const struct drm_connector_state *conn_state);
|
||||
void intel_edp_panel_vdd_on(struct intel_dp *intel_dp);
|
||||
void intel_edp_panel_on(struct intel_dp *intel_dp);
|
||||
void intel_edp_panel_off(struct intel_dp *intel_dp);
|
||||
void intel_dp_mst_suspend(struct drm_i915_private *dev_priv);
|
||||
void intel_dp_mst_resume(struct drm_i915_private *dev_priv);
|
||||
int intel_dp_max_link_rate(struct intel_dp *intel_dp);
|
||||
int intel_dp_max_lane_count(struct intel_dp *intel_dp);
|
||||
int intel_dp_rate_select(struct intel_dp *intel_dp, int rate);
|
||||
void intel_power_sequencer_reset(struct drm_i915_private *dev_priv);
|
||||
u32 intel_dp_pack_aux(const u8 *src, int src_bytes);
|
||||
|
||||
void intel_edp_drrs_enable(struct intel_dp *intel_dp,
|
||||
@ -141,6 +137,7 @@ bool intel_dp_initial_fastset_check(struct intel_encoder *encoder,
|
||||
struct intel_crtc_state *crtc_state);
|
||||
void intel_dp_sync_state(struct intel_encoder *encoder,
|
||||
const struct intel_crtc_state *crtc_state);
|
||||
const struct dpll *vlv_get_dpll(struct drm_i915_private *i915);
|
||||
|
||||
void intel_dp_check_frl_training(struct intel_dp *intel_dp);
|
||||
void intel_dp_pcon_dsc_configure(struct intel_dp *intel_dp,
|
||||
|
1334
drivers/gpu/drm/i915/display/intel_pps.c
Normal file
1334
drivers/gpu/drm/i915/display/intel_pps.c
Normal file
File diff suppressed because it is too large
Load Diff
53
drivers/gpu/drm/i915/display/intel_pps.h
Normal file
53
drivers/gpu/drm/i915/display/intel_pps.h
Normal file
@ -0,0 +1,53 @@
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/*
|
||||
* Copyright © 2020 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef __INTEL_PPS_H__
|
||||
#define __INTEL_PPS_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "intel_wakeref.h"
|
||||
|
||||
struct drm_i915_private;
|
||||
struct intel_connector;
|
||||
struct intel_crtc_state;
|
||||
struct intel_dp;
|
||||
struct intel_encoder;
|
||||
|
||||
intel_wakeref_t pps_lock(struct intel_dp *intel_dp);
|
||||
intel_wakeref_t pps_unlock(struct intel_dp *intel_dp, intel_wakeref_t wakeref);
|
||||
|
||||
#define with_pps_lock(dp, wf) \
|
||||
for ((wf) = pps_lock(dp); (wf); (wf) = pps_unlock((dp), (wf)))
|
||||
|
||||
void intel_dp_check_edp(struct intel_dp *intel_dp);
|
||||
void _intel_edp_backlight_on(struct intel_dp *intel_dp);
|
||||
void _intel_edp_backlight_off(struct intel_dp *intel_dp);
|
||||
void intel_edp_backlight_power(struct intel_connector *connector, bool enable);
|
||||
|
||||
bool edp_panel_vdd_on(struct intel_dp *intel_dp);
|
||||
void edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync);
|
||||
void edp_panel_vdd_off_sync(struct intel_dp *intel_dp);
|
||||
void edp_panel_on(struct intel_dp *intel_dp);
|
||||
void edp_panel_off(struct intel_dp *intel_dp);
|
||||
void edp_panel_vdd_work(struct work_struct *__work);
|
||||
|
||||
void intel_edp_panel_vdd_on(struct intel_dp *intel_dp);
|
||||
void intel_edp_panel_on(struct intel_dp *intel_dp);
|
||||
void intel_edp_panel_off(struct intel_dp *intel_dp);
|
||||
bool intel_edp_have_power(struct intel_dp *intel_dp);
|
||||
|
||||
void intel_edp_panel_vdd_sanitize(struct intel_dp *intel_dp);
|
||||
|
||||
void wait_panel_power_cycle(struct intel_dp *intel_dp);
|
||||
|
||||
void intel_dp_pps_init(struct intel_dp *intel_dp);
|
||||
void intel_power_sequencer_reset(struct drm_i915_private *i915);
|
||||
void intel_dp_init_panel_power_timestamps(struct intel_dp *intel_dp);
|
||||
|
||||
void vlv_init_panel_power_sequencer(struct intel_encoder *encoder,
|
||||
const struct intel_crtc_state *crtc_state);
|
||||
|
||||
#endif /* __INTEL_PPS_H__ */
|
Loading…
Reference in New Issue
Block a user