diff mbox series

[v3,07/13] drm: Make drivers depends on DRM_DW_HDMI

Message ID 20240327-kms-kconfig-helpers-v3-7-eafee11b84b3@kernel.org (mailing list archive)
State New, archived
Headers show
Series drm/display: Convert helpers Kconfig symbols to depends on | expand

Commit Message

Maxime Ripard March 27, 2024, 10:57 a.m. UTC
DRM_DW_HDMI has a number of dependencies that might not be enabled.
However, drivers were used to selecting it while not enforcing the
DRM_DW_HDMI dependencies.

This could result in Kconfig warnings (and further build breakages) such
as:

  Kconfig warnings: (for reference only)
     WARNING: unmet direct dependencies detected for DRM_DW_HDMI
     Depends on [n]: HAS_IOMEM [=y] && DRM [=m] && DRM_BRIDGE [=y] && DRM_DISPLAY_HELPER [=n]
     Selected by [m]:
     - DRM_SUN8I_DW_HDMI [=m] && HAS_IOMEM [=y] && DRM_SUN4I [=m]

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202403262127.kZkttfNz-lkp@intel.com/
Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/bridge/imx/Kconfig      | 4 ++--
 drivers/gpu/drm/imx/ipuv3/Kconfig       | 5 +++--
 drivers/gpu/drm/ingenic/Kconfig         | 2 +-
 drivers/gpu/drm/meson/Kconfig           | 2 +-
 drivers/gpu/drm/renesas/rcar-du/Kconfig | 2 +-
 drivers/gpu/drm/rockchip/Kconfig        | 2 +-
 drivers/gpu/drm/sun4i/Kconfig           | 2 +-
 7 files changed, 10 insertions(+), 9 deletions(-)

Comments

Jani Nikula March 28, 2024, 10:01 a.m. UTC | #1
On Wed, 27 Mar 2024, Maxime Ripard <mripard@kernel.org> wrote:
> DRM_DW_HDMI has a number of dependencies that might not be enabled.
> However, drivers were used to selecting it while not enforcing the
> DRM_DW_HDMI dependencies.
>
> This could result in Kconfig warnings (and further build breakages) such
> as:
>
>   Kconfig warnings: (for reference only)
>      WARNING: unmet direct dependencies detected for DRM_DW_HDMI
>      Depends on [n]: HAS_IOMEM [=y] && DRM [=m] && DRM_BRIDGE [=y] && DRM_DISPLAY_HELPER [=n]
>      Selected by [m]:
>      - DRM_SUN8I_DW_HDMI [=m] && HAS_IOMEM [=y] && DRM_SUN4I [=m]
>
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202403262127.kZkttfNz-lkp@intel.com/
> Signed-off-by: Maxime Ripard <mripard@kernel.org>

