Commit c620e79b authored by Rodrigo Siqueira's avatar Rodrigo Siqueira Committed by Alex Deucher

drm/amd/display: Add some extra kernel doc to amdgpu_dm

Reviewed-by: default avatarHarry Wentland <Harry.Wentland@amd.com>
Acked-by: default avatarTom Chung <chiahsuan.chung@amd.com>
Signed-off-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent fdf17f10
...@@ -9321,6 +9321,7 @@ static int add_affected_mst_dsc_crtcs(struct drm_atomic_state *state, struct drm ...@@ -9321,6 +9321,7 @@ static int add_affected_mst_dsc_crtcs(struct drm_atomic_state *state, struct drm
/** /**
* amdgpu_dm_atomic_check() - Atomic check implementation for AMDgpu DM. * amdgpu_dm_atomic_check() - Atomic check implementation for AMDgpu DM.
*
* @dev: The DRM device * @dev: The DRM device
* @state: The atomic state to commit * @state: The atomic state to commit
* *
...@@ -9935,6 +9936,16 @@ static int parse_hdmi_amd_vsdb(struct amdgpu_dm_connector *aconnector, ...@@ -9935,6 +9936,16 @@ static int parse_hdmi_amd_vsdb(struct amdgpu_dm_connector *aconnector,
return valid_vsdb_found ? i : -ENODEV; return valid_vsdb_found ? i : -ENODEV;
} }
/**
* amdgpu_dm_update_freesync_caps - Update Freesync capabilities
*
* @aconnector: Connector to query.
*
* Amdgpu supports Freesync in DP and HDMI displays, and it is required to keep
* track of some of the display information in the internal data struct used by
* amdgpu_dm. This function checks which type of connector we need to set the
* FreeSync parameters.
*/
void amdgpu_dm_update_freesync_caps(struct drm_connector *connector, void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
struct edid *edid) struct edid *edid)
{ {
...@@ -9949,8 +9960,8 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector, ...@@ -9949,8 +9960,8 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
struct drm_device *dev = connector->dev; struct drm_device *dev = connector->dev;
struct amdgpu_device *adev = drm_to_adev(dev); struct amdgpu_device *adev = drm_to_adev(dev);
bool freesync_capable = false;
struct amdgpu_hdmi_vsdb_info vsdb_info = {0}; struct amdgpu_hdmi_vsdb_info vsdb_info = {0};
bool freesync_capable = false;
if (!connector->state) { if (!connector->state) {
DRM_ERROR("%s - Connector has no state", __func__); DRM_ERROR("%s - Connector has no state", __func__);
...@@ -9979,7 +9990,6 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector, ...@@ -9979,7 +9990,6 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
if (!adev->dm.freesync_module) if (!adev->dm.freesync_module)
goto update; goto update;
if (sink->sink_signal == SIGNAL_TYPE_DISPLAY_PORT if (sink->sink_signal == SIGNAL_TYPE_DISPLAY_PORT
|| sink->sink_signal == SIGNAL_TYPE_EDP) { || sink->sink_signal == SIGNAL_TYPE_EDP) {
bool edid_check_required = false; bool edid_check_required = false;
......
...@@ -598,6 +598,10 @@ struct amdgpu_dm_connector { ...@@ -598,6 +598,10 @@ struct amdgpu_dm_connector {
* The 'current' sink is in dc_link->sink. */ * The 'current' sink is in dc_link->sink. */
struct dc_sink *dc_sink; struct dc_sink *dc_sink;
struct dc_link *dc_link; struct dc_link *dc_link;
/**
* @dc_em_sink: Reference to the emulated (virtual) sink.
*/
struct dc_sink *dc_em_sink; struct dc_sink *dc_em_sink;
/* DM only */ /* DM only */
...@@ -610,7 +614,16 @@ struct amdgpu_dm_connector { ...@@ -610,7 +614,16 @@ struct amdgpu_dm_connector {
struct amdgpu_i2c_adapter *i2c; struct amdgpu_i2c_adapter *i2c;
/* Monitor range limits */ /* Monitor range limits */
int min_vfreq ; /**
* @min_vfreq: Minimal frequency supported by the display in Hz. This
* value is set to zero when there is no FreeSync support.
*/
int min_vfreq;
/**
* @max_vfreq: Maximum frequency supported by the display in Hz. This
* value is set to zero when there is no FreeSync support.
*/
int max_vfreq ; int max_vfreq ;
int pixel_clock_mhz; int pixel_clock_mhz;
...@@ -705,11 +718,34 @@ struct dm_connector_state { ...@@ -705,11 +718,34 @@ struct dm_connector_state {
uint64_t pbn; uint64_t pbn;
}; };
/**
* struct amdgpu_hdmi_vsdb_info - Keep track of the VSDB info
*
* AMDGPU supports FreeSync over HDMI by using the VSDB section, and this
* struct is useful to keep track of the display-specific information about
* FreeSync.
*/
struct amdgpu_hdmi_vsdb_info { struct amdgpu_hdmi_vsdb_info {
unsigned int amd_vsdb_version; /* VSDB version, should be used to determine which VSIF to send */ /**
bool freesync_supported; /* FreeSync Supported */ * @amd_vsdb_version: Vendor Specific Data Block Version, should be
unsigned int min_refresh_rate_hz; /* FreeSync Minimum Refresh Rate in Hz */ * used to determine which Vendor Specific InfoFrame (VSIF) to send.
unsigned int max_refresh_rate_hz; /* FreeSync Maximum Refresh Rate in Hz */ */
unsigned int amd_vsdb_version;
/**
* @freesync_supported: FreeSync Supported.
*/
bool freesync_supported;
/**
* @min_refresh_rate_hz: FreeSync Minimum Refresh Rate in Hz.
*/
unsigned int min_refresh_rate_hz;
/**
* @max_refresh_rate_hz: FreeSync Maximum Refresh Rate in Hz
*/
unsigned int max_refresh_rate_hz;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment