#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)
{ … }