Acked-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/bridge/imx/Kconfig      | 4 ++--
>  drivers/gpu/drm/imx/ipuv3/Kconfig       | 5 +++--
>  drivers/gpu/drm/ingenic/Kconfig         | 2 +-
>  drivers/gpu/drm/meson/Kconfig           | 2 +-
>  drivers/gpu/drm/renesas/rcar-du/Kconfig | 2 +-
>  drivers/gpu/drm/rockchip/Kconfig        | 2 +-
>  drivers/gpu/drm/sun4i/Kconfig           | 2 +-
>  7 files changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/imx/Kconfig b/drivers/gpu/drm/bridge/imx/Kconfig
> index 5965e8027529..7687ed652df5 100644
> --- a/drivers/gpu/drm/bridge/imx/Kconfig
> +++ b/drivers/gpu/drm/bridge/imx/Kconfig
> @@ -3,13 +3,13 @@ if ARCH_MXC || COMPILE_TEST
>  config DRM_IMX_LDB_HELPER
>  	tristate
>  
>  config DRM_IMX8MP_DW_HDMI_BRIDGE
>  	tristate "Freescale i.MX8MP HDMI-TX bridge support"
> -	depends on OF
>  	depends on COMMON_CLK
> -	select DRM_DW_HDMI
> +	depends on DRM_DW_HDMI
> +	depends on OF
>  	select DRM_IMX8MP_HDMI_PVI
>  	select PHY_FSL_SAMSUNG_HDMI_PHY
>  	help
>  	  Choose this to enable support for the internal HDMI encoder found
>  	  on the i.MX8MP SoC.
> diff --git a/drivers/gpu/drm/imx/ipuv3/Kconfig b/drivers/gpu/drm/imx/ipuv3/Kconfig
> index bacf0655ebaf..5d810ac02171 100644
> --- a/drivers/gpu/drm/imx/ipuv3/Kconfig
> +++ b/drivers/gpu/drm/imx/ipuv3/Kconfig
> @@ -33,9 +33,10 @@ config DRM_IMX_LDB
>  	  Choose this to enable the internal LVDS Display Bridge (LDB)
>  	  found on i.MX53 and i.MX6 processors.
>  
>  config DRM_IMX_HDMI
>  	tristate "Freescale i.MX DRM HDMI"
> -	select DRM_DW_HDMI
> -	depends on DRM_IMX && OF
> +	depends on DRM_DW_HDMI
> +	depends on DRM_IMX
> +	depends on OF
>  	help
>  	  Choose this if you want to use HDMI on i.MX6.
> diff --git a/drivers/gpu/drm/ingenic/Kconfig b/drivers/gpu/drm/ingenic/Kconfig
> index 3db117c5edd9..23effeb2ac72 100644
> --- a/drivers/gpu/drm/ingenic/Kconfig
> +++ b/drivers/gpu/drm/ingenic/Kconfig
> @@ -25,12 +25,12 @@ config DRM_INGENIC_IPU
>  
>  	  The Image Processing Unit (IPU) will appear as a second primary plane.
>  
>  config DRM_INGENIC_DW_HDMI
>  	tristate "Ingenic specific support for Synopsys DW HDMI"
> +	depends on DRM_DW_HDMI
>  	depends on MACH_JZ4780
> -	select DRM_DW_HDMI
>  	help
>  	  Choose this option to enable Synopsys DesignWare HDMI based driver.
>  	  If you want to enable HDMI on Ingenic JZ4780 based SoC, you should
>  	  select this option.
>  
> diff --git a/drivers/gpu/drm/meson/Kconfig b/drivers/gpu/drm/meson/Kconfig
> index 615fdd0ce41b..5520b9e3f010 100644
> --- a/drivers/gpu/drm/meson/Kconfig
> +++ b/drivers/gpu/drm/meson/Kconfig
> @@ -11,13 +11,13 @@ config DRM_MESON
>  	select MESON_CANVAS
>  	select CEC_CORE if CEC_NOTIFIER
>  
>  config DRM_MESON_DW_HDMI
>  	tristate "HDMI Synopsys Controller support for Amlogic Meson Display"
> +	depends on DRM_DW_HDMI
>  	depends on DRM_MESON
>  	default y if DRM_MESON
> -	select DRM_DW_HDMI
>  	imply DRM_DW_HDMI_I2S_AUDIO
>  
>  config DRM_MESON_DW_MIPI_DSI
>  	tristate "MIPI DSI Synopsys Controller support for Amlogic Meson Display"
>  	depends on DRM_MESON
> diff --git a/drivers/gpu/drm/renesas/rcar-du/Kconfig b/drivers/gpu/drm/renesas/rcar-du/Kconfig
> index 53c356aed5d5..2dc739db2ba3 100644
> --- a/drivers/gpu/drm/renesas/rcar-du/Kconfig
> +++ b/drivers/gpu/drm/renesas/rcar-du/Kconfig
> @@ -23,12 +23,12 @@ config DRM_RCAR_CMM
>  	depends on DRM_RCAR_USE_CMM
>  
>  config DRM_RCAR_DW_HDMI
>  	tristate "R-Car Gen3 and RZ/G2 DU HDMI Encoder Support"
>  	depends on DRM && OF
> +	depends on DRM_DW_HDMI
>  	depends on DRM_RCAR_DU || COMPILE_TEST
> -	select DRM_DW_HDMI
>  	help
>  	  Enable support for R-Car Gen3 or RZ/G2 internal HDMI encoder.
>  
>  config DRM_RCAR_USE_LVDS
>  	bool "R-Car DU LVDS Encoder Support"
> diff --git a/drivers/gpu/drm/rockchip/Kconfig b/drivers/gpu/drm/rockchip/Kconfig
> index 1bf3e2829cd0..0d5260e10f27 100644
> --- a/drivers/gpu/drm/rockchip/Kconfig
> +++ b/drivers/gpu/drm/rockchip/Kconfig
> @@ -5,11 +5,10 @@ config DRM_ROCKCHIP
>  	select DRM_GEM_DMA_HELPER
>  	select DRM_KMS_HELPER
>  	select DRM_PANEL
>  	select VIDEOMODE_HELPERS
>  	select DRM_ANALOGIX_DP if ROCKCHIP_ANALOGIX_DP
> -	select DRM_DW_HDMI if ROCKCHIP_DW_HDMI
>  	select DRM_DW_MIPI_DSI if ROCKCHIP_DW_MIPI_DSI
>  	select GENERIC_PHY if ROCKCHIP_DW_MIPI_DSI
>  	select GENERIC_PHY_MIPI_DPHY if ROCKCHIP_DW_MIPI_DSI
>  	select SND_SOC_HDMI_CODEC if ROCKCHIP_CDN_DP && SND_SOC
>  	help
> @@ -55,10 +54,11 @@ config ROCKCHIP_CDN_DP
>  	  RK3399 based SoC, you should select this
>  	  option.
>  
>  config ROCKCHIP_DW_HDMI
>  	bool "Rockchip specific extensions for Synopsys DW HDMI"
> +	depends on DRM_DW_HDMI
>  	help
>  	  This selects support for Rockchip SoC specific extensions
>  	  for the Synopsys DesignWare HDMI driver. If you want to
>  	  enable HDMI on RK3288 or RK3399 based SoC, you should select
>  	  this option.
> diff --git a/drivers/gpu/drm/sun4i/Kconfig b/drivers/gpu/drm/sun4i/Kconfig
> index 4741d9f6544c..5b19c7cb7b7e 100644
> --- a/drivers/gpu/drm/sun4i/Kconfig
> +++ b/drivers/gpu/drm/sun4i/Kconfig
> @@ -55,12 +55,12 @@ config DRM_SUN6I_DSI
>  	  sun6i_mipi_dsi.
>  
>  config DRM_SUN8I_DW_HDMI
>  	tristate "Support for Allwinner version of DesignWare HDMI"
>  	depends on DRM_SUN4I
> +	depends on DRM_DW_HDMI
>  	default DRM_SUN4I
> -	select DRM_DW_HDMI
>  	help
>  	  Choose this option if you have an Allwinner SoC with the
>  	  DesignWare HDMI controller. SoCs that support HDMI and
>  	  have a Display Engine 2.0 contain this controller. If M is
>  	  selected the module will be called sun8i_dw_hdmi.
Mark Brown April 2, 2024, 3:43 p.m. UTC | #2
On Wed, Mar 27, 2024 at 11:57:02AM +0100, Maxime Ripard wrote:

