#include <linux/module.h>
#include <linux/spinlock.h>
#include <linux/clk.h>
#include <linux/component.h>
#include <linux/console.h>
#include <linux/dma-mapping.h>
#include <linux/list.h>
#include <linux/of_graph.h>
#include <linux/of_reserved_mem.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <drm/drm_aperture.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc.h>
#include <drm/drm_debugfs.h>
#include <drm/drm_drv.h>
#include <drm/drm_fbdev_dma.h>
#include <drm/drm_gem_dma_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
#include <drm/drm_modeset_helper.h>
#include <drm/drm_module.h>
#include <drm/drm_of.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_vblank.h>
#include "hdlcd_drv.h"
#include "hdlcd_regs.h"
static irqreturn_t hdlcd_irq(int irq, void *arg)
{ … }
static int hdlcd_irq_install(struct hdlcd_drm_private *hdlcd)
{ … }
static void hdlcd_irq_uninstall(struct hdlcd_drm_private *hdlcd)
{ … }
static int hdlcd_load(struct drm_device *drm, unsigned long flags)
{ … }
static const struct drm_mode_config_funcs hdlcd_mode_config_funcs = …;
static int hdlcd_setup_mode_config(struct drm_device *drm)
{ … }
#ifdef CONFIG_DEBUG_FS
static int hdlcd_show_underrun_count(struct seq_file *m, void *arg)
{ … }
static int hdlcd_show_pxlclock(struct seq_file *m, void *arg)
{ … }
static struct drm_debugfs_info hdlcd_debugfs_list[] = …;
#endif
DEFINE_DRM_GEM_DMA_FOPS(fops);
static const struct drm_driver hdlcd_driver = …;
static int hdlcd_drm_bind(struct device *dev)
{ … }
static void hdlcd_drm_unbind(struct device *dev)
{ … }
static const struct component_master_ops hdlcd_master_ops = …;
static int compare_dev(struct device *dev, void *data)
{ … }
static int hdlcd_probe(struct platform_device *pdev)
{ … }
static void hdlcd_remove(struct platform_device *pdev)
{ … }
static void hdlcd_shutdown(struct platform_device *pdev)
{ … }
static const struct of_device_id hdlcd_of_match[] = …;
MODULE_DEVICE_TABLE(of, hdlcd_of_match);
static int __maybe_unused hdlcd_pm_suspend(struct device *dev)
{ … }
static int __maybe_unused hdlcd_pm_resume(struct device *dev)
{ … }
static SIMPLE_DEV_PM_OPS(hdlcd_pm_ops, hdlcd_pm_suspend, hdlcd_pm_resume);
static struct platform_driver hdlcd_platform_driver = …;
drm_module_platform_driver(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;