#include <linux/device.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/sched/signal.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/uio.h>
#include <drm/display/drm_dp_helper.h>
#include <drm/display/drm_dp_mst_helper.h>
#include <drm/drm_crtc.h>
#include <drm/drm_print.h>
#include "drm_dp_helper_internal.h"
struct drm_dp_aux_dev { … };
#define DRM_AUX_MINORS …
#define AUX_MAX_OFFSET …
static DEFINE_IDR(aux_idr);
static DEFINE_MUTEX(aux_idr_mutex);
static struct class *drm_dp_aux_dev_class;
static int drm_dev_major = …;
static struct drm_dp_aux_dev *drm_dp_aux_dev_get_by_minor(unsigned index)
{ … }
static struct drm_dp_aux_dev *alloc_drm_dp_aux_dev(struct drm_dp_aux *aux)
{ … }
static void release_drm_dp_aux_dev(struct kref *ref)
{ … }
static ssize_t name_show(struct device *dev,
struct device_attribute *attr, char *buf)
{ … }
static DEVICE_ATTR_RO(name);
static struct attribute *drm_dp_aux_attrs[] = …;
ATTRIBUTE_GROUPS(…);
static int auxdev_open(struct inode *inode, struct file *file)
{ … }
static loff_t auxdev_llseek(struct file *file, loff_t offset, int whence)
{ … }
static ssize_t auxdev_read_iter(struct kiocb *iocb, struct iov_iter *to)
{ … }
static ssize_t auxdev_write_iter(struct kiocb *iocb, struct iov_iter *from)
{ … }
static int auxdev_release(struct inode *inode, struct file *file)
{ … }
static const struct file_operations auxdev_fops = …;
#define to_auxdev(d) …
static struct drm_dp_aux_dev *drm_dp_aux_dev_get_by_aux(struct drm_dp_aux *aux)
{ … }
void drm_dp_aux_unregister_devnode(struct drm_dp_aux *aux)
{ … }
int drm_dp_aux_register_devnode(struct drm_dp_aux *aux)
{ … }
int drm_dp_aux_dev_init(void)
{ … }
void drm_dp_aux_dev_exit(void)
{ … }