lkml.org 
[lkml]   [2022]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.10 05/46] drm/panfrost: Handle HW_ISSUE_TTRX_2968_TTRX_3162
    Date
    From: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>

    [ Upstream commit 382435709516c1a7dc3843872792abf95e786c83 ]

    Add handling for the HW_ISSUE_TTRX_2968_TTRX_3162 quirk. Logic ported
    from kbase. kbase lists this workaround as used on Mali-G57.

    Reviewed-by: Steven Price <steven.price@arm.com>
    Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220525145754.25866-3-alyssa.rosenzweig@collabora.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/panfrost/panfrost_gpu.c | 3 +++
    drivers/gpu/drm/panfrost/panfrost_issues.h | 3 +++
    drivers/gpu/drm/panfrost/panfrost_regs.h | 1 +
    3 files changed, 7 insertions(+)

    diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
    index 107ad2d764ec..d22bb2589cb1 100644
    --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
    +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
    @@ -108,6 +108,9 @@ static void panfrost_gpu_init_quirks(struct panfrost_device *pfdev)
    quirks |= SC_LS_ALLOW_ATTR_TYPES;
    }

    + if (panfrost_has_hw_issue(pfdev, HW_ISSUE_TTRX_2968_TTRX_3162))
    + quirks |= SC_VAR_ALGORITHM;
    +
    if (panfrost_has_hw_feature(pfdev, HW_FEATURE_TLS_HASHING))
    quirks |= SC_TLS_HASH_ENABLE;

    diff --git a/drivers/gpu/drm/panfrost/panfrost_issues.h b/drivers/gpu/drm/panfrost/panfrost_issues.h
    index 8e59d765bf19..3af7d723377e 100644
    --- a/drivers/gpu/drm/panfrost/panfrost_issues.h
    +++ b/drivers/gpu/drm/panfrost/panfrost_issues.h
    @@ -125,6 +125,9 @@ enum panfrost_hw_issue {
    * kernel must fiddle with L2 caches to prevent data leakage */
    HW_ISSUE_TGOX_R1_1234,

    + /* Must set SC_VAR_ALGORITHM */
    + HW_ISSUE_TTRX_2968_TTRX_3162,
    +
    HW_ISSUE_END
    };

    diff --git a/drivers/gpu/drm/panfrost/panfrost_regs.h b/drivers/gpu/drm/panfrost/panfrost_regs.h
    index 2ae3a4d301d3..80e5969237c2 100644
    --- a/drivers/gpu/drm/panfrost/panfrost_regs.h
    +++ b/drivers/gpu/drm/panfrost/panfrost_regs.h
    @@ -194,6 +194,7 @@
    #define SC_TLS_HASH_ENABLE BIT(17)
    #define SC_LS_ATTR_CHECK_DISABLE BIT(18)
    #define SC_ENABLE_TEXGRD_FLAGS BIT(25)
    +#define SC_VAR_ALGORITHM BIT(29)
    /* End SHADER_CONFIG register */

    /* TILER_CONFIG register */
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-08-11 18:28    [W:4.566 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site