#include <linux/acpi.h>
#include <linux/component.h>
#include <linux/device.h>
#include <linux/err.h>
#include <linux/export.h>
#include <linux/gfp.h>
#include <linux/i2c.h>
#include <linux/kdev_t.h>
#include <linux/property.h>
#include <linux/slab.h>
#include <drm/drm_accel.h>
#include <drm/drm_connector.h>
#include <drm/drm_device.h>
#include <drm/drm_file.h>
#include <drm/drm_modes.h>
#include <drm/drm_print.h>
#include <drm/drm_property.h>
#include <drm/drm_sysfs.h>
#include "drm_internal.h"
#include "drm_crtc_internal.h"
#define to_drm_minor(d) …
#define to_drm_connector(d) …
static struct device_type drm_sysfs_device_minor = …;
static struct device_type drm_sysfs_device_connector = …;
struct class *drm_class;
#ifdef CONFIG_ACPI
static bool drm_connector_acpi_bus_match(struct device *dev)
{ … }
static struct acpi_device *drm_connector_acpi_find_companion(struct device *dev)
{ … }
static struct acpi_bus_type drm_connector_acpi_bus = …;
static void drm_sysfs_acpi_register(void)
{ … }
static void drm_sysfs_acpi_unregister(void)
{ … }
#else
static void drm_sysfs_acpi_register(void) { }
static void drm_sysfs_acpi_unregister(void) { }
#endif
static char *drm_devnode(const struct device *dev, umode_t *mode)
{ … }
static int typec_connector_bind(struct device *dev,
struct device *typec_connector, void *data)
{ … }
static void typec_connector_unbind(struct device *dev,
struct device *typec_connector, void *data)
{ … }
static const struct component_ops typec_connector_ops = …;
static CLASS_ATTR_STRING(version, S_IRUGO, "drm 1.1.0 20060810");
int drm_sysfs_init(void)
{ … }
void drm_sysfs_destroy(void)
{ … }
static void drm_sysfs_release(struct device *dev)
{ … }
static ssize_t status_store(struct device *device,
struct device_attribute *attr,
const char *buf, size_t count)
{ … }
static ssize_t status_show(struct device *device,
struct device_attribute *attr,
char *buf)
{ … }
static ssize_t dpms_show(struct device *device,
struct device_attribute *attr,
char *buf)
{ … }
static ssize_t enabled_show(struct device *device,
struct device_attribute *attr,
char *buf)
{ … }
static ssize_t edid_show(struct file *filp, struct kobject *kobj,
struct bin_attribute *attr, char *buf, loff_t off,
size_t count)
{ … }
static ssize_t modes_show(struct device *device,
struct device_attribute *attr,
char *buf)
{ … }
static ssize_t connector_id_show(struct device *device,
struct device_attribute *attr,
char *buf)
{ … }
static DEVICE_ATTR_RW(status);
static DEVICE_ATTR_RO(enabled);
static DEVICE_ATTR_RO(dpms);
static DEVICE_ATTR_RO(modes);
static DEVICE_ATTR_RO(connector_id);
static struct attribute *connector_dev_attrs[] = …;
static struct bin_attribute edid_attr = …;
static struct bin_attribute *connector_bin_attrs[] = …;
static const struct attribute_group connector_dev_group = …;
static const struct attribute_group *connector_dev_groups[] = …;
int drm_sysfs_connector_add(struct drm_connector *connector)
{ … }
int drm_sysfs_connector_add_late(struct drm_connector *connector)
{ … }
void drm_sysfs_connector_remove_early(struct drm_connector *connector)
{ … }
void drm_sysfs_connector_remove(struct drm_connector *connector)
{ … }
void drm_sysfs_lease_event(struct drm_device *dev)
{ … }
void drm_sysfs_hotplug_event(struct drm_device *dev)
{ … }
EXPORT_SYMBOL(…);
void drm_sysfs_connector_hotplug_event(struct drm_connector *connector)
{ … }
EXPORT_SYMBOL(…);
void drm_sysfs_connector_property_event(struct drm_connector *connector,
struct drm_property *property)
{ … }
EXPORT_SYMBOL(…);
struct device *drm_sysfs_minor_alloc(struct drm_minor *minor)
{ … }
int drm_class_device_register(struct device *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
void drm_class_device_unregister(struct device *dev)
{ … }
EXPORT_SYMBOL_GPL(…);