#include <linux/component.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <drm/drm_modeset_helper_vtables.h>
#include <drm/drm_of.h>
#include <drm/drm_simple_kms_helper.h>
#include "sun8i_dw_hdmi.h"
#include "sun8i_tcon_top.h"
static void sun8i_dw_hdmi_encoder_mode_set(struct drm_encoder *encoder,
struct drm_display_mode *mode,
struct drm_display_mode *adj_mode)
{ … }
static const struct drm_encoder_helper_funcs
sun8i_dw_hdmi_encoder_helper_funcs = …;
static enum drm_mode_status
sun8i_dw_hdmi_mode_valid_a83t(struct dw_hdmi *hdmi, void *data,
const struct drm_display_info *info,
const struct drm_display_mode *mode)
{ … }
static enum drm_mode_status
sun8i_dw_hdmi_mode_valid_h6(struct dw_hdmi *hdmi, void *data,
const struct drm_display_info *info,
const struct drm_display_mode *mode)
{ … }
static bool sun8i_dw_hdmi_node_is_tcon_top(struct device_node *node)
{ … }
static u32 sun8i_dw_hdmi_find_possible_crtcs(struct drm_device *drm,
struct device_node *node)
{ … }
static int sun8i_dw_hdmi_bind(struct device *dev, struct device *master,
void *data)
{ … }
static void sun8i_dw_hdmi_unbind(struct device *dev, struct device *master,
void *data)
{ … }
static const struct component_ops sun8i_dw_hdmi_ops = …;
static int sun8i_dw_hdmi_probe(struct platform_device *pdev)
{ … }
static void sun8i_dw_hdmi_remove(struct platform_device *pdev)
{ … }
static const struct sun8i_dw_hdmi_quirks sun8i_a83t_quirks = …;
static const struct sun8i_dw_hdmi_quirks sun50i_h6_quirks = …;
static const struct of_device_id sun8i_dw_hdmi_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, sun8i_dw_hdmi_dt_ids);
static struct platform_driver sun8i_dw_hdmi_pltfm_driver = …;
static int __init sun8i_dw_hdmi_init(void)
{ … }
static void __exit sun8i_dw_hdmi_exit(void)
{ … }
module_init(…) …;
module_exit(sun8i_dw_hdmi_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;