#include <linux/component.h>
#include <linux/dma-mapping.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/of_graph.h>
#include <linux/platform_device.h>
#include <linux/reset.h>
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_gem_dma_helper.h>
#include <drm/drm_probe_helper.h>
#include "sun4i_drv.h"
#include "sun8i_mixer.h"
#include "sun8i_ui_layer.h"
#include "sun8i_vi_layer.h"
#include "sunxi_engine.h"
struct de2_fmt_info { … };
static const struct de2_fmt_info de2_formats[] = …;
int sun8i_mixer_drm_format_to_hw(u32 format, u32 *hw_format)
{ … }
static void sun8i_layer_enable(struct sun8i_layer *layer, bool enable)
{ … }
static void sun8i_mixer_commit(struct sunxi_engine *engine,
struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static struct drm_plane **sun8i_layers_init(struct drm_device *drm,
struct sunxi_engine *engine)
{ … }
static void sun8i_mixer_mode_set(struct sunxi_engine *engine,
const struct drm_display_mode *mode)
{ … }
static const struct sunxi_engine_ops sun8i_engine_ops = …;
static const struct regmap_config sun8i_mixer_regmap_config = …;
static int sun8i_mixer_of_get_id(struct device_node *node)
{ … }
static int sun8i_mixer_bind(struct device *dev, struct device *master,
void *data)
{ … }
static void sun8i_mixer_unbind(struct device *dev, struct device *master,
void *data)
{ … }
static const struct component_ops sun8i_mixer_ops = …;
static int sun8i_mixer_probe(struct platform_device *pdev)
{ … }
static void sun8i_mixer_remove(struct platform_device *pdev)
{ … }
static const struct sun8i_mixer_cfg sun8i_a83t_mixer0_cfg = …;
static const struct sun8i_mixer_cfg sun8i_a83t_mixer1_cfg = …;
static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = …;
static const struct sun8i_mixer_cfg sun8i_r40_mixer0_cfg = …;
static const struct sun8i_mixer_cfg sun8i_r40_mixer1_cfg = …;
static const struct sun8i_mixer_cfg sun8i_v3s_mixer_cfg = …;
static const struct sun8i_mixer_cfg sun20i_d1_mixer0_cfg = …;
static const struct sun8i_mixer_cfg sun20i_d1_mixer1_cfg = …;
static const struct sun8i_mixer_cfg sun50i_a64_mixer0_cfg = …;
static const struct sun8i_mixer_cfg sun50i_a64_mixer1_cfg = …;
static const struct sun8i_mixer_cfg sun50i_h6_mixer0_cfg = …;
static const struct of_device_id sun8i_mixer_of_table[] = …;
MODULE_DEVICE_TABLE(of, sun8i_mixer_of_table);
static struct platform_driver sun8i_mixer_platform_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;