Le jeudi 14 août 2025 à 16:56 +0800, Kyrie Wu a écrit : > From: Irui Wang > > Add a new platform data member to indicate each encoder IC, so that the > get chip name function by 'of_device_is_compatible' can be removed. > > Signed-off-by: Irui Wang I'm very happy of that cleanup, Reviewed-by: Nicolas Dufresne thanks, Nicolas > --- >  .../mediatek/vcodec/encoder/mtk_vcodec_enc.c  | 23 ++----------------- >  .../vcodec/encoder/mtk_vcodec_enc_drv.c       |  6 +++++ >  .../vcodec/encoder/mtk_vcodec_enc_drv.h       |  2 ++ >  3 files changed, 10 insertions(+), 21 deletions(-) > > diff --git a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.c b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.c > index 03512bf7a072..1a7be3e57eef 100644 > --- a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.c > +++ b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.c > @@ -198,34 +198,15 @@ static int vidioc_enum_fmt_vid_out(struct file *file, void *priv, >          pdata->num_output_formats); >  } >   > -static int mtk_vcodec_enc_get_chip_name(void *priv) > -{ > - struct mtk_vcodec_enc_ctx *ctx = fh_to_enc_ctx(priv); > - struct device *dev = &ctx->dev->plat_dev->dev; > - > - if (of_device_is_compatible(dev->of_node, "mediatek,mt8173-vcodec-enc")) > - return 8173; > - else if (of_device_is_compatible(dev->of_node, "mediatek,mt8183-vcodec-enc")) > - return 8183; > - else if (of_device_is_compatible(dev->of_node, "mediatek,mt8192-vcodec-enc")) > - return 8192; > - else if (of_device_is_compatible(dev->of_node, "mediatek,mt8195-vcodec-enc")) > - return 8195; > - else if (of_device_is_compatible(dev->of_node, "mediatek,mt8188-vcodec-enc")) > - return 8188; > - else > - return 8173; > -} > - >  static int vidioc_venc_querycap(struct file *file, void *priv, >   struct v4l2_capability *cap) >  { >   struct mtk_vcodec_enc_ctx *ctx = fh_to_enc_ctx(priv); > + const struct mtk_vcodec_enc_pdata *pdata = ctx->dev->venc_pdata; >   struct device *dev = &ctx->dev->plat_dev->dev; > - int platform_name = mtk_vcodec_enc_get_chip_name(priv); >   >   strscpy(cap->driver, dev->driver->name, sizeof(cap->driver)); > - snprintf(cap->card, sizeof(cap->card), "MT%d video encoder", platform_name); > + snprintf(cap->card, sizeof(cap->card), "MT%d video encoder", pdata->venc_model_num); >   >   return 0; >  } > diff --git a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c > index bb913dfe5f04..50936949d527 100644 > --- a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c > +++ b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c > @@ -380,6 +380,7 @@ static int mtk_vcodec_probe(struct platform_device *pdev) >  } >   >  static const struct mtk_vcodec_enc_pdata mt8173_avc_pdata = { > + .venc_model_num = 8173, >   .capture_formats = mtk_video_formats_capture_h264, >   .num_capture_formats = ARRAY_SIZE(mtk_video_formats_capture_h264), >   .output_formats = mtk_video_formats_output, > @@ -390,6 +391,7 @@ static const struct mtk_vcodec_enc_pdata mt8173_avc_pdata = { >  }; >   >  static const struct mtk_vcodec_enc_pdata mt8173_vp8_pdata = { > + .venc_model_num = 8173, >   .capture_formats = mtk_video_formats_capture_vp8, >   .num_capture_formats = ARRAY_SIZE(mtk_video_formats_capture_vp8), >   .output_formats = mtk_video_formats_output, > @@ -400,6 +402,7 @@ static const struct mtk_vcodec_enc_pdata mt8173_vp8_pdata = { >  }; >   >  static const struct mtk_vcodec_enc_pdata mt8183_pdata = { > + .venc_model_num = 8183, >   .uses_ext = true, >   .capture_formats = mtk_video_formats_capture_h264, >   .num_capture_formats = ARRAY_SIZE(mtk_video_formats_capture_h264), > @@ -411,6 +414,7 @@ static const struct mtk_vcodec_enc_pdata mt8183_pdata = { >  }; >   >  static const struct mtk_vcodec_enc_pdata mt8188_pdata = { > + .venc_model_num = 8188, >   .uses_ext = true, >   .capture_formats = mtk_video_formats_capture_h264, >   .num_capture_formats = ARRAY_SIZE(mtk_video_formats_capture_h264), > @@ -423,6 +427,7 @@ static const struct mtk_vcodec_enc_pdata mt8188_pdata = { >  }; >   >  static const struct mtk_vcodec_enc_pdata mt8192_pdata = { > + .venc_model_num = 8192, >   .uses_ext = true, >   .capture_formats = mtk_video_formats_capture_h264, >   .num_capture_formats = ARRAY_SIZE(mtk_video_formats_capture_h264), > @@ -434,6 +439,7 @@ static const struct mtk_vcodec_enc_pdata mt8192_pdata = { >  }; >   >  static const struct mtk_vcodec_enc_pdata mt8195_pdata = { > + .venc_model_num = 8195, >   .uses_ext = true, >   .capture_formats = mtk_video_formats_capture_h264, >   .num_capture_formats = ARRAY_SIZE(mtk_video_formats_capture_h264), > diff --git a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h > index 426b1398f815..b3206a7b592d 100644 > --- a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h > +++ b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h > @@ -21,6 +21,7 @@ >  /** >   * struct mtk_vcodec_enc_pdata - compatible data for each IC >   * > + * @venc_model_num: encoder model number >   * @uses_ext: whether the encoder uses the extended firmware messaging format >   * @min_bitrate: minimum supported encoding bitrate >   * @max_bitrate: maximum supported encoding bitrate > @@ -33,6 +34,7 @@ >   * @uses_common_fw_iface: whether the encoder uses common driver interface >   */ >  struct mtk_vcodec_enc_pdata { > + u16 venc_model_num; >   bool uses_ext; >   u64 min_bitrate; >   u64 max_bitrate;