#include <linux/component.h>
#include <linux/device.h>
#include <linux/dma-buf.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <video/imx-ipu-v3.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_managed.h>
#include <drm/drm_of.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_vblank.h>
#include "imx-drm.h"
#include "ipuv3-plane.h"
#define MAX_CRTC …
static int legacyfb_depth = …;
module_param(legacyfb_depth, int, 0444);
DEFINE_DRM_GEM_DMA_FOPS(imx_drm_driver_fops);
void imx_drm_connector_destroy(struct drm_connector *connector)
{ … }
EXPORT_SYMBOL_GPL(…);
static int imx_drm_atomic_check(struct drm_device *dev,
struct drm_atomic_state *state)
{ … }
static const struct drm_mode_config_funcs imx_drm_mode_config_funcs = …;
static void imx_drm_atomic_commit_tail(struct drm_atomic_state *state)
{ … }
static const struct drm_mode_config_helper_funcs imx_drm_mode_config_helpers = …;
int imx_drm_encoder_parse_of(struct drm_device *drm,
struct drm_encoder *encoder, struct device_node *np)
{ … }
EXPORT_SYMBOL_GPL(…);
static const struct drm_ioctl_desc imx_drm_ioctls[] = …;
static int imx_drm_dumb_create(struct drm_file *file_priv,
struct drm_device *drm,
struct drm_mode_create_dumb *args)
{ … }
static const struct drm_driver imx_drm_driver = …;
static int compare_of(struct device *dev, void *data)
{ … }
static int imx_drm_bind(struct device *dev)
{ … }
static void imx_drm_unbind(struct device *dev)
{ … }
static const struct component_master_ops imx_drm_ops = …;
static int imx_drm_platform_probe(struct platform_device *pdev)
{ … }
static void imx_drm_platform_remove(struct platform_device *pdev)
{ … }
static void imx_drm_platform_shutdown(struct platform_device *pdev)
{ … }
#ifdef CONFIG_PM_SLEEP
static int imx_drm_suspend(struct device *dev)
{ … }
static int imx_drm_resume(struct device *dev)
{ … }
#endif
static SIMPLE_DEV_PM_OPS(imx_drm_pm_ops, imx_drm_suspend, imx_drm_resume);
static const struct of_device_id imx_drm_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, imx_drm_dt_ids);
static struct platform_driver imx_drm_pdrv = …;
static struct platform_driver * const drivers[] = …;
static int __init imx_drm_init(void)
{ … }
module_init(…) …;
static void __exit imx_drm_exit(void)
{ … }
module_exit(imx_drm_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;