> DRM_DW_HDMI has a number of dependencies that might not be enabled.
> However, drivers were used to selecting it while not enforcing the
> DRM_DW_HDMI dependencies.
> 
> This could result in Kconfig warnings (and further build breakages) such
> as:
> 
>   Kconfig warnings: (for reference only)
>      WARNING: unmet direct dependencies detected for DRM_DW_HDMI
>      Depends on [n]: HAS_IOMEM [=y] && DRM [=m] && DRM_BRIDGE [=y] && DRM_DISPLAY_HELPER [=n]
>      Selected by [m]:
>      - DRM_SUN8I_DW_HDMI [=m] && HAS_IOMEM [=y] && DRM_SUN4I [=m]

This has landed in -next and appears to be causing breakage for several
platforms using these devices.  For example I'm seeing the HDMI fail to
probe on sun50i-a64-pin64-plus with arm64 defconfig, the DT kselftest
result isn't terribly informative but it can be seen here:

   https://lava.sirena.org.uk/scheduler/job/78288#L6007

which I bisected to this change:

# bad: [c0b832517f627ead3388c6f0c74e8ac10ad5774b] Add linux-next specific files for 20240402
# good: [0fc83069bcaee78f60b8511d9453a9441963a072] Merge branch 'for-linux-next-fixes' of https://gitlab.freedesktop.org/drm/misc/kernel.git
# good: [ba5206881843e16b74a07c37970dcc44d22f8f6f] spi: spi.h: add missing kernel-doc for @last_cs_index_mask
# good: [64fe73d10323e399b2e8eb5407390bcb302a046c] spi: fsl: remove is_dma_mapped checks
# good: [bb77c99ee6d3d704086acf141d3ec92601747809] spi: pxa2xx: Skip SSP initialization if it's done elsewhere
# good: [e64d3b6fc9a388d7dc516668651cf4404bffec9b] spi: omap2-mcpsi: Enable MULTI-mode in more situations
# good: [57ad033ce09d4d0c866ac558fc3c4cf53cfb2599] ASoC: Intel: sof_cs42l42: add mtl_cs42l42_def for mtl boards
# good: [7b5f2072657a9041cbaf4ba139f672be11694ca3] ASoC: dt-bindings: fsl-sai: allow only one dma-names
# good: [a5bef84422eb066ee8fa5c13960657a79b3cc1e7] spi: fsl-dspi: drop driver owner assignment
# good: [29580cd7b9c6f975e88597ca66a001b16b97bae9] ASoC: sdw-mockup: drop driver owner assignment
# good: [ea60ab95723f5738e7737b56dda95e6feefa5b50] ASoC: kirkwood: Fix potential NULL dereference
# good: [c0a3873b9938bfaa77bd337cad33266a50a6583f] ASoC: nau8325: new driver
# good: [559aebe45a054a479fdbd2a3dfba999ffd73cc9d] ASoC: sun8i-codec: Fix build with CONFIG_SND_JACK_INPUT_DEV disabled
# good: [d5449432f794e75cd4f5e46bc33bfe6ce20b657d] spi: pxa2xx: Switch to use dev_err_probe()
# good: [7b95ee0db7e0a7f99077f1b926323c7bf0d2e8f8] ASoC: soc-jack: Get rid of legacy GPIO support
# good: [ea5fee227ff3dae209062ac9544906debe1e9ac1] ASoC: hdac_hda: improve error logs
# good: [4ed0915f5bc4bcc81bca783a5b984f3d81e9764e] ASoC: codecs: Add RK3308 internal audio codec driver
# good: [59ffeb15b2f7b44cf934fd778dc0d98a35aa6a84] ASoC: Intel: sof_sdw: Add support for cs42l43 optional speaker output
# good: [1e90a846493c716e3e6b4d901fc0844e9eea6430] ASoC: soc-dai: Note valid values of sysclock direction
# good: [61cafaeab5bca2d3e6a68ee8fa92b5c10b8610ca] ASoC: Intel: sof_rt5682: board id cleanup for cml boards
# good: [9b163e0d330debbf7dcc14b2c3e2dc19a3b50a1d] spi: remove struct spi_message::is_dma_mapped
# good: [b340f56a74b62d8ce8617650c8ab4a26c87ba5c5] ASoC: dt-bindings: wm8974: Convert to dtschema
# good: [bdeef5dcea6b164f4bd614655821b1ef12ebec9a] spi: rspi: Get rid of unused struct rspi_plat_data
# good: [885dd75f41f9fff5b277bc6ab28ad798f98a37b4] ASoC: dt-bindings: fsl-esai: Convert fsl,esai.txt to yaml
# good: [10402419f2d60890525f590b54d0eaec3de0d87a] spi: spi-mt65xx: Rename a variable in interrupt handler
# good: [9855f05e553637f05494cf47a3154cbf9a5cfc67] ASoC: fsl: imx-es8328: Switch to using gpiod API
# good: [5f39231888c63f0a7708abc86b51b847476379d8] ASoC: mediatek: Assign dummy when codec not specified for a DAI link
# good: [5edeb7d312628961046eec9b26a7e72f44baf846] regulator: pca9450: add pca9451a support
# good: [c14445bdcb98feddf9afaeb05e6193cc1f8eec1a] ASoC: fsl: imx-rpmsg: Update to correct DT node
# good: [a39111b1cf0864b1782f30f9a1fa65260d057327] spi: xilinx: Make num_chipselect 8-bit in the struct xspi_platform_data
# good: [b5867a5c0d7a6bf36f59f3d472c7aed33ca4d02c] spi: pxa2xx: Use proper SSP header in soc/pxa/ssp.c
# good: [60c10c678b582d41532fefa12667d8adca75811b] ASoC: Intel: avs: i2s_test: Remove redundant dapm routes
# good: [21fa98f4197bb3365dda1417708b318f403c13c1] ASoC: sun8i-codec: Implement jack and accessory detection
# good: [cee28113db17f0de58df0eaea4e2756c404ee01f] ASoC: dmaengine_pcm: Allow passing component name via config
# good: [aad6b35290f52639d3601063d33d9621c0948a04] regmap: maple: Remove second semicolon
# good: [e6913c6ef83c80aa7569c9e08204542222fbf542] ASoC: codecs: ES8326: Delete unused REG_SUPPLY
# good: [0c5f77f4eaef8ed9fe752d21f40ac471dd511cfc] dt-bindings: regulator: qcom,usb-vbus-regulator: Add PM7250B compatible
# good: [ab470abe58c09b2fbe2c1478e67a904fd803e84f] regulator: rpi-panel-attiny: convert to use maple tree register cache
git bisect start 'c0b832517f627ead3388c6f0c74e8ac10ad5774b' '0fc83069bcaee78f60b8511d9453a9441963a072' 'ba5206881843e16b74a07c37970dcc44d22f8f6f' '64fe73d10323e399b2e8eb5407390bcb302a046c' 'bb77c99ee6d3d704086acf141d3ec92601747809' 'e64d3b6fc9a388d7dc516668651cf4404bffec9b' '57ad033ce09d4d0c866ac558fc3c4cf53cfb2599' '7b5f2072657a9041cbaf4ba139f672be11694ca3' 'a5bef84422eb066ee8fa5c13960657a79b3cc1e7' '29580cd7b9c6f975e88597ca66a001b16b97bae9' 'ea60ab95723f5738e7737b56dda95e6feefa5b50' 'c0a3873b9938bfaa77bd337cad33266a50a6583f' '559aebe45a054a479fdbd2a3dfba999ffd73cc9d' 'd5449432f794e75cd4f5e46bc33bfe6ce20b657d' '7b95ee0db7e0a7f99077f1b926323c7bf0d2e8f8' 'ea5fee227ff3dae209062ac9544906debe1e9ac1' '4ed0915f5bc4bcc81bca783a5b984f3d81e9764e' '59ffeb15b2f7b44cf934fd778dc0d98a35aa6a84' '1e90a846493c716e3e6b4d901fc0844e9eea6430' '61cafaeab5bca2d3e6a68ee8fa92b5c10b8610ca' '9b163e0d330debbf7dcc14b2c3e2dc19a3b50a1d' 'b340f56a74b62d8ce8617650c8ab4a26c87ba5c5' 'bdeef5dcea6b164f4bd614655821b1ef12ebec9a' '885dd75f41f9fff5b277bc6ab28ad798f98a37b4' '10402419f2d60890525f590b54d0eaec3de0d87a' '9855f05e553637f05494cf47a3154cbf9a5cfc67' '5f39231888c63f0a7708abc86b51b847476379d8' '5edeb7d312628961046eec9b26a7e72f44baf846' 'c14445bdcb98feddf9afaeb05e6193cc1f8eec1a' 'a39111b1cf0864b1782f30f9a1fa65260d057327' 'b5867a5c0d7a6bf36f59f3d472c7aed33ca4d02c' '60c10c678b582d41532fefa12667d8adca75811b' '21fa98f4197bb3365dda1417708b318f403c13c1' 'cee28113db17f0de58df0eaea4e2756c404ee01f' 'aad6b35290f52639d3601063d33d9621c0948a04' 'e6913c6ef83c80aa7569c9e08204542222fbf542' '0c5f77f4eaef8ed9fe752d21f40ac471dd511cfc' 'ab470abe58c09b2fbe2c1478e67a904fd803e84f'
# bad: [c0b832517f627ead3388c6f0c74e8ac10ad5774b] Add linux-next specific files for 20240402
git bisect bad c0b832517f627ead3388c6f0c74e8ac10ad5774b
# bad: [784b758e641c4b36be7ef8ab585bea834099b030] Merge branch 'for-linux-next' of https://gitlab.freedesktop.org/drm/misc/kernel.git
git bisect bad 784b758e641c4b36be7ef8ab585bea834099b030
# good: [8b8b4dca2ddd82d3ae7e2a6a2fc7d49e511ceae7] Merge branch 'dev' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat.git
git bisect good 8b8b4dca2ddd82d3ae7e2a6a2fc7d49e511ceae7
# good: [2c20b30ed316f5cb8773e5f99c02cd997f2374b7] Merge branch 'main' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
git bisect good 2c20b30ed316f5cb8773e5f99c02cd997f2374b7
# good: [e1191745c053b07a2e7364f8b95cda470f03cbbe] Merge branch 'nand/next' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git
git bisect good e1191745c053b07a2e7364f8b95cda470f03cbbe
# good: [6e3fdedcf0bc03c852d9fdbb5443f1e43103195f] drm/edid: Add a function to match EDID with identity
git bisect good 6e3fdedcf0bc03c852d9fdbb5443f1e43103195f
# bad: [4d15125d7fe637f401e64e33c99513adf6586fdd] drm: Switch DRM_DISPLAY_DP_AUX_BUS to depends on
git bisect bad 4d15125d7fe637f401e64e33c99513adf6586fdd
# good: [0b45921c2a8831834a5f8a52ddd0b25b5b1c6faf] drm/panthor: Don't use virt_to_pfn()
git bisect good 0b45921c2a8831834a5f8a52ddd0b25b5b1c6faf
# good: [462a7c0f8e3f833e5ca3dd3f427882b60b3f38e9] drm/panthor: Fix wrong kernel-doc format in the uAPI header
git bisect good 462a7c0f8e3f833e5ca3dd3f427882b60b3f38e9
# good: [4d66d841a72557053fa44f9b6ebf09cf78223ed3] drm/display: Make DisplayPort AUX Chardev Kconfig name consistent
git bisect good 4d66d841a72557053fa44f9b6ebf09cf78223ed3
# good: [d674858ff979550a0e97b4ac766f2640f0d9d7e7] drm/display: Make all helpers visible and switch to depends on
git bisect good d674858ff979550a0e97b4ac766f2640f0d9d7e7
# bad: [e075e496f516bf92bc0cbaf94d64e8d4a6b58321] drm: Switch DRM_DISPLAY_HELPER to depends on
git bisect bad e075e496f516bf92bc0cbaf94d64e8d4a6b58321
# bad: [c0e0f139354c01e0213204e4a96e7076e5a3e396] drm: Make drivers depends on DRM_DW_HDMI
git bisect bad c0e0f139354c01e0213204e4a96e7076e5a3e396
# first bad commit: [c0e0f139354c01e0213204e4a96e7076e5a3e396] drm: Make drivers depends on DRM_DW_HDMI

