mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-01 23:46:45 +00:00

drm/i915 feature pull for v6.15: Features and functionality: - Enable DP 128b/132b SST DSC (Jani, Imre) - Allow DSB to perform commits when VRR is enabled (Ville) - Compute HDMI PLLs for SNPS/C10 PHYs for rates not in fixed tables (Ankit) - Allow DSB usage when PSR is enabled on LNL+ (Jouni) - Enable Panel Replay mode change without full modeset (Jouni) - Enable async flips with compressed buffers on ICL+ (Ville) - Support luminance based brightness control via DPCD for eDP (Suraj) - Enable VRR enable/disable without full modeset (Mitul, Ankit) - Add debugfs facility for force testing HDCP 1.4 (Suraj) - Add scaler tracepoints, improve plane tracepoints (Ville) - Improve DMC wakelock debugging facilities (Gustavo) - Allow GuC SLPC default strategies on MTL+ for performance (Rodrigo) - Provide more information on display faults (Ville) Refactoring and cleanups: - Continue conversions to struct intel_display (Ville, Jani, Suraj, Imre) - Joiner and Y plane reorganization (Ville) - Move HDCP debugfs to intel_hdcp.c (Jani) - Clean up and unify LSPCON interfaces (Jani) - Move code out of intel_display.c to reduce its size (Ville) - Clean up and simplify DDI port enabling/disabling (Imre) - Make LPT LP a dedicated PCH type, refactor (Jani) - Simplify DSC range BPG offset calculation (Ankit) - Scaler cleanups (Ville) - Remove unused code from GVT (David Alan Gilbert) - Improve plane debugging (Ville) - DSB and VRR refactoring (Ville) Fixes: - Check if vblank is sufficient for DSC prefill and scaler (Mitul) - Fix Mesa clear color alignment regression (Ville) - Add missing TC DP PHY lane stagger delay (Imre) - Fix DSB + VRR usage for PTL+ (Ville) - Improve robustness of display VT-d workarounds (Ville) - Fix platforms for dbuf tracker state service programming (Ravi) - Fix DMC wakelock support conditions (Gustavo) - Amend DMC wakelock register ranges (Gustavo) - Disable the Common Primary Timing Generator (CMTG) (Gustavo) - Enable C20 PHY SSC (Suraj) - Add workaround for DKL PHY DP mode write (Nemesa) - Fix build warnings on clamp() usage (Guenter Roeck, Ankit) - Fix error handling while adding a connector (Imre) - Avoid full modeset at probe on vblank delay mismatches (Ville) - Fix encoder HDMI check for HDCP line rekeying (Suraj) - Fix HDCP repeater authentication during topology change (Suraj) - Handle display PHY power state reset for power savings (Mika) - Fix typos all over the place (Nitin) - Update HDMI TMDS C20 parameters for various platforms (Dnyaneshwar) - Guarantee a minimum hblank time for 128b/132b and 8b/10b MST (Arun, Imre) - Do not hardcode LSPCON settle timeout (Giedrius Statkevičius) Xe driver changes: - Re-use display vmas when possible (Maarten) - Remove double pageflip (Maarten) - Enable DP tunneling (Imre) - Separate i915 and xe tracepoints (Ville) DRM core changes: - Increase DPCD eDP display control CAP size to 5 bytes (Suraj) - Add DPCD eDP version 1.5 definition (Suraj) - Add timeout parameter to drm_lspcon_set_mode() (Giedrius Statkevičius) Merges: - Backmerge drm-next (Jani) Signed-off-by: Dave Airlie <airlied@redhat.com> From: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/87h64j7b7n.fsf@intel.com
117 lines
3.7 KiB
C
117 lines
3.7 KiB
C
/*
|
|
* Copyright © 2006 Eric Anholt
|
|
*
|
|
* Permission to use, copy, modify, distribute, and sell this software and its
|
|
* documentation for any purpose is hereby granted without fee, provided that
|
|
* the above copyright notice appear in all copies and that both that copyright
|
|
* notice and this permission notice appear in supporting documentation, and
|
|
* that the name of the copyright holders not be used in advertising or
|
|
* publicity pertaining to distribution of the software without specific,
|
|
* written prior permission. The copyright holders make no representations
|
|
* about the suitability of this software for any purpose. It is provided "as
|
|
* is" without express or implied warranty.
|
|
*
|
|
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
|
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
|
* OF THIS SOFTWARE.
|
|
*/
|
|
|
|
#ifndef __INTEL_DVO_DEV_H__
|
|
#define __INTEL_DVO_DEV_H__
|
|
|
|
#include "i915_reg_defs.h"
|
|
|
|
#include "intel_display_limits.h"
|
|
|
|
enum drm_connector_status;
|
|
struct drm_display_mode;
|
|
struct i2c_adapter;
|
|
|
|
struct intel_dvo_device {
|
|
const char *name;
|
|
int type;
|
|
/* DVOA/B/C */
|
|
enum port port;
|
|
/* GPIO register used for i2c bus to control this device */
|
|
u32 gpio;
|
|
int target_addr;
|
|
|
|
const struct intel_dvo_dev_ops *dev_ops;
|
|
void *dev_priv;
|
|
struct i2c_adapter *i2c_bus;
|
|
};
|
|
|
|
struct intel_dvo_dev_ops {
|
|
/*
|
|
* Initialize the device at startup time.
|
|
* Returns NULL if the device does not exist.
|
|
*/
|
|
bool (*init)(struct intel_dvo_device *dvo,
|
|
struct i2c_adapter *i2cbus);
|
|
|
|
/*
|
|
* Turn on/off output.
|
|
*
|
|
* Because none of our dvo drivers support an intermediate power levels,
|
|
* we don't expose this in the interface.
|
|
*/
|
|
void (*dpms)(struct intel_dvo_device *dvo, bool enable);
|
|
|
|
/*
|
|
* Callback for testing a video mode for a given output.
|
|
*
|
|
* This function should only check for cases where a mode can't
|
|
* be supported on the output specifically, and not represent
|
|
* generic CRTC limitations.
|
|
*
|
|
* \return MODE_OK if the mode is valid, or another MODE_* otherwise.
|
|
*/
|
|
enum drm_mode_status (*mode_valid)(struct intel_dvo_device *dvo,
|
|
const struct drm_display_mode *mode);
|
|
|
|
/*
|
|
* Callback for setting up a video mode after fixups have been made.
|
|
*
|
|
* This is only called while the output is disabled. The dpms callback
|
|
* must be all that's necessary for the output, to turn the output on
|
|
* after this function is called.
|
|
*/
|
|
void (*mode_set)(struct intel_dvo_device *dvo,
|
|
const struct drm_display_mode *mode,
|
|
const struct drm_display_mode *adjusted_mode);
|
|
|
|
/*
|
|
* Probe for a connected output, and return detect_status.
|
|
*/
|
|
enum drm_connector_status (*detect)(struct intel_dvo_device *dvo);
|
|
|
|
/*
|
|
* Probe the current hw status, returning true if the connected output
|
|
* is active.
|
|
*/
|
|
bool (*get_hw_state)(struct intel_dvo_device *dev);
|
|
|
|
/**
|
|
* Clean up driver-specific bits of the output
|
|
*/
|
|
void (*destroy) (struct intel_dvo_device *dvo);
|
|
|
|
/**
|
|
* Debugging hook to dump device registers to log file
|
|
*/
|
|
void (*dump_regs)(struct intel_dvo_device *dvo);
|
|
};
|
|
|
|
extern const struct intel_dvo_dev_ops sil164_ops;
|
|
extern const struct intel_dvo_dev_ops ch7xxx_ops;
|
|
extern const struct intel_dvo_dev_ops ivch_ops;
|
|
extern const struct intel_dvo_dev_ops tfp410_ops;
|
|
extern const struct intel_dvo_dev_ops ch7017_ops;
|
|
extern const struct intel_dvo_dev_ops ns2501_ops;
|
|
|
|
#endif /* __INTEL_DVO_DEV_H__ */
|