[PATCH] drm/i915/xe3lpd: Power request asserting/deasserting
Gustavo Sousa
gustavo.sousa at intel.com
Mon Oct 28 14:21:59 UTC 2024
Quoting Raag Jadav (2024-10-28 11:02:02-03:00)
>On Mon, Oct 28, 2024 at 02:58:35PM +0200, Mika Kahola wrote:
>
>...
>
>> +static bool wa_tcss_power_request_assert(struct drm_i915_private *i915,
>> + bool enable)
>> +{
>> + /*
>> + * Limit to PTL only
>> + * TODO: Add check for PICA IP and use that instead limiting WA for
>> + * platform
>> + */
>> + if (DISPLAY_VER(i915) != 30)
>
>Not sure if hardcoding constants is the best of the approach, but I found
>similar patterns in other places, so upto you.
Using version number directly makes it easier to concurrently merge
independent patches for some display IP without having to wait some
#define to become available. That comes with the cost of having
to remember the version numbers (or checking somewhere) though.
>
>> + return true;
>> +
>> + /* check if mailbox is running busy */
>> + if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
>> + TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
>> + drm_dbg_kms(&i915->drm,
>> + "Power request assert WA timeout waiting for TCSS mailbox run/busy bit to clear\n");
>
>Is timeout considered a failure? Not sure _dbg is the right helper if it.
I believe it is okay to have _dbg here, because the returned value is
checked and a warning is raised. Althought we could make this more
self-contained by jumping an error path inside this function.
>
>> + return false;
>> + }
>> +
>> + if (enable)
>> + intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 1);
>> + else
>> + intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, 0);
>
>Since enable it already a bool, this can be
>
> intel_de_write(i915, TCSS_DISP_MAILBOX_IN_DATA, enable);
>
>> +
>> + intel_de_write(i915, TCSS_DISP_MAILBOX_IN_CMD,
>> + TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY |
>> + TCSS_DISP_MAILBOX_IN_CMD_DATA(0x1));
>> +
>> + /* wait to clear mailbox running busy bit before continuing */
>
>Any specific reason to do this on exit?
>I'm assuming anyone trying to use the mailbox further down would be doing
>this anyway since it's a prerequisite, right?
This wait is part of the "DE to IOM Mailbox" flow. I believe this is
necessary and the workaround might even not be effective without it.
--
Gustavo Sousa
>
>> + if (intel_de_wait_for_clear(i915, TCSS_DISP_MAILBOX_IN_CMD,
>> + TCSS_DISP_MAILBOX_IN_CMD_RUN_BUSY, 10)) {
>> + drm_dbg_kms(&i915->drm,
>> + "Power request assert WA timeout waiting for TCSS mailbox run/busy bit to clear\n");
>
>Ditto.
>
>> + return false;
>> + }
>> +
>> + return true;
>> +}
>
>Raag
More information about the Intel-gfx
mailing list