I'm also seeing similar problems on sun50i-h5-libretech-all-h3-cc which
bisected to the same commit, and on imx6dl-udoo and imx6q-udoo with
multi_v7_defconfig which I didn't run bisects for.  I didn't fully check
all the boards.

The change introduces a new dependency on DRM_DW_HDMI to the various
drivers but I'm not seeing any defconfig updates which turn that option
anywhere so it's not clear how this is expected to avoid regressing the
defconfig behaviours unless I'm missing something?
Alexander Stein April 3, 2024, 6:50 a.m. UTC | #3
Hi,

Am Dienstag, 2. April 2024, 17:43:41 CEST schrieb Mark Brown:
> On Wed, Mar 27, 2024 at 11:57:02AM +0100, Maxime Ripard wrote:
> 
> > DRM_DW_HDMI has a number of dependencies that might not be enabled.
> > However, drivers were used to selecting it while not enforcing the
> > DRM_DW_HDMI dependencies.
> > 
> > This could result in Kconfig warnings (and further build breakages) such
> > as:
> > 
> >   Kconfig warnings: (for reference only)
> >      WARNING: unmet direct dependencies detected for DRM_DW_HDMI
> >      Depends on [n]: HAS_IOMEM [=y] && DRM [=m] && DRM_BRIDGE [=y] && DRM_DISPLAY_HELPER [=n]
> >      Selected by [m]:
> >      - DRM_SUN8I_DW_HDMI [=m] && HAS_IOMEM [=y] && DRM_SUN4I [=m]
> 
> This has landed in -next and appears to be causing breakage for several
> platforms using these devices.  For example I'm seeing the HDMI fail to
> probe on sun50i-a64-pin64-plus with arm64 defconfig, the DT kselftest
> result isn't terribly informative but it can be seen here:
> [snip]
> 
> The change introduces a new dependency on DRM_DW_HDMI to the various
> drivers but I'm not seeing any defconfig updates which turn that option
> anywhere so it's not clear how this is expected to avoid regressing the
> defconfig behaviours unless I'm missing something?

