#include "priv.h"
#include "chan.h"
#include "conn.h"
#include "dp.h"
#include "head.h"
#include "ior.h"
#include "outp.h"
#include <core/ramht.h>
#include <subdev/bios.h>
#include <subdev/bios/conn.h>
#include <subdev/gsp.h>
#include <subdev/mmu.h>
#include <subdev/vfn.h>
#include <nvhw/drf.h>
#include <nvrm/nvtypes.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/class/cl2080_notification.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073dfp.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073dp.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073specific.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073system.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080internal.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/nvos.h>
#include <nvrm/535.113.01/nvidia/generated/g_allclasses.h>
#include <nvrm/535.113.01/nvidia/generated/g_mem_desc_nvoc.h>
#include <nvrm/535.113.01/nvidia/inc/kernel/os/nv_memory_type.h>
#include <linux/acpi.h>
static u64
r535_chan_user(struct nvkm_disp_chan *chan, u64 *psize)
{ … }
static void
r535_chan_intr(struct nvkm_disp_chan *chan, bool en)
{ … }
static void
r535_chan_fini(struct nvkm_disp_chan *chan)
{ … }
static int
r535_chan_push(struct nvkm_disp_chan *chan)
{ … }
static int
r535_curs_init(struct nvkm_disp_chan *chan)
{ … }
static const struct nvkm_disp_chan_func
r535_curs_func = …;
static const struct nvkm_disp_chan_user
r535_curs = …;
static int
r535_dmac_bind(struct nvkm_disp_chan *chan, struct nvkm_object *object, u32 handle)
{ … }
static void
r535_dmac_fini(struct nvkm_disp_chan *chan)
{ … }
static int
r535_dmac_init(struct nvkm_disp_chan *chan)
{ … }
static int
r535_dmac_push(struct nvkm_disp_chan *chan, u64 memory)
{ … }
static const struct nvkm_disp_chan_func
r535_dmac_func = …;
static const struct nvkm_disp_chan_func
r535_wimm_func = …;
static const struct nvkm_disp_chan_user
r535_wimm = …;
static const struct nvkm_disp_chan_user
r535_wndw = …;
static void
r535_core_fini(struct nvkm_disp_chan *chan)
{ … }
static const struct nvkm_disp_chan_func
r535_core_func = …;
static const struct nvkm_disp_chan_user
r535_core = …;
static int
r535_sor_bl_set(struct nvkm_ior *sor, int lvl)
{ … }
static int
r535_sor_bl_get(struct nvkm_ior *sor)
{ … }
static const struct nvkm_ior_func_bl
r535_sor_bl = …;
static void
r535_sor_hda_eld(struct nvkm_ior *sor, int head, u8 *data, u8 size)
{ … }
static void
r535_sor_hda_hpd(struct nvkm_ior *sor, int head, bool present)
{ … }
static const struct nvkm_ior_func_hda
r535_sor_hda = …;
static void
r535_sor_dp_audio_mute(struct nvkm_ior *sor, bool mute)
{ … }
static void
r535_sor_dp_audio(struct nvkm_ior *sor, int head, bool enable)
{ … }
static void
r535_sor_dp_vcpi(struct nvkm_ior *sor, int head, u8 slot, u8 slot_nr, u16 pbn, u16 aligned_pbn)
{ … }
static int
r535_sor_dp_sst(struct nvkm_ior *sor, int head, bool ef,
u32 watermark, u32 hblanksym, u32 vblanksym)
{ … }
static const struct nvkm_ior_func_dp
r535_sor_dp = …;
static void
r535_sor_hdmi_scdc(struct nvkm_ior *sor, u32 khz, bool support, bool scrambling,
bool scrambling_low_rates)
{ … }
static void
r535_sor_hdmi_ctrl_audio_mute(struct nvkm_outp *outp, bool mute)
{ … }
static void
r535_sor_hdmi_ctrl_audio(struct nvkm_outp *outp, bool enable)
{ … }
static void
r535_sor_hdmi_audio(struct nvkm_ior *sor, int head, bool enable)
{ … }
static void
r535_sor_hdmi_ctrl(struct nvkm_ior *sor, int head, bool enable, u8 max_ac_packet, u8 rekey)
{ … }
static const struct nvkm_ior_func_hdmi
r535_sor_hdmi = …;
static const struct nvkm_ior_func
r535_sor = …;
static int
r535_sor_new(struct nvkm_disp *disp, int id)
{ … }
static int
r535_sor_cnt(struct nvkm_disp *disp, unsigned long *pmask)
{ … }
static void
r535_head_vblank_put(struct nvkm_head *head)
{ … }
static void
r535_head_vblank_get(struct nvkm_head *head)
{ … }
static void
r535_head_state(struct nvkm_head *head, struct nvkm_head_state *state)
{ … }
static const struct nvkm_head_func
r535_head = …;
static struct nvkm_conn *
r535_conn_new(struct nvkm_disp *disp, u32 id)
{ … }
static void
r535_outp_release(struct nvkm_outp *outp)
{ … }
static int
r535_outp_acquire(struct nvkm_outp *outp, bool hda)
{ … }
static int
r535_disp_head_displayid(struct nvkm_disp *disp, int head, u32 *displayid)
{ … }
static struct nvkm_ior *
r535_outp_inherit(struct nvkm_outp *outp)
{ … }
static int
r535_outp_dfp_get_info(struct nvkm_outp *outp)
{ … }
static int
r535_outp_detect(struct nvkm_outp *outp)
{ … }
static int
r535_dp_mst_id_put(struct nvkm_outp *outp, u32 id)
{ … }
static int
r535_dp_mst_id_get(struct nvkm_outp *outp, u32 *pid)
{ … }
static int
r535_dp_drive(struct nvkm_outp *outp, u8 lanes, u8 pe[4], u8 vs[4])
{ … }
static int
r535_dp_train_target(struct nvkm_outp *outp, u8 target, bool mst, u8 link_nr, u8 link_bw)
{ … }
static int
r535_dp_train(struct nvkm_outp *outp, bool retrain)
{ … }
static int
r535_dp_rates(struct nvkm_outp *outp)
{ … }
static int
r535_dp_aux_xfer(struct nvkm_outp *outp, u8 type, u32 addr, u8 *data, u8 *psize)
{ … }
static int
r535_dp_aux_pwr(struct nvkm_outp *outp, bool pu)
{ … }
static void
r535_dp_release(struct nvkm_outp *outp)
{ … }
static int
r535_dp_acquire(struct nvkm_outp *outp, bool hda)
{ … }
static const struct nvkm_outp_func
r535_dp = …;
static int
r535_tmds_edid_get(struct nvkm_outp *outp, u8 *data, u16 *psize)
{ … }
static const struct nvkm_outp_func
r535_tmds = …;
static int
r535_outp_new(struct nvkm_disp *disp, u32 id)
{ … }
static void
r535_disp_irq(struct nvkm_gsp_event *event, void *repv, u32 repc)
{ … }
static void
r535_disp_hpd(struct nvkm_gsp_event *event, void *repv, u32 repc)
{ … }
static const struct nvkm_event_func
r535_disp_event = …;
static void
r535_disp_intr_head_timing(struct nvkm_disp *disp, int head)
{ … }
static irqreturn_t
r535_disp_intr(struct nvkm_inth *inth)
{ … }
static void
r535_disp_fini(struct nvkm_disp *disp, bool suspend)
{ … }
static int
r535_disp_init(struct nvkm_disp *disp)
{ … }
static int
r535_disp_oneinit(struct nvkm_disp *disp)
{ … }
static void
r535_disp_dtor(struct nvkm_disp *disp)
{ … }
int
r535_disp_new(const struct nvkm_disp_func *hw, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, struct nvkm_disp **pdisp)
{ … }