From: Raag Jadav <raag.jadav@intel.com>
To: Mika Kahola <mika.kahola@intel.com>
Cc: intel-gfx@lists.freedesktop.org, gustavo.sousa@intel.com,
jani.nikula@linux.intel.com
Subject: Re: [PATCH v3 1/2] drm/i915/xe3lpd: Power request asserting/deasserting
Date: Thu, 31 Oct 2024 14:55:07 +0200 [thread overview]
Message-ID: <ZyN-K6kvCJdri7Lj@black.fi.intel.com> (raw)
In-Reply-To: <20241031114027.225217-2-mika.kahola@intel.com>
On Thu, Oct 31, 2024 at 01:40:26PM +0200, Mika Kahola wrote:
> There is a HW issue that arises when there are race conditions
> between TCSS entering/exiting TC7 or TC10 states while the
> driver is asserting/deasserting TCSS power request. As a
> workaround, Display driver will implement a mailbox sequence
> to ensure that the TCSS is in TC0 when TCSS power request is
> asserted/deasserted.
>
> The sequence is the following
>
> 1. Read mailbox command status and wait until run/busy bit is
> clear
> 2. Write mailbox data value '1' for power request asserting
> and '0' for power request deasserting
> 3. Write mailbox command run/busy bit and command value with 0x1
> 4. Read mailbox command and wait until run/busy bit is clear
> before continuing power request.
>
> v2: Rename WA function (Gustavo)
> Limit WA only for PTL platform with a TODO note (Gustavo)
> Add TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY for clarity when writing
> register data (Gustavo)
> Move register defs from i915_reg.h to intel_cx0_phy_regs.h (Gustavo)
> v3: use "struct intel_display" instead of "struct drm_i915_private" (Jani)
> Move defs above C10 definitions in the
> intel_cx0_phy_regs.h file (Gustavo)
> Move drm_WARN_ON() inside WA function (Gustavo)
> Rename workaround function as wa_14020908590() (Gustvo)
> Use boolean enable instead of if-else structure (Raag)
>
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> ---
> .../gpu/drm/i915/display/intel_cx0_phy_regs.h | 8 +++++
> drivers/gpu/drm/i915/display/intel_tc.c | 32 +++++++++++++++++++
> 2 files changed, 40 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h b/drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h
> index f0e5c196eae4..5a0b55cca4a3 100644
> --- a/drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h
> +++ b/drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h
> @@ -200,6 +200,14 @@
> #define XELPDP_SSC_ENABLE_PLLA REG_BIT(1)
> #define XELPDP_SSC_ENABLE_PLLB REG_BIT(0)
>
> +#define TCSS_DISP_MAILBOX_IN_CMD _MMIO(0x161300)
> +#define TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY REG_BIT(31)
> +#define TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK REG_GENMASK(7, 0)
> +#define TCSS_DISP_MAILBOX_IN_CMD_DATA(val) (TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY | \
> + REG_FIELD_PREP(TCSS_DISP_MAILBOX_IN_CMD_CMD_MASK, val))
> +
> +#define TCSS_DISP_MAILBOX_IN_DATA _MMIO(0x161304)
> +
> /* C10 Vendor Registers */
> #define PHY_C10_VDR_PLL(idx) (0xC00 + (idx))
> #define C10_PLL0_FRACEN REG_BIT8(4)
> diff --git a/drivers/gpu/drm/i915/display/intel_tc.c b/drivers/gpu/drm/i915/display/intel_tc.c
> index b16c4d2d4077..dab2ac7ec0dd 100644
> --- a/drivers/gpu/drm/i915/display/intel_tc.c
> +++ b/drivers/gpu/drm/i915/display/intel_tc.c
> @@ -1013,6 +1013,31 @@ xelpdp_tc_phy_wait_for_tcss_power(struct intel_tc_port *tc, bool enabled)
> return true;
> }
>
> +static void wa_14020908590(struct intel_display *display,
> + bool enable)
Can be one line?
Raag
next prev parent reply other threads:[~2024-10-31 12:55 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-31 11:40 [PATCH v3 0/2] drm/i915/display: Power request asserting/deasserting Mika Kahola
2024-10-31 11:40 ` [PATCH v3 1/2] drm/i915/xe3lpd: " Mika Kahola
2024-10-31 12:55 ` Raag Jadav [this message]
2024-10-31 14:29 ` Kahola, Mika
2024-10-31 14:50 ` Raag Jadav
2024-10-31 15:12 ` Raag Jadav
2024-11-01 11:47 ` Kahola, Mika
2024-10-31 11:40 ` [PATCH v3 2/2] drm/i915/display: Use struct intel_display instead of struct drm_i915_private Mika Kahola
2024-10-31 12:50 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/display: Power request asserting/deasserting Patchwork
2024-10-31 12:50 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-10-31 12:59 ` [PATCH v3 0/2] " Raag Jadav
2024-10-31 14:28 ` Kahola, Mika
2024-10-31 14:55 ` Raag Jadav
2024-10-31 14:04 ` ✗ Fi.CI.BAT: failure for " 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=ZyN-K6kvCJdri7Lj@black.fi.intel.com \
--to=raag.jadav@intel.com \
--cc=gustavo.sousa@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=mika.kahola@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.