#include <linux/backlight.h>
#include <linux/dmi.h>
#include <linux/pci.h>
#include <drm/drm_crtc_helper.h>
#include <drm/drm_edid.h>
#include <drm/drm_file.h>
#include <drm/drm_modeset_helper_vtables.h>
#include <drm/radeon_drm.h>
#include <acpi/video.h>
#include "atom.h"
#include "radeon_atombios.h"
#include "radeon.h"
#include "radeon_asic.h"
#include "radeon_audio.h"
extern int atom_debug;
static u8
radeon_atom_get_backlight_level_from_reg(struct radeon_device *rdev)
{ … }
static void
radeon_atom_set_backlight_level_to_reg(struct radeon_device *rdev,
u8 backlight_level)
{ … }
u8
atombios_get_backlight_level(struct radeon_encoder *radeon_encoder)
{ … }
void
atombios_set_backlight_level(struct radeon_encoder *radeon_encoder, u8 level)
{ … }
static u8 radeon_atom_bl_level(struct backlight_device *bd)
{ … }
static int radeon_atom_backlight_update_status(struct backlight_device *bd)
{ … }
static int radeon_atom_backlight_get_brightness(struct backlight_device *bd)
{ … }
static const struct backlight_ops radeon_atom_backlight_ops = …;
void radeon_atom_backlight_init(struct radeon_encoder *radeon_encoder,
struct drm_connector *drm_connector)
{ … }
static void radeon_atom_backlight_exit(struct radeon_encoder *radeon_encoder)
{ … }
static bool radeon_atom_mode_fixup(struct drm_encoder *encoder,
const struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode)
{ … }
static void
atombios_dac_setup(struct drm_encoder *encoder, int action)
{ … }
static void
atombios_tv_setup(struct drm_encoder *encoder, int action)
{ … }
static u8 radeon_atom_get_bpc(struct drm_encoder *encoder)
{ … }
dvo_encoder_control;
void
atombios_dvo_setup(struct drm_encoder *encoder, int action)
{ … }
lvds_encoder_control;
void
atombios_digital_setup(struct drm_encoder *encoder, int action)
{ … }
int
atombios_get_encoder_mode(struct drm_encoder *encoder)
{ … }
dig_encoder_control;
void
atombios_dig_encoder_setup2(struct drm_encoder *encoder, int action, int panel_mode, int enc_override)
{ … }
void
atombios_dig_encoder_setup(struct drm_encoder *encoder, int action, int panel_mode)
{ … }
dig_transmitter_control;
void
atombios_dig_transmitter_setup2(struct drm_encoder *encoder, int action, uint8_t lane_num, uint8_t lane_set, int fe)
{ … }
void
atombios_dig_transmitter_setup(struct drm_encoder *encoder, int action, uint8_t lane_num, uint8_t lane_set)
{ … }
bool
atombios_set_edp_panel_power(struct drm_connector *connector, int action)
{ … }
external_encoder_control;
static void
atombios_external_encoder_setup(struct drm_encoder *encoder,
struct drm_encoder *ext_encoder,
int action)
{ … }
static void
atombios_yuv_setup(struct drm_encoder *encoder, bool enable)
{ … }
static void
radeon_atom_encoder_dpms_avivo(struct drm_encoder *encoder, int mode)
{ … }
static void
radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
{ … }
static void
radeon_atom_encoder_dpms(struct drm_encoder *encoder, int mode)
{ … }
crtc_source_param;
static void
atombios_set_encoder_crtc_source(struct drm_encoder *encoder)
{ … }
static void
atombios_apply_encoder_quirks(struct drm_encoder *encoder,
struct drm_display_mode *mode)
{ … }
void radeon_atom_release_dig_encoder(struct radeon_device *rdev, int enc_idx)
{ … }
int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
{ … }
void
radeon_atom_encoder_init(struct radeon_device *rdev)
{ … }
static void
radeon_atom_encoder_mode_set(struct drm_encoder *encoder,
struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode)
{ … }
static bool
atombios_dac_load_detect(struct drm_encoder *encoder, struct drm_connector *connector)
{ … }
static enum drm_connector_status
radeon_atom_dac_detect(struct drm_encoder *encoder, struct drm_connector *connector)
{ … }
static enum drm_connector_status
radeon_atom_dig_detect(struct drm_encoder *encoder, struct drm_connector *connector)
{ … }
void
radeon_atom_ext_encoder_setup_ddc(struct drm_encoder *encoder)
{ … }
static void radeon_atom_encoder_prepare(struct drm_encoder *encoder)
{ … }
static void radeon_atom_encoder_commit(struct drm_encoder *encoder)
{ … }
static void radeon_atom_encoder_disable(struct drm_encoder *encoder)
{ … }
static void radeon_atom_ext_prepare(struct drm_encoder *encoder)
{ … }
static void radeon_atom_ext_commit(struct drm_encoder *encoder)
{ … }
static void
radeon_atom_ext_mode_set(struct drm_encoder *encoder,
struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode)
{ … }
static void radeon_atom_ext_disable(struct drm_encoder *encoder)
{ … }
static void
radeon_atom_ext_dpms(struct drm_encoder *encoder, int mode)
{ … }
static const struct drm_encoder_helper_funcs radeon_atom_ext_helper_funcs = …;
static const struct drm_encoder_helper_funcs radeon_atom_dig_helper_funcs = …;
static const struct drm_encoder_helper_funcs radeon_atom_dac_helper_funcs = …;
void radeon_enc_destroy(struct drm_encoder *encoder)
{ … }
static const struct drm_encoder_funcs radeon_atom_enc_funcs = …;
static struct radeon_encoder_atom_dac *
radeon_atombios_set_dac_info(struct radeon_encoder *radeon_encoder)
{ … }
static struct radeon_encoder_atom_dig *
radeon_atombios_set_dig_info(struct radeon_encoder *radeon_encoder)
{ … }
void
radeon_add_atom_encoder(struct drm_device *dev,
uint32_t encoder_enum,
uint32_t supported_device,
u16 caps)
{ … }