#include <linux/clk.h>
#include <linux/irq.h>
#include <linux/irqchip.h>
#include <linux/mfd/atmel-hlcdc.h>
#include <linux/module.h>
#include <linux/pm_runtime.h>
#include <linux/platform_device.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 "atmel_hlcdc_dc.h"
#define ATMEL_HLCDC_LAYER_IRQS_OFFSET …
static const struct atmel_hlcdc_layer_desc atmel_hlcdc_at91sam9n12_layers[] = …;
static const struct atmel_hlcdc_dc_desc atmel_hlcdc_dc_at91sam9n12 = …;
static const struct atmel_hlcdc_layer_desc atmel_hlcdc_at91sam9x5_layers[] = …;
static const struct atmel_hlcdc_dc_desc atmel_hlcdc_dc_at91sam9x5 = …;
static const struct atmel_hlcdc_layer_desc atmel_hlcdc_sama5d3_layers[] = …;
static const struct atmel_hlcdc_dc_desc atmel_hlcdc_dc_sama5d3 = …;
static const struct atmel_hlcdc_layer_desc atmel_hlcdc_sama5d4_layers[] = …;
static const struct atmel_hlcdc_dc_desc atmel_hlcdc_dc_sama5d4 = …;
static const struct atmel_hlcdc_layer_desc atmel_hlcdc_sam9x60_layers[] = …;
static const struct atmel_hlcdc_dc_desc atmel_hlcdc_dc_sam9x60 = …;
static const struct atmel_hlcdc_layer_desc atmel_xlcdc_sam9x75_layers[] = …;
static const struct atmel_hlcdc_dc_desc atmel_xlcdc_dc_sam9x75 = …;
static const struct of_device_id atmel_hlcdc_of_match[] = …;
MODULE_DEVICE_TABLE(of, atmel_hlcdc_of_match);
enum drm_mode_status
atmel_hlcdc_dc_mode_valid(struct atmel_hlcdc_dc *dc,
const struct drm_display_mode *mode)
{ … }
static void atmel_hlcdc_layer_irq(struct atmel_hlcdc_layer *layer)
{ … }
static irqreturn_t atmel_hlcdc_dc_irq_handler(int irq, void *data)
{ … }
static void atmel_hlcdc_dc_irq_postinstall(struct drm_device *dev)
{ … }
static void atmel_hlcdc_dc_irq_disable(struct drm_device *dev)
{ … }
static int atmel_hlcdc_dc_irq_install(struct drm_device *dev, unsigned int irq)
{ … }
static void atmel_hlcdc_dc_irq_uninstall(struct drm_device *dev)
{ … }
static const struct drm_mode_config_funcs mode_config_funcs = …;
static int atmel_hlcdc_dc_modeset_init(struct drm_device *dev)
{ … }
static int atmel_hlcdc_dc_load(struct drm_device *dev)
{ … }
static void atmel_hlcdc_dc_unload(struct drm_device *dev)
{ … }
DEFINE_DRM_GEM_DMA_FOPS(fops);
static const struct drm_driver atmel_hlcdc_dc_driver = …;
static int atmel_hlcdc_dc_drm_probe(struct platform_device *pdev)
{ … }
static void atmel_hlcdc_dc_drm_remove(struct platform_device *pdev)
{ … }
static void atmel_hlcdc_dc_drm_shutdown(struct platform_device *pdev)
{ … }
static int atmel_hlcdc_dc_drm_suspend(struct device *dev)
{ … }
static int atmel_hlcdc_dc_drm_resume(struct device *dev)
{ … }
static DEFINE_SIMPLE_DEV_PM_OPS(atmel_hlcdc_dc_drm_pm_ops,
atmel_hlcdc_dc_drm_suspend,
atmel_hlcdc_dc_drm_resume);
static const struct of_device_id atmel_hlcdc_dc_of_match[] = …;
static struct platform_driver atmel_hlcdc_dc_platform_driver = …;
drm_module_platform_driver(…);
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;