#include <linux/i2c.h>
#include <linux/slab.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_connector.h"
#include "intel_de.h"
#include "intel_display_driver.h"
#include "intel_display_types.h"
#include "intel_dvo.h"
#include "intel_dvo_dev.h"
#include "intel_dvo_regs.h"
#include "intel_gmbus.h"
#include "intel_panel.h"
#define INTEL_DVO_CHIP_NONE …
#define INTEL_DVO_CHIP_LVDS …
#define INTEL_DVO_CHIP_TMDS …
#define INTEL_DVO_CHIP_TVOUT …
#define INTEL_DVO_CHIP_LVDS_NO_FIXED …
#define SIL164_ADDR …
#define CH7xxx_ADDR …
#define TFP410_ADDR …
#define NS2501_ADDR …
static const struct intel_dvo_device intel_dvo_devices[] = …;
struct intel_dvo { … };
static struct intel_dvo *enc_to_dvo(struct intel_encoder *encoder)
{ … }
static struct intel_dvo *intel_attached_dvo(struct intel_connector *connector)
{ … }
static bool intel_dvo_connector_get_hw_state(struct intel_connector *connector)
{ … }
static bool intel_dvo_get_hw_state(struct intel_encoder *encoder,
enum pipe *pipe)
{ … }
static void intel_dvo_get_config(struct intel_encoder *encoder,
struct intel_crtc_state *pipe_config)
{ … }
static void intel_disable_dvo(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_enable_dvo(struct intel_atomic_state *state,
struct intel_encoder *encoder,
const struct intel_crtc_state *pipe_config,
const struct drm_connector_state *conn_state)
{ … }
static enum drm_mode_status
intel_dvo_mode_valid(struct drm_connector *_connector,
struct drm_display_mode *mode)
{ … }
static int intel_dvo_compute_config(struct intel_encoder *encoder,
struct intel_crtc_state *pipe_config,
struct drm_connector_state *conn_state)
{ … }
static void intel_dvo_pre_enable(struct intel_atomic_state *state,
struct intel_encoder *encoder,
const struct intel_crtc_state *pipe_config,
const struct drm_connector_state *conn_state)
{ … }
static enum drm_connector_status
intel_dvo_detect(struct drm_connector *_connector, bool force)
{ … }
static int intel_dvo_get_modes(struct drm_connector *_connector)
{ … }
static const struct drm_connector_funcs intel_dvo_connector_funcs = …;
static const struct drm_connector_helper_funcs intel_dvo_connector_helper_funcs = …;
static void intel_dvo_enc_destroy(struct drm_encoder *encoder)
{ … }
static const struct drm_encoder_funcs intel_dvo_enc_funcs = …;
static int intel_dvo_encoder_type(const struct intel_dvo_device *dvo)
{ … }
static int intel_dvo_connector_type(const struct intel_dvo_device *dvo)
{ … }
static bool intel_dvo_init_dev(struct drm_i915_private *dev_priv,
struct intel_dvo *intel_dvo,
const struct intel_dvo_device *dvo)
{ … }
static bool intel_dvo_probe(struct drm_i915_private *i915,
struct intel_dvo *intel_dvo)
{ … }
void intel_dvo_init(struct drm_i915_private *i915)
{ … }