drivers/gpu/drm/vkms/vkms_config.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/vkms/vkms_config.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/vkms/vkms_config.h- Extension
.h- Size
- 15913 bytes
- Lines
- 490
- Domain
- Driver Families
- Bucket
- drivers/gpu
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/list.hlinux/types.hlinux/xarray.hdrm/drm_connector.hvkms_drv.h
Detected Declarations
struct vkms_configstruct vkms_config_planestruct vkms_config_crtcstruct vkms_config_encoderstruct vkms_config_connectorfunction vkms_config_get_device_namefunction vkms_config_get_num_crtcsfunction vkms_config_plane_typefunction vkms_config_plane_set_typefunction vkms_config_plane_get_default_pipelinefunction vkms_config_plane_set_default_pipelinefunction vkms_config_crtc_get_writebackfunction vkms_config_crtc_set_writebackfunction vkms_config_connector_get_statusfunction vkms_config_connector_set_status
Annotated Snippet
struct vkms_config {
const char *dev_name;
struct list_head planes;
struct list_head crtcs;
struct list_head encoders;
struct list_head connectors;
struct vkms_device *dev;
};
/**
* struct vkms_config_plane
*
* @link: Link to the others planes in vkms_config
* @config: The vkms_config this plane belongs to
* @type: Type of the plane. The creator of configuration needs to ensures that
* at least one primary plane is present.
* @possible_crtcs: Array of CRTCs that can be used with this plane
* @plane: Internal usage. This pointer should never be considered as valid.
* It can be used to store a temporary reference to a VKMS plane during
* device creation. This pointer is not managed by the configuration and
* must be managed by other means.
*/
struct vkms_config_plane {
struct list_head link;
struct vkms_config *config;
enum drm_plane_type type;
struct xarray possible_crtcs;
bool default_pipeline;
/* Internal usage */
struct vkms_plane *plane;
};
/**
* struct vkms_config_crtc
*
* @link: Link to the others CRTCs in vkms_config
* @config: The vkms_config this CRTC belongs to
* @writeback: If true, a writeback buffer can be attached to the CRTC
* @crtc: Internal usage. This pointer should never be considered as valid.
* It can be used to store a temporary reference to a VKMS CRTC during
* device creation. This pointer is not managed by the configuration and
* must be managed by other means.
*/
struct vkms_config_crtc {
struct list_head link;
struct vkms_config *config;
bool writeback;
/* Internal usage */
struct vkms_output *crtc;
};
/**
* struct vkms_config_encoder
*
* @link: Link to the others encoders in vkms_config
* @config: The vkms_config this CRTC belongs to
* @possible_crtcs: Array of CRTCs that can be used with this encoder
* @encoder: Internal usage. This pointer should never be considered as valid.
* It can be used to store a temporary reference to a VKMS encoder
* during device creation. This pointer is not managed by the
* configuration and must be managed by other means.
*/
struct vkms_config_encoder {
struct list_head link;
struct vkms_config *config;
struct xarray possible_crtcs;
/* Internal usage */
struct drm_encoder *encoder;
};
/**
* struct vkms_config_connector
*
* @link: Link to the others connector in vkms_config
* @config: The vkms_config this connector belongs to
* @status: Status (connected, disconnected...) of the connector
* @possible_encoders: Array of encoders that can be used with this connector
* @connector: Internal usage. This pointer should never be considered as valid.
* It can be used to store a temporary reference to a VKMS connector
* during device creation. This pointer is not managed by the
* configuration and must be managed by other means.
*/
struct vkms_config_connector {
struct list_head link;
Annotation
- Immediate include surface: `linux/list.h`, `linux/types.h`, `linux/xarray.h`, `drm/drm_connector.h`, `vkms_drv.h`.
- Detected declarations: `struct vkms_config`, `struct vkms_config_plane`, `struct vkms_config_crtc`, `struct vkms_config_encoder`, `struct vkms_config_connector`, `function vkms_config_get_device_name`, `function vkms_config_get_num_crtcs`, `function vkms_config_plane_type`, `function vkms_config_plane_set_type`, `function vkms_config_plane_get_default_pipeline`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.