#include <linux/module.h>
#include <drm/drm_drv.h>
#include <drm/drm_encoder_slave.h>
#include <drm/drm_print.h>
#include <drm/drm_probe_helper.h>
#include <drm/i2c/sil164.h>
struct sil164_priv { … };
#define to_sil164_priv(x) …
#define sil164_dbg(client, format, ...) …
#define sil164_info(client, format, ...) …
#define sil164_err(client, format, ...) …
#define SIL164_I2C_ADDR_MASTER …
#define SIL164_I2C_ADDR_SLAVE …
#define SIL164_VENDOR_LO …
#define SIL164_VENDOR_HI …
#define SIL164_DEVICE_LO …
#define SIL164_DEVICE_HI …
#define SIL164_REVISION …
#define SIL164_FREQ_MIN …
#define SIL164_FREQ_MAX …
#define SIL164_CONTROL0 …
#define SIL164_CONTROL0_POWER_ON …
#define SIL164_CONTROL0_EDGE_RISING …
#define SIL164_CONTROL0_INPUT_24BIT …
#define SIL164_CONTROL0_DUAL_EDGE …
#define SIL164_CONTROL0_HSYNC_ON …
#define SIL164_CONTROL0_VSYNC_ON …
#define SIL164_DETECT …
#define SIL164_DETECT_INTR_STAT …
#define SIL164_DETECT_HOTPLUG_STAT …
#define SIL164_DETECT_RECEIVER_STAT …
#define SIL164_DETECT_INTR_MODE_RECEIVER …
#define SIL164_DETECT_INTR_MODE_HOTPLUG …
#define SIL164_DETECT_OUT_MODE_HIGH …
#define SIL164_DETECT_OUT_MODE_INTR …
#define SIL164_DETECT_OUT_MODE_RECEIVER …
#define SIL164_DETECT_OUT_MODE_HOTPLUG …
#define SIL164_DETECT_VSWING_STAT …
#define SIL164_CONTROL1 …
#define SIL164_CONTROL1_DESKEW_ENABLE …
#define SIL164_CONTROL1_DESKEW_INCR_SHIFT …
#define SIL164_GPIO …
#define SIL164_CONTROL2 …
#define SIL164_CONTROL2_FILTER_ENABLE …
#define SIL164_CONTROL2_FILTER_SETTING_SHIFT …
#define SIL164_CONTROL2_DUALLINK_MASTER …
#define SIL164_CONTROL2_SYNC_CONT …
#define SIL164_DUALLINK …
#define SIL164_DUALLINK_ENABLE …
#define SIL164_DUALLINK_SKEW_SHIFT …
#define SIL164_PLLZONE …
#define SIL164_PLLZONE_STAT …
#define SIL164_PLLZONE_FORCE_ON …
#define SIL164_PLLZONE_FORCE_HIGH …
static void
sil164_write(struct i2c_client *client, uint8_t addr, uint8_t val)
{ … }
static uint8_t
sil164_read(struct i2c_client *client, uint8_t addr)
{ … }
static void
sil164_save_state(struct i2c_client *client, uint8_t *state)
{ … }
static void
sil164_restore_state(struct i2c_client *client, uint8_t *state)
{ … }
static void
sil164_set_power_state(struct i2c_client *client, bool on)
{ … }
static void
sil164_init_state(struct i2c_client *client,
struct sil164_encoder_params *config,
bool duallink)
{ … }
static void
sil164_encoder_set_config(struct drm_encoder *encoder, void *params)
{ … }
static void
sil164_encoder_dpms(struct drm_encoder *encoder, int mode)
{ … }
static void
sil164_encoder_save(struct drm_encoder *encoder)
{ … }
static void
sil164_encoder_restore(struct drm_encoder *encoder)
{ … }
static int
sil164_encoder_mode_valid(struct drm_encoder *encoder,
struct drm_display_mode *mode)
{ … }
static void
sil164_encoder_mode_set(struct drm_encoder *encoder,
struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode)
{ … }
static enum drm_connector_status
sil164_encoder_detect(struct drm_encoder *encoder,
struct drm_connector *connector)
{ … }
static int
sil164_encoder_get_modes(struct drm_encoder *encoder,
struct drm_connector *connector)
{ … }
static int
sil164_encoder_create_resources(struct drm_encoder *encoder,
struct drm_connector *connector)
{ … }
static int
sil164_encoder_set_property(struct drm_encoder *encoder,
struct drm_connector *connector,
struct drm_property *property,
uint64_t val)
{ … }
static void
sil164_encoder_destroy(struct drm_encoder *encoder)
{ … }
static const struct drm_encoder_slave_funcs sil164_encoder_funcs = …;
static int
sil164_probe(struct i2c_client *client)
{ … }
static struct i2c_client *
sil164_detect_slave(struct i2c_client *client)
{ … }
static int
sil164_encoder_init(struct i2c_client *client,
struct drm_device *dev,
struct drm_encoder_slave *encoder)
{ … }
static const struct i2c_device_id sil164_ids[] = …;
MODULE_DEVICE_TABLE(i2c, sil164_ids);
static struct drm_i2c_encoder_driver sil164_driver = …;
static int __init
sil164_init(void)
{ … }
static void __exit
sil164_exit(void)
{ … }
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
module_init(…) …;
module_exit(sil164_exit);