#include <linux/clk.h>
#include <linux/component.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>
#include <linux/reset.h>
#include <drm/drm_device.h>
#include <drm/drm_fb_dma_helper.h>
#include <drm/drm_fourcc.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_gem_dma_helper.h>
#include <drm/drm_plane.h>
#include "sun4i_drv.h"
#include "sun4i_frontend.h"
static const u32 sun4i_frontend_vert_coef[32] = …;
static const u32 sun4i_frontend_horz_coef[64] = …;
const u32 sunxi_bt601_yuv2rgb_coef[12] = …;
EXPORT_SYMBOL(…);
static void sun4i_frontend_scaler_init(struct sun4i_frontend *frontend)
{ … }
int sun4i_frontend_init(struct sun4i_frontend *frontend)
{ … }
EXPORT_SYMBOL(…);
void sun4i_frontend_exit(struct sun4i_frontend *frontend)
{ … }
EXPORT_SYMBOL(…);
static bool sun4i_frontend_format_chroma_requires_swap(uint32_t fmt)
{ … }
static bool sun4i_frontend_format_supports_tiling(uint32_t fmt)
{ … }
void sun4i_frontend_update_buffer(struct sun4i_frontend *frontend,
struct drm_plane *plane)
{ … }
EXPORT_SYMBOL(…);
static int
sun4i_frontend_drm_format_to_input_fmt(const struct drm_format_info *format,
u32 *val)
{ … }
static int
sun4i_frontend_drm_format_to_input_mode(const struct drm_format_info *format,
uint64_t modifier, u32 *val)
{ … }
static int
sun4i_frontend_drm_format_to_input_sequence(const struct drm_format_info *format,
u32 *val)
{ … }
static int sun4i_frontend_drm_format_to_output_fmt(uint32_t fmt, u32 *val)
{ … }
static const uint32_t sun4i_frontend_formats[] = …;
bool sun4i_frontend_format_is_supported(uint32_t fmt, uint64_t modifier)
{ … }
EXPORT_SYMBOL(…);
int sun4i_frontend_update_formats(struct sun4i_frontend *frontend,
struct drm_plane *plane, uint32_t out_fmt)
{ … }
EXPORT_SYMBOL(…);
void sun4i_frontend_update_coord(struct sun4i_frontend *frontend,
struct drm_plane *plane)
{ … }
EXPORT_SYMBOL(…);
int sun4i_frontend_enable(struct sun4i_frontend *frontend)
{ … }
EXPORT_SYMBOL(…);
static const struct regmap_config sun4i_frontend_regmap_config = …;
static int sun4i_frontend_bind(struct device *dev, struct device *master,
void *data)
{ … }
static void sun4i_frontend_unbind(struct device *dev, struct device *master,
void *data)
{ … }
static const struct component_ops sun4i_frontend_ops = …;
static int sun4i_frontend_probe(struct platform_device *pdev)
{ … }
static void sun4i_frontend_remove(struct platform_device *pdev)
{ … }
static int sun4i_frontend_runtime_resume(struct device *dev)
{ … }
static int sun4i_frontend_runtime_suspend(struct device *dev)
{ … }
static const struct dev_pm_ops sun4i_frontend_pm_ops = …;
static const struct sun4i_frontend_data sun4i_a10_frontend = …;
static const struct sun4i_frontend_data sun8i_a33_frontend = …;
const struct of_device_id sun4i_frontend_of_table[] = …;
EXPORT_SYMBOL(…);
MODULE_DEVICE_TABLE(of, sun4i_frontend_of_table);
static struct platform_driver sun4i_frontend_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;