On Thu Dec 18, 2025 at 2:34 PM CET, Ludovic Desroches wrote:
The switch from devm_kzalloc() + drm_panel_init() to devm_drm_panel_alloc() introduced a regression.
Several panel descriptors do not set connector_type. For those panels, panel_simple_probe() used to compute a connector type (currently DPI as a fallback) and pass that value to drm_panel_init(). After the conversion to devm_drm_panel_alloc(), the call unconditionally used desc->connector_type instead, ignoring the computed fallback and potentially passing DRM_MODE_CONNECTOR_Unknown, which drm_panel_bridge_add() does not allow.
Move the connector_type validation / fallback logic before the devm_drm_panel_alloc() call and pass the computed connector_type to devm_drm_panel_alloc(), so panels without an explicit connector_type once again get the DPI default.
Signed-off-by: Ludovic Desroches ludovic.desroches@microchip.com Fixes: de04bb0089a9 ("drm/panel/panel-simple: Use the new allocation in place of devm_kzalloc()") Cc: stable@vger.kernel.org
Reviewed-by: Luca Ceresoli luca.ceresoli@bootlin.com
Side note: this function is very long, it would be nice e.g. to move the big mistake-checking switch (connector_type) to a function. Of course that would be a separate series, after this fix is done.
Luca
-- Luca Ceresoli, Bootlin Embedded Linux and Kernel engineering https://bootlin.com