#include <linux/clk.h>
#include <linux/io.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm.h>
#include <linux/pm_runtime.h>
#include <linux/slab.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_drv.h>
#include <drm/drm_fbdev_dma.h>
#include <drm/drm_gem_dma_helper.h>
#include <drm/drm_modeset_helper.h>
#include <drm/drm_module.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_vblank.h>
#include "shmob_drm_drv.h"
#include "shmob_drm_kms.h"
#include "shmob_drm_plane.h"
#include "shmob_drm_regs.h"
static int shmob_drm_setup_clocks(struct shmob_drm_device *sdev,
enum shmob_drm_clk_source clksrc)
{ … }
static irqreturn_t shmob_drm_irq(int irq, void *arg)
{ … }
DEFINE_DRM_GEM_DMA_FOPS(shmob_drm_fops);
static const struct drm_driver shmob_drm_driver = …;
static int shmob_drm_pm_suspend(struct device *dev)
{ … }
static int shmob_drm_pm_resume(struct device *dev)
{ … }
static int shmob_drm_pm_runtime_suspend(struct device *dev)
{ … }
static int shmob_drm_pm_runtime_resume(struct device *dev)
{ … }
static const struct dev_pm_ops shmob_drm_pm_ops = …;
static void shmob_drm_remove(struct platform_device *pdev)
{ … }
static void shmob_drm_shutdown(struct platform_device *pdev)
{ … }
static int shmob_drm_probe(struct platform_device *pdev)
{ … }
static const struct shmob_drm_config shmob_arm_config = …;
static const struct of_device_id shmob_drm_of_table[] __maybe_unused = …;
static struct platform_driver shmob_drm_platform_driver = …;
drm_module_platform_driver(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;