On Tue, 2025-02-11 at 12:34 +0100, AngeloGioacchino Del Regno wrote: > External email : Please do not click links or open attachments until you have verified the sender or the content. > > > In preparation for adding a new driver for the HDMI TX v2 IP, > split out the functions that will be common between the already > present mtk_hdmi (v1) driver and the new one. > > Since the probe flow for both drivers is 90% similar, add a common > probe function that will be called from each driver's .probe() > callback, avoiding lots of code duplication. > > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx> > --- > drivers/gpu/drm/mediatek/Kconfig | 11 +- > drivers/gpu/drm/mediatek/Makefile | 1 + > drivers/gpu/drm/mediatek/mtk_hdmi.c | 542 +-------------------- > drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 426 ++++++++++++++++ > drivers/gpu/drm/mediatek/mtk_hdmi_common.h | 188 +++++++ > 5 files changed, 633 insertions(+), 535 deletions(-) > create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_common.c > create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_common.h > > diff --git a/drivers/gpu/drm/mediatek/Kconfig b/drivers/gpu/drm/mediatek/Kconfig > index e47debd60619..994b48b82d44 100644 > --- a/drivers/gpu/drm/mediatek/Kconfig > +++ b/drivers/gpu/drm/mediatek/Kconfig > @@ -30,9 +30,18 @@ config DRM_MEDIATEK_DP > help > DRM/KMS Display Port driver for MediaTek SoCs. > > +config DRM_MEDIATEK_HDMI_COMMON > + tristate > + depends on DRM_MEDIATEK > + select DRM_DISPLAY_HDMI_HELPER > + select DRM_DISPLAY_HELPER > + select SND_SOC_HDMI_CODEC if SND_SOC > + help > + MediaTek SoC HDMI common library > + > config DRM_MEDIATEK_HDMI > tristate "DRM HDMI Support for Mediatek SoCs" > depends on DRM_MEDIATEK > - select SND_SOC_HDMI_CODEC if SND_SOC > + select DRM_MEDIATEK_HDMI_COMMON > help > DRM/KMS HDMI driver for Mediatek SoCs > diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile > index 43afd0a26d14..78cf2d4fc85f 100644 > --- a/drivers/gpu/drm/mediatek/Makefile > +++ b/drivers/gpu/drm/mediatek/Makefile > @@ -21,6 +21,7 @@ mediatek-drm-y := mtk_crtc.o \ > > obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o > > +obj-$(CONFIG_DRM_MEDIATEK_HDMI_COMMON) += mtk_hdmi_common.o The whole patch looks good to me. But make common part to a module looks a little bit more modularized. Let things to be simple, I would like the whole MediaTek hdmi driver be a single module. For MediaTek drm driver, it is already broken to mediatek-drm, hdmi, dp modules. Maybe someday dsi or dpi would be broken to modules. So I would like hdmi to be a single module which include v1, v2 and common part. If someday we need to optimize code size, then send patch to break hdmi module. Regards, CK > obj-$(CONFIG_DRM_MEDIATEK_HDMI) += mtk_cec.o > obj-$(CONFIG_DRM_MEDIATEK_HDMI) += mtk_hdmi.o > obj-$(CONFIG_DRM_MEDIATEK_HDMI) += mtk_hdmi_ddc.o >