#include <acpi/button.h>
#include <linux/acpi.h>
#include <linux/dmi.h>
#include <linux/i2c.h>
#include <linux/slab.h>
#include <linux/vga_switcheroo.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc.h>
#include <drm/drm_edid.h>
#include "i915_drv.h"
#include "i915_reg.h"
#include "intel_atomic.h"
#include "intel_backlight.h"
#include "intel_connector.h"
#include "intel_de.h"
#include "intel_display_types.h"
#include "intel_dpll.h"
#include "intel_fdi.h"
#include "intel_gmbus.h"
#include "intel_lvds.h"
#include "intel_lvds_regs.h"
#include "intel_panel.h"
#include "intel_pps_regs.h"
struct intel_lvds_pps { … };
struct intel_lvds_encoder { … };
static struct intel_lvds_encoder *to_lvds_encoder(struct intel_encoder *encoder)
{ … }
bool intel_lvds_port_enabled(struct drm_i915_private *i915,
i915_reg_t lvds_reg, enum pipe *pipe)
{ … }
static bool intel_lvds_get_hw_state(struct intel_encoder *encoder,
enum pipe *pipe)
{ … }
static void intel_lvds_get_config(struct intel_encoder *encoder,
struct intel_crtc_state *crtc_state)
{ … }
static void intel_lvds_pps_get_hw_state(struct drm_i915_private *dev_priv,
struct intel_lvds_pps *pps)
{ … }
static void intel_lvds_pps_init_hw(struct drm_i915_private *dev_priv,
struct intel_lvds_pps *pps)
{ … }
static void intel_pre_enable_lvds(struct intel_atomic_state *state,
struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state)
{ … }
static void intel_enable_lvds(struct intel_atomic_state *state,
struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state)
{ … }
static void intel_disable_lvds(struct intel_atomic_state *state,
struct intel_encoder *encoder,
const struct intel_crtc_state *old_crtc_state,
const struct drm_connector_state *old_conn_state)
{ … }
static void gmch_disable_lvds(struct intel_atomic_state *state,
struct intel_encoder *encoder,
const struct intel_crtc_state *old_crtc_state,
const struct drm_connector_state *old_conn_state)
{ … }
static void pch_disable_lvds(struct intel_atomic_state *state,
struct intel_encoder *encoder,
const struct intel_crtc_state *old_crtc_state,
const struct drm_connector_state *old_conn_state)
{ … }
static void pch_post_disable_lvds(struct intel_atomic_state *state,
struct intel_encoder *encoder,
const struct intel_crtc_state *old_crtc_state,
const struct drm_connector_state *old_conn_state)
{ … }
static void intel_lvds_shutdown(struct intel_encoder *encoder)
{ … }
static enum drm_mode_status
intel_lvds_mode_valid(struct drm_connector *_connector,
struct drm_display_mode *mode)
{ … }
static int intel_lvds_compute_config(struct intel_encoder *encoder,
struct intel_crtc_state *crtc_state,
struct drm_connector_state *conn_state)
{ … }
static int intel_lvds_get_modes(struct drm_connector *_connector)
{ … }
static const struct drm_connector_helper_funcs intel_lvds_connector_helper_funcs = …;
static const struct drm_connector_funcs intel_lvds_connector_funcs = …;
static const struct drm_encoder_funcs intel_lvds_enc_funcs = …;
static int intel_no_lvds_dmi_callback(const struct dmi_system_id *id)
{ … }
static const struct dmi_system_id intel_no_lvds[] = …;
static int intel_dual_link_lvds_callback(const struct dmi_system_id *id)
{ … }
static const struct dmi_system_id intel_dual_link_lvds[] = …;
struct intel_encoder *intel_get_lvds_encoder(struct drm_i915_private *i915)
{ … }
bool intel_is_dual_link_lvds(struct drm_i915_private *i915)
{ … }
static bool compute_is_dual_link_lvds(struct intel_lvds_encoder *lvds_encoder)
{ … }
static void intel_lvds_add_properties(struct drm_connector *connector)
{ … }
void intel_lvds_init(struct drm_i915_private *i915)
{ … }