From: Alyssa Rosenzweig <alyssa@collabora.com>
To: Adri??n Larumbe <adrian.larumbe@collabora.com>
Cc: dri-devel@lists.freedesktop.org, alyssa.rosenzweig@collabora.com,
tomeu.vizoso@collabora.com, steven.price@arm.com
Subject: Re: [PATCH v6 1/2] drm/panfrost: Add specific register offset macros for JS and MMU AS
Date: Fri, 29 Jul 2022 11:50:35 -0400 [thread overview]
Message-ID: <YuQBy0qSOotfp7UG@maud> (raw)
In-Reply-To: <20220729144610.2105223-2-adrian.larumbe@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
On Fri, Jul 29, 2022 at 03:46:09PM +0100, Adri??n Larumbe wrote:
> Each Panfrost job has its own job slot and MMU address space set of
> registers, which are selected with a job-specific index.
>
> Turn the shift and stride used for selection of the right register set base
> into a define rather than using magic numbers.
>
> Signed-off-by: Adri??n Larumbe <adrian.larumbe@collabora.com>
> ---
> drivers/gpu/drm/panfrost/panfrost_regs.h | 42 ++++++++++++++----------
> 1 file changed, 24 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/gpu/drm/panfrost/panfrost_regs.h b/drivers/gpu/drm/panfrost/panfrost_regs.h
> index accb4fa3adb8..919f44ac853d 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_regs.h
> +++ b/drivers/gpu/drm/panfrost/panfrost_regs.h
> @@ -226,23 +226,25 @@
> #define JOB_INT_MASK_DONE(j) BIT(j)
>
> #define JS_BASE 0x1800
> -#define JS_HEAD_LO(n) (JS_BASE + ((n) * 0x80) + 0x00)
> -#define JS_HEAD_HI(n) (JS_BASE + ((n) * 0x80) + 0x04)
> -#define JS_TAIL_LO(n) (JS_BASE + ((n) * 0x80) + 0x08)
> -#define JS_TAIL_HI(n) (JS_BASE + ((n) * 0x80) + 0x0c)
> -#define JS_AFFINITY_LO(n) (JS_BASE + ((n) * 0x80) + 0x10)
> -#define JS_AFFINITY_HI(n) (JS_BASE + ((n) * 0x80) + 0x14)
> -#define JS_CONFIG(n) (JS_BASE + ((n) * 0x80) + 0x18)
> -#define JS_XAFFINITY(n) (JS_BASE + ((n) * 0x80) + 0x1c)
> -#define JS_COMMAND(n) (JS_BASE + ((n) * 0x80) + 0x20)
> -#define JS_STATUS(n) (JS_BASE + ((n) * 0x80) + 0x24)
> -#define JS_HEAD_NEXT_LO(n) (JS_BASE + ((n) * 0x80) + 0x40)
> -#define JS_HEAD_NEXT_HI(n) (JS_BASE + ((n) * 0x80) + 0x44)
> -#define JS_AFFINITY_NEXT_LO(n) (JS_BASE + ((n) * 0x80) + 0x50)
> -#define JS_AFFINITY_NEXT_HI(n) (JS_BASE + ((n) * 0x80) + 0x54)
> -#define JS_CONFIG_NEXT(n) (JS_BASE + ((n) * 0x80) + 0x58)
> -#define JS_COMMAND_NEXT(n) (JS_BASE + ((n) * 0x80) + 0x60)
> -#define JS_FLUSH_ID_NEXT(n) (JS_BASE + ((n) * 0x80) + 0x70)
> +#define JS_SLOT_STRIDE 0x80
> +
> +#define JS_HEAD_LO(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x00)
> +#define JS_HEAD_HI(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x04)
> +#define JS_TAIL_LO(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x08)
> +#define JS_TAIL_HI(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x0c)
> +#define JS_AFFINITY_LO(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x10)
> +#define JS_AFFINITY_HI(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x14)
> +#define JS_CONFIG(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x18)
> +#define JS_XAFFINITY(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x1c)
> +#define JS_COMMAND(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x20)
> +#define JS_STATUS(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x24)
> +#define JS_HEAD_NEXT_LO(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x40)
> +#define JS_HEAD_NEXT_HI(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x44)
> +#define JS_AFFINITY_NEXT_LO(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x50)
> +#define JS_AFFINITY_NEXT_HI(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x54)
> +#define JS_CONFIG_NEXT(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x58)
> +#define JS_COMMAND_NEXT(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x60)
> +#define JS_FLUSH_ID_NEXT(n) (JS_BASE + ((n) * JS_SLOT_STRIDE) + 0x70)
>
> /* Possible values of JS_CONFIG and JS_CONFIG_NEXT registers */
> #define JS_CONFIG_START_FLUSH_CLEAN BIT(8)
> @@ -281,7 +283,9 @@
> #define AS_COMMAND_FLUSH_MEM 0x05 /* Wait for memory accesses to complete, flush all the L1s cache then
> flush all L2 caches then issue a flush region command to all MMUs */
>
> -#define MMU_AS(as) (0x2400 + ((as) << 6))
> +#define MMU_BASE 0x2400
> +#define MMU_AS_SHIFT 0x06
> +#define MMU_AS(as) (MMU_BASE + ((as) << MMU_AS_SHIFT))
>
> #define AS_TRANSTAB_LO(as) (MMU_AS(as) + 0x00) /* (RW) Translation Table Base Address for address space n, low word */
> #define AS_TRANSTAB_HI(as) (MMU_AS(as) + 0x04) /* (RW) Translation Table Base Address for address space n, high word */
> @@ -300,6 +304,8 @@
> #define AS_FAULTEXTRA_LO(as) (MMU_AS(as) + 0x38) /* (RO) Secondary fault address for address space n, low word */
> #define AS_FAULTEXTRA_HI(as) (MMU_AS(as) + 0x3C) /* (RO) Secondary fault address for address space n, high word */
>
> +#define MMU_AS_STRIDE (1 << MMU_AS_SHIFT)
> +
> /*
> * Begin LPAE MMU TRANSTAB register values
> */
> --
> 2.37.0
>
next prev parent reply other threads:[~2022-07-29 15:50 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-29 14:46 [PATCH v6 0/2] devcoredump support for Panfrost GPU driver Adrián Larumbe
2022-07-29 14:46 ` [PATCH v6 1/2] drm/panfrost: Add specific register offset macros for JS and MMU AS Adrián Larumbe
2022-07-29 15:50 ` Alyssa Rosenzweig [this message]
2022-08-08 11:28 ` Steven Price
2022-07-29 14:46 ` [PATCH v6 2/2] drm/panfrost: Add support for devcoredump Adrián Larumbe
2022-08-08 11:28 ` Steven Price
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=YuQBy0qSOotfp7UG@maud \
--to=alyssa@collabora.com \
--cc=adrian.larumbe@collabora.com \
--cc=alyssa.rosenzweig@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=steven.price@arm.com \
--cc=tomeu.vizoso@collabora.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.