I noticed the same. From what I can tell, several drivers (e.g. imx8mp and
imx6q) now depend on DRM_DW_HDMI without anybody actually selecting it.
This results in a dependency which can not be enabled manually.
Reverting restores a working driver.

Best regards,
Alexander
Mark Brown April 23, 2024, 5:45 a.m. UTC | #4
On Tue, Apr 02, 2024 at 04:43:46PM +0100, Mark Brown wrote:
> On Wed, Mar 27, 2024 at 11:57:02AM +0100, Maxime Ripard wrote:
> 
> > DRM_DW_HDMI has a number of dependencies that might not be enabled.
> > However, drivers were used to selecting it while not enforcing the
> > DRM_DW_HDMI dependencies.
> > 
> > This could result in Kconfig warnings (and further build breakages) such
> > as:
> > 
> >   Kconfig warnings: (for reference only)
> >      WARNING: unmet direct dependencies detected for DRM_DW_HDMI
> >      Depends on [n]: HAS_IOMEM [=y] && DRM [=m] && DRM_BRIDGE [=y] && DRM_DISPLAY_HELPER [=n]
> >      Selected by [m]:
> >      - DRM_SUN8I_DW_HDMI [=m] && HAS_IOMEM [=y] && DRM_SUN4I [=m]

> This has landed in -next and appears to be causing breakage for several
> platforms using these devices.  For example I'm seeing the HDMI fail to
> probe on sun50i-a64-pin64-plus with arm64 defconfig, the DT kselftest
> result isn't terribly informative but it can be seen here:

