linux/drivers/gpu/drm/i915/display/intel_lspcon.c

/*
 * Copyright © 2016 Intel Corporation
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the next
 * paragraph) shall be included in all copies or substantial portions of the
 * Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 *
 *
 */

#include <drm/display/drm_dp_dual_mode_helper.h>
#include <drm/display/drm_hdmi_helper.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_edid.h>

#include "i915_reg.h"
#include "intel_de.h"
#include "intel_display_types.h"
#include "intel_dp.h"
#include "intel_lspcon.h"
#include "intel_hdmi.h"

/* LSPCON OUI Vendor ID(signatures) */
#define LSPCON_VENDOR_PARADE_OUI
#define LSPCON_VENDOR_MCA_OUI

#define DPCD_MCA_LSPCON_HDR_STATUS
#define DPCD_PARADE_LSPCON_HDR_STATUS

/* AUX addresses to write MCA AVI IF */
#define LSPCON_MCA_AVI_IF_WRITE_OFFSET
#define LSPCON_MCA_AVI_IF_CTRL
#define LSPCON_MCA_AVI_IF_KICKOFF
#define LSPCON_MCA_AVI_IF_HANDLED

/* AUX addresses to write Parade AVI IF */
#define LSPCON_PARADE_AVI_IF_WRITE_OFFSET
#define LSPCON_PARADE_AVI_IF_CTRL
#define LSPCON_PARADE_AVI_IF_KICKOFF
#define LSPCON_PARADE_AVI_IF_DATA_SIZE

static struct intel_dp *lspcon_to_intel_dp(struct intel_lspcon *lspcon)
{}

static const char *lspcon_mode_name(enum drm_lspcon_mode mode)
{}

static bool lspcon_detect_vendor(struct intel_lspcon *lspcon)
{}

static u32 get_hdr_status_reg(struct intel_lspcon *lspcon)
{}

void lspcon_detect_hdr_capability(struct intel_lspcon *lspcon)
{}

static enum drm_lspcon_mode lspcon_get_current_mode(struct intel_lspcon *lspcon)
{}

static int lspcon_get_mode_settle_timeout(struct intel_lspcon *lspcon)
{}

static enum drm_lspcon_mode lspcon_wait_mode(struct intel_lspcon *lspcon,
					     enum drm_lspcon_mode mode)
{}

static int lspcon_change_mode(struct intel_lspcon *lspcon,
			      enum drm_lspcon_mode mode)
{}

static bool lspcon_wake_native_aux_ch(struct intel_lspcon *lspcon)
{}

static bool lspcon_probe(struct intel_lspcon *lspcon)
{}

static void lspcon_resume_in_pcon_wa(struct intel_lspcon *lspcon)
{}

static bool lspcon_parade_fw_ready(struct drm_dp_aux *aux)
{}

static bool _lspcon_parade_write_infoframe_blocks(struct drm_dp_aux *aux,
						  u8 *avi_buf)
{}

static bool _lspcon_write_avi_infoframe_parade(struct drm_dp_aux *aux,
					       const u8 *frame,
					       ssize_t len)
{}

static bool _lspcon_write_avi_infoframe_mca(struct drm_dp_aux *aux,
					    const u8 *buffer, ssize_t len)
{}

void lspcon_write_infoframe(struct intel_encoder *encoder,
			    const struct intel_crtc_state *crtc_state,
			    unsigned int type,
			    const void *frame, ssize_t len)
{}

void lspcon_read_infoframe(struct intel_encoder *encoder,
			   const struct intel_crtc_state *crtc_state,
			   unsigned int type,
			   void *frame, ssize_t len)
{}

void lspcon_set_infoframes(struct intel_encoder *encoder,
			   bool enable,
			   const struct intel_crtc_state *crtc_state,
			   const struct drm_connector_state *conn_state)
{}

static bool _lspcon_read_avi_infoframe_enabled_mca(struct drm_dp_aux *aux)
{}

static bool _lspcon_read_avi_infoframe_enabled_parade(struct drm_dp_aux *aux)
{}

u32 lspcon_infoframes_enabled(struct intel_encoder *encoder,
			      const struct intel_crtc_state *pipe_config)
{}

void lspcon_wait_pcon_mode(struct intel_lspcon *lspcon)
{}

bool lspcon_init(struct intel_digital_port *dig_port)
{}

u32 intel_lspcon_infoframes_enabled(struct intel_encoder *encoder,
				    const struct intel_crtc_state *pipe_config)
{}

void lspcon_resume(struct intel_digital_port *dig_port)
{}