#include <linux/clk.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/slab.h>
#include <media/media-device.h>
#include <media/videobuf2-core.h>
#include <media/videobuf2-dma-contig.h>
#include <media/videobuf2-v4l2.h>
#include <media/v4l2-mem2mem.h>
#include <media/v4l2-dev.h>
#include <media/v4l2-device.h>
#include <media/v4l2-fh.h>
#include <media/v4l2-event.h>
#include "mtk_jpeg_core.h"
#include "mtk_jpeg_enc_hw.h"
static const struct mtk_jpeg_enc_qlt mtk_jpeg_enc_quality[] = …;
static const struct of_device_id mtk_jpegenc_drv_ids[] = …;
MODULE_DEVICE_TABLE(of, mtk_jpegenc_drv_ids);
void mtk_jpeg_enc_reset(void __iomem *base)
{ … }
EXPORT_SYMBOL_GPL(…);
u32 mtk_jpeg_enc_get_file_size(void __iomem *base)
{ … }
EXPORT_SYMBOL_GPL(…);
void mtk_jpeg_enc_start(void __iomem *base)
{ … }
EXPORT_SYMBOL_GPL(…);
void mtk_jpeg_set_enc_src(struct mtk_jpeg_ctx *ctx, void __iomem *base,
struct vb2_buffer *src_buf)
{ … }
EXPORT_SYMBOL_GPL(…);
void mtk_jpeg_set_enc_dst(struct mtk_jpeg_ctx *ctx, void __iomem *base,
struct vb2_buffer *dst_buf)
{ … }
EXPORT_SYMBOL_GPL(…);
void mtk_jpeg_set_enc_params(struct mtk_jpeg_ctx *ctx, void __iomem *base)
{ … }
EXPORT_SYMBOL_GPL(…);
static void mtk_jpegenc_put_buf(struct mtk_jpegenc_comp_dev *jpeg)
{ … }
static void mtk_jpegenc_timeout_work(struct work_struct *work)
{ … }
static irqreturn_t mtk_jpegenc_hw_irq_handler(int irq, void *priv)
{ … }
static int mtk_jpegenc_hw_init_irq(struct mtk_jpegenc_comp_dev *dev)
{ … }
static int mtk_jpegenc_hw_probe(struct platform_device *pdev)
{ … }
static struct platform_driver mtk_jpegenc_hw_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;