Lines Matching +full:hardware +full:- +full:protected
42 * struct drm_mode_config_funcs - basic driver provided mode setting functions
44 * Some global (i.e. not per-CRTC, connector, etc) mode setting functions that
59 * ie. when (@mode_cmd->flags & DRM_MODE_FB_MODIFIERS) == 0.
70 * driver-specific information (like the internal native buffer object
131 * function must reject any modeset and state changes which the hardware
135 * - Checking that the modes, framebuffers, scaling and placement
136 * requirements and so on are within the limits of the hardware.
138 * - Checking that any hidden shared resources are not oversubscribed.
143 * - Checking that virtualized resources exported to userspace are not
146 * example is dual-pipe operations (which generally should be hidden
147 * from userspace if when lockstepped in hardware, exposed otherwise),
148 * where a plane might need 1 hardware plane (if it's just on one
149 * pipe), 2 hardware planes (when it spans both pipes) or maybe even
150 * shared a hardware plane with a 2nd plane (if there's a compatible
153 * - Check that any transitional state is possible and that if
157 * - Check any other constraints the driver or hardware might have.
159 * - This callback also needs to correctly fill out the &drm_crtc_state
168 * - The driver also does not need to repeat basic input validation
180 * drm_atomic_helper_check(), or one of the exported sub-functions of
187 * - -EINVAL, if any of the above constraints are violated.
189 * - -EDEADLK, when returned from an attempt to acquire an additional
192 * - -ENOMEM, if allocating additional state sub-structures failed due
195 * - -EINTR, -EAGAIN or -ERESTARTSYS, if the IOCTL should be restarted.
216 * drm_atomic_helper_commit(), or one of the exported sub-functions of
221 * in the context of this callback. The only exceptions are hardware
222 * errors resulting in -EIO. But even in that case the driver must
225 * specifically committing the update to the hardware, should be done
232 * buffer is a shared dma-buf. Nonblocking commits must not wait for
236 * completed. These events are per-CRTC and can be distinguished by the
255 * - -EBUSY, if a nonblocking updated is requested and there is
262 * - -ENOMEM, if the driver failed to allocate memory. Specifically
266 * - -ENOSPC, as a refinement of the more generic -ENOMEM to indicate
270 * - -EIO, if the hardware completely died.
272 * - -EINTR, -EAGAIN or -ERESTARTSYS, if the IOCTL should be restarted.
279 * return -EINVAL (any invalid requests should be caught in
280 * @atomic_check) or -EDEADLK (this function must not acquire
291 * &drm_atomic_state to be able to track their own driver-private global
308 * passed-in &drm_atomic_state. This hook is called when the caller
342 * struct drm_mode_config - Mode configuration control structure
353 * @prefer_shadow: hint to userspace to prefer shadow-fb rendering
356 * @helper_private: mid-layer private data
370 * memory. For hardware that has no real maximum, drivers should pick a
381 * anything from under its protection and move it into more well-scoped
403 * impossible to use driver-private &struct drm_modeset_lock. Users of
420 * connector, modes - just makes life easier to have only one.
428 * high-res DP MST screens.
445 * @num_connector: Number of connectors on this device. Protected by
456 * List of connector objects linked with &drm_connector.head. Protected
465 * Protected by @connector_list_lock. Used by
563 * &drm_property_blob.head. Protected by @blob_lock.
678 * CRTC. A 0 mode implies that the CRTC is entirely disabled - all
689 * @dvi_i_subconnector_property: Optional DVI-I property to
694 * @dvi_i_select_subconnector_property: Optional DVI-I property to
782 * upscaling, mostly used for built-in panels.
802 * the degamma LUT as supported by the driver (read-only).
819 * gamma LUT as supported by the driver (read-only).
843 * how the lcd-panel is mounted inside the casing (e.g. normal or
844 * upside-down).
858 * engine (read-only).
886 * Protected Content.
911 * opt-in.
963 * drm_mode_config_init - DRM mode_configuration structure initialization