#include <linux/clk.h>
#include <linux/dma-mapping.h>
#include <linux/io.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/property.h>
#include <linux/pm_runtime.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_bridge.h>
#include <drm/drm_connector.h>
#include <drm/drm_drv.h>
#include <drm/drm_fbdev_dma.h>
#include <drm/drm_fourcc.h>
#include <drm/drm_gem_dma_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
#include <drm/drm_mode_config.h>
#include <drm/drm_module.h>
#include <drm/drm_of.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_vblank.h>
#include "mxsfb_drv.h"
#include "mxsfb_regs.h"
enum mxsfb_devtype { … };
static const struct mxsfb_devdata mxsfb_devdata[] = …;
void mxsfb_enable_axi_clk(struct mxsfb_drm_private *mxsfb)
{ … }
void mxsfb_disable_axi_clk(struct mxsfb_drm_private *mxsfb)
{ … }
static struct drm_framebuffer *
mxsfb_fb_create(struct drm_device *dev, struct drm_file *file_priv,
const struct drm_mode_fb_cmd2 *mode_cmd)
{ … }
static const struct drm_mode_config_funcs mxsfb_mode_config_funcs = …;
static const struct drm_mode_config_helper_funcs mxsfb_mode_config_helpers = …;
static int mxsfb_attach_bridge(struct mxsfb_drm_private *mxsfb)
{ … }
static irqreturn_t mxsfb_irq_handler(int irq, void *data)
{ … }
static void mxsfb_irq_disable(struct drm_device *drm)
{ … }
static int mxsfb_irq_install(struct drm_device *dev, int irq)
{ … }
static void mxsfb_irq_uninstall(struct drm_device *dev)
{ … }
static int mxsfb_load(struct drm_device *drm,
const struct mxsfb_devdata *devdata)
{ … }
static void mxsfb_unload(struct drm_device *drm)
{ … }
DEFINE_DRM_GEM_DMA_FOPS(fops);
static const struct drm_driver mxsfb_driver = …;
static const struct of_device_id mxsfb_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, mxsfb_dt_ids);
static int mxsfb_probe(struct platform_device *pdev)
{ … }
static void mxsfb_remove(struct platform_device *pdev)
{ … }
static void mxsfb_shutdown(struct platform_device *pdev)
{ … }
#ifdef CONFIG_PM_SLEEP
static int mxsfb_suspend(struct device *dev)
{ … }
static int mxsfb_resume(struct device *dev)
{ … }
#endif
static const struct dev_pm_ops mxsfb_pm_ops = …;
static struct platform_driver mxsfb_platform_driver = …;
drm_module_platform_driver(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;