lkml.org 
[lkml]   [2016]   [Apr]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.5 026/124] drm/amd/powerplay: fix segment fault issue in multi-display case.
    Date
    4.5-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Rex Zhu <Rex.Zhu@amd.com>

    commit f9e9c08e20d71cabef7d5c2a7eb75e1d953dad16 upstream.

    Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
    Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 13 ++++++++-----
    1 file changed, 8 insertions(+), 5 deletions(-)

    --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
    +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
    @@ -816,10 +816,13 @@ static int amdgpu_cgs_get_active_display
    struct drm_device *ddev = adev->ddev;
    struct drm_crtc *crtc;
    uint32_t line_time_us, vblank_lines;
    + struct cgs_mode_info *mode_info;

    if (info == NULL)
    return -EINVAL;

    + mode_info = info->mode_info;
    +
    if (adev->mode_info.num_crtc && adev->mode_info.mode_config_initialized) {
    list_for_each_entry(crtc,
    &ddev->mode_config.crtc_list, head) {
    @@ -828,7 +831,7 @@ static int amdgpu_cgs_get_active_display
    info->active_display_mask |= (1 << amdgpu_crtc->crtc_id);
    info->display_count++;
    }
    - if (info->mode_info != NULL &&
    + if (mode_info != NULL &&
    crtc->enabled && amdgpu_crtc->enabled &&
    amdgpu_crtc->hw_mode.clock) {
    line_time_us = (amdgpu_crtc->hw_mode.crtc_htotal * 1000) /
    @@ -836,10 +839,10 @@ static int amdgpu_cgs_get_active_display
    vblank_lines = amdgpu_crtc->hw_mode.crtc_vblank_end -
    amdgpu_crtc->hw_mode.crtc_vdisplay +
    (amdgpu_crtc->v_border * 2);
    - info->mode_info->vblank_time_us = vblank_lines * line_time_us;
    - info->mode_info->refresh_rate = drm_mode_vrefresh(&amdgpu_crtc->hw_mode);
    - info->mode_info->ref_clock = adev->clock.spll.reference_freq;
    - info->mode_info++;
    + mode_info->vblank_time_us = vblank_lines * line_time_us;
    + mode_info->refresh_rate = drm_mode_vrefresh(&amdgpu_crtc->hw_mode);
    + mode_info->ref_clock = adev->clock.spll.reference_freq;
    + mode_info = NULL;
    }
    }
    }

    \
     
     \ /
      Last update: 2016-04-18 05:41    [W:2.472 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site