Open srcshelton opened 10 months ago
DRM_DISPLAY_CONNECTOR=m
is in our default defconfigs eg https://github.com/raspberrypi/linux/blob/rpi-6.1.y/arch/arm/configs/bcm2711_defconfig#L978 as the compatible vga-connector is used in the vc4-kms-vga666-overlay.dts overlay.
The fact that DRM_DISPLAY_HELPER
is selected by DRM_VC4
would mask that omission on any Pi platform, and I would have expected it to be set by any other rendering hardware. Realistically this shouldn't be an issue.
All those Kconfig options for DRM are from mainline Linux, so any fix needs to be authored upstream. It needs a little more investigation before sending that form of patch.
Ahh - this kernel build was broadly intended for headless CM4 use, so I really should simply disable DRM_DISPLAY_CONNECTOR
in any case… but at the same time I thought it was worth noting that this is a potentially valid configuration (in that make nconfig
, etc. allows it!) but which doesn't currently compile.
Looking at the history, 7cd70656d1285b79c001f041a017fcfee4292ff9 appears to have added the use of the drm_atomic_helperbridge* functions, but failed to add the select DRM_DISPLAY_HELPER
. You're the first to notice in the almost exactly 2 years since it was committed.
That looks like a fairly clear cut case of needing a Fixes patch. I am in the process of sorting a load of patches for dri-devel, but as it's such a weird configuration I'm afraid I don't think it warrants creating the patch in this kernel tree first. If it is a real issue to you, please create a PR to fix it up.
Also, CONFIG_VC4
only becomes available if CONFIG_SND
and CONFIG_SND_SOC
are both already set, which is also why I didn't have it selected - it wasn't shown!
If these are strictly necessary dependencies (which would make sense for the HDMI element but perhaps not from whether a GPU driver is visible point of view?) then could it be moved to a sub-menu so that it's still visible if the prerequisites aren't set - much like, say, CONFIG_LOGO
(chosen at random from the same level of sub-menu) - which would then perhaps allow CONFIG_VC4
to select CONFIG_SND_SOC
et al. rather than be hidden by them?
I'm happy to have a bash at a patch to do this, but I'll wait for confirmation that such a larger change would be welcomed before looking into it?
CONFIG_VC4
supports HDMI audio. There's no option in the driver to disable just the audio side, therefore it has a dependency on SND
and SND_SOC
. Adding an option to disable HDMI audio is unlikely to be worth it, hence the dependency. I only mentioned VC4
as it happens to enable DRM_KMS_HELPER
.
Ah, I'd made a typo earlier as I'd copied it from your report - it's DRM_KMS_HELPER' that needs to be enabled, not
DRM_DISPLAY_HELPER`
A make allnoconfig
, enable ARCH_BCM2835
, DRM
and DRM_DISPLAY_CONNECTOR
, and build does fail.
diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig
index 57946d80b02d..f6c0cddc6434 100644
--- a/drivers/gpu/drm/bridge/Kconfig
+++ b/drivers/gpu/drm/bridge/Kconfig
@@ -67,6 +67,7 @@ config DRM_CROS_EC_ANX7688
config DRM_DISPLAY_CONNECTOR
tristate "Display connector support"
depends on OF
+ select DRM_KMS_HELPER
help
Driver for display connectors with support for DDC and hot-plug
detection. Most display controllers handle display connectors
fixes it.
I was creating a PR for DRM related stuff, so stuck the diff in as part of #5716
👍
Separately, rather than having CONFIG_VC4
hidden unless CONFIG_SND
and CONFIG_SND_SOC
are already selected, would it make sense to always show CONFIG_VC4
and have it select CONFIG_SND
and CONFIG_SND_SOC
when chosen?
Kconfig dependencies are a nightmare to ensure you avoid circular dependencies, so I'm not making any significant changes to the options on VC4
.
Describe the bug
With
CONFIG_DRM_DISPLAY_CONNECTOR=m
orCONFIG_DRM_DISPLAY_CONNECTOR=y
:… it seems that some dependency is missing when 'Display connector support' is enabled in any way.
Setting
CONFIG_DRM_DISPLAY_CONNECTOR=y
requiresCONFIG_DRM=y
, but the second of the above failure-cases still happens.The setting
DRM_DISPLAY_HELPER
isn't exposed to the user, but perhaps this needs an additional entry to ensure that it is selected ifCONFIG_DRM_DISPLAY_CONNECTOR
is set?Steps to reproduce the behaviour
Set
CONFIG_DRM_DISPLAY_CONNECTOR
to any valid value other thann
in kernel.config
and rebuild.Compilation is only successful if
CONFIG_DRM_DISPLAY_CONNECTOR=n
(or there's another undeclared dependency which I don't have selected).Device (s)
Raspberry Pi CM4
System
Hardware is not running a Debian-derived OS;
Logs
No response
Additional context
No response