Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: "Manna, Animesh" <animesh.manna@intel.com>
Cc: "intel-gfx@lists.freedesktop.org" <intel-gfx@lists.freedesktop.org>
Subject: Re: [Intel-gfx] [PATCH 12/13] drm/i915/dsb: Define more DSB registers
Date: Fri, 13 Jan 2023 16:37:59 +0200	[thread overview]
Message-ID: <Y8FsxxcUzbzP+oYQ@intel.com> (raw)
In-Reply-To: <PH7PR11MB598138788677D56556772AFFF9FC9@PH7PR11MB5981.namprd11.prod.outlook.com>

On Wed, Jan 11, 2023 at 03:59:14PM +0000, Manna, Animesh wrote:
> 
> 
> > -----Original Message-----
> > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Ville
> > Syrjala
> > Sent: Friday, December 16, 2022 6:08 AM
> > To: intel-gfx@lists.freedesktop.org
> > Subject: [Intel-gfx] [PATCH 12/13] drm/i915/dsb: Define more DSB registers
> > 
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Add definitions for more DSB registers. Less annoying spec trawling when
> > working on the DSB code.
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_reg.h | 50 +++++++++++++++++++++++++++++++-
> > -
> >  1 file changed, 48 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_reg.h
> > b/drivers/gpu/drm/i915/i915_reg.h index ed989e749635..3b0d07880c30
> > 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -8103,8 +8103,54 @@ enum skl_power_gate {
> >  #define DSB_HEAD(pipe, id)		_MMIO(DSBSL_INSTANCE(pipe, id) +
> > 0x0)
> >  #define DSB_TAIL(pipe, id)		_MMIO(DSBSL_INSTANCE(pipe, id) +
> > 0x4)
> >  #define DSB_CTRL(pipe, id)		_MMIO(DSBSL_INSTANCE(pipe, id) +
> > 0x8)
> > -#define   DSB_ENABLE			(1 << 31)
> > -#define   DSB_STATUS_BUSY		(1 << 0)
> > +#define   DSB_ENABLE			REG_BIT(31)
> > +#define   DSB_BUF_REITERATE		REG_BIT(29)
> > +#define   DSB_WAIT_FOR_VBLANK		REG_BIT(28)
> > +#define   DSB_WAIT_FOR_LINE_IN		REG_BIT(27)
> > +#define   DSB_HALT			REG_BIT(16)
> > +#define   DSB_NON_POSTED		REG_BIT(8)
> > +#define   DSB_STATUS_BUSY		REG_BIT(0)
> > +#define DSB_MMIOCTRL(pipe, id)
> > 	_MMIO(DSBSL_INSTANCE(pipe, id) + 0xc)
> > +#define   DSB_MMIO_DEAD_CLOCKS_ENABLE	REG_BIT(31)
> 
> As per bpsec the programming of the above bit may not be needed for latest platforms as it is taken care in h/w. Do we have any plan to use it for older platform. 
> 
> > +#define   DSB_MMIO_DEAD_CLOCKS_COUNT_MASK	REG_GENMASK(15, 8)
> > +#define   DSB_MMIO_DEAD_CLOCKS_COUNT(x)
> > 	REG_FIELD_PREP(DSB_MMIO_DEAD_CLOCK_COUNT_MASK, (x))
> > +#define   DSB_MMIO_CYCLES_MASK		REG_GENMASK(7, 0)
> > +#define   DSB_MMIO_CYCLES(x)
> > 	REG_FIELD_PREP(DSB_MMIO_CYCLES_MASK, (x))
> > +#define DSB_POLLFUNC(pipe, id)
> > 	_MMIO(DSBSL_INSTANCE(pipe, id) + 0x10)> +#define   DSB_POLL_ENABLE		REG_BIT(31)
> > +#define   DSB_POLL_WAIT_MASK		REG_GENMASK(30, 23)
> > +#define   DSB_POLL_WAIT(x)
> > 	REG_FIELD_PREP(DSB_POLL_WAIT_MASK, (x)) /* usec */
> > +#define   DSB_POLL_COUNT_MASK		REG_GENMASK(22, 15)
> > +#define   DSB_POLL_COUNT(x)
> > 	REG_FIELD_PREP(DSB_POLL_COUNT_MASK, (x))
> > +#define DSB_DEBUG(pipe, id)		_MMIO(DSBSL_INSTANCE(pipe, id) +
> > 0x14)
> 
> I can not see any usage of this register. All bits are mentioned spare in bpsec.
> 
> > +#define DSB_POLLMASK(pipe, id)
> > 	_MMIO(DSBSL_INSTANCE(pipe, id) + 0x1c)
> > +#define DSB_STATUS(pipe, id)		_MMIO(DSBSL_INSTANCE(pipe, id) +
> > 0x24)
> 
> Do we have any plan to check the dsb engine internal details in kernel? Not sure if DSB_STATUS will be needed any time until there is a need to debug the h/w if it is malfunctioning. 
> 
> > +#define DSB_INTERRUPT(pipe, id)
> > 	_MMIO(DSBSL_INSTANCE(pipe, id) + 0x28)
> > +#define   DSB_ATS_FAULT_INT_EN		REG_BIT(20)
> > +#define   DSB_GTT_FAULT_INT_EN		REG_BIT(19)
> > +#define   DSB_RSPTIMEOUT_INT_EN		REG_BIT(18)
> > +#define   DSB_POLL_ERR_INT_EN		REG_BIT(17)
> > +#define   DSB_PROG_INT_EN		REG_BIT(16)
> > +#define   DSB_ATS_FAULT_INT_STATUS	REG_BIT(4)
> > +#define   DSB_GTT_FAULT_INT_STATUS	REG_BIT(3)
> > +#define   DSB_RSPTIMEOUT_INT_STATUS	REG_BIT(2)
> > +#define   DSB_POLL_ERR_INT_STATUS	REG_BIT(1)
> > +#define   DSB_PROG_INT_STATUS		REG_BIT(0)
> > +#define DSB_CURRENT_HEAD(pipe, id)
> > 	_MMIO(DSBSL_INSTANCE(pipe, id) + 0x2c)
> > +#define DSB_RM_TIMEOUT(pipe, id)	_MMIO(DSBSL_INSTANCE(pipe, id) +
> > 0x30)
> > +#define   DSB_RM_CLAIM_TIMEOUT		REG_BIT(31)
> > +#define   DSB_RM_READY_TIMEOUT		REG_BIT(30)
> > +#define   DSB_RM_CLAIM_TIMEOUT_COUNT_MASK	REG_GENMASK(23,
> > 16)
> > +#define   DSB_RM_CLAIM_TIMEOUT_COUNT(x)
> > 	REG_FIELD_PREP(DSB_RM_CLAIM_TIMEOUT_COUNT_MASK, (x)) /*
> > clocks */
> > +#define   DSB_RM_READY_TIMEOUT_VALUE_MASK	REG_GENMASK(15, 0)
> > +#define   DSB_RM_READY_TIMEOUT_VALUE(x)
> > 	REG_FIELD_PREP(DSB_RM_READY_TIMEOUT_VALUE, (x)) /* usec */
> > +#define DSB_RMTIMEOUTREG_CAPTURE(pipe, id)
> > 	_MMIO(DSBSL_INSTANCE(pipe, id) + 0x34)
> > +#define DSB_PMCTRL(pipe, id)
> > 	_MMIO(DSBSL_INSTANCE(pipe, id) + 0x38)
> > +#define DSB_PMCTRL_2(pipe, id)
> > 	_MMIO(DSBSL_INSTANCE(pipe, id) + 0x3c)
> > +#define DSB_PF_LN_LOWER(pipe, id)	_MMIO(DSBSL_INSTANCE(pipe, id) +
> > 0x40)
> > +#define DSB_PF_LN_UPPER(pipe, id)	_MMIO(DSBSL_INSTANCE(pipe, id) +
> > 0x44)
> > +#define DSB_BUFRPT_CNT(pipe, id)	_MMIO(DSBSL_INSTANCE(pipe, id) +
> > 0x48)
> > +#define DSB_CHICKEN(pipe, id)
> > 	_MMIO(DSBSL_INSTANCE(pipe, id) + 0xf0)
> 
> I can understand instead of referring bspec all the above DSB registers are added without its usage and future patch will use it.
> Can we add a FIXME tag to remove unwanted DSB register definition once we achieve our target.