It has now been *three* weeks that this breakage has sat unaddressed in
-next, this has been making my CI for -next unusable.  Given that
getting the defconfig bits of this merged appears somwhow unreasonably
difficult can we please drop these changes from the DRM tree until some
strategy for getting everything merged is put into place?
Jani Nikula April 23, 2024, 8:05 a.m. UTC | #5
On Tue, 23 Apr 2024, Mark Brown <broonie@kernel.org> wrote:
> On Tue, Apr 02, 2024 at 04:43:46PM +0100, Mark Brown wrote:
>> On Wed, Mar 27, 2024 at 11:57:02AM +0100, Maxime Ripard wrote:
>> 
>> > DRM_DW_HDMI has a number of dependencies that might not be enabled.
>> > However, drivers were used to selecting it while not enforcing the
>> > DRM_DW_HDMI dependencies.
>> > 
>> > This could result in Kconfig warnings (and further build breakages) such
>> > as:
>> > 
>> >   Kconfig warnings: (for reference only)
>> >      WARNING: unmet direct dependencies detected for DRM_DW_HDMI
>> >      Depends on [n]: HAS_IOMEM [=y] && DRM [=m] && DRM_BRIDGE [=y] && DRM_DISPLAY_HELPER [=n]
>> >      Selected by [m]:
>> >      - DRM_SUN8I_DW_HDMI [=m] && HAS_IOMEM [=y] && DRM_SUN4I [=m]
>
>> This has landed in -next and appears to be causing breakage for several
>> platforms using these devices.  For example I'm seeing the HDMI fail to
>> probe on sun50i-a64-pin64-plus with arm64 defconfig, the DT kselftest
>> result isn't terribly informative but it can be seen here:
>
> It has now been *three* weeks that this breakage has sat unaddressed in
> -next, this has been making my CI for -next unusable.  Given that
> getting the defconfig bits of this merged appears somwhow unreasonably
> difficult can we please drop these changes from the DRM tree until some
> strategy for getting everything merged is put into place?

