[PATCH 0/3] Fix Kconfig dependency issue with DMAENGINES selection
Hello,
This small series fixes a Kconfig dependency issue with the recently merged Xilixn DPSUB DRM/KMS driver. The fix is in patch 3/3, but requires a separate fixes in patches 1/3 and 2/3 to avoid circular dependencies:
drivers/i2c/Kconfig:8:error: recursive dependency detected! drivers/i2c/Kconfig:8: symbol I2C is selected by FB_DDC drivers/video/fbdev/Kconfig:63: symbol FB_DDC depends on FB drivers/video/fbdev/Kconfig:12: symbol FB is selected by DRM_KMS_FB_HELPER drivers/gpu/drm/Kconfig:80: symbol DRM_KMS_FB_HELPER depends on DRM_KMS_HELPER drivers/gpu/drm/Kconfig:74: symbol DRM_KMS_HELPER is selected by DRM_ZYNQMP_DPSUB drivers/gpu/drm/xlnx/Kconfig:1: symbol DRM_ZYNQMP_DPSUB depends on DMA_ENGINE drivers/dma/Kconfig:44: symbol DMA_ENGINE depends on DMADEVICES drivers/dma/Kconfig:6: symbol DMADEVICES is selected by SND_SOC_SH4_SIU sound/soc/sh/Kconfig:30: symbol SND_SOC_SH4_SIU is selected by SND_SIU_MIGOR sound/soc/sh/Kconfig:60: symbol SND_SIU_MIGOR depends on I2C For a resolution refer to Documentation/kbuild/kconfig-language.rst subsection "Kconfig recursive dependency limitations"
Due to the DPSUB driver being merged in v5.9, this is a candidate fix for v5.9 as well. 1/3 and 2/3 can be merged independently, 3/3 depends on the first two. What's the best course of action, can I merge this all in a single tree, or should the rapidio and ASoC patches be merged independently early in the -rc cycle, and the DRM patch later on top ? I don't expect conflicts (especially in 2/3 and 3/3), so merging the whole series in one go would be simpler in my opinion.
Laurent Pinchart (3): rapidio: Replace 'select' DMAENGINES 'with depends on' ASoC: sh: Replace 'select' DMAENGINES 'with depends on' drm: xlnx: dpsub: Fix DMADEVICES Kconfig dependency
drivers/gpu/drm/xlnx/Kconfig | 1 + drivers/rapidio/Kconfig | 2 +- sound/soc/sh/Kconfig | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-)
Enabling a whole subsystem from a single driver 'select' is frowned upon and won't be accepted in new drivers, that need to use 'depends on' instead. Existing selection of DMAENGINES will then cause circular dependencies. Replace them with a dependency.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com Acked-by: Randy Dunlap rdunlap@infradead.org --- drivers/rapidio/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/rapidio/Kconfig b/drivers/rapidio/Kconfig index e4c422d806be..b9f8514909bf 100644 --- a/drivers/rapidio/Kconfig +++ b/drivers/rapidio/Kconfig @@ -37,7 +37,7 @@ config RAPIDIO_ENABLE_RX_TX_PORTS config RAPIDIO_DMA_ENGINE bool "DMA Engine support for RapidIO" depends on RAPIDIO - select DMADEVICES + depends on DMADEVICES select DMA_ENGINE help Say Y here if you want to use DMA Engine frameork for RapidIO data
Hi Laurent.
On Wed, Jul 29, 2020 at 07:29:08PM +0300, Laurent Pinchart wrote:
Enabling a whole subsystem from a single driver 'select' is frowned upon and won't be accepted in new drivers, that need to use 'depends on' instead. Existing selection of DMAENGINES will then cause circular dependencies. Replace them with a dependency.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com Acked-by: Randy Dunlap rdunlap@infradead.org
drivers/rapidio/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/rapidio/Kconfig b/drivers/rapidio/Kconfig index e4c422d806be..b9f8514909bf 100644 --- a/drivers/rapidio/Kconfig +++ b/drivers/rapidio/Kconfig @@ -37,7 +37,7 @@ config RAPIDIO_ENABLE_RX_TX_PORTS config RAPIDIO_DMA_ENGINE bool "DMA Engine support for RapidIO" depends on RAPIDIO
- select DMADEVICES
- depends on DMADEVICES
$subject and changlog talks about DMAENGINES but the patch touches DMADEVICES??
Sam
select DMA_ENGINE help Say Y here if you want to use DMA Engine frameork for RapidIO data -- Regards,
Laurent Pinchart
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Hi Sam,
On Wed, Jul 29, 2020 at 06:43:26PM +0200, Sam Ravnborg wrote:
On Wed, Jul 29, 2020 at 07:29:08PM +0300, Laurent Pinchart wrote:
Enabling a whole subsystem from a single driver 'select' is frowned upon and won't be accepted in new drivers, that need to use 'depends on' instead. Existing selection of DMAENGINES will then cause circular dependencies. Replace them with a dependency.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com Acked-by: Randy Dunlap rdunlap@infradead.org
drivers/rapidio/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/rapidio/Kconfig b/drivers/rapidio/Kconfig index e4c422d806be..b9f8514909bf 100644 --- a/drivers/rapidio/Kconfig +++ b/drivers/rapidio/Kconfig @@ -37,7 +37,7 @@ config RAPIDIO_ENABLE_RX_TX_PORTS config RAPIDIO_DMA_ENGINE bool "DMA Engine support for RapidIO" depends on RAPIDIO
- select DMADEVICES
- depends on DMADEVICES
$subject and changlog talks about DMAENGINES but the patch touches DMADEVICES??
Clearly a typo in the subject line, it should be DMADEVICES. I'll wait a little bit to see if there are more comments, and will send a v2.
select DMA_ENGINE help Say Y here if you want to use DMA Engine frameork for RapidIO data
Enabling a whole subsystem from a single driver 'select' is frowned upon and won't be accepted in new drivers, that need to use 'depends on' instead. Existing selection of DMAENGINES will then cause circular dependencies. Replace them with a dependency.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com Acked-by: Randy Dunlap rdunlap@infradead.org --- sound/soc/sh/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/sh/Kconfig b/sound/soc/sh/Kconfig index dc20f0f7080a..ef8a29b9f641 100644 --- a/sound/soc/sh/Kconfig +++ b/sound/soc/sh/Kconfig @@ -30,8 +30,8 @@ config SND_SOC_SH4_FSI config SND_SOC_SH4_SIU tristate depends on ARCH_SHMOBILE && HAVE_CLK + depends on DMADEVICES select DMA_ENGINE - select DMADEVICES select SH_DMAE select FW_LOADER
The dpsub driver uses the DMA engine API, and thus selects DMA_ENGINE to provide that API. DMA_ENGINE depends on DMADEVICES, which can be deselected by the user, creating a possibly unmet indirect dependency:
WARNING: unmet direct dependencies detected for DMA_ENGINE Depends on [n]: DMADEVICES [=n] Selected by [m]: - DRM_ZYNQMP_DPSUB [=m] && HAS_IOMEM [=y] && (ARCH_ZYNQMP || COMPILE_TEST [=y]) && COMMON_CLK [=y] && DRM [=m] && OF [=y]
Add a dependency on DMADEVICES to fix this.
Reported-by: Randy Dunlap rdunlap@infradead.org Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com Acked-by: Randy Dunlap rdunlap@infradead.org --- drivers/gpu/drm/xlnx/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/xlnx/Kconfig b/drivers/gpu/drm/xlnx/Kconfig index aa6cd889bd11..b52c6cdfc0b8 100644 --- a/drivers/gpu/drm/xlnx/Kconfig +++ b/drivers/gpu/drm/xlnx/Kconfig @@ -2,6 +2,7 @@ config DRM_ZYNQMP_DPSUB tristate "ZynqMP DisplayPort Controller Driver" depends on ARCH_ZYNQMP || COMPILE_TEST depends on COMMON_CLK && DRM && OF + depends on DMADEVICES select DMA_ENGINE select DRM_GEM_CMA_HELPER select DRM_KMS_CMA_HELPER
On Wed, 29 Jul 2020 19:29:07 +0300, Laurent Pinchart wrote:
This small series fixes a Kconfig dependency issue with the recently merged Xilixn DPSUB DRM/KMS driver. The fix is in patch 3/3, but requires a separate fixes in patches 1/3 and 2/3 to avoid circular dependencies:
drivers/i2c/Kconfig:8:error: recursive dependency detected! drivers/i2c/Kconfig:8: symbol I2C is selected by FB_DDC drivers/video/fbdev/Kconfig:63: symbol FB_DDC depends on FB drivers/video/fbdev/Kconfig:12: symbol FB is selected by DRM_KMS_FB_HELPER drivers/gpu/drm/Kconfig:80: symbol DRM_KMS_FB_HELPER depends on DRM_KMS_HELPER drivers/gpu/drm/Kconfig:74: symbol DRM_KMS_HELPER is selected by DRM_ZYNQMP_DPSUB drivers/gpu/drm/xlnx/Kconfig:1: symbol DRM_ZYNQMP_DPSUB depends on DMA_ENGINE drivers/dma/Kconfig:44: symbol DMA_ENGINE depends on DMADEVICES drivers/dma/Kconfig:6: symbol DMADEVICES is selected by SND_SOC_SH4_SIU sound/soc/sh/Kconfig:30: symbol SND_SOC_SH4_SIU is selected by SND_SIU_MIGOR sound/soc/sh/Kconfig:60: symbol SND_SIU_MIGOR depends on I2C For a resolution refer to Documentation/kbuild/kconfig-language.rst subsection "Kconfig recursive dependency limitations"
[...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/1] ASoC: sh: Replace 'select' DMADEVICES 'with depends on' commit: 2dbf11ec7d3a63ebde946b5747ad6bd74d45adb1
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks, Mark
participants (3)
-
Laurent Pinchart
-
Mark Brown
-
Sam Ravnborg