From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Ashutosh Dixit <ashutosh.dixit@intel.com>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 1/5] drm/i915/rps: Prefer REG_FIELD_GET in intel_rps_get_cagf
Date: Fri, 21 Oct 2022 12:11:27 -0400 [thread overview]
Message-ID: <Y1LEr6pVKwFdxsMx@intel.com> (raw)
In-Reply-To: <20221019233721.3270601-2-ashutosh.dixit@intel.com>
On Wed, Oct 19, 2022 at 04:37:17PM -0700, Ashutosh Dixit wrote:
> Instead of masks/shifts settle on REG_FIELD_GET as the standard way to
> extract reg fields. This allows future patches touching this code to also
> consistently use REG_FIELD_GET and friends.
>
> Suggested-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c | 2 +-
> drivers/gpu/drm/i915/gt/intel_gt_regs.h | 12 ++++--------
> drivers/gpu/drm/i915/gt/intel_rps.c | 11 +++++------
> 3 files changed, 10 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c b/drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c
> index 40d0a3be42acf..979e602946549 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c
> +++ b/drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c
> @@ -307,7 +307,7 @@ void intel_gt_pm_frequency_dump(struct intel_gt *gt, struct drm_printer *p)
> drm_printf(p, "Current VID: %d\n", (rgvstat & MEMSTAT_VID_MASK) >>
> MEMSTAT_VID_SHIFT);
> drm_printf(p, "Current P-state: %d\n",
> - (rgvstat & MEMSTAT_PSTATE_MASK) >> MEMSTAT_PSTATE_SHIFT);
> + REG_FIELD_GET(MEMSTAT_PSTATE_MASK, rgvstat));
> } else if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915)) {
> u32 rpmodectl, freq_sts;
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> index 36d95b79022c0..35c039573294c 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> +++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> @@ -794,12 +794,9 @@
> #define GEN6_RP_DOWN_TIMEOUT _MMIO(0xa010)
> #define GEN6_RP_INTERRUPT_LIMITS _MMIO(0xa014)
> #define GEN6_RPSTAT1 _MMIO(0xa01c)
> -#define GEN6_CAGF_SHIFT 8
> -#define HSW_CAGF_SHIFT 7
> -#define GEN9_CAGF_SHIFT 23
> -#define GEN6_CAGF_MASK (0x7f << GEN6_CAGF_SHIFT)
> -#define HSW_CAGF_MASK (0x7f << HSW_CAGF_SHIFT)
> -#define GEN9_CAGF_MASK (0x1ff << GEN9_CAGF_SHIFT)
> +#define GEN6_CAGF_MASK REG_GENMASK(14, 8)
> +#define HSW_CAGF_MASK REG_GENMASK(13, 7)
> +#define GEN9_CAGF_MASK REG_GENMASK(31, 23)
> #define GEN6_RP_CONTROL _MMIO(0xa024)
> #define GEN6_RP_MEDIA_TURBO (1 << 11)
> #define GEN6_RP_MEDIA_MODE_MASK (3 << 9)
> @@ -1370,8 +1367,7 @@
> #define MEMSTAT_ILK _MMIO(0x111f8)
> #define MEMSTAT_VID_MASK 0x7f00
> #define MEMSTAT_VID_SHIFT 8
> -#define MEMSTAT_PSTATE_MASK 0x00f8
> -#define MEMSTAT_PSTATE_SHIFT 3
> +#define MEMSTAT_PSTATE_MASK REG_GENMASK(7, 3)
> #define MEMSTAT_MON_ACTV (1 << 2)
> #define MEMSTAT_SRC_CTL_MASK 0x0003
> #define MEMSTAT_SRC_CTL_CORE 0
> diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
> index fc23c562d9b2a..5bd6671554a6e 100644
> --- a/drivers/gpu/drm/i915/gt/intel_rps.c
> +++ b/drivers/gpu/drm/i915/gt/intel_rps.c
> @@ -2074,16 +2074,15 @@ u32 intel_rps_get_cagf(struct intel_rps *rps, u32 rpstat)
> u32 cagf;
>
> if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915))
> - cagf = (rpstat >> 8) & 0xff;
> + cagf = REG_FIELD_GET(RPE_MASK, rpstat);
> else if (GRAPHICS_VER(i915) >= 9)
> - cagf = (rpstat & GEN9_CAGF_MASK) >> GEN9_CAGF_SHIFT;
> + cagf = REG_FIELD_GET(GEN9_CAGF_MASK, rpstat);
> else if (IS_HASWELL(i915) || IS_BROADWELL(i915))
> - cagf = (rpstat & HSW_CAGF_MASK) >> HSW_CAGF_SHIFT;
> + cagf = REG_FIELD_GET(HSW_CAGF_MASK, rpstat);
> else if (GRAPHICS_VER(i915) >= 6)
> - cagf = (rpstat & GEN6_CAGF_MASK) >> GEN6_CAGF_SHIFT;
> + cagf = REG_FIELD_GET(GEN6_CAGF_MASK, rpstat);
> else
> - cagf = gen5_invert_freq(rps, (rpstat & MEMSTAT_PSTATE_MASK) >>
> - MEMSTAT_PSTATE_SHIFT);
> + cagf = gen5_invert_freq(rps, REG_FIELD_GET(MEMSTAT_PSTATE_MASK, rpstat));
>
> return cagf;
> }
> --
> 2.38.0
>
WARNING: multiple messages have this Message-ID (diff)
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Ashutosh Dixit <ashutosh.dixit@intel.com>
Cc: Anshuman Gupta <anshuman.gupta@intel.com>,
intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
Badal Nilawar <badal.nilawar@intel.com>
Subject: Re: [PATCH 1/5] drm/i915/rps: Prefer REG_FIELD_GET in intel_rps_get_cagf
Date: Fri, 21 Oct 2022 12:11:27 -0400 [thread overview]
Message-ID: <Y1LEr6pVKwFdxsMx@intel.com> (raw)
In-Reply-To: <20221019233721.3270601-2-ashutosh.dixit@intel.com>
On Wed, Oct 19, 2022 at 04:37:17PM -0700, Ashutosh Dixit wrote:
> Instead of masks/shifts settle on REG_FIELD_GET as the standard way to
> extract reg fields. This allows future patches touching this code to also
> consistently use REG_FIELD_GET and friends.
>
> Suggested-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c | 2 +-
> drivers/gpu/drm/i915/gt/intel_gt_regs.h | 12 ++++--------
> drivers/gpu/drm/i915/gt/intel_rps.c | 11 +++++------
> 3 files changed, 10 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c b/drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c
> index 40d0a3be42acf..979e602946549 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c
> +++ b/drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c
> @@ -307,7 +307,7 @@ void intel_gt_pm_frequency_dump(struct intel_gt *gt, struct drm_printer *p)
> drm_printf(p, "Current VID: %d\n", (rgvstat & MEMSTAT_VID_MASK) >>
> MEMSTAT_VID_SHIFT);
> drm_printf(p, "Current P-state: %d\n",
> - (rgvstat & MEMSTAT_PSTATE_MASK) >> MEMSTAT_PSTATE_SHIFT);
> + REG_FIELD_GET(MEMSTAT_PSTATE_MASK, rgvstat));
> } else if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915)) {
> u32 rpmodectl, freq_sts;
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> index 36d95b79022c0..35c039573294c 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> +++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> @@ -794,12 +794,9 @@
> #define GEN6_RP_DOWN_TIMEOUT _MMIO(0xa010)
> #define GEN6_RP_INTERRUPT_LIMITS _MMIO(0xa014)
> #define GEN6_RPSTAT1 _MMIO(0xa01c)
> -#define GEN6_CAGF_SHIFT 8
> -#define HSW_CAGF_SHIFT 7
> -#define GEN9_CAGF_SHIFT 23
> -#define GEN6_CAGF_MASK (0x7f << GEN6_CAGF_SHIFT)
> -#define HSW_CAGF_MASK (0x7f << HSW_CAGF_SHIFT)
> -#define GEN9_CAGF_MASK (0x1ff << GEN9_CAGF_SHIFT)
> +#define GEN6_CAGF_MASK REG_GENMASK(14, 8)
> +#define HSW_CAGF_MASK REG_GENMASK(13, 7)
> +#define GEN9_CAGF_MASK REG_GENMASK(31, 23)
> #define GEN6_RP_CONTROL _MMIO(0xa024)
> #define GEN6_RP_MEDIA_TURBO (1 << 11)
> #define GEN6_RP_MEDIA_MODE_MASK (3 << 9)
> @@ -1370,8 +1367,7 @@
> #define MEMSTAT_ILK _MMIO(0x111f8)
> #define MEMSTAT_VID_MASK 0x7f00
> #define MEMSTAT_VID_SHIFT 8
> -#define MEMSTAT_PSTATE_MASK 0x00f8
> -#define MEMSTAT_PSTATE_SHIFT 3
> +#define MEMSTAT_PSTATE_MASK REG_GENMASK(7, 3)
> #define MEMSTAT_MON_ACTV (1 << 2)
> #define MEMSTAT_SRC_CTL_MASK 0x0003
> #define MEMSTAT_SRC_CTL_CORE 0
> diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
> index fc23c562d9b2a..5bd6671554a6e 100644
> --- a/drivers/gpu/drm/i915/gt/intel_rps.c
> +++ b/drivers/gpu/drm/i915/gt/intel_rps.c
> @@ -2074,16 +2074,15 @@ u32 intel_rps_get_cagf(struct intel_rps *rps, u32 rpstat)
> u32 cagf;
>
> if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915))
> - cagf = (rpstat >> 8) & 0xff;
> + cagf = REG_FIELD_GET(RPE_MASK, rpstat);
> else if (GRAPHICS_VER(i915) >= 9)
> - cagf = (rpstat & GEN9_CAGF_MASK) >> GEN9_CAGF_SHIFT;
> + cagf = REG_FIELD_GET(GEN9_CAGF_MASK, rpstat);
> else if (IS_HASWELL(i915) || IS_BROADWELL(i915))
> - cagf = (rpstat & HSW_CAGF_MASK) >> HSW_CAGF_SHIFT;
> + cagf = REG_FIELD_GET(HSW_CAGF_MASK, rpstat);
> else if (GRAPHICS_VER(i915) >= 6)
> - cagf = (rpstat & GEN6_CAGF_MASK) >> GEN6_CAGF_SHIFT;
> + cagf = REG_FIELD_GET(GEN6_CAGF_MASK, rpstat);
> else
> - cagf = gen5_invert_freq(rps, (rpstat & MEMSTAT_PSTATE_MASK) >>
> - MEMSTAT_PSTATE_SHIFT);
> + cagf = gen5_invert_freq(rps, REG_FIELD_GET(MEMSTAT_PSTATE_MASK, rpstat));
>
> return cagf;
> }
> --
> 2.38.0
>
next prev parent reply other threads:[~2022-10-21 16:12 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-19 23:37 [Intel-gfx] [PATCH 0/5] i915: CAGF and RC6 changes for MTL Ashutosh Dixit
2022-10-19 23:37 ` Ashutosh Dixit
2022-10-19 23:37 ` [Intel-gfx] [PATCH 1/5] drm/i915/rps: Prefer REG_FIELD_GET in intel_rps_get_cagf Ashutosh Dixit
2022-10-19 23:37 ` Ashutosh Dixit
2022-10-21 16:11 ` Rodrigo Vivi [this message]
2022-10-21 16:11 ` Rodrigo Vivi
2022-10-19 23:37 ` [Intel-gfx] [PATCH 2/5] drm/i915: Use GEN12_RPSTAT register for GT freq Ashutosh Dixit
2022-10-19 23:37 ` Ashutosh Dixit
2022-10-21 16:12 ` [Intel-gfx] " Rodrigo Vivi
2022-10-19 23:37 ` [Intel-gfx] [PATCH 3/5] drm/i915/mtl: Modify CAGF functions for MTL Ashutosh Dixit
2022-10-19 23:37 ` Ashutosh Dixit
2022-10-21 16:02 ` [Intel-gfx] " Dixit, Ashutosh
2022-10-21 16:12 ` Rodrigo Vivi
2022-10-19 23:37 ` [Intel-gfx] [PATCH 4/5] drm/i915/gt: Use RC6 residency types as arguments to residency functions Ashutosh Dixit
2022-10-19 23:37 ` Ashutosh Dixit
2022-10-21 16:15 ` [Intel-gfx] " Rodrigo Vivi
2022-10-21 16:15 ` Rodrigo Vivi
2022-10-19 23:37 ` [Intel-gfx] [PATCH 5/5] drm/i915/mtl: C6 residency and C state type for MTL SAMedia Ashutosh Dixit
2022-10-19 23:37 ` Ashutosh Dixit
2022-10-21 16:35 ` [Intel-gfx] " Rodrigo Vivi
2022-10-21 16:35 ` Rodrigo Vivi
2022-10-24 19:16 ` [Intel-gfx] " Dixit, Ashutosh
2022-10-24 19:16 ` Dixit, Ashutosh
2022-10-24 19:49 ` [Intel-gfx] " Rodrigo Vivi
2022-10-24 19:49 ` Rodrigo Vivi
2022-10-20 0:17 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for i915: CAGF and RC6 changes for MTL (rev8) Patchwork
2022-10-20 0:38 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2022-10-21 17:43 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for i915: CAGF and RC6 changes for MTL (rev9) Patchwork
2022-10-21 18:04 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-10-22 9:58 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2022-10-24 19:13 [Intel-gfx] [PATCH 0/5] i915: CAGF and RC6 changes for MTL Ashutosh Dixit
2022-10-24 19:13 ` [Intel-gfx] [PATCH 1/5] drm/i915/rps: Prefer REG_FIELD_GET in intel_rps_get_cagf Ashutosh Dixit
2022-10-24 20:24 [Intel-gfx] [PATCH 0/5] i915: CAGF and RC6 changes for MTL Ashutosh Dixit
2022-10-24 20:24 ` [Intel-gfx] [PATCH 1/5] drm/i915/rps: Prefer REG_FIELD_GET in intel_rps_get_cagf Ashutosh Dixit
2022-11-14 12:33 [Intel-gfx] [PATCH 0/5] i915: CAGF and RC6 changes for MTL Badal Nilawar
2022-11-14 12:33 ` [Intel-gfx] [PATCH 1/5] drm/i915/rps: Prefer REG_FIELD_GET in intel_rps_get_cagf Badal Nilawar
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=Y1LEr6pVKwFdxsMx@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=ashutosh.dixit@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.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 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.