Message ID | 1625038079-25815-3-git-send-email-kyrie.wu@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Support jpeg encode for MT8195 | expand |
On Wed, Jun 30, 2021 at 3:32 PM kyrie.wu <kyrie.wu@mediatek.com> wrote: > 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; The commit message is not easy to read. Please rephrase the sentences. What does "venc" stand for? I believe it is a copy-n-paste typo. The commit title "support MT8195 JPEG encoder" looks better to me. > -static const struct mtk_jpeg_variant mtk_jpeg_drvdata = { > +static const struct mtk_jpeg_variant mtk_jpegenc_drvdata = { Why remove mtk_jpeg_drvdata? > - .irq_handler = mtk_jpeg_enc_irq, Why remove the IRQ handler? > @@ -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, > - }, Why remove "mediatek,mtk-jpgenc"? > +#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 Would expect somewhere to reference mtk_jpegenc_hw_ids but failed to find it.
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
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@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(-)