#include <linux/interrupt.h>
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_drv.h>
#include <drm/drm_gem_dma_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
#include <drm/drm_managed.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_vblank.h>
#include "komeda_dev.h"
#include "komeda_framebuffer.h"
#include "komeda_kms.h"
DEFINE_DRM_GEM_DMA_FOPS(komeda_cma_fops);
static int komeda_gem_dma_dumb_create(struct drm_file *file,
struct drm_device *dev,
struct drm_mode_create_dumb *args)
{ … }
static irqreturn_t komeda_kms_irq_handler(int irq, void *data)
{ … }
static const struct drm_driver komeda_kms_driver = …;
static void komeda_kms_atomic_commit_hw_done(struct drm_atomic_state *state)
{ … }
static void komeda_kms_commit_tail(struct drm_atomic_state *old_state)
{ … }
static const struct drm_mode_config_helper_funcs komeda_mode_config_helpers = …;
static int komeda_plane_state_list_add(struct drm_plane_state *plane_st,
struct list_head *zorder_list)
{ … }
static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,
struct drm_crtc_state *crtc_st)
{ … }
static int komeda_kms_check(struct drm_device *dev,
struct drm_atomic_state *state)
{ … }
static const struct drm_mode_config_funcs komeda_mode_config_funcs = …;
static void komeda_kms_mode_config_init(struct komeda_kms_dev *kms,
struct komeda_dev *mdev)
{ … }
struct komeda_kms_dev *komeda_kms_attach(struct komeda_dev *mdev)
{ … }
void komeda_kms_detach(struct komeda_kms_dev *kms)
{ … }
void komeda_kms_shutdown(struct komeda_kms_dev *kms)
{ … }