From: Jani Nikula <jani.nikula@intel.com>
To: Anshuman Gupta <anshuman.gupta@intel.com>,
intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Cc: rodrigo.vivi@intel.com
Subject: Re: [Intel-gfx] [PATCH v2 2/9] drm/i915/dg1: OpRegion PCON DG1 MBD config support
Date: Thu, 16 Jun 2022 16:00:31 +0300 [thread overview]
Message-ID: <877d5gwyog.fsf@intel.com> (raw)
In-Reply-To: <20220616120106.24353-3-anshuman.gupta@intel.com>
On Thu, 16 Jun 2022, Anshuman Gupta <anshuman.gupta@intel.com> wrote:
> DGFX cards support both Add in Card(AIC) and Mother Board Down(MBD)
> configs. MBD config requires HOST BIOS GPIO toggling support
> in order to enable/disable VRAM SR using ACPI OpRegion.
>
> i915 requires to check OpRegion PCON MBD Config bits to
> discover whether Gfx Card is MBD config before enabling
> VRSR.
>
> BSpec: 53440
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_opregion.c | 43 +++++++++++++++++++
> drivers/gpu/drm/i915/display/intel_opregion.h | 6 +++
> 2 files changed, 49 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> index 11d8c5bb23ac..c8cdcde89dfc 100644
> --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> @@ -53,6 +53,8 @@
> #define MBOX_ASLE_EXT BIT(4) /* Mailbox #5 */
> #define MBOX_BACKLIGHT BIT(5) /* Mailbox #2 (valid from v3.x) */
>
> +#define PCON_DG1_MBD_CONFIG BIT(9)
> +#define PCON_DG1_MBD_CONFIG_FIELD_VALID BIT(10)
> #define PCON_DGFX_BIOS_SUPPORTS_VRSR BIT(11)
> #define PCON_DGFX_BIOS_SUPPORTS_VRSR_FIELD_VALID BIT(12)
> #define PCON_HEADLESS_SKU BIT(13)
> @@ -1255,6 +1257,44 @@ void intel_opregion_unregister(struct drm_i915_private *i915)
> opregion->lid_state = NULL;
> }
>
> +static bool intel_opregion_dg1_mbd_config(struct drm_i915_private *i915)
> +{
> + struct intel_opregion *opregion = &i915->opregion;
> +
> + if (!IS_DG1(i915))
> + return false;
> +
> + if (!opregion)
Like in previous patch, opregion is always non-NULL. Check for
!opregion->header.
> + return false;
> +
> + if (opregion->header->pcon & PCON_DG1_MBD_CONFIG_FIELD_VALID)
> + return opregion->header->pcon & PCON_DG1_MBD_CONFIG;
> + else
> + return false;
> +}
> +
> +/**
> + * intel_opregion_vram_sr_required().
> + * @i915 i915 device priv data.
> + *
> + * It checks whether a DGFX card is Mother Board Down config depending
> + * on respective discrete platform.
> + *
> + * Returns:
> + * It returns a boolean whether opregion vram_sr support is required.
> + */
> +bool
> +intel_opregion_vram_sr_required(struct drm_i915_private *i915)
> +{
> + if (!IS_DGFX(i915))
> + return false;
> +
> + if (IS_DG1(i915))
> + return intel_opregion_dg1_mbd_config(i915);
Only check for IS_DG1() here or in the function being called, not both.
> +
> + return false;
> +}
> +
> /**
> * intel_opregion_bios_supports_vram_sr() get HOST BIOS VRAM Self
> * Refresh capability support.
> @@ -1298,6 +1338,9 @@ void intel_opregion_vram_sr(struct drm_i915_private *i915, bool enable)
> if (!opregion)
> return;
>
> + if (!intel_opregion_vram_sr_required(i915))
> + return;
Feels like maybe this patch should be combined with the previous patch
due to this dependency.
> +
> if (drm_WARN(&i915->drm, !opregion->asle, "ASLE MAILBOX3 is not available\n"))
> return;
>
> diff --git a/drivers/gpu/drm/i915/display/intel_opregion.h b/drivers/gpu/drm/i915/display/intel_opregion.h
> index 73c9d81d5ee6..ad40c97f9565 100644
> --- a/drivers/gpu/drm/i915/display/intel_opregion.h
> +++ b/drivers/gpu/drm/i915/display/intel_opregion.h
> @@ -77,6 +77,7 @@ int intel_opregion_get_panel_type(struct drm_i915_private *dev_priv);
> struct edid *intel_opregion_get_edid(struct intel_connector *connector);
> bool intel_opregion_bios_supports_vram_sr(struct drm_i915_private *i915);
> void intel_opregion_vram_sr(struct drm_i915_private *i915, bool enable);
> +bool intel_opregion_vram_sr_required(struct drm_i915_private *i915);
>
> bool intel_opregion_headless_sku(struct drm_i915_private *i915);
>
> @@ -145,6 +146,11 @@ static void intel_opregion_vram_sr(struct drm_i915_private *i915, bool enable)
> {
> }
>
> +static bool intel_opregion_vram_sr_required(struct drm_i915_private *i915)
static inline.
BR,
Jani.
> +{
> + return false;
> +}
> +
> #endif /* CONFIG_ACPI */
>
> #endif
--
Jani Nikula, Intel Open Source Graphics Center
WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@intel.com>
To: Anshuman Gupta <anshuman.gupta@intel.com>,
intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Cc: tilak.tangudu@intel.com, tvrtko.ursulin@intel.com,
Anshuman Gupta <anshuman.gupta@intel.com>,
jon.ewins@intel.com, badal.nilawar@intel.com,
rodrigo.vivi@intel.com
Subject: Re: [PATCH v2 2/9] drm/i915/dg1: OpRegion PCON DG1 MBD config support
Date: Thu, 16 Jun 2022 16:00:31 +0300 [thread overview]
Message-ID: <877d5gwyog.fsf@intel.com> (raw)
In-Reply-To: <20220616120106.24353-3-anshuman.gupta@intel.com>
On Thu, 16 Jun 2022, Anshuman Gupta <anshuman.gupta@intel.com> wrote:
> DGFX cards support both Add in Card(AIC) and Mother Board Down(MBD)
> configs. MBD config requires HOST BIOS GPIO toggling support
> in order to enable/disable VRAM SR using ACPI OpRegion.
>
> i915 requires to check OpRegion PCON MBD Config bits to
> discover whether Gfx Card is MBD config before enabling
> VRSR.
>
> BSpec: 53440
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_opregion.c | 43 +++++++++++++++++++
> drivers/gpu/drm/i915/display/intel_opregion.h | 6 +++
> 2 files changed, 49 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> index 11d8c5bb23ac..c8cdcde89dfc 100644
> --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> @@ -53,6 +53,8 @@
> #define MBOX_ASLE_EXT BIT(4) /* Mailbox #5 */
> #define MBOX_BACKLIGHT BIT(5) /* Mailbox #2 (valid from v3.x) */
>
> +#define PCON_DG1_MBD_CONFIG BIT(9)
> +#define PCON_DG1_MBD_CONFIG_FIELD_VALID BIT(10)
> #define PCON_DGFX_BIOS_SUPPORTS_VRSR BIT(11)
> #define PCON_DGFX_BIOS_SUPPORTS_VRSR_FIELD_VALID BIT(12)
> #define PCON_HEADLESS_SKU BIT(13)
> @@ -1255,6 +1257,44 @@ void intel_opregion_unregister(struct drm_i915_private *i915)
> opregion->lid_state = NULL;
> }
>
> +static bool intel_opregion_dg1_mbd_config(struct drm_i915_private *i915)
> +{
> + struct intel_opregion *opregion = &i915->opregion;
> +
> + if (!IS_DG1(i915))
> + return false;
> +
> + if (!opregion)
Like in previous patch, opregion is always non-NULL. Check for
!opregion->header.
> + return false;
> +
> + if (opregion->header->pcon & PCON_DG1_MBD_CONFIG_FIELD_VALID)
> + return opregion->header->pcon & PCON_DG1_MBD_CONFIG;
> + else
> + return false;
> +}
> +
> +/**
> + * intel_opregion_vram_sr_required().
> + * @i915 i915 device priv data.
> + *
> + * It checks whether a DGFX card is Mother Board Down config depending
> + * on respective discrete platform.
> + *
> + * Returns:
> + * It returns a boolean whether opregion vram_sr support is required.
> + */
> +bool
> +intel_opregion_vram_sr_required(struct drm_i915_private *i915)
> +{
> + if (!IS_DGFX(i915))
> + return false;
> +
> + if (IS_DG1(i915))
> + return intel_opregion_dg1_mbd_config(i915);
Only check for IS_DG1() here or in the function being called, not both.
> +
> + return false;
> +}
> +
> /**
> * intel_opregion_bios_supports_vram_sr() get HOST BIOS VRAM Self
> * Refresh capability support.
> @@ -1298,6 +1338,9 @@ void intel_opregion_vram_sr(struct drm_i915_private *i915, bool enable)
> if (!opregion)
> return;
>
> + if (!intel_opregion_vram_sr_required(i915))
> + return;
Feels like maybe this patch should be combined with the previous patch
due to this dependency.
> +
> if (drm_WARN(&i915->drm, !opregion->asle, "ASLE MAILBOX3 is not available\n"))
> return;
>
> diff --git a/drivers/gpu/drm/i915/display/intel_opregion.h b/drivers/gpu/drm/i915/display/intel_opregion.h
> index 73c9d81d5ee6..ad40c97f9565 100644
> --- a/drivers/gpu/drm/i915/display/intel_opregion.h
> +++ b/drivers/gpu/drm/i915/display/intel_opregion.h
> @@ -77,6 +77,7 @@ int intel_opregion_get_panel_type(struct drm_i915_private *dev_priv);
> struct edid *intel_opregion_get_edid(struct intel_connector *connector);
> bool intel_opregion_bios_supports_vram_sr(struct drm_i915_private *i915);
> void intel_opregion_vram_sr(struct drm_i915_private *i915, bool enable);
> +bool intel_opregion_vram_sr_required(struct drm_i915_private *i915);
>
> bool intel_opregion_headless_sku(struct drm_i915_private *i915);
>
> @@ -145,6 +146,11 @@ static void intel_opregion_vram_sr(struct drm_i915_private *i915, bool enable)
> {
> }
>
> +static bool intel_opregion_vram_sr_required(struct drm_i915_private *i915)
static inline.
BR,
Jani.
> +{
> + return false;
> +}
> +
> #endif /* CONFIG_ACPI */
>
> #endif
--
Jani Nikula, Intel Open Source Graphics Center
next prev parent reply other threads:[~2022-06-16 13:00 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-16 12:00 [Intel-gfx] [PATCH v2 0/9] DG2 VRAM_SR Support Anshuman Gupta
2022-06-16 12:00 ` Anshuman Gupta
2022-06-16 12:00 ` [Intel-gfx] [PATCH v2 1/9] drm/i915/dgfx: OpRegion VRAM Self Refresh Support Anshuman Gupta
2022-06-16 12:00 ` Anshuman Gupta
2022-06-16 12:56 ` [Intel-gfx] " Jani Nikula
2022-06-16 12:56 ` Jani Nikula
2022-06-17 9:46 ` [Intel-gfx] " Gupta, Anshuman
2022-06-17 9:46 ` Gupta, Anshuman
2022-06-16 12:00 ` [Intel-gfx] [PATCH v2 2/9] drm/i915/dg1: OpRegion PCON DG1 MBD config support Anshuman Gupta
2022-06-16 12:00 ` Anshuman Gupta
2022-06-16 13:00 ` Jani Nikula [this message]
2022-06-16 13:00 ` Jani Nikula
2022-06-16 12:01 ` [Intel-gfx] [PATCH v2 3/9] drm/i915/dg2: Add DG2_NB_MBD subplatform Anshuman Gupta
2022-06-16 12:01 ` Anshuman Gupta
2022-06-16 12:13 ` [Intel-gfx] " Tvrtko Ursulin
2022-06-16 14:15 ` Jani Nikula
2022-06-16 14:38 ` Tvrtko Ursulin
2022-06-16 14:47 ` Jani Nikula
2022-06-17 0:12 ` Matt Roper
2022-06-17 0:12 ` Matt Roper
2022-06-17 6:10 ` [Intel-gfx] " Gupta, Anshuman
2022-06-17 6:10 ` Gupta, Anshuman
2022-06-16 12:01 ` [Intel-gfx] [PATCH v2 4/9] drm/i915/dg2: DG2 MBD config Anshuman Gupta
2022-06-16 12:01 ` Anshuman Gupta
2022-06-16 12:01 ` [Intel-gfx] [PATCH v2 5/9] drm/i915/dgfx: Add has_lmem_sr Anshuman Gupta
2022-06-16 12:01 ` Anshuman Gupta
2022-06-16 12:01 ` [Intel-gfx] [PATCH v2 6/9] drm/i915/dgfx: Setup VRAM SR with D3COLD Anshuman Gupta
2022-06-16 12:01 ` Anshuman Gupta
2022-06-16 12:46 ` [Intel-gfx] " Jani Nikula
2022-06-16 12:46 ` Jani Nikula
2022-06-16 12:01 ` [Intel-gfx] [PATCH v2 7/9] drm/i915/rpm: Enable D3Cold VRAM SR Support Anshuman Gupta
2022-06-16 12:01 ` Anshuman Gupta
2022-06-16 14:32 ` [Intel-gfx] " Jani Nikula
2022-06-17 9:36 ` Gupta, Anshuman
2022-06-17 9:36 ` Gupta, Anshuman
2022-06-16 12:01 ` [Intel-gfx] [PATCH v2 8/9] drm/i915/xehpsdv: Store lmem region in gt Anshuman Gupta
2022-06-16 12:01 ` Anshuman Gupta
2022-06-16 14:30 ` [Intel-gfx] " Jani Nikula
2022-06-17 13:45 ` Andi Shyti
2022-06-17 13:45 ` Andi Shyti
2022-06-16 12:01 ` [Intel-gfx] [PATCH v2 9/9] drm/i915/rpm: d3cold Policy Anshuman Gupta
2022-06-16 12:01 ` Anshuman Gupta
2022-06-16 14:28 ` [Intel-gfx] " Jani Nikula
2022-06-21 6:14 ` Gupta, Anshuman
2022-06-21 6:14 ` Gupta, Anshuman
2022-06-16 16:41 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for DG2 VRAM_SR Support (rev3) Patchwork
2022-06-16 17:03 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-06-16 23:30 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " 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=877d5gwyog.fsf@intel.com \
--to=jani.nikula@intel.com \
--cc=anshuman.gupta@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=rodrigo.vivi@intel.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.