From: Jordan Crouse <jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Subject: [PATCH 12/13] drm/msm: Make the value of RB_CNTL (almost) generic
Date: Mon, 8 May 2017 14:35:08 -0600 [thread overview]
Message-ID: <1494275709-25782-13-git-send-email-jcrouse@codeaurora.org> (raw)
In-Reply-To: <1494275709-25782-1-git-send-email-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
We use a global ringbuffer size and block size for all targets and
at least for 5XX preemption we need to know the value the RB_CNTL
in several locations so it makes sense to caculate it once and use
it everywhere.
The only monkey wrench is that we need to disable the RPTR shadow
for A430 targets but that only needs to be done once and doesn't
affect A5XX so we can or in the value at init time.
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
---
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 12 +++++++-----
drivers/gpu/drm/msm/msm_gpu.h | 5 +++++
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
index 00f8436..c106e98 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -21,7 +21,6 @@
#include "msm_gem.h"
#include "msm_mmu.h"
-#define RB_BLKSIZE 32
int adreno_get_param(struct msm_gpu *gpu, uint32_t param, uint64_t *value)
{
@@ -86,11 +85,14 @@ int adreno_hw_init(struct msm_gpu *gpu)
adreno_gpu->memptrs->rptr[ring->id] = 0;
}
- /* Setup REG_CP_RB_CNTL: */
+ /*
+ * Setup REG_CP_RB_CNTL. The same value is used across targets (with
+ * the excpetion of A430 that disables the RPTR shadow) - the cacluation
+ * for the ringbuffer size and block size is moved to msm_gpu.h for the
+ * pre-processor to deal with and the A430 variant is ORed in here
+ */
adreno_gpu_write(adreno_gpu, REG_ADRENO_CP_RB_CNTL,
- /* size is log2(quad-words): */
- AXXX_CP_RB_CNTL_BUFSZ(ilog2(MSM_GPU_RINGBUFFER_SZ / 8)) |
- AXXX_CP_RB_CNTL_BLKSZ(ilog2(RB_BLKSIZE / 8)) |
+ MSM_GPU_RB_CNTL_DEFAULT |
(adreno_is_a430(adreno_gpu) ? AXXX_CP_RB_CNTL_NO_UPDATE : 0));
/* Setup ringbuffer address - use ringbuffer[0] for GPU init */
diff --git a/drivers/gpu/drm/msm/msm_gpu.h b/drivers/gpu/drm/msm/msm_gpu.h
index c0e7c84..85b4602 100644
--- a/drivers/gpu/drm/msm/msm_gpu.h
+++ b/drivers/gpu/drm/msm/msm_gpu.h
@@ -140,6 +140,11 @@ struct msm_gpu_drawqueue {
/* It turns out that all targets use the same ringbuffer size */
#define MSM_GPU_RINGBUFFER_SZ SZ_32K
+#define MSM_GPU_RINGBUFFER_BLKSIZE 32
+
+#define MSM_GPU_RB_CNTL_DEFAULT \
+ (AXXX_CP_RB_CNTL_BUFSZ(ilog2(MSM_GPU_RINGBUFFER_SZ / 8)) | \
+ AXXX_CP_RB_CNTL_BLKSZ(ilog2(MSM_GPU_RINGBUFFER_BLKSIZE / 8)))
static inline bool msm_gpu_active(struct msm_gpu *gpu)
{
--
1.9.1
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno
next prev parent reply other threads:[~2017-05-08 20:35 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-08 20:34 [PATCH 00/13] Adreno code for 4.13 Jordan Crouse
2017-05-08 20:34 ` [PATCH 01/13] drm/msm: Take the mutex before calling msm_gem_new_impl Jordan Crouse
2017-05-08 20:39 ` [Freedreno] " Rob Clark
2017-05-08 20:34 ` [PATCH 02/13] drm/msm: Fix the check for the command size Jordan Crouse
2017-05-08 20:34 ` [PATCH 03/13] drm/msm: Remove DRM_MSM_NUM_IOCTLS Jordan Crouse
2017-05-08 20:35 ` [PATCH 04/13] drm/msm: Remove idle function hook Jordan Crouse
2017-05-08 20:35 ` [PATCH 05/13] drm/msm: Add hint to DRM_IOCTL_MSM_GEM_INFO to return an object IOVA Jordan Crouse
2017-05-08 20:35 ` [PATCH 06/13] drm/msm: get an iova from the address space instead of an id Jordan Crouse
2017-05-08 20:35 ` [PATCH 07/13] drm/msm: Add a struct to pass configuration to msm_gpu_init() Jordan Crouse
2017-05-08 20:35 ` [PATCH 08/13] drm/msm: Remove memptrs->wptr Jordan Crouse
2017-05-08 20:35 ` [PATCH 09/13] drm/msm: Add drawqueues Jordan Crouse
2017-05-08 20:35 ` [PATCH 10/13] drm/msm: Support multiple ringbuffers Jordan Crouse
2017-05-25 17:25 ` Jordan Crouse
2017-05-25 17:37 ` [Freedreno] " Rob Clark
[not found] ` <1494275709-25782-11-git-send-email-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-05-28 13:43 ` Rob Clark
[not found] ` <CAF6AEGtiw4yBEZyDhLrQhCFPHVPi9ukD4MkKfkT0_AvTtCeCfg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-05-30 16:20 ` Jordan Crouse
2017-05-30 16:34 ` [Freedreno] " Alex Deucher
2017-05-31 7:21 ` Daniel Vetter
2017-05-08 20:35 ` [PATCH 11/13] drm/msm: Shadow current pointer in the ring until command is complete Jordan Crouse
[not found] ` <1494275709-25782-1-git-send-email-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-05-08 20:35 ` Jordan Crouse [this message]
2017-05-08 20:35 ` [PATCH 13/13] drm/msm: Implement preemption for A5XX targets Jordan Crouse
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1494275709-25782-13-git-send-email-jcrouse@codeaurora.org \
--to=jcrouse-sgv2jx0feol9jmxxk+q4oq@public.gmane.org \
--cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).