lkml.org 
[lkml]   [2019]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 7/7] drm/vc4: Make sure that the v3d ident debugfs has vc4's power on.
    Date
    Otherwise, you sometimes decode the ident fields based on 0xdeadbeef
    register reads.

    Signed-off-by: Eric Anholt <eric@anholt.net>
    ---
    drivers/gpu/drm/vc4/vc4_v3d.c | 29 +++++++++++++++++------------
    1 file changed, 17 insertions(+), 12 deletions(-)

    diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c
    index 7820b8eaaa98..36e6c7086ecf 100644
    --- a/drivers/gpu/drm/vc4/vc4_v3d.c
    +++ b/drivers/gpu/drm/vc4/vc4_v3d.c
    @@ -108,18 +108,23 @@ static int vc4_v3d_debugfs_ident(struct seq_file *m, void *unused)
    struct drm_info_node *node = (struct drm_info_node *)m->private;
    struct drm_device *dev = node->minor->dev;
    struct vc4_dev *vc4 = to_vc4_dev(dev);
    - uint32_t ident1 = V3D_READ(V3D_IDENT1);
    - uint32_t nslc = VC4_GET_FIELD(ident1, V3D_IDENT1_NSLC);
    - uint32_t tups = VC4_GET_FIELD(ident1, V3D_IDENT1_TUPS);
    - uint32_t qups = VC4_GET_FIELD(ident1, V3D_IDENT1_QUPS);
    -
    - seq_printf(m, "Revision: %d\n",
    - VC4_GET_FIELD(ident1, V3D_IDENT1_REV));
    - seq_printf(m, "Slices: %d\n", nslc);
    - seq_printf(m, "TMUs: %d\n", nslc * tups);
    - seq_printf(m, "QPUs: %d\n", nslc * qups);
    - seq_printf(m, "Semaphores: %d\n",
    - VC4_GET_FIELD(ident1, V3D_IDENT1_NSEM));
    + int ret = vc4_v3d_pm_get(vc4);
    +
    + if (ret == 0) {
    + uint32_t ident1 = V3D_READ(V3D_IDENT1);
    + uint32_t nslc = VC4_GET_FIELD(ident1, V3D_IDENT1_NSLC);
    + uint32_t tups = VC4_GET_FIELD(ident1, V3D_IDENT1_TUPS);
    + uint32_t qups = VC4_GET_FIELD(ident1, V3D_IDENT1_QUPS);
    +
    + seq_printf(m, "Revision: %d\n",
    + VC4_GET_FIELD(ident1, V3D_IDENT1_REV));
    + seq_printf(m, "Slices: %d\n", nslc);
    + seq_printf(m, "TMUs: %d\n", nslc * tups);
    + seq_printf(m, "QPUs: %d\n", nslc * qups);
    + seq_printf(m, "Semaphores: %d\n",
    + VC4_GET_FIELD(ident1, V3D_IDENT1_NSEM));
    + vc4_v3d_pm_put(vc4);
    + }

    return 0;
    }
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-02-20 22:04    [W:3.194 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site