This is what's being done [1].


BR,
Jani.


[1] https://lore.kernel.org/r/cover.1713780345.git.geert+renesas@glider.be
diff mbox series

Patch

diff --git a/drivers/gpu/drm/bridge/imx/Kconfig b/drivers/gpu/drm/bridge/imx/Kconfig
index 5965e8027529..7687ed652df5 100644
--- a/drivers/gpu/drm/bridge/imx/Kconfig
+++ b/drivers/gpu/drm/bridge/imx/Kconfig
@@ -3,13 +3,13 @@  if ARCH_MXC || COMPILE_TEST
 config DRM_IMX_LDB_HELPER
 	tristate
 
 config DRM_IMX8MP_DW_HDMI_BRIDGE
 	tristate "Freescale i.MX8MP HDMI-TX bridge support"
-	depends on OF
 	depends on COMMON_CLK
-	select DRM_DW_HDMI
+	depends on DRM_DW_HDMI
+	depends on OF
 	select DRM_IMX8MP_HDMI_PVI
 	select PHY_FSL_SAMSUNG_HDMI_PHY
 	help
 	  Choose this to enable support for the internal HDMI encoder found
 	  on the i.MX8MP SoC.
diff --git a/drivers/gpu/drm/imx/ipuv3/Kconfig b/drivers/gpu/drm/imx/ipuv3/Kconfig
index bacf0655ebaf..5d810ac02171 100644
--- a/drivers/gpu/drm/imx/ipuv3/Kconfig
+++ b/drivers/gpu/drm/imx/ipuv3/Kconfig
@@ -33,9 +33,10 @@  config DRM_IMX_LDB
 	  Choose this to enable the internal LVDS Display Bridge (LDB)
 	  found on i.MX53 and i.MX6 processors.
 
 config DRM_IMX_HDMI
 	tristate "Freescale i.MX DRM HDMI"
-	select DRM_DW_HDMI
-	depends on DRM_IMX && OF
+	depends on DRM_DW_HDMI
+	depends on DRM_IMX
+	depends on OF
 	help
 	  Choose this if you want to use HDMI on i.MX6.
diff --git a/drivers/gpu/drm/ingenic/Kconfig b/drivers/gpu/drm/ingenic/Kconfig
index 3db117c5edd9..23effeb2ac72 100644
--- a/drivers/gpu/drm/ingenic/Kconfig
+++ b/drivers/gpu/drm/ingenic/Kconfig
@@ -25,12 +25,12 @@  config DRM_INGENIC_IPU
 
 	  The Image Processing Unit (IPU) will appear as a second primary plane.
 
 config DRM_INGENIC_DW_HDMI
 	tristate "Ingenic specific support for Synopsys DW HDMI"
+	depends on DRM_DW_HDMI
 	depends on MACH_JZ4780
-	select DRM_DW_HDMI
 	help
 	  Choose this option to enable Synopsys DesignWare HDMI based driver.
 	  If you want to enable HDMI on Ingenic JZ4780 based SoC, you should
 	  select this option.
 
