drm_connector_init_with_ddc(9)
π drm_connector_init_with_ddc β Kernel API Manual π
okay so bestie, you're in the drm_connector_init_with_ddc(9) page, which lives in the Kernel API Manual, and honestly? it's a vibe. it's the glow-up ritual for a connector you already allocated yourself. let's get into it β¨
β¨ NAME β¨
drm_connector_init_with_ddc β Init a preallocated connector π
β¨ SYNOPSIS β¨
int drm_connector_init_with_ddc (struct drm_device *dev , struct
drm_connector *connector , const struct drm_connector_funcs *funcs , int
connector_type , struct i2c_adapter *ddc );
β¨ ARGUMENTS β¨
devβ the DRM device, your main character π«Άconnectorβ the connector to init. it's the connector. the one getting the makeover πfuncsβ callbacks for this connector, aka its personality traits πΈconnector_typeβ user visible type of the connector, so the humans know what they're looking at πddcβ pointer to the associated ddc adapter, its little sidekick π¦
β¨ DESCRIPTION β¨
So like, this initialises a preallocated connector. Connectors should be subclassed as part of driver connector objects β that's the assignment, no skipping it bestie π
At driver unload time the driver's drm_connector_funcs.destroy hook should call drm_connector_cleanup and free the connector structure. like, you brought it into this world, you clean it up π§Ή
β οΈ The connector structure should not be allocated with devm_kzalloc. not to be dramatic but this is the "don't do it" part of the page π
It also Ensures that the ddc field of the connector is correctly set. slay, one less thing for you to worry about β¨
β¨ NOTE β¨
consider using drmm_connector_init instead of drm_connector_init_with_ddc to let the DRM managed resource infrastructure take care of cleanup and deallocation. genuinely so much easier, the DRM managed resource infrastructure is doing the most so you don't have to π
β¨ RETURN β¨
Zero on success, error code on failure. iykyk β 0 is the happy ending, anything else means check yourself π
β¨ SEE ALSO β¨
Kernel file ./drivers/gpu/drm/drm_connector.c plus the whole extended universe of friends, icymi:
overview(9)drm_get_connector_type_name(9)drm_connector_get_cmdline_mode(9)drm_connector_init(9)drm_connector_dynamic_init(9)drmm_connector_init(9)drmm_connector_hdmi_init(9)drm_connector_attach_edid_property(9)drm_connector_attach_encoder(9)drm_connector_has_possible_encoder(9)drm_connector_cec_phys_addr_invalidate(9)drm_connector_cec_phys_addr_set(9)drm_connector_cleanup(9)drm_connector_register(9)drm_connector_dynamic_register(9)drm_connector_unregister(9)drm_get_connector_status_name(9)drm_get_connector_force_name(9)drm_connector_list_iter_begin(9)drm_connector_list_iter_next(9)drm_connector_list_iter_end(9)drm_get_subpixel_order_name(9)drm_display_info_set_bus_formats(9)drm_get_tv_mode_from_name(9)drm_get_colorspace_name(9)standard connector properties(9)drm_mode_create_dvi_i_properties(9)drm_connector_attach_dp_subconnector_property(9)HDMI connector properties(9)Analog TV Connector Properties(9)drm_connector_attach_content_type_property(9)drm_connector_attach_tv_margin_properties(9)drm_mode_create_tv_margin_properties(9)drm_mode_create_tv_properties_legacy(9)drm_mode_create_tv_properties(9)drm_mode_create_scaling_mode_property(9)Variable refresh properties(9)drm_connector_attach_vrr_capable_property(9)drm_connector_attach_scaling_mode_property(9)drm_mode_create_aspect_ratio_property(9)standard connector properties(9)(yes, again β it's just that iconic π)drm_mode_create_hdmi_colorspace_property(9)drm_mode_create_dp_colorspace_property(9)drm_mode_create_content_type_property(9)drm_mode_create_suggested_offset_properties(9)drm_connector_set_path_property(9)drm_connector_set_tile_property(9)drm_connector_set_link_status_property(9)drm_connector_attach_max_bpc_property(9)drm_connector_attach_hdr_output_metadata_property(9)drm_connector_attach_broadcast_rgb_property(9)drm_connector_attach_colorspace_property(9)Color format(9)drm_connector_attach_color_format_property(9)drm_connector_atomic_hdr_metadata_equal(9)drm_connector_set_vrr_capable_property(9)drm_connector_set_panel_orientation(9)drm_connector_set_panel_orientation_with_quirk(9)drm_connector_set_orientation_from_panel(9)drm_connector_create_privacy_screen_properties(9)drm_connector_attach_privacy_screen_properties(9)drm_connector_attach_privacy_screen_provider(9)drm_connector_update_privacy_screen(9)drm_connector_find_by_fwnode(9)drm_connector_oob_hotplug_event(9)drm_connector_get_color_format(9)Tile group(9)drm_mode_put_tile_group(9)drm_mode_get_tile_group(9)drm_mode_create_tile_group(9)drm_connector_attach_panel_type_property(9)
and that's the whole page bestie, no cap π«Ά this came out of ./drivers/gpu/drm in October 2026, and it's filed under drm_connector_init_with_ddc(9) β go init something gorgeous ππ§
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms