GPU Driver Developer’s Guide¶
- Introduction
- DRM Internals
- Driver Initialization
- Driver Information
- Module Initialization
- Device Instance and Driver Handling
- Display driver example
drm_wedge_task_infoswitch_power_statedrm_devicedrm_dev_dma_dev()drm_driver_featuredrm_driverdevm_drm_dev_allocdrm_dev_is_unplugged()drm_core_check_all_features()drm_core_check_feature()drm_drv_uses_atomic_modeset()drm_put_dev()drm_dev_enter()drm_dev_exit()drm_dev_unplug()drm_dev_set_dma_dev()drm_dev_wedged_event()__drm_dev_alloc()drm_dev_alloc()drm_dev_get()drm_dev_put()drmm_cgroup_register_region()drm_dev_register()drm_dev_unregister()
- Driver Load
- Managed Resources
- Open/Close, File Operations and IOCTLs
- File Operations
drm_minordrm_pending_eventdrm_filedrm_is_primary_client()drm_is_render_client()drm_is_accel_client()drm_memory_statsdrm_open()drm_release()drm_release_noglobal()drm_read()drm_poll()drm_event_reserve_init_locked()drm_event_reserve_init()drm_event_cancel_free()drm_send_event_timestamp_locked()drm_send_event_locked()drm_send_event()drm_print_memory_stats()drm_show_memory_stats()drm_show_fdinfo()drm_file_err()
- File Operations
- Misc Utilities
- Printer
drm_debug_categorydrm_printerdrm_vprintf()drm_printf_indentdrm_print_iteratordrm_coredump_printer()drm_coredump_printer_is_full()drm_seq_file_printer()drm_info_printer()drm_dbg_printer()drm_err_printer()drm_line_printer()DRM_DEV_ERRORDRM_DEV_ERROR_RATELIMITEDDRM_DEV_DEBUGDRM_DEV_DEBUG_DRIVERDRM_DEV_DEBUG_KMSdrm_puts()drm_printf()drm_print_bits()drm_print_regset32()drm_print_hex_dump()
- Utilities
- Printer
- Unit testing
- Legacy Support Code
- Driver Initialization
- DRM Memory Management
- The Translation Table Manager (TTM)
ttm_caching- TTM device object reference
- TTM resource placement reference
- TTM resource object reference
TTM_NUM_MOVE_FENCESttm_lru_item_typettm_lru_itemttm_lru_item_init()ttm_resource_managerttm_bus_placementttm_resourcettm_lru_item_to_res()ttm_lru_bulk_move_posttm_lru_bulk_movettm_resource_cursorttm_kmap_iter_iomapttm_kmap_iter_linear_iottm_resource_manager_set_used()ttm_resource_manager_used()ttm_resource_manager_cleanup()ttm_resource_manager_for_each_resttm_lru_bulk_move_init()ttm_lru_bulk_move_fini()ttm_lru_bulk_move_tail()ttm_resource_init()ttm_resource_fini()ttm_resource_manager_init()ttm_resource_manager_usage()ttm_resource_manager_debug()ttm_kmap_iter_iomap_init()ttm_resource_manager_create_debugfs()
- TTM TT object reference
ttm_ttttm_kmap_iter_ttttm_tt_is_swapped()ttm_tt_is_backed_up()ttm_tt_clear_backed_up()ttm_tt_create()ttm_tt_init()ttm_tt_fini()ttm_tt_destroy()ttm_tt_swapin()ttm_tt_populate()ttm_tt_unpopulate()ttm_tt_mark_for_clear()ttm_backup_flagsttm_agp_tt_create()ttm_kmap_iter_tt_init()ttm_tt_setup_backup()
- TTM page pool reference
- The Graphics Execution Manager (GEM)
- GEM Initialization
- GEM Objects Creation
- GEM Objects Lifetime
- GEM Objects Naming
- GEM Objects Mapping
- Memory Coherency
- Command Execution
- GEM Function Reference
drm_gem_object_statusdrm_gem_object_funcsdrm_gem_lrudrm_gem_objectDRM_GEM_FOPSDEFINE_DRM_GEM_FOPSdrm_gem_get_huge_mnt()drm_gem_object_get()drm_gem_object_put()drm_gem_object_is_shared_for_memory_stats()drm_gem_is_imported()drm_gem_gpuva_init()drm_gem_for_each_gpuvm_bodrm_gem_for_each_gpuvm_bo_safedrm_gem_huge_mnt_create()drm_gem_object_init()drm_gem_private_object_init()drm_gem_private_object_fini()drm_gem_handle_delete()drm_gem_dumb_map_offset()drm_gem_handle_create()drm_gem_free_mmap_offset()drm_gem_create_mmap_offset_size()drm_gem_create_mmap_offset()drm_gem_get_pages()drm_gem_put_pages()drm_gem_objects_lookup()drm_gem_object_lookup()drm_gem_dma_resv_wait()drm_gem_object_release()drm_gem_object_free()drm_gem_vm_open()drm_gem_vm_close()drm_gem_mmap_obj()drm_gem_get_unmapped_area()drm_gem_mmap()drm_gem_lock_reservations()drm_gem_lru_init()drm_gem_lru_remove()drm_gem_lru_move_tail_locked()drm_gem_lru_move_tail()drm_gem_lru_scan()drm_gem_evict_locked()
- GEM DMA Helper Functions Reference
drm_gem_dma_objectdrm_gem_dma_object_free()drm_gem_dma_object_print_info()drm_gem_dma_object_get_sg_table()drm_gem_dma_object_mmap()DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATEDRM_GEM_DMA_DRIVER_OPSDRM_GEM_DMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATEDRM_GEM_DMA_DRIVER_OPS_VMAPDEFINE_DRM_GEM_DMA_FOPSdrm_gem_dma_create()drm_gem_dma_free()drm_gem_dma_dumb_create_internal()drm_gem_dma_dumb_create()drm_gem_dma_get_unmapped_area()drm_gem_dma_print_info()drm_gem_dma_get_sg_table()drm_gem_dma_prime_import_sg_table()drm_gem_dma_vmap()drm_gem_dma_mmap()drm_gem_dma_prime_import_sg_table_vmap()
- GEM SHMEM Helper Function Reference
drm_gem_shmem_objectdrm_gem_shmem_object_free()drm_gem_shmem_object_print_info()drm_gem_shmem_object_pin()drm_gem_shmem_object_unpin()drm_gem_shmem_object_get_sg_table()drm_gem_shmem_object_mmap()DRM_GEM_SHMEM_DRIVER_OPSdrm_gem_shmem_init()drm_gem_shmem_create()drm_gem_shmem_release()drm_gem_shmem_free()drm_gem_shmem_pin()drm_gem_shmem_unpin()drm_gem_shmem_dumb_create()drm_gem_shmem_mmap()drm_gem_shmem_print_info()drm_gem_shmem_get_sg_table()drm_gem_shmem_get_pages_sgt()drm_gem_shmem_prime_import_sg_table()drm_gem_shmem_prime_import_no_map()
- GEM VRAM Helper Functions Reference
drm_gem_vram_objectdrm_gem_vram_of_bo()drm_gem_vram_of_gem()DRM_GEM_VRAM_PLANE_HELPER_FUNCSDRM_GEM_VRAM_DRIVERdrm_vram_mmdrm_vram_mm_of_bdev()drm_gem_vram_create()drm_gem_vram_put()drm_gem_vram_offset()drm_gem_vram_vmap()drm_gem_vram_vunmap()drm_gem_vram_fill_create_dumb()drm_gem_vram_driver_dumb_create()drm_gem_vram_plane_helper_prepare_fb()drm_gem_vram_plane_helper_cleanup_fb()drm_vram_mm_debugfs_init()drmm_vram_helper_init()drm_vram_helper_mode_valid()
- GEM TTM Helper Functions Reference
- VMA Offset Manager
drm_vma_offset_exact_lookup_locked()drm_vma_offset_lock_lookup()drm_vma_offset_unlock_lookup()drm_vma_node_reset()drm_vma_node_start()drm_vma_node_size()drm_vma_node_offset_addr()drm_vma_node_unmap()drm_vma_node_verify_access()drm_vma_offset_manager_init()drm_vma_offset_manager_destroy()drm_vma_offset_lookup_locked()drm_vma_offset_add()drm_vma_offset_remove()drm_vma_node_allow()drm_vma_node_allow_once()drm_vma_node_revoke()drm_vma_node_is_allowed()
- PRIME Buffer Sharing
- Overview and Lifetime Rules
- PRIME Helper Functions
- PRIME Function References
drm_prime_file_privatedrm_gem_dmabuf_export()drm_gem_dmabuf_release()drm_gem_prime_fd_to_handle()drm_gem_prime_handle_to_dmabuf()drm_gem_prime_handle_to_fd()drm_gem_map_attach()drm_gem_map_detach()drm_gem_map_dma_buf()drm_gem_unmap_dma_buf()drm_gem_dmabuf_vmap()drm_gem_dmabuf_vunmap()drm_gem_prime_mmap()drm_gem_dmabuf_mmap()drm_prime_pages_to_sg()drm_prime_get_contiguous_size()drm_gem_prime_export()drm_gem_is_prime_exported_dma_buf()drm_gem_prime_import_dev()drm_gem_prime_import()drm_prime_sg_to_page_array()drm_prime_sg_to_dma_addr_array()drm_prime_gem_destroy()
- DRM MM Range Allocator
- Overview
- LRU Scan/Eviction Support
- DRM MM Range Allocator Function References
drm_mm_insert_modedrm_mm_nodedrm_mmdrm_mm_scandrm_mm_node_allocated()drm_mm_initialized()drm_mm_hole_follows()drm_mm_hole_node_start()drm_mm_hole_node_end()drm_mm_nodesdrm_mm_for_each_nodedrm_mm_for_each_node_safedrm_mm_for_each_holedrm_mm_insert_node_generic()drm_mm_insert_node()drm_mm_clean()drm_mm_for_each_node_in_rangedrm_mm_scan_init()drm_mm_reserve_node()drm_mm_insert_node_in_range()drm_mm_remove_node()drm_mm_scan_init_with_range()drm_mm_scan_add_block()drm_mm_scan_remove_block()drm_mm_scan_color_evict()drm_mm_init()drm_mm_takedown()drm_mm_print()
- DRM GPUVM
- Overview
- Split and Merge
- Locking
- Examples
- DRM GPUVM Function References
drm_gpuva_flagsdrm_gpuvadrm_gpuva_invalidate()drm_gpuva_invalidated()drm_gpuvm_flagsdrm_gpuvmdrm_gpuvm_get()drm_gpuvm_resv_protected()drm_gpuvm_immediate_mode()drm_gpuvm_resvdrm_gpuvm_resv_objdrm_gpuvm_is_extobj()drm_gpuvm_for_each_va_rangedrm_gpuvm_for_each_va_range_safedrm_gpuvm_for_each_vadrm_gpuvm_for_each_va_safedrm_gpuvm_execdrm_gpuvm_exec_unlock()drm_gpuvm_exec_resv_add_fence()drm_gpuvm_exec_validate()drm_gpuvm_bodrm_gpuvm_bo_get()drm_gpuvm_bo_gem_evict()drm_gpuvm_bo_for_each_vadrm_gpuvm_bo_for_each_va_safedrm_gpuva_op_typedrm_gpuva_op_mapdrm_gpuva_op_unmapdrm_gpuva_op_remapdrm_gpuva_op_prefetchdrm_gpuva_opdrm_gpuva_opsdrm_gpuva_for_each_opdrm_gpuva_for_each_op_safedrm_gpuva_for_each_op_from_reversedrm_gpuva_for_each_op_reversedrm_gpuva_first_opdrm_gpuva_last_opdrm_gpuva_prev_opdrm_gpuva_next_opdrm_gpuvm_map_reqdrm_gpuvm_opsdrm_gpuva_op_remap_to_unmap_range()drm_gpuvm_range_valid()drm_gpuvm_resv_object_alloc()drm_gpuvm_init()drm_gpuvm_put()drm_gpuvm_prepare_vm()drm_gpuvm_prepare_objects()drm_gpuvm_prepare_range()drm_gpuvm_exec_lock()drm_gpuvm_exec_lock_array()drm_gpuvm_exec_lock_range()drm_gpuvm_validate()drm_gpuvm_resv_add_fence()drm_gpuvm_bo_create()drm_gpuvm_bo_put()drm_gpuvm_bo_put_deferred()drm_gpuvm_bo_deferred_cleanup()drm_gpuvm_bo_find()drm_gpuvm_bo_obtain_locked()drm_gpuvm_bo_obtain_prealloc()drm_gpuvm_bo_extobj_add()drm_gpuvm_bo_evict()drm_gpuva_insert()drm_gpuva_remove()drm_gpuva_link()drm_gpuva_unlink()drm_gpuva_unlink_defer()drm_gpuva_find_first()drm_gpuva_find()drm_gpuva_find_prev()drm_gpuva_find_next()drm_gpuvm_interval_empty()drm_gpuva_map()drm_gpuva_remap()drm_gpuva_unmap()drm_gpuvm_sm_map()drm_gpuvm_sm_unmap()drm_gpuvm_sm_map_exec_lock()drm_gpuvm_sm_unmap_exec_lock()drm_gpuvm_sm_map_ops_create()drm_gpuvm_madvise_ops_create()drm_gpuvm_sm_unmap_ops_create()drm_gpuvm_prefetch_ops_create()drm_gpuvm_bo_unmap_ops_create()drm_gpuva_ops_free()
- DRM Buddy Allocator
- DRM Cache Handling and Fast WC memcpy()
- DRM Sync Objects
- Host-side wait on syncobjs
- Import/export of syncobjs
- Import/export of timeline points in timeline syncobjs
drm_syncobjdrm_syncobj_get()drm_syncobj_put()drm_syncobj_fence_get()drm_syncobj_find()drm_syncobj_add_point()drm_syncobj_replace_fence()drm_syncobj_find_fence()drm_syncobj_free()drm_syncobj_create()drm_syncobj_get_handle()drm_syncobj_get_fd()drm_timeout_abs_to_jiffies()
- DRM Execution context
drm_execdrm_exec_obj()drm_exec_for_each_locked_objectdrm_exec_for_each_locked_object_reversedrm_exec_until_all_lockeddrm_exec_retry_on_contentiondrm_exec_is_contended()drm_exec_init()drm_exec_fini()drm_exec_cleanup()drm_exec_lock_obj()drm_exec_unlock_obj()drm_exec_prepare_obj()drm_exec_prepare_array()
- GPU Scheduler
- Overview
- Flow Control
- Scheduler Function References
DRM_SCHED_FENCE_DONT_PIPELINEDRM_SCHED_FENCE_FLAG_HAS_DEADLINE_BITdrm_sched_entitydrm_sched_rqdrm_sched_fencedrm_sched_jobdrm_gpu_sched_statdrm_sched_backend_opsdrm_gpu_schedulerdrm_sched_init_argsdrm_sched_pending_job_iterdrm_sched_for_each_pending_jobdrm_sched_tdr_queue_imm()drm_sched_fault()drm_sched_suspend_timeout()drm_sched_resume_timeout()drm_sched_stop()drm_sched_start()drm_sched_resubmit_jobs()drm_sched_job_init()drm_sched_job_arm()drm_sched_job_add_dependency()drm_sched_job_add_syncobj_dependency()drm_sched_job_add_resv_dependencies()drm_sched_job_add_implicit_dependencies()drm_sched_job_has_dependency()drm_sched_job_cleanup()drm_sched_pick_best()drm_sched_init()drm_sched_fini()drm_sched_increase_karma()drm_sched_wqueue_ready()drm_sched_wqueue_stop()drm_sched_wqueue_start()drm_sched_is_stopped()drm_sched_job_is_signaled()drm_sched_entity_init()drm_sched_entity_modify_sched()drm_sched_entity_error()drm_sched_entity_flush()drm_sched_entity_fini()drm_sched_entity_destroy()drm_sched_entity_set_priority()drm_sched_entity_push_job()
- The Translation Table Manager (TTM)
- Kernel Mode Setting (KMS)
- Overview
- KMS Core Structures and Functions
- Modeset Base Object Abstraction
- Atomic Mode Setting
- Handling Driver Private State
- Atomic Mode Setting Function Reference
drm_crtc_commitdrm_private_state_funcsdrm_private_objdrm_for_each_privobjdrm_private_statedrm_atomic_statedrm_crtc_commit_get()drm_crtc_commit_put()drm_atomic_state_get()drm_atomic_state_put()drm_atomic_get_old_crtc_state()drm_atomic_get_new_crtc_state()drm_atomic_get_old_plane_state()drm_atomic_get_new_plane_state()drm_atomic_get_old_connector_state()drm_atomic_get_new_connector_state()__drm_atomic_get_current_plane_state()for_each_oldnew_connector_in_statefor_each_old_connector_in_statefor_each_new_connector_in_statefor_each_oldnew_crtc_in_statefor_each_old_crtc_in_statefor_each_new_crtc_in_statefor_each_oldnew_colorop_in_statefor_each_new_colorop_in_statefor_each_oldnew_plane_in_statefor_each_oldnew_plane_in_state_reversefor_each_new_plane_in_state_reversefor_each_old_plane_in_statefor_each_new_plane_in_statefor_each_oldnew_private_obj_in_statefor_each_old_private_obj_in_statefor_each_new_private_obj_in_statedrm_atomic_crtc_needs_modeset()drm_atomic_crtc_effectively_active()drm_bus_cfgdrm_bridge_statedrm_crtc_commit_wait()drm_atomic_state_default_release()drm_atomic_state_init()drm_atomic_state_alloc()drm_atomic_state_default_clear()drm_atomic_state_clear()__drm_atomic_state_free()drm_atomic_get_crtc_state()drm_atomic_get_plane_state()drm_atomic_get_colorop_state()drm_atomic_get_old_colorop_state()drm_atomic_get_new_colorop_state()drm_atomic_private_obj_init()drm_atomic_private_obj_fini()drm_atomic_get_private_obj_state()drm_atomic_get_old_private_obj_state()drm_atomic_get_new_private_obj_state()drm_atomic_get_old_connector_for_encoder()drm_atomic_get_new_connector_for_encoder()drm_atomic_get_connector_for_encoder()drm_atomic_get_old_crtc_for_encoder()drm_atomic_get_new_crtc_for_encoder()drm_atomic_get_connector_state()drm_atomic_get_bridge_state()drm_atomic_get_old_bridge_state()drm_atomic_get_new_bridge_state()drm_atomic_add_encoder_bridges()drm_atomic_add_affected_connectors()drm_atomic_add_affected_planes()drm_atomic_add_affected_colorops()drm_atomic_check_only()drm_atomic_commit()drm_atomic_nonblocking_commit()drm_atomic_print_new_state()drm_state_dump()
- Atomic Mode Setting IOCTL and UAPI Functions
- CRTC Abstraction
- CRTC Functions Reference
drm_crtc_statedrm_crtc_funcsdrm_crtcdrm_mode_setdrmm_crtc_alloc_with_planesdrm_crtc_index()drm_crtc_mask()drm_crtc_find()drm_for_each_crtcdrm_for_each_crtc_reversedrm_crtc_from_index()drm_crtc_init_with_planes()drmm_crtc_init_with_planes()drm_crtc_cleanup()drm_mode_set_config_internal()drm_crtc_check_viewport()drm_crtc_create_scaling_filter_property()drm_crtc_in_clone_mode()
- Color Management Functions Reference
drm_color_ctm_s31_32_to_qm_n()drm_crtc_enable_color_mgmt()drm_mode_crtc_set_gamma_size()drm_plane_create_color_properties()drm_color_lut_check()drm_crtc_load_gamma_888()drm_crtc_load_gamma_565_from_888()drm_crtc_load_gamma_555_from_888()drm_crtc_fill_gamma_888()drm_crtc_fill_gamma_565()drm_crtc_fill_gamma_555()drm_crtc_load_palette_8()drm_crtc_fill_palette_332()drm_crtc_fill_palette_8()drm_color_lut32_check()drm_color_lut_extract()drm_color_lut32_extract()drm_color_lut_size()drm_color_lut32_size()drm_color_lut_tests
- CRTC Functions Reference
- Frame Buffer Abstraction
- DRM Format Handling
- Format Modifiers
- Open Source User Waiver
- Format Functions Reference
DRM_FORMAT_MAX_PLANESdrm_format_infodrm_format_info_is_yuv_packed()drm_format_info_is_yuv_semiplanar()drm_format_info_is_yuv_planar()drm_format_info_is_yuv_sampling_410()drm_format_info_is_yuv_sampling_411()drm_format_info_is_yuv_sampling_420()drm_format_info_is_yuv_sampling_422()drm_format_info_is_yuv_sampling_444()drm_format_info_plane_width()drm_format_info_plane_height()drm_mode_legacy_fb_format()drm_driver_legacy_fb_format()drm_driver_color_mode_format()drm_get_format_info()drm_format_info_block_width()drm_format_info_block_height()drm_format_info_bpp()drm_format_info_min_pitch()
- Dumb Buffer Objects
- Plane Abstraction
- Plane Functions Reference
drm_plane_statedrm_plane_funcsdrm_plane_typedrm_planedrmm_universal_plane_allocdrm_universal_plane_allocdrm_plane_index()drm_plane_mask()drm_plane_find()drm_for_each_plane_maskdrm_for_each_legacy_planedrm_for_each_planedrm_universal_plane_init()drm_plane_cleanup()drm_plane_from_index()drm_plane_force_disable()drm_mode_plane_set_obj_prop()drm_plane_has_format()drm_any_plane_has_format()drm_plane_enable_fb_damage_clips()drm_plane_get_damage_clips_count()drm_plane_get_damage_clips()drm_plane_create_scaling_filter_property()drm_plane_add_size_hints_property()drm_plane_create_color_pipeline_property()
- Plane Composition Functions Reference
- Plane Damage Tracking Functions Reference
- Plane Panic Feature
- Plane Panic Functions Reference
- Plane Functions Reference
- Colorop Abstraction
- Colorop Functions Reference
drm_colorop_curve_1d_typedrm_colorop_statedrm_coloropdrm_colorop_find()drm_colorop_reset()drm_colorop_index()drm_get_colorop_type_name()drm_get_colorop_curve_1d_type_name()drm_colorop_cleanup()drm_colorop_pipeline_destroy()drm_plane_colorop_curve_1d_init()drm_plane_colorop_curve_1d_lut_init()drm_plane_colorop_mult_init()drm_colorop_set_next_property()
- Colorop Functions Reference
- Display Modes Function Reference
drm_mode_statusDRM_MODE_RES_MMDRM_MODE_INITDRM_SIMPLE_MODEdrm_display_modeDRM_MODE_FMTDRM_MODE_ARGdrm_mode_is_stereo()drm_mode_debug_printmodeline()drm_mode_create()drm_mode_destroy()drm_mode_probed_add()drm_analog_tv_mode()drm_cvt_mode()drm_gtf_mode_complex()drm_gtf_mode()drm_display_mode_from_videomode()drm_display_mode_to_videomode()drm_bus_flags_from_videomode()of_get_drm_display_mode()of_get_drm_panel_display_mode()drm_mode_set_name()drm_mode_vrefresh()drm_mode_get_hv_timing()drm_mode_set_crtcinfo()drm_mode_copy()drm_mode_init()drm_mode_duplicate()drm_mode_match()drm_mode_equal()drm_mode_equal_no_clocks()drm_mode_equal_no_clocks_no_stereo()drm_mode_validate_driver()drm_mode_validate_size()drm_mode_validate_ycbcr420()drm_mode_prune_invalid()drm_mode_sort()drm_connector_list_update()drm_mode_parse_command_line_for_connector()drm_mode_create_from_cmdline_mode()drm_mode_is_420_only()drm_mode_is_420_also()drm_mode_is_420()drm_set_preferred_mode()
- Connector Abstraction
- Connector Functions Reference
drm_connector_statusdrm_connector_registration_statedrm_connector_tv_modedrm_scramblingdrm_hdmi_dsc_capdrm_hdmi_infodrm_link_statusdrm_panel_orientationdrm_hdmi_broadcast_rgbdrm_monitor_range_infodrm_luminance_range_infodrm_privacy_screen_statusdrm_colorspacedrm_bus_flagsdrm_display_infodrm_connector_tv_marginsdrm_tv_connector_statedrm_connector_hdmi_infoframedrm_connector_statedrm_connector_cec_funcsdrm_connector_infoframe_funcsdrm_connector_hdmi_funcsdrm_connector_funcsdrm_cmdline_modedrm_connector_hdmi_audiodrm_connector_cecdrm_connectordrm_connector_lookup()drm_connector_get()drm_connector_put()drm_connector_is_unregistered()drm_tile_groupdrm_connector_list_iterdrm_for_each_connector_iterdrm_connector_for_each_possible_encoderdrm_get_connector_type_name()drm_connector_init()drm_connector_dynamic_init()drm_connector_init_with_ddc()drmm_connector_init()drmm_connector_hdmi_init()drm_connector_attach_edid_property()drm_connector_attach_encoder()drm_connector_has_possible_encoder()drm_connector_cec_phys_addr_invalidate()drm_connector_cec_phys_addr_set()drm_connector_cleanup()drm_connector_register()drm_connector_dynamic_register()drm_connector_unregister()drm_get_connector_status_name()drm_connector_list_iter_begin()drm_connector_list_iter_next()drm_connector_list_iter_end()drm_get_subpixel_order_name()drm_display_info_set_bus_formats()drm_get_tv_mode_from_name()drm_mode_create_dvi_i_properties()drm_connector_attach_dp_subconnector_property()drm_connector_attach_content_type_property()drm_connector_attach_tv_margin_properties()drm_mode_create_tv_margin_properties()drm_mode_create_tv_properties_legacy()drm_mode_create_tv_properties()drm_mode_create_scaling_mode_property()drm_connector_attach_vrr_capable_property()drm_connector_attach_scaling_mode_property()drm_mode_create_aspect_ratio_property()drm_mode_create_hdmi_colorspace_property()drm_mode_create_dp_colorspace_property()drm_mode_create_content_type_property()drm_mode_create_suggested_offset_properties()drm_connector_set_path_property()drm_connector_set_tile_property()drm_connector_set_link_status_property()drm_connector_attach_max_bpc_property()drm_connector_attach_hdr_output_metadata_property()drm_connector_attach_broadcast_rgb_property()drm_connector_attach_colorspace_property()drm_connector_atomic_hdr_metadata_equal()drm_connector_set_vrr_capable_property()drm_connector_set_panel_orientation()drm_connector_set_panel_orientation_with_quirk()drm_connector_set_orientation_from_panel()drm_connector_create_privacy_screen_properties()drm_connector_attach_privacy_screen_properties()drm_connector_attach_privacy_screen_provider()drm_connector_update_privacy_screen()drm_connector_oob_hotplug_event()drm_mode_put_tile_group()drm_mode_get_tile_group()drm_mode_create_tile_group()
- Writeback Connectors
- Connector Functions Reference
- Encoder Abstraction
- KMS Locking
drm_modeset_acquire_ctxdrm_modeset_lockdrm_modeset_lock_fini()drm_modeset_is_locked()drm_modeset_lock_assert_held()DRM_MODESET_LOCK_ALL_BEGINDRM_MODESET_LOCK_ALL_ENDdrm_modeset_lock_all()drm_modeset_unlock_all()drm_warn_on_modeset_not_all_locked()drm_modeset_acquire_init()drm_modeset_acquire_fini()drm_modeset_drop_locks()drm_modeset_backoff()drm_modeset_lock_init()drm_modeset_lock_single_interruptible()drm_modeset_unlock()drm_modeset_lock_all_ctx()
- KMS Properties
- Requirements
- Property Types and Blob Property Support
drm_property_enumdrm_propertydrm_property_blobdrm_property_type_is()drm_property_find()drm_property_create()drm_property_create_enum()drm_property_create_bitmask()drm_property_create_range()drm_property_create_signed_range()drm_property_create_object()drm_property_create_bool()drm_property_add_enum()drm_property_destroy()drm_property_create_blob()drm_property_blob_put()drm_property_blob_get()drm_property_lookup_blob()drm_property_replace_global_blob()drm_property_replace_blob()drm_property_replace_blob_from_id()
- Standard Connector Properties
- HDMI Specific Connector Properties
- Analog TV Specific Connector Properties
- Standard CRTC Properties
- Standard Plane Properties
- Plane Composition Properties
- Damage Tracking Properties
- Color Management Properties
- Tile Group Property
- Explicit Fencing Properties
- Variable Refresh Properties
- Cursor Hotspot Properties
- Existing KMS Properties
- Vertical Blanking
- Vertical Blanking and Interrupt Handling Functions Reference
drm_pending_vblank_eventdrm_vblank_crtc_configdrm_vblank_crtc_timerdrm_vblank_crtcdrm_crtc_accurate_vblank_count()drm_vblank_init()drm_dev_has_vblank()drm_crtc_vblank_waitqueue()drm_calc_timestamping_constants()drm_crtc_vblank_helper_get_vblank_timestamp_internal()drm_crtc_vblank_helper_get_vblank_timestamp()drm_crtc_vblank_count()drm_crtc_vblank_count_and_time()drm_crtc_next_vblank_start()drm_crtc_arm_vblank_event()drm_crtc_send_vblank_event()drm_crtc_vblank_get()drm_crtc_vblank_put()drm_crtc_wait_one_vblank()drm_crtc_vblank_off()drm_crtc_vblank_reset()drm_crtc_set_max_vblank_count()drm_crtc_vblank_on_config()drm_crtc_vblank_on()drm_crtc_vblank_restore()drm_handle_vblank()drm_crtc_handle_vblank()drm_crtc_vblank_start_timer()drm_crtc_vblank_cancel_timer()drm_crtc_vblank_get_vblank_timeout()
- Vertical Blanking and Interrupt Handling Functions Reference
- Vertical Blank Work
- Mode Setting Helper Functions
- Modeset Helper Reference for Common Vtables
- Atomic Modeset Helper Functions Reference
- Overview
- Implementing Asynchronous Atomic Commit
- Helper Functions Reference
drm_atomic_crtc_for_each_planedrm_atomic_crtc_state_for_each_planedrm_atomic_crtc_state_for_each_plane_statedrm_atomic_plane_enabling()drm_atomic_plane_disabling()drm_atomic_helper_check_modeset()drm_atomic_helper_check_wb_connector_state()drm_atomic_helper_check_plane_state()drm_atomic_helper_check_crtc_primary_plane()drm_atomic_helper_check_planes()drm_atomic_helper_check()drm_atomic_helper_commit_encoder_bridge_disable()drm_atomic_helper_commit_crtc_disable()drm_atomic_helper_commit_encoder_bridge_post_disable()drm_atomic_helper_update_legacy_modeset_state()drm_atomic_helper_calc_timestamping_constants()drm_atomic_helper_commit_crtc_set_mode()drm_atomic_helper_commit_modeset_disables()drm_atomic_helper_commit_writebacks()drm_atomic_helper_commit_encoder_bridge_pre_enable()drm_atomic_helper_commit_crtc_enable()drm_atomic_helper_commit_encoder_bridge_enable()drm_atomic_helper_commit_modeset_enables()drm_atomic_helper_wait_for_fences()drm_atomic_helper_wait_for_vblanks()drm_atomic_helper_wait_for_flip_done()drm_atomic_helper_commit_tail()drm_atomic_helper_commit_tail_rpm()drm_atomic_helper_async_check()drm_atomic_helper_async_commit()drm_atomic_helper_commit()drm_atomic_helper_setup_commit()drm_atomic_helper_wait_for_dependencies()drm_atomic_helper_fake_vblank()drm_atomic_helper_commit_hw_done()drm_atomic_helper_commit_cleanup_done()drm_atomic_helper_prepare_planes()drm_atomic_helper_unprepare_planes()drm_atomic_helper_commit_planes()drm_atomic_helper_commit_planes_on_crtc()drm_atomic_helper_disable_planes_on_crtc()drm_atomic_helper_cleanup_planes()drm_atomic_helper_swap_state()drm_atomic_helper_update_plane()drm_atomic_helper_disable_plane()drm_atomic_helper_set_config()drm_atomic_helper_disable_all()drm_atomic_helper_reset_crtc()drm_atomic_helper_shutdown()drm_atomic_helper_duplicate_state()drm_atomic_helper_suspend()drm_atomic_helper_commit_duplicated_state()drm_atomic_helper_resume()drm_atomic_helper_page_flip()drm_atomic_helper_page_flip_target()drm_atomic_helper_bridge_propagate_bus_fmt()
- Atomic State Reset and Initialization
- Atomic State Helper Reference
__drm_atomic_helper_crtc_state_reset()__drm_atomic_helper_crtc_reset()drm_atomic_helper_crtc_reset()__drm_atomic_helper_crtc_duplicate_state()drm_atomic_helper_crtc_duplicate_state()__drm_atomic_helper_crtc_destroy_state()drm_atomic_helper_crtc_destroy_state()__drm_atomic_helper_plane_state_reset()__drm_atomic_helper_plane_reset()drm_atomic_helper_plane_reset()__drm_atomic_helper_plane_duplicate_state()drm_atomic_helper_plane_duplicate_state()__drm_atomic_helper_plane_destroy_state()drm_atomic_helper_plane_destroy_state()__drm_atomic_helper_connector_state_reset()__drm_atomic_helper_connector_reset()drm_atomic_helper_connector_reset()drm_atomic_helper_connector_tv_margins_reset()drm_atomic_helper_connector_tv_reset()drm_atomic_helper_connector_tv_check()__drm_atomic_helper_connector_duplicate_state()drm_atomic_helper_connector_duplicate_state()__drm_atomic_helper_connector_destroy_state()drm_atomic_helper_connector_destroy_state()__drm_atomic_helper_private_obj_duplicate_state()__drm_atomic_helper_bridge_duplicate_state()drm_atomic_helper_bridge_duplicate_state()drm_atomic_helper_bridge_destroy_state()__drm_atomic_helper_bridge_reset()drm_atomic_helper_bridge_reset()
- GEM Atomic Helper Reference
DRM_SHADOW_PLANE_MAX_WIDTHDRM_SHADOW_PLANE_MAX_HEIGHTdrm_shadow_plane_stateto_drm_shadow_plane_state()DRM_GEM_SHADOW_PLANE_FUNCSDRM_GEM_SHADOW_PLANE_HELPER_FUNCSDRM_GEM_SIMPLE_DISPLAY_PIPE_SHADOW_PLANE_FUNCSdrm_gem_plane_helper_prepare_fb()__drm_gem_duplicate_shadow_plane_state()drm_gem_duplicate_shadow_plane_state()__drm_gem_destroy_shadow_plane_state()drm_gem_destroy_shadow_plane_state()__drm_gem_reset_shadow_plane()drm_gem_reset_shadow_plane()drm_gem_begin_shadow_fb_access()drm_gem_end_shadow_fb_access()drm_gem_simple_kms_begin_shadow_fb_access()drm_gem_simple_kms_end_shadow_fb_access()drm_gem_simple_kms_reset_shadow_plane()drm_gem_simple_kms_duplicate_shadow_plane_state()drm_gem_simple_kms_destroy_shadow_plane_state()
- VBLANK Helper Reference
DRM_CRTC_HELPER_VBLANK_FUNCSDRM_CRTC_VBLANK_TIMER_FUNCSdrm_crtc_vblank_atomic_flush()drm_crtc_vblank_atomic_enable()drm_crtc_vblank_atomic_disable()drm_crtc_vblank_helper_enable_vblank_timer()drm_crtc_vblank_helper_disable_vblank_timer()drm_crtc_vblank_helper_get_vblank_timestamp_from_timer()
- Simple KMS Helper Reference
- fbdev Helper Functions Reference
drm_fb_helper_surface_sizedrm_fb_helper_funcsdrm_fb_helperDRM_FB_HELPER_DEFAULT_OPSdrm_fb_helper_restore_fbdev_mode_unlocked()drm_fb_helper_blank()drm_fb_helper_prepare()drm_fb_helper_unprepare()drm_fb_helper_init()drm_fb_helper_unregister_info()drm_fb_helper_fini()drm_fb_helper_deferred_io()drm_fb_helper_set_suspend()drm_fb_helper_set_suspend_unlocked()drm_fb_helper_setcmap()drm_fb_helper_ioctl()drm_fb_helper_check_var()drm_fb_helper_set_par()drm_fb_helper_pan_display()drm_fb_helper_fill_info()drm_fb_helper_initial_config()drm_fb_helper_hotplug_event()
- format Helper Functions Reference
drm_format_conv_state_init()drm_format_conv_state_copy()drm_format_conv_state_reserve()drm_format_conv_state_release()drm_fb_clip_offset()drm_fb_memcpy()drm_fb_swab()drm_fb_xrgb8888_to_rgb332()drm_fb_xrgb8888_to_rgb565()drm_fb_xrgb8888_to_rgb565be()drm_fb_xrgb8888_to_xrgb1555()drm_fb_xrgb8888_to_argb1555()drm_fb_xrgb8888_to_rgba5551()drm_fb_xrgb8888_to_rgb888()drm_fb_xrgb8888_to_bgr888()drm_fb_xrgb8888_to_argb8888()drm_fb_xrgb8888_to_abgr8888()drm_fb_xrgb8888_to_xbgr8888()drm_fb_xrgb8888_to_bgrx8888()drm_fb_xrgb8888_to_xrgb2101010()drm_fb_xrgb8888_to_argb2101010()drm_fb_xrgb8888_to_gray8()drm_fb_argb8888_to_argb4444()drm_fb_xrgb8888_to_mono()drm_fb_xrgb8888_to_gray2()
- Framebuffer DMA Helper Functions Reference
- Framebuffer GEM Helper Reference
- Bridges
- Overview
- Display Driver Integration
- Special Care with MIPI-DSI bridges
- Bridge Operations
- Bridge Connector Helper
- Bridge Helper Reference
drm_bridge_attach_flagsdrm_bridge_funcsdrm_bridge_timingsdrm_bridge_opsdrm_bridgedevm_drm_bridge_allocdrm_bridge_get_current_state()drm_bridge_get_next_bridge()drm_bridge_get_prev_bridge()drm_bridge_chain_get_first_bridge()drm_bridge_chain_get_last_bridge()drm_bridge_get_next_bridge_and_put()drm_for_each_bridge_in_chain_scopeddrm_for_each_bridge_in_chain_fromdrm_bridge_enter()drm_bridge_exit()drm_bridge_unplug()drm_bridge_get()drm_bridge_put()drm_bridge_add()devm_drm_bridge_add()drm_bridge_remove()drm_bridge_attach()drm_bridge_chain_mode_valid()drm_bridge_chain_mode_set()drm_atomic_bridge_chain_disable()drm_atomic_bridge_chain_post_disable()drm_atomic_bridge_chain_pre_enable()drm_atomic_bridge_chain_enable()drm_atomic_bridge_chain_check()drm_bridge_detect()drm_bridge_get_modes()drm_bridge_edid_read()drm_bridge_hpd_enable()drm_bridge_hpd_disable()drm_bridge_hpd_notify()of_drm_find_and_get_bridge()of_drm_find_bridge()devm_drm_put_bridge()
- MIPI-DSI bridge operation
- Bridge Connector Helper Reference
- Panel-Bridge Helper Reference
- Panel Helper Reference
drm_panel_funcsdrm_paneldevm_drm_panel_allocdrm_panel_init()drm_panel_add()drm_panel_remove()drm_panel_prepare()drm_panel_unprepare()drm_panel_enable()drm_panel_disable()drm_panel_get_modes()drm_panel_get()drm_panel_put()of_drm_find_panel()of_drm_get_panel_orientation()drm_is_panel_follower()drm_panel_add_follower()drm_panel_remove_follower()devm_drm_panel_add_follower()drm_panel_of_backlight()drm_get_panel_orientation_quirk()drm_get_panel_backlight_quirk()
- Panel Self Refresh Helper Reference
- HDMI Atomic State Helpers
- Overview
- Functions Reference
__drm_atomic_helper_connector_hdmi_reset()drm_atomic_helper_connector_hdmi_check()drm_hdmi_connector_mode_valid()drm_atomic_helper_connector_hdmi_update_infoframes()drm_atomic_helper_connector_hdmi_update_audio_infoframe()drm_atomic_helper_connector_hdmi_clear_audio_infoframe()drm_atomic_helper_connector_hdmi_hotplug()drm_atomic_helper_connector_hdmi_force()
- HDCP Helper Functions Reference
- Display Port Helper Functions Reference
dp_sdp_headerdp_sdpdp_pixelformatdp_colorimetrydp_dynamic_rangedp_content_typedrm_dp_vsc_sdpdrm_dp_as_sdpdrm_dp_dsc_sink_supports_format()drm_edp_backlight_supported()drm_dp_is_uhbr_rate()drm_dp_aux_msgdrm_dp_aux_cecdrm_dp_auxdrm_dp_dpcd_readb()drm_dp_dpcd_read_data()drm_dp_dpcd_write_data()drm_dp_dpcd_writeb()drm_dp_dpcd_read_byte()drm_dp_dpcd_write_byte()drm_dp_descdrm_dp_quirkdrm_dp_has_quirk()drm_edp_backlight_infodrm_dp_phy_test_paramsdrm_dp_phy_name()drm_dp_lttpr_wake_timeout_setup()drm_dp_dpcd_probe()drm_dp_dpcd_set_powered()drm_dp_dpcd_set_probe()drm_dp_dpcd_read()drm_dp_dpcd_write()drm_dp_dpcd_read_link_status()drm_dp_dpcd_read_phy_link_status()drm_dp_link_power_up()drm_dp_link_power_down()drm_dp_dpcd_write_payload()drm_dp_dpcd_clear_payload()drm_dp_dpcd_poll_act_handled()drm_dp_downstream_is_type()drm_dp_downstream_is_tmds()drm_dp_send_real_edid_checksum()drm_dp_read_dpcd_caps()drm_dp_read_downstream_info()drm_dp_downstream_max_dotclock()drm_dp_downstream_max_tmds_clock()drm_dp_downstream_min_tmds_clock()drm_dp_downstream_max_bpc()drm_dp_downstream_420_passthrough()drm_dp_downstream_444_to_420_conversion()drm_dp_downstream_rgb_to_ycbcr_conversion()drm_dp_downstream_mode()drm_dp_downstream_id()drm_dp_downstream_debug()drm_dp_subconnector_type()drm_dp_set_subconnector_property()drm_dp_read_sink_count_cap()drm_dp_read_sink_count()drm_dp_remote_aux_init()drm_dp_aux_init()drm_dp_aux_register()drm_dp_aux_unregister()drm_dp_psr_setup_time()drm_dp_start_crc()drm_dp_stop_crc()drm_dp_read_desc()drm_dp_dump_lttpr_desc()drm_dp_dsc_sink_bpp_incr()drm_dp_dsc_slice_count_to_mask()drm_dp_dsc_sink_slice_count_mask()drm_dp_dsc_sink_max_slice_count()drm_dp_dsc_sink_line_buf_depth()drm_dp_dsc_sink_supported_input_bpcs()drm_dp_dsc_sink_max_slice_throughput()drm_dp_dsc_branch_max_overall_throughput()drm_dp_dsc_branch_max_line_width()drm_dp_read_lttpr_common_caps()drm_dp_read_lttpr_phy_caps()drm_dp_lttpr_count()drm_dp_lttpr_max_link_rate()drm_dp_lttpr_set_transparent_mode()drm_dp_lttpr_init()drm_dp_lttpr_max_lane_count()drm_dp_lttpr_voltage_swing_level_3_supported()drm_dp_lttpr_pre_emphasis_level_3_supported()drm_dp_get_phy_test_pattern()drm_dp_set_phy_test_pattern()drm_dp_as_sdp_supported()drm_dp_vsc_sdp_supported()drm_dp_vsc_sdp_pack()drm_dp_get_pcon_max_frl_bw()drm_dp_pcon_frl_prepare()drm_dp_pcon_is_frl_ready()drm_dp_pcon_frl_configure_1()drm_dp_pcon_frl_configure_2()drm_dp_pcon_reset_frl_config()drm_dp_pcon_frl_enable()drm_dp_pcon_hdmi_link_active()drm_dp_pcon_hdmi_link_mode()drm_dp_pcon_hdmi_frl_link_error_count()drm_dp_pcon_pps_default()drm_dp_pcon_pps_override_buf()drm_edp_backlight_set_level()drm_edp_backlight_enable()drm_edp_backlight_disable()drm_edp_backlight_init()drm_panel_dp_aux_backlight()drm_dp_link_symbol_cycles()drm_dp_bw_overhead()drm_dp_bw_channel_coding_efficiency()drm_dp_max_dprx_data_rate()
- Display Port CEC Helper Functions Reference
- Display Port Dual Mode Adaptor Helper Functions Reference
- Display Port MST Helpers
- Overview
- Functions Reference
drm_dp_mst_portdrm_dp_mst_branchdrm_dp_mst_atomic_payloaddrm_dp_mst_topology_statedrm_dp_mst_topology_mgrdrm_dp_mst_mode__drm_dp_mst_state_iter_get()for_each_oldnew_mst_mgr_in_statefor_each_old_mst_mgr_in_statefor_each_new_mst_mgr_in_statedrm_dp_mst_get_port_malloc()drm_dp_mst_put_port_malloc()drm_dp_mst_connector_late_register()drm_dp_mst_connector_early_unregister()drm_dp_add_payload_part1()drm_dp_remove_payload_part1()drm_dp_remove_payload_part2()drm_dp_add_payload_part2()drm_dp_get_vc_payload_bw()drm_dp_read_mst_cap()drm_dp_mst_topology_mgr_set_mst()drm_dp_mst_topology_queue_probe()drm_dp_mst_topology_mgr_suspend()drm_dp_mst_topology_mgr_resume()drm_dp_mst_hpd_irq_handle_event()drm_dp_mst_hpd_irq_send_new_request()drm_dp_mst_detect_port()drm_dp_mst_edid_read()drm_dp_mst_get_edid()drm_dp_atomic_find_time_slots()drm_dp_atomic_release_time_slots()drm_dp_mst_atomic_setup_commit()drm_dp_mst_atomic_wait_for_dependencies()drm_dp_mst_root_conn_atomic_check()drm_dp_mst_update_slots()drm_dp_check_act_status()drm_dp_calc_pbn_mode()drm_dp_mst_dump_topology()drm_dp_mst_port_downstream_of_parent()drm_dp_mst_add_affected_dsc_crtcs()drm_dp_mst_atomic_enable_dsc()drm_dp_mst_atomic_check_mgr()drm_dp_mst_atomic_check()drm_atomic_get_mst_topology_state()drm_atomic_get_old_mst_topology_state()drm_atomic_get_new_mst_topology_state()drm_dp_mst_topology_mgr_init()drm_dp_mst_topology_mgr_destroy()drm_dp_mst_aux_for_parent()drm_dp_mst_dsc_aux_for_port()
- Topology Lifetime Internals
- MIPI DBI Helper Functions Reference
mipi_dbimipi_dbi_devmipi_dbi_commandDRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCSmipi_dbi_command_read()mipi_dbi_command_buf()mipi_dbi_buf_copy()mipi_dbi_pipe_mode_valid()mipi_dbi_pipe_update()mipi_dbi_enable_flush()mipi_dbi_pipe_disable()mipi_dbi_pipe_begin_fb_access()mipi_dbi_pipe_end_fb_access()mipi_dbi_pipe_reset_plane()mipi_dbi_pipe_duplicate_plane_state()mipi_dbi_pipe_destroy_plane_state()mipi_dbi_dev_init_with_formats()mipi_dbi_dev_init()mipi_dbi_hw_reset()mipi_dbi_display_is_on()mipi_dbi_poweron_reset()mipi_dbi_poweron_conditional_reset()mipi_dbi_spi_cmd_max_speed()mipi_dbi_spi_init()mipi_dbi_spi_transfer()mipi_dbi_debugfs_init()
- MIPI DSI Helper Functions Reference
mipi_dsi_msgmipi_dsi_packetmipi_dsi_host_opsmipi_dsi_hostmipi_dsi_device_infomipi_dsi_devicemipi_dsi_multi_contextmipi_dsi_pixel_format_to_bpp()mipi_dsi_dcs_tear_modemipi_dsi_generic_write_seq_multimipi_dsi_generic_write_var_seq_multimipi_dsi_dcs_write_seq_multimipi_dsi_dcs_write_var_seq_multimipi_dsi_dualmipi_dsi_dual_generic_write_seq_multimipi_dsi_dual_dcs_write_seq_multimipi_dsi_driverof_find_mipi_dsi_device_by_node()mipi_dsi_device_register_full()mipi_dsi_device_unregister()devm_mipi_dsi_device_register_full()of_find_mipi_dsi_host_by_node()mipi_dsi_attach()mipi_dsi_detach()devm_mipi_dsi_attach()mipi_dsi_packet_format_is_short()mipi_dsi_packet_format_is_long()mipi_dsi_create_packet()mipi_dsi_shutdown_peripheral()mipi_dsi_turn_on_peripheral()mipi_dsi_compression_mode_ext()mipi_dsi_compression_mode()mipi_dsi_picture_parameter_set()mipi_dsi_generic_write()mipi_dsi_generic_write_multi()mipi_dsi_dual_generic_write_multi()mipi_dsi_generic_read()drm_mipi_dsi_get_input_bus_fmt()mipi_dsi_dcs_write_buffer()mipi_dsi_dcs_write_buffer_chatty()mipi_dsi_dcs_write_buffer_multi()mipi_dsi_dual_dcs_write_buffer_multi()mipi_dsi_dcs_write()mipi_dsi_dcs_read()mipi_dsi_dcs_read_multi()mipi_dsi_dcs_nop()mipi_dsi_dcs_soft_reset()mipi_dsi_dcs_get_power_mode()mipi_dsi_dcs_get_pixel_format()mipi_dsi_dcs_enter_sleep_mode()mipi_dsi_dcs_exit_sleep_mode()mipi_dsi_dcs_set_display_off()mipi_dsi_dcs_set_display_on()mipi_dsi_dcs_set_column_address()mipi_dsi_dcs_set_page_address()mipi_dsi_dcs_set_tear_on()mipi_dsi_dcs_set_pixel_format()mipi_dsi_dcs_set_tear_scanline()mipi_dsi_dcs_set_display_brightness()mipi_dsi_dcs_get_display_brightness()mipi_dsi_dcs_set_display_brightness_large()mipi_dsi_dcs_get_display_brightness_large()mipi_dsi_picture_parameter_set_multi()mipi_dsi_compression_mode_ext_multi()mipi_dsi_compression_mode_multi()mipi_dsi_dcs_nop_multi()mipi_dsi_dcs_enter_sleep_mode_multi()mipi_dsi_dcs_exit_sleep_mode_multi()mipi_dsi_dcs_set_display_off_multi()mipi_dsi_dcs_set_display_on_multi()mipi_dsi_dcs_set_tear_on_multi()mipi_dsi_turn_on_peripheral_multi()mipi_dsi_dcs_set_tear_off_multi()mipi_dsi_dcs_soft_reset_multi()mipi_dsi_dcs_set_display_brightness_multi()mipi_dsi_dcs_set_pixel_format_multi()mipi_dsi_dcs_set_column_address_multi()mipi_dsi_dcs_set_page_address_multi()mipi_dsi_dcs_set_tear_scanline_multi()mipi_dsi_driver_register_full()mipi_dsi_driver_unregister()
- Display Stream Compression Helper Functions Reference
drm_dsc_rc_range_parametersdrm_dsc_configdrm_dsc_picture_parameter_setdrm_dsc_pps_infoframedrm_dsc_dp_pps_header_init()drm_dsc_dp_rc_buffer_size()drm_dsc_pps_payload_pack()drm_dsc_set_const_params()drm_dsc_set_rc_buf_thresh()drm_dsc_setup_rc_params()drm_dsc_compute_rc_parameters()drm_dsc_get_bpp_int()drm_dsc_initial_scale_value()drm_dsc_flatness_det_thresh()drm_dsc_dump_config()
- Output Probing Helper Functions Reference
drm_kms_helper_poll_enable()drm_kms_helper_poll_reschedule()drm_helper_probe_detect()drm_helper_probe_single_connector_modes()drm_kms_helper_hotplug_event()drm_kms_helper_connector_hotplug_event()drm_kms_helper_is_poll_worker()drm_kms_helper_poll_disable()drm_kms_helper_poll_init()drm_kms_helper_poll_fini()drmm_kms_helper_poll_init()drm_connector_helper_hpd_irq_event()drm_helper_hpd_irq_event()drm_crtc_helper_mode_valid_fixed()drm_connector_helper_get_modes_fixed()drm_connector_helper_get_modes()drm_connector_helper_tv_get_modes()drm_connector_helper_detect_from_ddc()
- EDID Helper Functions Reference
drm_edid_decode_mfg_id()drm_edid_encode_panel_iddrm_edid_decode_panel_id()drm_edid_header_is_valid()drm_edid_is_valid()drm_edid_valid()drm_edid_override_connector_update()drm_edid_raw()drm_edid_alloc()drm_edid_dup()drm_edid_free()drm_probe_ddc()drm_get_edid()drm_edid_read_custom()drm_edid_read_ddc()drm_edid_read()drm_edid_get_product_id()drm_edid_print_product_id()drm_edid_get_panel_id()drm_edid_read_base_block()drm_get_edid_switcheroo()drm_edid_read_switcheroo()drm_edid_duplicate()drm_match_cea_mode()drm_display_mode_from_cea_vic()drm_edid_match()drm_edid_get_monitor_name()drm_edid_to_sad()drm_edid_to_speaker_allocation()drm_av_sync_delay()drm_detect_hdmi_monitor()drm_detect_monitor_audio()drm_default_rgb_quant_range()drm_edid_connector_update()drm_edid_connector_add_modes()drm_connector_update_edid_property()drm_add_edid_modes()drm_add_modes_noedid()drm_hdmi_avi_infoframe_from_display_mode()drm_hdmi_avi_infoframe_quant_range()drm_hdmi_vendor_infoframe_from_display_mode()drm_edid_is_digital()drm_eld_mnl()drm_eld_sad()drm_eld_sad_count()drm_eld_calc_baseline_block_size()drm_eld_size()drm_eld_get_spk_alloc()drm_eld_get_conn_type()drm_eld_sad_get()drm_eld_sad_set()
- SCDC Helper Functions Reference
- HDMI Infoframes Helper Reference
hdr_sink_metadatahdmi_infoframehdmi_avi_infoframe_init()hdmi_avi_infoframe_check()hdmi_avi_infoframe_pack_only()hdmi_avi_infoframe_pack()hdmi_spd_infoframe_init()hdmi_spd_infoframe_check()hdmi_spd_infoframe_pack_only()hdmi_spd_infoframe_pack()hdmi_audio_infoframe_init()hdmi_audio_infoframe_check()hdmi_audio_infoframe_pack_only()hdmi_audio_infoframe_pack()hdmi_audio_infoframe_pack_for_dp()hdmi_vendor_infoframe_init()hdmi_vendor_infoframe_check()hdmi_vendor_infoframe_pack_only()hdmi_vendor_infoframe_pack()hdmi_drm_infoframe_init()hdmi_drm_infoframe_check()hdmi_drm_infoframe_pack_only()hdmi_drm_infoframe_pack()hdmi_infoframe_pack_only()hdmi_infoframe_pack()hdmi_infoframe_log()hdmi_drm_infoframe_unpack_only()hdmi_infoframe_unpack()
- Rectangle Utilities Reference
drm_rectDRM_RECT_INITDRM_RECT_FMTDRM_RECT_ARGDRM_RECT_FP_FMTDRM_RECT_FP_ARGdrm_rect_init()drm_rect_adjust_size()drm_rect_translate()drm_rect_translate_to()drm_rect_downscale()drm_rect_width()drm_rect_height()drm_rect_visible()drm_rect_equals()drm_rect_fp_to_int()drm_rect_overlap()drm_rect_intersect()drm_rect_clip_scaled()drm_rect_calc_hscale()drm_rect_calc_vscale()drm_rect_debug_print()drm_rect_rotate()drm_rect_rotate_inv()
- Flip-work Helper Reference
- Auxiliary Modeset Helpers
- OF/DT Helpers
drm_of_crtc_port_mask()drm_of_find_possible_crtcs()drm_of_component_match_add()drm_of_component_probe()drm_of_find_panel_or_bridge()drm_of_lvds_get_dual_link_pixel_order()drm_of_lvds_get_dual_link_pixel_order_sink()drm_of_lvds_get_data_mapping()drm_of_get_data_lanes_count()drm_of_get_data_lanes_count_ep()drm_of_get_dsi_bus()
- Legacy Plane Helper Reference
- Legacy CRTC/Modeset Helper Functions Reference
- Privacy-screen class
drm_privacy_screen_opsdrm_privacy_screendrm_privacy_screen_lookupdrm_privacy_screen_lookup_add()drm_privacy_screen_lookup_remove()drm_privacy_screen_get()drm_privacy_screen_put()drm_privacy_screen_set_sw_state()drm_privacy_screen_get_state()drm_privacy_screen_register_notifier()drm_privacy_screen_unregister_notifier()drm_privacy_screen_register()drm_privacy_screen_unregister()drm_privacy_screen_call_notifier_chain()
- Userland interfaces
- libdrm Device Lookup
- Primary Nodes, DRM Master and Authentication
- DRM Display Resource Leasing
- Open-Source Userspace Requirements
- Render nodes
- Device Hot-Unplug
- Device reset
- Device Wedging
- IOCTL Support on Device Nodes
- Testing and validation
- Sysfs Support
- VBlank event handling
- Userspace API Structures
- CRTC index
drm_gem_closedrm_gem_flinkdrm_gem_opendrm_gem_change_handleDRM_CAP_DUMB_BUFFERDRM_CAP_VBLANK_HIGH_CRTCDRM_CAP_DUMB_PREFERRED_DEPTHDRM_CAP_DUMB_PREFER_SHADOWDRM_CAP_PRIMEDRM_PRIME_CAP_IMPORTDRM_PRIME_CAP_EXPORTDRM_CAP_TIMESTAMP_MONOTONICDRM_CAP_ASYNC_PAGE_FLIPDRM_CAP_CURSOR_WIDTHDRM_CAP_CURSOR_HEIGHTDRM_CAP_ADDFB2_MODIFIERSDRM_CAP_PAGE_FLIP_TARGETDRM_CAP_CRTC_IN_VBLANK_EVENTDRM_CAP_SYNCOBJDRM_CAP_SYNCOBJ_TIMELINEDRM_CAP_ATOMIC_ASYNC_PAGE_FLIPDRM_CLIENT_CAP_STEREO_3DDRM_CLIENT_CAP_UNIVERSAL_PLANESDRM_CLIENT_CAP_ATOMICDRM_CLIENT_CAP_ASPECT_RATIODRM_CLIENT_CAP_WRITEBACK_CONNECTORSDRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOTDRM_CLIENT_CAP_PLANE_COLOR_PIPELINEdrm_syncobj_eventfdDRM_IOCTL_GEM_CLOSEDRM_IOCTL_PRIME_HANDLE_TO_FDDRM_IOCTL_PRIME_FD_TO_HANDLEDRM_IOCTL_MODE_RMFBDRM_IOCTL_MODE_CREATE_DUMBDRM_IOCTL_MODE_GETFB2DRM_IOCTL_MODE_CLOSEFBDRM_IOCTL_SET_CLIENT_NAMEDRM_IOCTL_GEM_CHANGE_HANDLEdrm_eventDRM_EVENT_VBLANKDRM_EVENT_FLIP_COMPLETEDRM_EVENT_CRTC_SEQUENCEdrm_mode_modeinfodrm_mode_get_planedrm_mode_get_connectordrm_mode_property_enumdrm_mode_get_propertydrm_mode_fb_cmd2drm_colorop_typedrm_colorop_lut3d_interpolation_typedrm_colorop_lut1d_interpolation_typedrm_plane_size_hinthdr_metadata_infoframehdr_output_metadataDRM_MODE_PAGE_FLIP_EVENTDRM_MODE_PAGE_FLIP_ASYNCDRM_MODE_PAGE_FLIP_FLAGSdrm_mode_create_dumbDRM_MODE_ATOMIC_TEST_ONLYDRM_MODE_ATOMIC_NONBLOCKDRM_MODE_ATOMIC_ALLOW_MODESETDRM_MODE_ATOMIC_FLAGSdrm_mode_create_blobdrm_mode_destroy_blobdrm_mode_create_leasedrm_mode_list_lesseesdrm_mode_get_leasedrm_mode_revoke_leasedrm_mode_rectdrm_mode_closefb
- CRTC index
- dma-buf interoperability
- Trace events
- DRM client usage stats
- DRM Driver uAPI
- drm/i915 uAPI
i915_user_extensiondrm_i915_gem_engine_classi915_engine_class_instancedrm_i915_getparamdrm_i915_getparam_tdrm_i915_gem_mmap_offsetdrm_i915_gem_set_domaindrm_i915_gem_exec_fencedrm_i915_gem_execbuffer_ext_timeline_fencesdrm_i915_gem_execbuffer2drm_i915_gem_cachingdrm_i915_gem_context_create_extdrm_i915_gem_context_parami915_context_engines_parallel_submitdrm_i915_gem_context_create_ext_setparamdrm_i915_gem_vm_controldrm_i915_gem_userptrdrm_i915_perf_oa_configdrm_i915_query_itemdrm_i915_querydrm_i915_query_topology_infodrm_i915_engine_infodrm_i915_query_engine_infodrm_i915_query_perf_configdrm_i915_gem_memory_classdrm_i915_gem_memory_class_instancedrm_i915_memory_region_infodrm_i915_query_memory_regionsdrm_i915_query_guc_submission_versiondrm_i915_gem_create_extdrm_i915_gem_create_ext_memory_regionsdrm_i915_gem_create_ext_protected_contentdrm_i915_gem_create_ext_set_pat
- drm/nouveau uAPI
- drm/panthor uAPI
DRM_PANTHOR_USER_MMIO_OFFSETDRM_PANTHOR_USER_FLUSH_ID_MMIO_OFFSETdrm_panthor_obj_arrayDRM_PANTHOR_OBJ_ARRAYdrm_panthor_sync_op_flagsdrm_panthor_sync_opdrm_panthor_dev_query_typedrm_panthor_gpu_coherencydrm_panthor_gpu_infodrm_panthor_csif_infodrm_panthor_timestamp_infodrm_panthor_group_priorities_infodrm_panthor_dev_querydrm_panthor_vm_createdrm_panthor_vm_destroydrm_panthor_vm_bind_op_flagsdrm_panthor_vm_bind_opdrm_panthor_vm_bind_flagsdrm_panthor_vm_binddrm_panthor_vm_statedrm_panthor_vm_get_statedrm_panthor_bo_flagsdrm_panthor_bo_createdrm_panthor_bo_mmap_offsetdrm_panthor_queue_createdrm_panthor_group_prioritydrm_panthor_group_createdrm_panthor_group_destroydrm_panthor_queue_submitdrm_panthor_group_submitdrm_panthor_group_state_flagsdrm_panthor_group_get_statedrm_panthor_tiler_heap_createdrm_panthor_tiler_heap_destroydrm_panthor_bo_set_labeldrm_panthor_set_user_mmio_offsetdrm_panthor_bo_sync_op_typedrm_panthor_bo_sync_opdrm_panthor_bo_syncdrm_panthor_bo_extra_flagsdrm_panthor_bo_query_infoDRM_IOCTL_PANTHOR
- drm/xe uAPI
drm_xe_user_extensiondrm_xe_ext_set_propertydrm_xe_engine_class_instancedrm_xe_enginedrm_xe_query_enginesdrm_xe_memory_classdrm_xe_mem_regiondrm_xe_query_mem_regionsdrm_xe_query_configdrm_xe_gtdrm_xe_query_gt_listdrm_xe_query_topology_maskdrm_xe_query_engine_cyclesdrm_xe_query_uc_fw_versiondrm_xe_query_pxp_statusdrm_xe_device_querydrm_xe_gem_createdrm_xe_gem_mmap_offsetdrm_xe_vm_createdrm_xe_vm_destroydrm_xe_vm_bind_opdrm_xe_vm_binddrm_xe_exec_queue_createdrm_xe_exec_queue_destroydrm_xe_exec_queue_get_propertydrm_xe_syncdrm_xe_execdrm_xe_wait_user_fencedrm_xe_observation_typedrm_xe_observation_opdrm_xe_observation_paramdrm_xe_observation_ioctlsdrm_xe_oa_unit_typedrm_xe_oa_unitdrm_xe_query_oa_unitsdrm_xe_oa_format_typedrm_xe_oa_property_iddrm_xe_oa_configdrm_xe_oa_stream_statusdrm_xe_oa_stream_infodrm_xe_pxp_session_typedrm_xe_eu_stall_property_iddrm_xe_query_eu_stalldrm_xe_madvisedrm_xe_mem_range_attrdrm_xe_vm_query_mem_range_attrdrm_xe_exec_queue_set_property
- drm/asahi uAPI
drm_asahi_ioctl_iddrm_asahi_params_globaldrm_asahi_featuredrm_asahi_get_paramsdrm_asahi_vm_createdrm_asahi_vm_destroydrm_asahi_gem_flagsdrm_asahi_gem_createdrm_asahi_gem_mmap_offsetdrm_asahi_bind_flagsdrm_asahi_gem_bind_opdrm_asahi_vm_binddrm_asahi_bind_object_opdrm_asahi_bind_object_flagsdrm_asahi_gem_bind_objectdrm_asahi_cmd_typedrm_asahi_prioritydrm_asahi_queue_createdrm_asahi_queue_destroydrm_asahi_sync_typedrm_asahi_syncDRM_ASAHI_BARRIER_NONEdrm_asahi_cmd_headerdrm_asahi_submitdrm_asahi_attachmentdrm_asahi_zls_bufferdrm_asahi_timestampdrm_asahi_timestampsdrm_asahi_helper_programdrm_asahi_bg_eotdrm_asahi_cmd_renderdrm_asahi_cmd_computedrm_asahi_get_timeDRM_IOCTL_ASAHI
- drm/i915 uAPI
- Kernel clients
drm_client_funcsdrm_client_devdrm_client_bufferdrm_client_for_each_modesetdrm_client_for_each_connector_iterdrm_client_init()drm_client_register()drm_client_release()drm_client_buffer_delete()drm_client_buffer_vmap_local()drm_client_buffer_vunmap_local()drm_client_buffer_vmap()drm_client_buffer_vunmap()drm_client_buffer_create_dumb()drm_client_buffer_flush()drm_client_modeset_probe()drm_client_rotation()drm_client_modeset_check()drm_client_modeset_commit_locked()drm_client_modeset_commit()drm_client_modeset_dpms()drm_client_modeset_wait_for_vblank()drm_client_dev_unregister()drm_client_dev_hotplug()
- Long running workloads and compute
- GPU Driver Documentation
- drm/amdgpu AMDgpu driver
- Core Driver Infrastructure
- GPU Hardware Structure
- GFX, Compute, and SDMA Overall Behavior
- Driver Structure
- Memory Domains
- Buffer Objects
amdgpu_bo_is_amdgpu_bo()amdgpu_bo_placement_from_domain()amdgpu_bo_create_reserved()amdgpu_bo_create_kernel()amdgpu_bo_create_isp_user()amdgpu_bo_create_kernel_at()amdgpu_bo_free_kernel()amdgpu_bo_free_isp_user()amdgpu_bo_create()amdgpu_bo_create_user()amdgpu_bo_create_vm()amdgpu_bo_kmap()amdgpu_bo_kptr()amdgpu_bo_kunmap()amdgpu_bo_ref()amdgpu_bo_unref()amdgpu_bo_pin()amdgpu_bo_unpin()amdgpu_bo_init()amdgpu_bo_fini()amdgpu_bo_set_tiling_flags()amdgpu_bo_get_tiling_flags()amdgpu_bo_set_metadata()amdgpu_bo_get_metadata()amdgpu_bo_move_notify()amdgpu_bo_release_notify()amdgpu_bo_fault_reserve_notify()amdgpu_bo_fence()amdgpu_bo_sync_wait_resv()amdgpu_bo_sync_wait()amdgpu_bo_gpu_offset()amdgpu_bo_fb_aper_addr()amdgpu_bo_gpu_offset_no_check()amdgpu_bo_mem_stats_placement()amdgpu_bo_get_preferred_domain()amdgpu_bo_print_info()
- PRIME Buffer Sharing
dma_buf_attach_adev()amdgpu_dma_buf_attach()amdgpu_dma_buf_pin()amdgpu_dma_buf_unpin()amdgpu_dma_buf_map()amdgpu_dma_buf_unmap()amdgpu_dma_buf_begin_cpu_access()amdgpu_gem_prime_export()amdgpu_dma_buf_create_obj()amdgpu_dma_buf_move_notify()amdgpu_gem_prime_import()amdgpu_dmabuf_is_xgmi_accessible()
- MMU Notifier
- AMDGPU Virtual Memory
amdgpu_prt_cbamdgpu_vm_tlb_seq_structamdgpu_vm_assert_locked()amdgpu_vm_bo_evicted()amdgpu_vm_bo_moved()amdgpu_vm_bo_idle()amdgpu_vm_bo_invalidated()amdgpu_vm_bo_evicted_user()amdgpu_vm_bo_relocated()amdgpu_vm_bo_done()amdgpu_vm_bo_reset_state_machine()amdgpu_vm_update_shared()amdgpu_vm_bo_update_shared()amdgpu_vm_update_stats_locked()amdgpu_vm_update_stats()amdgpu_vm_bo_base_init()amdgpu_vm_lock_pd()amdgpu_vm_lock_done_list()amdgpu_vm_move_to_lru_tail()amdgpu_vm_generation()amdgpu_vm_validate()amdgpu_vm_ready()amdgpu_vm_check_compute_bug()amdgpu_vm_need_pipeline_sync()amdgpu_vm_flush()amdgpu_vm_bo_find()amdgpu_vm_map_gart()amdgpu_vm_update_pdes()amdgpu_vm_tlb_seq_cb()amdgpu_vm_tlb_flush()amdgpu_vm_update_range()amdgpu_vm_bo_update()amdgpu_vm_update_prt_state()amdgpu_vm_prt_get()amdgpu_vm_prt_put()amdgpu_vm_prt_cb()amdgpu_vm_add_prt_cb()amdgpu_vm_free_mapping()amdgpu_vm_prt_fini()amdgpu_vm_clear_freed()amdgpu_vm_handle_moved()amdgpu_vm_flush_compute_tlb()amdgpu_vm_bo_add()amdgpu_vm_bo_insert_map()amdgpu_vm_bo_map()amdgpu_vm_bo_replace_map()amdgpu_vm_bo_unmap()amdgpu_vm_bo_clear_mappings()amdgpu_vm_bo_lookup_mapping()amdgpu_vm_bo_trace_cs()amdgpu_vm_bo_del()amdgpu_vm_evictable()amdgpu_vm_bo_invalidate()amdgpu_vm_bo_move()amdgpu_vm_get_block_size()amdgpu_vm_adjust_size()amdgpu_vm_wait_idle()amdgpu_vm_put_task_info()amdgpu_vm_get_task_info_vm()amdgpu_vm_get_task_info_pasid()amdgpu_vm_set_task_info()amdgpu_vm_init()amdgpu_vm_make_compute()amdgpu_vm_fini()amdgpu_vm_manager_init()amdgpu_vm_manager_fini()amdgpu_vm_ioctl()amdgpu_vm_handle_fault()amdgpu_debugfs_vm_bo_info()amdgpu_vm_update_fault_cache()amdgpu_vm_is_bo_always_valid()
- Interrupt Handling
amdgpu_irq_disable_all()amdgpu_irq_handler()amdgpu_irq_handle_ih1()amdgpu_irq_handle_ih2()amdgpu_irq_handle_ih_soft()amdgpu_msi_ok()amdgpu_irq_init()amdgpu_irq_fini_sw()amdgpu_irq_add_id()amdgpu_irq_dispatch()amdgpu_irq_delegate()amdgpu_irq_update()amdgpu_irq_gpu_reset_resume_helper()amdgpu_irq_get()amdgpu_irq_put()amdgpu_irq_enabled()amdgpu_irqdomain_map()amdgpu_irq_add_domain()amdgpu_irq_remove_domain()amdgpu_irq_create_mapping()
- IP Blocks
- Ring Buffer
- AMD Hardware Components Information per Product
- Module Parameters
- drm/amdgpu - Graphics and Compute (GC)
- drm/amd/display - Display Core (DC)
- DC Code validation
- DC Information
- AMDgpu Display Manager
dm_compressor_infodmub_hpd_workvblank_control_workidle_workqueuevupdate_offload_workamdgpu_dm_luminance_dataamdgpu_dm_backlight_capsdal_allocationhpd_rx_irq_offload_work_queuehpd_rx_irq_offload_workamdgpu_display_manageramdgpu_hdmi_vsdb_info- Lifecycle
- Interrupts
- Atomic Implementation
- Color Management Properties
- drm_crtc Properties
- AMD Private Color Management on drm_plane
- AMD plane color pipeline
amdgpu_dm_init_color_mod()__extract_blob_lut()__extract_blob_lut32()__is_lut_linear()__drm_lut_to_dc_gamma()__drm_lut32_to_dc_gamma()__drm_ctm_to_dc_matrix()__drm_ctm_3x4_to_dc_matrix()__set_legacy_tf()__set_output_tf()__set_output_tf_32()__set_input_tf()__set_input_tf_32()amdgpu_dm_verify_lut3d_size()amdgpu_dm_verify_lut_sizes()amdgpu_dm_check_crtc_color_mgmt()amdgpu_dm_update_crtc_color_mgmt()amdgpu_dm_update_plane_color_mgmt()- DC Color Capabilities between DCN generations
- Blend Mode Properties
- Display Core Next (DCN)
- DCN Blocks
- DC Programming Model
- Multiplane Overlay (MPO)
- Display Core Debug tools
- AMDGPU - Display Contributions
- DC Glossary
- AMDgpu Display Manager
- User Mode Queues
- dGPU firmware flashing
- AMDGPU XGMI Support
- AMDGPU RAS Support
- GPU Power/Thermal Controls and Monitoring
- HWMON Interfaces
- GPU sysfs Power State Interfaces
- power_dpm_state
- power_dpm_force_performance_level
- pp_table
- pp_od_clk_voltage
- pp_dpm_*
- pp_power_profile_mode
- pm_policy
- *_busy_percent
- gpu_metrics
- fan_curve
- acoustic_limit_rpm_threshold
- acoustic_target_rpm_threshold
- fan_target_temperature
- fan_minimum_pwm
- fan_zero_rpm_enable
- fan_zero_rpm_stop_temperature
- GFXOFF
- Misc AMDGPU driver information
- GPU Debugging
- AMDGPU DebugFS
- DebugFS Files
- amdgpu_benchmark
- amdgpu_test_ib
- amdgpu_discovery
- amdgpu_vbios
- amdgpu_evict_gtt
- amdgpu_evict_vram
- amdgpu_gpu_recover
- amdgpu_ring_<name>
- amdgpu_mqd_<name>
- amdgpu_error_<name>
- amdgpu_pm_info
- amdgpu_firmware_info
- amdgpu_fence_info
- amdgpu_gem_info
- amdgpu_vm_info
- amdgpu_sa_info
- amdgpu_<pool>_mm
- amdgpu_vram
- amdgpu_iomem
- amdgpu_regs_*
- amdgpu_regs2
- amdgpu_sensors
- amdgpu_gca_config
- amdgpu_wave
- amdgpu_gpr
- amdgpu_gprwave
- amdgpu_fw_attestation
- DebugFS Files
- AMDGPU Process Isolation
- AMDGPU Glossary
- Core Driver Infrastructure
- drm/i915 Intel GFX Driver
- Core Driver Infrastructure
- Runtime Power Management
intel_runtime_pm_get_raw()intel_runtime_pm_get()__intel_runtime_pm_get_if_active()intel_runtime_pm_get_noresume()intel_runtime_pm_put_raw()intel_runtime_pm_put_unchecked()intel_runtime_pm_put()intel_runtime_pm_enable()intel_uncore_forcewake_get()intel_uncore_forcewake_user_get()intel_uncore_forcewake_user_put()intel_uncore_forcewake_get__locked()intel_uncore_forcewake_put()intel_uncore_forcewake_flush()intel_uncore_forcewake_put__locked()__intel_wait_for_register_fw()__intel_wait_for_register()intel_uncore_forcewake_for_reg()
- Interrupt Handling
- Intel GVT-g Guest Support(vGPU)
- Intel GVT-g Host Support(vGPU device model)
- Workarounds
- Runtime Power Management
- Display Hardware Handling
- Mode Setting Infrastructure
- Frontbuffer Tracking
- Display FIFO Underrun Reporting
- Plane Configuration
- Atomic Plane Helpers
- Asynchronous Page Flip
- Output Probing
- Hotplug
- High Definition Audio
- Intel HDMI LPE Audio Support
- Panel Self Refresh PSR (PSR/SRD)
intel_psr_disable()intel_psr_pause()intel_psr_resume()intel_psr_needs_vblank_notification()intel_psr_trigger_frame_change_event()intel_psr_min_set_context_latency()intel_psr_wait_for_idle_locked()intel_psr_invalidate()intel_psr_flush()intel_psr_init()intel_psr_link_ok()intel_psr_lock()intel_psr_unlock()intel_psr_notify_dc5_dc6()intel_psr_dc5_dc6_wa_init()intel_psr_notify_pipe_change()intel_psr_notify_vblank_enable_disable()
- Frame Buffer Compression (FBC)
- Display Refresh Rate Switching (DRRS)
- DPIO
- DMC Firmware Support
- DMC Flip Queue
- DMC wakelock support
- Video BIOS Table (VBT)
- Display clocks
- Display PLLs
intel_get_dpll_by_id()intel_dpll_enable()intel_dpll_disable()intel_dpll_crtc_get()intel_dpll_crtc_put()intel_dpll_swap_state()icl_set_active_port_dpll()intel_dpll_init()intel_dpll_compute()intel_dpll_reserve()intel_dpll_release()intel_dpll_update_active()intel_dpll_get_freq()intel_dpll_get_hw_state()intel_dpll_dump_hw_state()intel_dpll_compare_hw_state()intel_dpll_idintel_dpll_statedpll_infointel_dpll
- Display State Buffer
- GT Programming
- Multicast/Replicated (MCR) Registers
intel_gt_mcr_lock()intel_gt_mcr_unlock()intel_gt_mcr_lock_sanitize()intel_gt_mcr_read()intel_gt_mcr_unicast_write()intel_gt_mcr_multicast_write()intel_gt_mcr_multicast_write_fw()intel_gt_mcr_multicast_rmw()intel_gt_mcr_get_nonterminated_steering()intel_gt_mcr_read_any_fw()intel_gt_mcr_read_any()intel_gt_mcr_get_ss_steering()intel_gt_mcr_wait_for_reg()
- Multicast/Replicated (MCR) Registers
- Memory Management and Command Submission
- Intel GPU Basics
- Locking Guidelines
- GEM BO Management Implementation Details
- Buffer Object Eviction
- Buffer Object Memory Shrinking
- Batchbuffer Parsing
- User Batchbuffer Execution
- Scheduling
- Logical Rings, Logical Ring Contexts and Execlists
- Global GTT views
- GTT Fences and Swizzling
- Object Tiling IOCTLs
- Protected Objects
- Microcontrollers
- Tracing
- Perf
- Style
- i915 DRM client usage stats implementation
- Core Driver Infrastructure
- drm/imagination PowerVR Graphics Driver
- Contents
- UAPI
- OBJECT ARRAYS
- IOCTLS
PVR_IOCTL- DEV_QUERY
drm_pvr_dev_querydrm_pvr_ioctl_dev_query_argsdrm_pvr_dev_query_gpu_infodrm_pvr_dev_query_runtime_infodrm_pvr_dev_query_quirksdrm_pvr_dev_query_enhancementsdrm_pvr_heap_iddrm_pvr_heapdrm_pvr_dev_query_heap_infodrm_pvr_static_data_area_usagedrm_pvr_static_data_areadrm_pvr_dev_query_static_data_areas
- CREATE_BO
- GET_BO_MMAP_OFFSET
- CREATE_VM_CONTEXT and DESTROY_VM_CONTEXT
- VM_MAP and VM_UNMAP
- CREATE_CONTEXT and DESTROY_CONTEXT
- CREATE_FREE_LIST and DESTROY_FREE_LIST
- CREATE_HWRT_DATASET and DESTROY_HWRT_DATASET
- SUBMIT_JOBS
DRM_PVR_SYNC_OP_HANDLE_TYPE_MASKDRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_SYNCOBJDRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_TIMELINE_SYNCOBJDRM_PVR_SYNC_OP_FLAG_SIGNALDRM_PVR_SYNC_OP_FLAG_WAITdrm_pvr_ioctl_submit_jobs_argsDRM_PVR_SUBMIT_JOB_GEOM_CMD_FIRSTDRM_PVR_SUBMIT_JOB_GEOM_CMD_LASTDRM_PVR_SUBMIT_JOB_GEOM_CMD_SINGLE_COREDRM_PVR_SUBMIT_JOB_GEOM_CMD_FLAGS_MASKDRM_PVR_SUBMIT_JOB_FRAG_CMD_SINGLE_COREDRM_PVR_SUBMIT_JOB_FRAG_CMD_DEPTHBUFFERDRM_PVR_SUBMIT_JOB_FRAG_CMD_STENCILBUFFERDRM_PVR_SUBMIT_JOB_FRAG_CMD_PREVENT_CDM_OVERLAPDRM_PVR_SUBMIT_JOB_FRAG_CMD_GET_VIS_RESULTSDRM_PVR_SUBMIT_JOB_FRAG_CMD_SCRATCHBUFFERDRM_PVR_SUBMIT_JOB_FRAG_CMD_DISABLE_PIXELMERGEDRM_PVR_SUBMIT_JOB_FRAG_CMD_FLAGS_MASKDRM_PVR_SUBMIT_JOB_COMPUTE_CMD_PREVENT_ALL_OVERLAPDRM_PVR_SUBMIT_JOB_COMPUTE_CMD_SINGLE_COREDRM_PVR_SUBMIT_JOB_COMPUTE_CMD_FLAGS_MASKDRM_PVR_SUBMIT_JOB_TRANSFER_CMD_SINGLE_COREDRM_PVR_SUBMIT_JOB_TRANSFER_CMD_FLAGS_MASKdrm_pvr_sync_opdrm_pvr_job_typedrm_pvr_hwrt_data_refdrm_pvr_job
- Internal notes
- UAPI
- Contents
- drm/mcde ST-Ericsson MCDE Multi-channel display engine
- drm/meson AmLogic Meson Video Processing Unit
- drm/nouveau NVIDIA GPU Driver
- drm/pl111 ARM PrimeCell PL110 and PL111 CLCD Driver
- drm/tegra NVIDIA Tegra GPU and display driver
- Driver Infrastructure
- Host1x Infrastructure Reference
- Host1x Syncpoint Reference
host1x_syncpt_alloc()host1x_syncpt_id()host1x_syncpt_incr_max()host1x_syncpt_incr()host1x_syncpt_wait()host1x_syncpt_request()host1x_syncpt_put()host1x_syncpt_read_max()host1x_syncpt_read_min()host1x_syncpt_read()host1x_syncpt_get_by_id()host1x_syncpt_get_by_id_noref()host1x_syncpt_get()host1x_syncpt_get_base()host1x_syncpt_base_id()host1x_syncpt_release_vblank_reservation()
- KMS driver
- Userspace Interface
- Driver Infrastructure
- drm/tve200 Faraday TV Encoder 200
- drm/v3d Broadcom V3D Graphics Driver
- drm/vc4 Broadcom VC4 Graphics Driver
- drm/vkms Virtual Kernel Modesetting
- drm/bridge/dw-hdmi Synopsys DesignWare HDMI Controller
- drm/xen-front Xen para-virtualized frontend driver
- drm/xe Intel GFX Driver
- Memory Management
- BO management
- BO creation
- BO validation
- BO eviction / moving
- Future work
- GGTT
- GGTT Internal API
xe_ggttxe_ggtt_pt_opsxe_ggtt_nodexe_ggtt_start()xe_ggtt_size()xe_ggtt_alloc()xe_ggtt_init_early()xe_ggtt_node_remove()xe_ggtt_init()xe_ggtt_node_insert_balloon_locked()xe_ggtt_node_remove_balloon_locked()xe_ggtt_shift_nodes_locked()xe_ggtt_node_insert()xe_ggtt_node_init()xe_ggtt_node_fini()xe_ggtt_node_allocated()xe_ggtt_node_pt_size()xe_ggtt_map_bo()xe_ggtt_map_bo_unlocked()xe_ggtt_node_insert_transform()xe_ggtt_insert_bo_at()xe_ggtt_insert_bo()xe_ggtt_remove_bo()xe_ggtt_largest_hole()xe_ggtt_assign()xe_ggtt_node_save()xe_ggtt_node_load()xe_ggtt_dump()xe_ggtt_print_holes()xe_ggtt_encode_pte_flags()xe_ggtt_read_pte()xe_ggtt_node_addr()xe_ggtt_node_size()
- GGTT Internal API
- Pagetable building
- Map Layer
- Migrate Layer
- Execution Queue
- Multi Queue Group
- Multi Queue Group GuC interface
- Internal API
xe_multi_queue_priorityxe_exec_queue_groupxe_exec_queuexe_exec_queue_opsxe_exec_queue_is_multi_queue()xe_exec_queue_is_multi_queue_primary()xe_exec_queue_is_multi_queue_secondary()xe_exec_queue_multi_queue_primary()xe_exec_queue_idle_skip_suspend()xe_exec_queue_create_bind()xe_exec_queue_lrc()xe_exec_queue_is_lr()xe_exec_queue_is_idle()xe_exec_queue_update_run_ticks()xe_exec_queue_kill()xe_exec_queue_last_fence_put()xe_exec_queue_last_fence_put_unlocked()xe_exec_queue_last_fence_get()xe_exec_queue_last_fence_get_for_resume()xe_exec_queue_last_fence_set()xe_exec_queue_tlb_inval_last_fence_put()xe_exec_queue_tlb_inval_last_fence_put_unlocked()xe_exec_queue_tlb_inval_last_fence_get()xe_exec_queue_tlb_inval_last_fence_set()xe_exec_queue_contexts_hwsp_rebase()
- Command submission
- Runtime Power Management
- Internal API
xe_pm_might_block_on_suspend()xe_pm_block_on_suspend()xe_rpm_reclaim_safe()xe_pm_suspend()xe_pm_resume()xe_pm_init()xe_pm_fini()xe_pm_runtime_suspended()xe_pm_runtime_suspend()xe_pm_runtime_resume()xe_pm_runtime_get()xe_pm_runtime_put()xe_pm_runtime_get_ioctl()xe_pm_runtime_get_if_active()xe_pm_runtime_get_if_in_use()xe_pm_runtime_get_noresume()xe_pm_runtime_resume_and_get()xe_pm_assert_unbounded_bridge()xe_pm_set_vram_threshold()xe_pm_d3cold_allowed_toggle()xe_pm_module_init()
- Internal API
- Xe GT Frequency Management
- Pcode
- Survivability Mode
- GT Multicast/Replicated (MCR) Register Support
- Hardware workarounds
- Register Table Processing
- Internal API
xe_rtp_actionXE_RTP_RULE_PLATFORMXE_RTP_RULE_SUBPLATFORMXE_RTP_RULE_GRAPHICS_STEPXE_RTP_RULE_MEDIA_STEPXE_RTP_RULE_ENGINE_CLASSXE_RTP_RULE_FUNCXE_RTP_RULE_GRAPHICS_VERSIONXE_RTP_RULE_GRAPHICS_VERSION_RANGEXE_RTP_RULE_GRAPHICS_VERSION_ANY_GTXE_RTP_RULE_MEDIA_VERSIONXE_RTP_RULE_MEDIA_VERSION_RANGEXE_RTP_RULE_MEDIA_VERSION_ANY_GTXE_RTP_RULE_IS_INTEGRATEDXE_RTP_RULE_IS_DISCRETEXE_RTP_RULE_ORXE_RTP_ACTION_WRXE_RTP_ACTION_SETXE_RTP_ACTION_CLRXE_RTP_ACTION_FIELD_SETXE_RTP_ACTION_WHITELISTXE_RTP_NAMEXE_RTP_ENTRY_FLAGXE_RTP_ACTION_FLAGXE_RTP_RULESXE_RTP_ACTIONSxe_rtp_match_even_instance()xe_rtp_match_has_flat_ccs()xe_rtp_process_ctx_enable_active_tracking()xe_rtp_process_to_sr()xe_rtp_process()
- Internal API
- Firmware
- Multi-tile Devices
- Debugging
- Xe Device Coredump
- Xe Device Wedging
- Xe DRM client usage stats implementation
- Xe Configfs
- Memory Management
- Arm Framebuffer Compression (AFBC)
- drm/komeda Arm display driver
- Overview of D71 like display IPs
- Possible D71 Pipeline usage
- Komeda Resource abstraction
- Resource discovery and initialization
- Format handling
- Attach komeda_dev to DRM-KMS
- Build komeda to be a Linux module driver
- drm/Panfrost Mali Driver
- drm/Panthor CSF driver
- Xilinx ZynqMP Ultrascale+ DisplayPort Subsystem
- debugfs
- Internals
zynqmp_dpsub_layer_idzynqmp_dpsubzynqmp_dpsub_drmzynqmp_dpsub_layer_modezynqmp_disp_formatzynqmp_disp_layer_dmazynqmp_disp_layer_infozynqmp_disp_layerzynqmp_dispzynqmp_disp_avbuf_set_format()zynqmp_disp_avbuf_set_clocks_sources()zynqmp_disp_avbuf_enable_channels()zynqmp_disp_avbuf_disable_channels()zynqmp_disp_avbuf_enable_audio()zynqmp_disp_avbuf_disable_audio()zynqmp_disp_avbuf_enable_video()zynqmp_disp_avbuf_disable_video()zynqmp_disp_avbuf_enable()zynqmp_disp_avbuf_disable()zynqmp_disp_blend_set_output_format()zynqmp_disp_blend_set_bg_color()zynqmp_disp_blend_set_global_alpha()zynqmp_disp_blend_layer_set_csc()zynqmp_disp_blend_layer_enable()zynqmp_disp_blend_layer_disable()zynqmp_disp_layer_find_format()zynqmp_disp_layer_find_live_format()zynqmp_disp_layer_drm_formats()zynqmp_disp_live_layer_formats()zynqmp_disp_layer_enable()zynqmp_disp_layer_disable()zynqmp_disp_layer_set_format()zynqmp_disp_layer_set_live_format()zynqmp_disp_layer_update()zynqmp_disp_layer_release_dma()zynqmp_disp_destroy_layers()zynqmp_disp_layer_request_dma()zynqmp_disp_create_layers()zynqmp_disp_enable()zynqmp_disp_disable()zynqmp_disp_setup_clock()zynqmp_dp_link_configzynqmp_dp_modezynqmp_dp_configtest_patternzynqmp_dp_testzynqmp_dp_train_set_privzynqmp_dpzynqmp_dp_phy_init()zynqmp_dp_phy_exit()zynqmp_dp_phy_probe()zynqmp_dp_phy_ready()zynqmp_dp_max_rate()zynqmp_dp_mode_configure()zynqmp_dp_adjust_train()zynqmp_dp_update_vs_emph()zynqmp_dp_link_train_cr()zynqmp_dp_link_train_ce()zynqmp_dp_setup()zynqmp_dp_train()zynqmp_dp_train_loop()zynqmp_dp_aux_cmd_submit()zynqmp_dp_aux_init()zynqmp_dp_aux_cleanup()zynqmp_dp_update_misc()zynqmp_dp_set_format()zynqmp_dp_encoder_mode_set_transfer_unit()zynqmp_dp_encoder_mode_set_stream()zynqmp_dp_disp_connected_live_layer()zynqmp_dp_set_test_pattern()zynqmp_dp_enable_vblank()zynqmp_dp_disable_vblank()zynqmp_dpsub_drm_handle_vblank()
- nova NVIDIA GPU drivers
- drm/amdgpu AMDgpu driver
- Backlight support
backlight_update_reasonbacklight_typebacklight_opsbacklight_propertiesbacklight_devicebacklight_update_status()backlight_enable()backlight_disable()backlight_is_blank()backlight_get_brightness()bl_get_data()backlight_force_update()backlight_device_get_by_name()devm_backlight_device_register()devm_backlight_device_unregister()of_find_backlight_by_node()devm_of_find_backlight()
- VGA Switcheroo
- Modes of Use
- API
- Public functions
vga_switcheroo_register_handler()vga_switcheroo_unregister_handler()vga_switcheroo_handler_flags()vga_switcheroo_register_client()vga_switcheroo_register_audio_client()vga_switcheroo_client_probe_defer()vga_switcheroo_get_client_state()vga_switcheroo_unregister_client()vga_switcheroo_client_fb_set()vga_switcheroo_lock_ddc()vga_switcheroo_unlock_ddc()vga_switcheroo_process_delayed_switch()vga_switcheroo_init_domain_pm_ops()
- Public structures
- Public constants
- Private structures
- Public functions
- Handlers
- VGA Arbiter
- Automated testing of the DRM subsystem
- Misc DRM driver uAPI- and feature implementation guidelines
- Asynchronous VM_BIND
- VM_BIND locking
- The DRM GPUVM set of helpers
- Nomenclature
- Locks and locking order
- Protection and lifetime of gpu_vm_bos and gpu_vmas
- Revalidation and eviction of local objects
- Locking with external buffer objects
- Accessing the gpu_vm’s lists without the dma_resv lock held
- userptr gpu_vmas
- Locking at bind and unbind time
- Locking for recoverable page-fault page-table updates
- TODO list
- Difficulty
- Remove custom dumb_map_offset implementations
- Convert existing KMS drivers to atomic modesetting
- Clean up the clipped coordination confusion around planes
- Improve plane atomic_check helpers
- Convert early atomic drivers to async commit helpers
- Rename drm_atomic_state
- Fallout from atomic KMS
- Move Buffer Object Locking to dma_resv_lock()
- Convert logging to drm_* functions with drm_device parameter
- Convert drivers to use simple modeset suspend/resume
- Reimplement functions in drm_fbdev_fb_ops without fbdev
- Benchmark and optimize blitting and format-conversion function
- drm_framebuffer_funcs and drm_mode_config_funcs.fb_create cleanup
- Generic fbdev defio support
- connector register/unregister fixes
- Remove load/unload callbacks
- Replace drm_detect_hdmi_monitor() with drm_display_info.is_hdmi
- Consolidate custom driver modeset properties
- Use struct iosys_map throughout codebase
- Review all drivers for setting struct drm_mode_config.{max_width,max_height} correctly
- Request memory regions in all fbdev drivers
- Remove driver dependencies on FB_DEVICE
- Remove disable/unprepare in remove/shutdown in panel-simple and panel-edp
- Transition away from using deprecated MIPI DSI functions
- Remove devm_drm_put_bridge()
- Convert users of of_drm_find_bridge() to of_drm_find_and_get_bridge()
- Make panic handling work
- Clean up the debugfs support
- Object lifetime fixes
- Remove automatic page mapping from dma-buf importing
- Implement a new DUMB_CREATE2 ioctl
- Add unit tests using the Kernel Unit Testing (KUnit) framework
- Clean up and document former selftests suites
- Enable trinity for DRM
- Make KMS tests in i-g-t generic
- Extend virtual test driver (VKMS)
- Backlight Refactoring
- AMD DC Display Driver
- Provide a universal successor for drm_sched_resubmit_jobs()
- Add locking for runqueues
- Convert fbdev drivers to DRM
- GPU RFC Section
- GPU SVM Section
- I915 DG1/LMEM RFC Section
- I915 GuC Submission/DRM Scheduler Section
- I915 Small BAR RFC Section
- I915 VM_BIND feature design and use cases
- Linux Color Pipeline API
- What problem are we solving?
- How are other OSes solving this problem?
- Why is Linux different?
- Descriptive API
- Prescriptive API
- The Color Pipeline API
- drm_colorop Object
- COLOR_PIPELINE Plane Property
- Color Pipeline Discovery
- Color Pipeline Programming
- Driver Implementer’s Guide
- Driver Forward/Backward Compatibility
- References