#include <linux/export.h>
#include <linux/pci.h>
#include <drm/drm_edid.h>
#include <drm/amdgpu_drm.h>
#include "amdgpu.h"
#include "amdgpu_i2c.h"
#include "amdgpu_atombios.h"
#include "atom.h"
#include "atombios_dp.h"
#include "atombios_i2c.h"
static int amdgpu_i2c_pre_xfer(struct i2c_adapter *i2c_adap)
{ … }
static void amdgpu_i2c_post_xfer(struct i2c_adapter *i2c_adap)
{ … }
static int amdgpu_i2c_get_clock(void *i2c_priv)
{ … }
static int amdgpu_i2c_get_data(void *i2c_priv)
{ … }
static void amdgpu_i2c_set_clock(void *i2c_priv, int clock)
{ … }
static void amdgpu_i2c_set_data(void *i2c_priv, int data)
{ … }
static const struct i2c_algorithm amdgpu_atombios_i2c_algo = …;
struct amdgpu_i2c_chan *amdgpu_i2c_create(struct drm_device *dev,
const struct amdgpu_i2c_bus_rec *rec,
const char *name)
{ … }
void amdgpu_i2c_destroy(struct amdgpu_i2c_chan *i2c)
{ … }
void amdgpu_i2c_init(struct amdgpu_device *adev)
{ … }
void amdgpu_i2c_fini(struct amdgpu_device *adev)
{ … }
void amdgpu_i2c_add(struct amdgpu_device *adev,
const struct amdgpu_i2c_bus_rec *rec,
const char *name)
{ … }
struct amdgpu_i2c_chan *
amdgpu_i2c_lookup(struct amdgpu_device *adev,
const struct amdgpu_i2c_bus_rec *i2c_bus)
{ … }
static int amdgpu_i2c_get_byte(struct amdgpu_i2c_chan *i2c_bus,
u8 slave_addr,
u8 addr,
u8 *val)
{ … }
static int amdgpu_i2c_put_byte(struct amdgpu_i2c_chan *i2c_bus,
u8 slave_addr,
u8 addr,
u8 val)
{ … }
void
amdgpu_i2c_router_select_ddc_port(const struct amdgpu_connector *amdgpu_connector)
{ … }
void
amdgpu_i2c_router_select_cd_port(const struct amdgpu_connector *amdgpu_connector)
{ … }