lkml.org 
[lkml]   [2013]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 24/33] drm/radeon: fix card_posted check for newer asics
    Date
    3.0-stable review patch.  If anyone has any objections, please let me know.

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

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

    commit 09fb8bd1a63b0f9f15e655c4fe8d047e5d2bf67a upstream.

    Newer asics have variable numbers of crtcs. Use that
    rather than the asic family to determine which crtcs
    to check. This avoids checking non-existent crtcs or
    missing crtcs on certain asics.

    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/gpu/drm/radeon/radeon_device.c | 19 +++++++++----------
    1 file changed, 9 insertions(+), 10 deletions(-)

    --- a/drivers/gpu/drm/radeon/radeon_device.c
    +++ b/drivers/gpu/drm/radeon/radeon_device.c
    @@ -352,18 +352,17 @@ bool radeon_card_posted(struct radeon_de
    uint32_t reg;

    /* first check CRTCs */
    - if (ASIC_IS_DCE41(rdev)) {
    + if (ASIC_IS_DCE4(rdev)) {
    reg = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET) |
    RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET);
    - if (reg & EVERGREEN_CRTC_MASTER_EN)
    - return true;
    - } else if (ASIC_IS_DCE4(rdev)) {
    - reg = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET) |
    - RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET) |
    - RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET) |
    - RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET) |
    - RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET) |
    - RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET);
    + if (rdev->num_crtc >= 4) {
    + reg |= RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET) |
    + RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET);
    + }
    + if (rdev->num_crtc >= 6) {
    + reg |= RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET) |
    + RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET);
    + }
    if (reg & EVERGREEN_CRTC_MASTER_EN)
    return true;
    } else if (ASIC_IS_AVIVO(rdev)) {

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2013-06-06 00:41    [W:4.108 / U:0.580 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site