#include <linux/component.h>
#include <linux/dma-mapping.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <drm/drm_aperture.h>
#include <drm/drm_atomic.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_gem_framebuffer_helper.h>
#include <drm/drm_module.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_vblank.h>
#include "ltdc.h"
#define STM_MAX_FB_WIDTH …
#define STM_MAX_FB_HEIGHT …
static const struct drm_mode_config_funcs drv_mode_config_funcs = …;
static int stm_gem_dma_dumb_create(struct drm_file *file,
struct drm_device *dev,
struct drm_mode_create_dumb *args)
{ … }
DEFINE_DRM_GEM_DMA_FOPS(drv_driver_fops);
static const struct drm_driver drv_driver = …;
static int drv_load(struct drm_device *ddev)
{ … }
static void drv_unload(struct drm_device *ddev)
{ … }
static __maybe_unused int drv_suspend(struct device *dev)
{ … }
static __maybe_unused int drv_resume(struct device *dev)
{ … }
static __maybe_unused int drv_runtime_suspend(struct device *dev)
{ … }
static __maybe_unused int drv_runtime_resume(struct device *dev)
{ … }
static const struct dev_pm_ops drv_pm_ops = …;
static int stm_drm_platform_probe(struct platform_device *pdev)
{ … }
static void stm_drm_platform_remove(struct platform_device *pdev)
{ … }
static void stm_drm_platform_shutdown(struct platform_device *pdev)
{ … }
static const struct of_device_id drv_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, drv_dt_ids);
static struct platform_driver stm_drm_platform_driver = …;
drm_module_platform_driver(…);
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;