On Mon Jun 8, 2026 at 1:46 PM CEST, Maxime Ripard wrote: > On Tue, May 19, 2026 at 12:37:32PM +0200, Luca Ceresoli wrote: >> Currently the drm_bridge_connector has an embedded drm_connector, so their >> allocation lifetimes are tied to each other. This is insufficient to >> support DRM bridge hotplugging, which requires the connector to be added >> and removed dynamically at runtime multiple times based on hotplug/unplug >> events while the drm_bridge_connector is persistent. >> >> Moreover the drm_connector is exposed to user space and thus an ongoing >> operation (e.g. an ioctl) might last for an arbitrarily long time even >> after the hardware gets removed. This means a new connector might have to >> be added when the previous one is still referenced by user space. >> >> In preparation to handle hotplug, allocate the drm-connector dynamically, >> to allow: >> >> * creating and destroying a connector multiple times during a single >> drm_bridge_connector lifetime >> * creating a new connector even though the previous one is still in use >> and thus still refcounted and not yet freed >> >> This commit does not introduce the actions in the two bullets (it will >> happen in a later commit), it only moves to dynamic APIs for connector >> allocation and init. >> >> Signed-off-by: Luca Ceresoli <[email protected]> > > I think this patch should be split in half, with the switch to using > destroy first, and then the actual move to the dynamically allocated > connector API.
Is it doable? drm_connector_dynamic_init() mandates a .destroy callback, drm_connector_init() forbids it. Luca -- Luca Ceresoli, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
