[PATCH v2,2/9] media: mtk-jpegenc: Add MT8195 JPEG venc driver
kyrie.wu
kyrie.wu at mediatek.com
Wed Jun 30 00:27:52 PDT 2021
Add MT8195 JPEG venc driver's compatible and device private data.
compatible = "mediatek,mt8195-jpgenc": this node would only register
jpgenc device node;
compatible = "mediatek,mt8195-jpgenc0": HW0 node, this node would not
register jpgenc device node, but register irq, init clk and power,
remmap register base and do other resource options;
compatible = "mediatek,mt8195-jpgenc1": HW1 node, just like HW0 node;
Signed-off-by: kyrie.wu <kyrie.wu at mediatek.com>
---
drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c | 11 +++++------
drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h | 1 +
drivers/media/platform/mtk-jpeg/mtk_jpeg_enc_hw.c | 12 ++++++++++++
3 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
index 88a23bc..908aa1f 100644
--- a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
+++ b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
@@ -1524,13 +1524,13 @@ static const struct mtk_jpeg_variant mt8173_jpeg_drvdata = {
.cap_q_default_fourcc = V4L2_PIX_FMT_YUV420M,
};
-static const struct mtk_jpeg_variant mtk_jpeg_drvdata = {
+static const struct mtk_jpeg_variant mtk_jpegenc_drvdata = {
+ .is_encoder = true,
.clks = mtk_jpeg_clocks,
.num_clks = ARRAY_SIZE(mtk_jpeg_clocks),
.formats = mtk_jpeg_enc_formats,
.num_formats = MTK_JPEG_ENC_NUM_FORMATS,
.qops = &mtk_jpeg_enc_qops,
- .irq_handler = mtk_jpeg_enc_irq,
.hw_reset = mtk_jpeg_enc_reset,
.m2m_ops = &mtk_jpeg_enc_m2m_ops,
.dev_name = "mtk-jpeg-enc",
@@ -1540,6 +1540,9 @@ static const struct mtk_jpeg_variant mtk_jpeg_drvdata = {
};
static const struct of_device_id mtk_jpeg_match[] = {
+ { .compatible = "mediatek,mt8195-jpgenc",
+ .data = &mtk_jpegenc_drvdata,
+ },
{
.compatible = "mediatek,mt8173-jpgdec",
.data = &mt8173_jpeg_drvdata,
@@ -1548,10 +1551,6 @@ static const struct of_device_id mtk_jpeg_match[] = {
.compatible = "mediatek,mt2701-jpgdec",
.data = &mt8173_jpeg_drvdata,
},
- {
- .compatible = "mediatek,mtk-jpgenc",
- .data = &mtk_jpeg_drvdata,
- },
{},
};
diff --git a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h
index 595f7f1..bdbd768 100644
--- a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h
+++ b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h
@@ -60,6 +60,7 @@ enum mtk_jpeg_ctx_state {
* @cap_q_default_fourcc: capture queue default fourcc
*/
struct mtk_jpeg_variant {
+ bool is_encoder;
struct clk_bulk_data *clks;
int num_clks;
struct mtk_jpeg_fmt *formats;
diff --git a/drivers/media/platform/mtk-jpeg/mtk_jpeg_enc_hw.c b/drivers/media/platform/mtk-jpeg/mtk_jpeg_enc_hw.c
index 1cf037b..3da1011 100644
--- a/drivers/media/platform/mtk-jpeg/mtk_jpeg_enc_hw.c
+++ b/drivers/media/platform/mtk-jpeg/mtk_jpeg_enc_hw.c
@@ -152,3 +152,15 @@ void mtk_jpeg_set_enc_params(struct mtk_jpeg_ctx *ctx, void __iomem *base)
writel(ctx->restart_interval, base + JPEG_ENC_RST_MCU_NUM);
}
+
+#if defined(CONFIG_OF)
+static const struct of_device_id mtk_jpegenc_hw_ids[] = {
+ {
+ .compatible = "mediatek,mt8195-jpgenc0",
+ },
+ { .compatible = "mediatek,mt8195-jpgenc1",
+ },
+ {},
+};
+MODULE_DEVICE_TABLE(of, mtk_jpegenc_hw_ids);
+#endif
--
2.6.4
More information about the Linux-mediatek
mailing list