diff --git a/drivers/gpu/drm/meson/Kconfig b/drivers/gpu/drm/meson/Kconfig
index 615fdd0ce41b..5520b9e3f010 100644
--- a/drivers/gpu/drm/meson/Kconfig
+++ b/drivers/gpu/drm/meson/Kconfig
@@ -11,13 +11,13 @@  config DRM_MESON
 	select MESON_CANVAS
 	select CEC_CORE if CEC_NOTIFIER
 
 config DRM_MESON_DW_HDMI
 	tristate "HDMI Synopsys Controller support for Amlogic Meson Display"
+	depends on DRM_DW_HDMI
 	depends on DRM_MESON
 	default y if DRM_MESON
-	select DRM_DW_HDMI
 	imply DRM_DW_HDMI_I2S_AUDIO
 
 config DRM_MESON_DW_MIPI_DSI
 	tristate "MIPI DSI Synopsys Controller support for Amlogic Meson Display"
 	depends on DRM_MESON
diff --git a/drivers/gpu/drm/renesas/rcar-du/Kconfig b/drivers/gpu/drm/renesas/rcar-du/Kconfig
index 53c356aed5d5..2dc739db2ba3 100644
--- a/drivers/gpu/drm/renesas/rcar-du/Kconfig
+++ b/drivers/gpu/drm/renesas/rcar-du/Kconfig
@@ -23,12 +23,12 @@  config DRM_RCAR_CMM
 	depends on DRM_RCAR_USE_CMM
 
 config DRM_RCAR_DW_HDMI
 	tristate "R-Car Gen3 and RZ/G2 DU HDMI Encoder Support"
 	depends on DRM && OF
+	depends on DRM_DW_HDMI
 	depends on DRM_RCAR_DU || COMPILE_TEST
-	select DRM_DW_HDMI
 	help
 	  Enable support for R-Car Gen3 or RZ/G2 internal HDMI encoder.
 
 config DRM_RCAR_USE_LVDS
 	bool "R-Car DU LVDS Encoder Support"
diff --git a/drivers/gpu/drm/rockchip/Kconfig b/drivers/gpu/drm/rockchip/Kconfig
index 1bf3e2829cd0..0d5260e10f27 100644
--- a/drivers/gpu/drm/rockchip/Kconfig
+++ b/drivers/gpu/drm/rockchip/Kconfig
@@ -5,11 +5,10 @@  config DRM_ROCKCHIP
 	select DRM_GEM_DMA_HELPER
 	select DRM_KMS_HELPER
 	select DRM_PANEL
 	select VIDEOMODE_HELPERS
 	select DRM_ANALOGIX_DP if ROCKCHIP_ANALOGIX_DP
-	select DRM_DW_HDMI if ROCKCHIP_DW_HDMI
 	select DRM_DW_MIPI_DSI if ROCKCHIP_DW_MIPI_DSI
 	select GENERIC_PHY if ROCKCHIP_DW_MIPI_DSI
 	select GENERIC_PHY_MIPI_DPHY if ROCKCHIP_DW_MIPI_DSI
 	select SND_SOC_HDMI_CODEC if ROCKCHIP_CDN_DP && SND_SOC
 	help
@@ -55,10 +54,11 @@  config ROCKCHIP_CDN_DP
 	  RK3399 based SoC, you should select this
 	  option.
 
 config ROCKCHIP_DW_HDMI
 	bool "Rockchip specific extensions for Synopsys DW HDMI"
+	depends on DRM_DW_HDMI
 	help
 	  This selects support for Rockchip SoC specific extensions
 	  for the Synopsys DesignWare HDMI driver. If you want to
 	  enable HDMI on RK3288 or RK3399 based SoC, you should select
 	  this option.
diff --git a/drivers/gpu/drm/sun4i/Kconfig b/drivers/gpu/drm/sun4i/Kconfig
index 4741d9f6544c..5b19c7cb7b7e 100644
--- a/drivers/gpu/drm/sun4i/Kconfig
+++ b/drivers/gpu/drm/sun4i/Kconfig
@@ -55,12 +55,12 @@  config DRM_SUN6I_DSI
 	  sun6i_mipi_dsi.
 
 config DRM_SUN8I_DW_HDMI
 	tristate "Support for Allwinner version of DesignWare HDMI"
 	depends on DRM_SUN4I
+	depends on DRM_DW_HDMI
 	default DRM_SUN4I
-	select DRM_DW_HDMI
 	help
 	  Choose this option if you have an Allwinner SoC with the
 	  DesignWare HDMI controller. SoCs that support HDMI and
 	  have a Display Engine 2.0 contain this controller. If M is
 	  selected the module will be called sun8i_dw_hdmi.