We're not going to remove them. I'm not going to be wasting my
time trawling bspec every time I need to poke at some DSB register.

-- 
Ville Syrjälä
Intel

  reply	other threads:[~2023-01-13 14:38 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-16  0:37 [Intel-gfx] [PATCH 00/13] drm/i915/dsb: DSB fixes/cleanups Ville Syrjala
2022-12-16  0:37 ` [Intel-gfx] [PATCH 01/13] drm/i915/dsb: Stop with the RMW Ville Syrjala
2023-01-04  7:59   ` Manna, Animesh
2022-12-16  0:37 ` [Intel-gfx] [PATCH 02/13] drm/i915/dsb: Inline DSB_CTRL writes into intel_dsb_commit() Ville Syrjala
2023-01-04  8:40   ` Manna, Animesh
2022-12-16  0:38 ` [Intel-gfx] [PATCH 03/13] drm/i915/dsb: Align DSB register writes to 8 bytes Ville Syrjala
2023-01-04  9:08   ` Manna, Animesh
2022-12-16  0:38 ` [Intel-gfx] [PATCH 04/13] drm/i915/dsb: Fix DSB command buffer size checks Ville Syrjala
2023-01-04  6:57   ` Manna, Animesh
2023-01-04  7:11     ` Manna, Animesh
2023-01-04 10:52   ` Manna, Animesh
2022-12-16  0:38 ` [Intel-gfx] [PATCH 05/13] drm/i915/dsb: Extract assert_dsb_has_room() Ville Syrjala
2023-01-04 11:36   ` Manna, Animesh
2022-12-16  0:38 ` [Intel-gfx] [PATCH 06/13] drm/i915/dsb: Extract intel_dsb_emit() Ville Syrjala
2023-01-04 11:41   ` Manna, Animesh
2022-12-16  0:38 ` [Intel-gfx] [PATCH 07/13] drm/i915/dsb: Improve the indexed reg write checks Ville Syrjala
2023-01-04 12:13   ` Manna, Animesh
2022-12-16  0:38 ` [Intel-gfx] [PATCH 08/13] drm/i915/dsb: Handle the indexed vs. not inside the DSB code Ville Syrjala
2023-01-05 14:43   ` Manna, Animesh
2022-12-16  0:38 ` [Intel-gfx] [PATCH 09/13] drm/i915/dsb: Introduce intel_dsb_align_tail() Ville Syrjala
2023-01-05 14:46   ` Manna, Animesh
2022-12-16  0:38 ` [Intel-gfx] [PATCH 10/13] drm/i915/dsb: Allow the caller to pass in the DSB buffer size Ville Syrjala
2023-01-05 15:19   ` Manna, Animesh
2022-12-16  0:38 ` [Intel-gfx] [PATCH 11/13] drm/i915/dsb: Add mode DSB opcodes Ville Syrjala
2023-01-05 15:22   ` Manna, Animesh
2023-01-09  9:47     ` Jani Nikula
2023-01-11 12:43       ` Manna, Animesh
2022-12-16  0:38 ` [Intel-gfx] [PATCH 12/13] drm/i915/dsb: Define more DSB registers Ville Syrjala
2023-01-11 15:59   ` Manna, Animesh
2023-01-13 14:37     ` Ville Syrjälä [this message]
2022-12-16  0:38 ` [Intel-gfx] [PATCH 13/13] drm/i915/dsb: Pimp debug/error prints Ville Syrjala
2022-12-16  0:57 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dsb: DSB fixes/cleanups Patchwork
2022-12-16  0:57 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-12-16  1:31 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-12-16 15:54 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

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=Y8FsxxcUzbzP+oYQ@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=animesh.manna@intel.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox