lkml.org 
[lkml]   [2013]   [Jul]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 14/75] drm/radeon/hdmi: make sure we have an afmt block assigned
    Date
    3.8.13.6 -stable review patch.  If anyone has any objections, please let me know.

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

    From: Alex Deucher <alexander.deucher@amd.com>

    commit c2b4cacfe9816c1fe378c785ce8a678cf0635ec6 upstream.

    Prevents a segfault if an afmt block is not assigned to the
    encoder such as in the LVDS or eDP case.

    Fixes:
    https://bugs.freedesktop.org/show_bug.cgi?id=66714

    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    [ kamal: backport to 3.8 (context) ]
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    drivers/gpu/drm/radeon/evergreen_hdmi.c | 3 +++
    drivers/gpu/drm/radeon/r600_hdmi.c | 6 ++++++
    2 files changed, 9 insertions(+)

    diff --git a/drivers/gpu/drm/radeon/evergreen_hdmi.c b/drivers/gpu/drm/radeon/evergreen_hdmi.c
    index 327c08b..3057181 100644
    --- a/drivers/gpu/drm/radeon/evergreen_hdmi.c
    +++ b/drivers/gpu/drm/radeon/evergreen_hdmi.c
    @@ -156,6 +156,9 @@ void evergreen_hdmi_setmode(struct drm_encoder *encoder, struct drm_display_mode
    struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv;
    uint32_t offset;

    + if (!dig || !dig->afmt)
    + return;
    +
    /* Silent, r600_hdmi_enable will raise WARN for us */
    if (!dig->afmt->enabled)
    return;
    diff --git a/drivers/gpu/drm/radeon/r600_hdmi.c b/drivers/gpu/drm/radeon/r600_hdmi.c
    index d89a1f8..79e3cda 100644
    --- a/drivers/gpu/drm/radeon/r600_hdmi.c
    +++ b/drivers/gpu/drm/radeon/r600_hdmi.c
    @@ -322,6 +322,9 @@ void r600_hdmi_setmode(struct drm_encoder *encoder, struct drm_display_mode *mod
    struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv;
    uint32_t offset;

    + if (!dig || !dig->afmt)
    + return;
    +
    /* Silent, r600_hdmi_enable will raise WARN for us */
    if (!dig->afmt->enabled)
    return;
    @@ -480,6 +483,9 @@ void r600_hdmi_enable(struct drm_encoder *encoder)
    uint32_t offset;
    u32 hdmi;

    + if (!dig || !dig->afmt)
    + return;
    +
    if (ASIC_IS_DCE6(rdev))
    return;

    --
    1.8.1.2


    \
     
     \ /
      Last update: 2013-07-30 18:01    [W:4.170 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site