/* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and * VA Linux Systems Inc., Fremont, California. * Copyright 2008 Red Hat Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * Original Authors: * Kevin E. Martin, Rickard E. Faith, Alan Hourihane * * Kernel port Author: Dave Airlie
*/
/* firmware flags */
u32 firmware_flags; /* pointer to backlight encoder */ struct amdgpu_encoder *bl_encoder;
u8 bl_level; /* saved backlight level */ struct amdgpu_audio audio; /* audio stuff */ int num_crtc; /* number of crtcs */ int num_hpd; /* number of hpd pins */ int num_dig; /* number of dig blocks */ bool gpu_vm_support; /* supports display from GTT */ int disp_priority; conststruct amdgpu_display_funcs *funcs; constenum drm_plane_type *plane_type;
/* Driver-private color mgmt props */
/* @plane_degamma_lut_property: Plane property to set a degamma LUT to * convert encoded values to light linear values before sampling or * blending.
*/ struct drm_property *plane_degamma_lut_property; /* @plane_degamma_lut_size_property: Plane property to define the max * size of degamma LUT as supported by the driver (read-only).
*/ struct drm_property *plane_degamma_lut_size_property; /** * @plane_degamma_tf_property: Plane pre-defined transfer function to * to go from scanout/encoded values to linear values.
*/ struct drm_property *plane_degamma_tf_property; /** * @plane_hdr_mult_property:
*/ struct drm_property *plane_hdr_mult_property;
struct drm_property *plane_ctm_property; /** * @shaper_lut_property: Plane property to set pre-blending shaper LUT * that converts color content before 3D LUT. If * plane_shaper_tf_property != Identity TF, AMD color module will * combine the user LUT values with pre-defined TF into the LUT * parameters to be programmed.
*/ struct drm_property *plane_shaper_lut_property; /** * @shaper_lut_size_property: Plane property for the size of * pre-blending shaper LUT as supported by the driver (read-only).
*/ struct drm_property *plane_shaper_lut_size_property; /** * @plane_shaper_tf_property: Plane property to set a predefined * transfer function for pre-blending shaper (before applying 3D LUT) * with or without LUT. There is no shaper ROM, but we can use AMD * color modules to program LUT parameters from predefined TF (or * from a combination of pre-defined TF and the custom 1D LUT).
*/ struct drm_property *plane_shaper_tf_property; /** * @plane_lut3d_property: Plane property for color transformation using * a 3D LUT (pre-blending), a three-dimensional array where each * element is an RGB triplet. Each dimension has the size of * lut3d_size. The array contains samples from the approximated * function. On AMD, values between samples are estimated by * tetrahedral interpolation. The array is accessed with three indices, * one for each input dimension (color channel), blue being the * outermost dimension, red the innermost.
*/ struct drm_property *plane_lut3d_property; /** * @plane_degamma_lut_size_property: Plane property to define the max * size of 3D LUT as supported by the driver (read-only). The max size * is the max size of one dimension and, therefore, the max number of * entries for 3D LUT array is the 3D LUT size cubed;
*/ struct drm_property *plane_lut3d_size_property; /** * @plane_blend_lut_property: Plane property for output gamma before * blending. Userspace set a blend LUT to convert colors after 3D LUT * conversion. It works as a post-3DLUT 1D LUT. With shaper LUT, they * are sandwiching 3D LUT with two 1D LUT. If plane_blend_tf_property * != Identity TF, AMD color module will combine the user LUT values * with pre-defined TF into the LUT parameters to be programmed.
*/ struct drm_property *plane_blend_lut_property; /** * @plane_blend_lut_size_property: Plane property to define the max * size of blend LUT as supported by the driver (read-only).
*/ struct drm_property *plane_blend_lut_size_property; /** * @plane_blend_tf_property: Plane property to set a predefined * transfer function for pre-blending blend/out_gamma (after applying * 3D LUT) with or without LUT. There is no blend ROM, but we can use * AMD color modules to program LUT parameters from predefined TF (or * from a combination of pre-defined TF and the custom 1D LUT).
*/ struct drm_property *plane_blend_tf_property; /* @regamma_tf_property: Transfer function for CRTC regamma * (post-blending). Possible values are defined by `enum * amdgpu_transfer_function`. There is no regamma ROM, but we can use * AMD color modules to program LUT parameters from predefined TF (or * from a combination of pre-defined TF and the custom 1D LUT).
*/ struct drm_property *regamma_tf_property;
};
struct amdgpu_connector { struct drm_connector base;
uint32_t connector_id;
uint32_t devices; struct amdgpu_i2c_chan *ddc_bus; /* some systems have an hdmi and vga port with a shared ddc line */ bool shared_ddc; bool use_digital; /* we need to mind the EDID between detect
and get modes due to analog/digital/tvencoder */ struct edid *edid; void *con_priv; bool dac_load_detect; bool detected_by_load; /* if the connection status was determined by load */ bool detected_hpd_without_ddc; /* if an HPD signal was detected on DVI, but ddc probing failed */
uint16_t connector_object_id; struct amdgpu_hpd hpd; struct amdgpu_router router; struct amdgpu_i2c_chan *router_bus; enum amdgpu_connector_audio audio; enum amdgpu_connector_dither dither; unsigned pixelclock_for_modeset;
};
/* TODO: start to use this struct and remove same field from base one */ struct amdgpu_mst_connector { struct amdgpu_connector base;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.