linux/drivers/gpu/drm/nouveau/nouveau_connector.c

/*
 * Copyright (C) 2008 Maarten Maathuis.
 * All Rights Reserved.
 *
 * 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 COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS 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 <acpi/button.h>

#include <linux/pm_runtime.h>
#include <linux/vga_switcheroo.h>

#include <drm/drm_atomic_helper.h>
#include <drm/drm_edid.h>
#include <drm/drm_crtc_helper.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_atomic.h>

#include "nouveau_reg.h"
#include "nouveau_drv.h"
#include "dispnv04/hw.h"
#include "dispnv50/disp.h"
#include "nouveau_acpi.h"

#include "nouveau_display.h"
#include "nouveau_connector.h"
#include "nouveau_encoder.h"
#include "nouveau_crtc.h"

#include <nvif/class.h>
#include <nvif/if0011.h>

struct drm_display_mode *
nouveau_conn_native_mode(struct drm_connector *connector)
{}

int
nouveau_conn_atomic_get_property(struct drm_connector *connector,
				 const struct drm_connector_state *state,
				 struct drm_property *property, u64 *val)
{}

int
nouveau_conn_atomic_set_property(struct drm_connector *connector,
				 struct drm_connector_state *state,
				 struct drm_property *property, u64 val)
{}

void
nouveau_conn_atomic_destroy_state(struct drm_connector *connector,
				  struct drm_connector_state *state)
{}

struct drm_connector_state *
nouveau_conn_atomic_duplicate_state(struct drm_connector *connector)
{}

void
nouveau_conn_reset(struct drm_connector *connector)
{}

void
nouveau_conn_attach_properties(struct drm_connector *connector)
{}

MODULE_PARM_DESC();
int nouveau_tv_disable =;
module_param_named(tv_disable, nouveau_tv_disable, int, 0400);

MODULE_PARM_DESC();
int nouveau_ignorelid =;
module_param_named(ignorelid, nouveau_ignorelid, int, 0400);

MODULE_PARM_DESC();
int nouveau_duallink =;
module_param_named(duallink, nouveau_duallink, int, 0400);

MODULE_PARM_DESC();
int nouveau_hdmimhz =;
module_param_named(hdmimhz, nouveau_hdmimhz, int, 0400);

struct nouveau_encoder *
find_encoder(struct drm_connector *connector, int type)
{}

static void
nouveau_connector_destroy(struct drm_connector *connector)
{}

static struct nouveau_encoder *
nouveau_connector_ddc_detect(struct drm_connector *connector)
{}

static struct nouveau_encoder *
nouveau_connector_of_detect(struct drm_connector *connector)
{}

static void
nouveau_connector_set_encoder(struct drm_connector *connector,
			      struct nouveau_encoder *nv_encoder)
{}

static void
nouveau_connector_set_edid(struct nouveau_connector *nv_connector,
			   struct edid *edid)
{}

static enum drm_connector_status
nouveau_connector_detect(struct drm_connector *connector, bool force)
{}

static enum drm_connector_status
nouveau_connector_detect_lvds(struct drm_connector *connector, bool force)
{}

static void
nouveau_connector_force(struct drm_connector *connector)
{}

static int
nouveau_connector_set_property(struct drm_connector *connector,
			       struct drm_property *property, uint64_t value)
{}

struct moderec {};

static struct moderec scaler_modes[] =;

static int
nouveau_connector_scaler_modes_add(struct drm_connector *connector)
{}

static void
nouveau_connector_detect_depth(struct drm_connector *connector)
{}

static int
nouveau_connector_late_register(struct drm_connector *connector)
{}

static void
nouveau_connector_early_unregister(struct drm_connector *connector)
{}

static int
nouveau_connector_get_modes(struct drm_connector *connector)
{}

static unsigned
get_tmds_link_bandwidth(struct drm_connector *connector)
{}

static enum drm_mode_status
nouveau_connector_mode_valid(struct drm_connector *connector,
			     struct drm_display_mode *mode)
{}

static struct drm_encoder *
nouveau_connector_best_encoder(struct drm_connector *connector)
{}

static int
nouveau_connector_atomic_check(struct drm_connector *connector, struct drm_atomic_state *state)
{}

static const struct drm_connector_helper_funcs
nouveau_connector_helper_funcs =;

static const struct drm_connector_funcs
nouveau_connector_funcs =;

static const struct drm_connector_funcs
nouveau_connector_funcs_lvds =;

void
nouveau_connector_hpd(struct nouveau_connector *nv_connector, u64 bits)
{}

static int
nouveau_connector_irq(struct nvif_event *event, void *repv, u32 repc)
{}

static int
nouveau_connector_hotplug(struct nvif_event *event, void *repv, u32 repc)
{}

static ssize_t
nouveau_connector_aux_xfer(struct drm_dp_aux *obj, struct drm_dp_aux_msg *msg)
{}

static int
drm_conntype_from_dcb(enum dcb_connector_type dcb)
{}

struct drm_connector *
nouveau_connector_create(struct drm_device *dev, int index)
{}