drm/amd/display: Add some extra kernel doc to amdgpu_dm
authorRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Mon, 21 Feb 2022 20:22:50 +0000 (15:22 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 16 Aug 2022 22:14:31 +0000 (18:14 -0400)
Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
Acked-by: Tom Chung <chiahsuan.chung@amd.com>
Signed-off-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h

index 5140d9c..2412dc6 100644 (file)
@@ -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.
+ *
  * @dev: The DRM device
  * @state: The atomic state to commit
  *
@@ -9935,8 +9936,18 @@ static int parse_hdmi_amd_vsdb(struct amdgpu_dm_connector *aconnector,
        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,
-                                       struct edid *edid)
+                                   struct edid *edid)
 {
        int i = 0;
        struct detailed_timing *timing;
@@ -9949,8 +9960,8 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
 
        struct drm_device *dev = connector->dev;
        struct amdgpu_device *adev = drm_to_adev(dev);
-       bool freesync_capable = false;
        struct amdgpu_hdmi_vsdb_info vsdb_info = {0};
+       bool freesync_capable = false;
 
        if (!connector->state) {
                DRM_ERROR("%s - Connector has no state", __func__);
@@ -9979,7 +9990,6 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
        if (!adev->dm.freesync_module)
                goto update;
 
-
        if (sink->sink_signal == SIGNAL_TYPE_DISPLAY_PORT
                || sink->sink_signal == SIGNAL_TYPE_EDP) {
                bool edid_check_required = false;
index 90b306a..b44faaa 100644 (file)
@@ -598,6 +598,10 @@ struct amdgpu_dm_connector {
         * The 'current' sink is in dc_link->sink. */
        struct dc_sink *dc_sink;
        struct dc_link *dc_link;
+
+       /**
+        * @dc_em_sink: Reference to the emulated (virtual) sink.
+        */
        struct dc_sink *dc_em_sink;
 
        /* DM only */
@@ -610,7 +614,16 @@ struct amdgpu_dm_connector {
        struct amdgpu_i2c_adapter *i2c;
 
        /* 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 pixel_clock_mhz;
 
@@ -705,11 +718,34 @@ struct dm_connector_state {
        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 {
-       unsigned int amd_vsdb_version;          /* VSDB version, should be used to determine which VSIF to send */
-       bool freesync_supported;                /* FreeSync Supported */
-       unsigned int min_refresh_rate_hz;       /* FreeSync Minimum Refresh Rate in Hz */
-       unsigned int max_refresh_rate_hz;       /* FreeSync Maximum Refresh Rate in Hz */
+       /**
+        * @amd_vsdb_version: Vendor Specific Data Block Version, should be
+        * used to determine which Vendor Specific InfoFrame (VSIF) to send.
+        */
+       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;
 };