All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michal Wajdeczko" <michal.wajdeczko@intel.com>
To: intel-gfx@lists.freedesktop.org, Yaodong Li <yaodong.li@intel.com>
Subject: Re: [PATCH v3 2/4] drm/i915: Always set HUC_LOADING_AGENT_GUC bit in WOPCM offset register
Date: Thu, 19 Apr 2018 17:52:52 +0200	[thread overview]
Message-ID: <op.zhp6eejkxaggs7@mwajdecz-mobl1.ger.corp.intel.com> (raw)
In-Reply-To: <a3987cf2-af95-582f-8dc8-4d016dddbaab@intel.com>

On Mon, 16 Apr 2018 19:43:52 +0200, Yaodong Li <yaodong.li@intel.com>  
wrote:

> On 04/13/2018 07:26 PM, Michal Wajdeczko wrote:
>> On Tue, 10 Apr 2018 02:42:18 +0200, Jackie Li <yaodong.li@intel.com>  
>> wrote:
>>
>>> The enable_guc modparam is used to enable/disable GuC/HuC FW uploading
>>> dynamcially during i915 module loading. If WOPCM offset register was
>>   ^^^^
>> typo
>>
> D'oh! I really need a tool for this! Thanks, will fix it.
>>> locked
>>> without having HUC_LOADING_AGENT_GUC bit set to 1, the module reloading
>>> with both GuC and HuC FW will fail since we need to set this bit to 1  
>>> for
>>> HuC FW uploading.
>>>
>>> Since HUC_LOADING_AGENT_GUC bit has no impact on GuC FW uploading, this
>>> patch updates the register updating code to make sure the WOPCM offset
>>> register is always locked with HUC_LOADING_AGENT_GUC bit set to 1 which
>>> will guarantee successful uploading of both GuC and HuC FW. We will  
>>> further
>>> take care of the locked values in the following enhancement patch.
>>>
>>> Signed-off-by: Jackie Li <yaodong.li@intel.com>
>>> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
>>> Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
>>> Cc: Michal Winiarski <michal.winiarski@intel.com>
>>> Cc: John Spotswood <john.a.spotswood@intel.com>
>>> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
>>> ---
>>>  drivers/gpu/drm/i915/intel_wopcm.c | 8 +++-----
>>>  1 file changed, 3 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/intel_wopcm.c  
>>> b/drivers/gpu/drm/i915/intel_wopcm.c
>>> index 74bf76f..b1c08ca 100644
>>> --- a/drivers/gpu/drm/i915/intel_wopcm.c
>>> +++ b/drivers/gpu/drm/i915/intel_wopcm.c
>>> @@ -238,8 +238,6 @@ static inline int write_and_verify(struct  
>>> drm_i915_private *dev_priv,
>>>  int intel_wopcm_init_hw(struct intel_wopcm *wopcm)
>>>  {
>>>      struct drm_i915_private *dev_priv = wopcm_to_i915(wopcm);
>>> -    u32 huc_agent;
>>> -    u32 mask;
>>>      int err;
>>>     if (!USES_GUC(dev_priv))
>>> @@ -255,10 +253,10 @@ int intel_wopcm_init_hw(struct intel_wopcm  
>>> *wopcm)
>>>      if (err)
>>>          goto err_out;
>>> -    huc_agent = USES_HUC(dev_priv) ? HUC_LOADING_AGENT_GUC : 0;
>>> -    mask = GUC_WOPCM_OFFSET_MASK | GUC_WOPCM_OFFSET_VALID | huc_agent;
>>>      err = write_and_verify(dev_priv, DMA_GUC_WOPCM_OFFSET,
>>> -                   wopcm->guc.base | huc_agent, mask,
>>> +                   wopcm->guc.base | HUC_LOADING_AGENT_GUC,
>>> +                   GUC_WOPCM_OFFSET_MASK | HUC_LOADING_AGENT_GUC |
>>> +                   GUC_WOPCM_OFFSET_VALID,
>>
>> while we can unconditionally set HUC_AGENT bit, there is no need to  
>> verify
>> it unless we are using HuC, so we can consider leaving old mask intact.
> The idea is to verify the written values are exactly we want, so I think  
> it better
> to keep doing it in this way.

Hmm, but then instead of being more flexible, you're unnecessary  
restricting
yourself to require HUC_AGENT bit, even if you don't need it - recall the
theoretical scenario with bad bios that already locked that register.

This seems to be little inconsistent with earlier patch where you try to
support much more different scenario (from no HuC fw to use HuC fw)

/m
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2018-04-19 15:52 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-10  0:42 [PATCH v3 1/4] drm/i915: Always do WOPCM partitioning based on real firmware sizes Jackie Li
2018-04-10  0:42 ` [PATCH v3 2/4] drm/i915: Always set HUC_LOADING_AGENT_GUC bit in WOPCM offset register Jackie Li
2018-04-13 23:34   ` John Spotswood
2018-04-14  2:26   ` Michal Wajdeczko
2018-04-16 17:43     ` Yaodong Li
2018-04-19 15:52       ` Michal Wajdeczko [this message]
2018-04-19 21:26         ` Yaodong Li
2018-04-10  0:42 ` [PATCH v3 3/4] drm/i915: Add code to accept valid locked WOPCM register values Jackie Li
2018-04-13 23:34   ` John Spotswood
2018-04-14  4:20   ` Michal Wajdeczko
2018-04-16 18:43     ` Yaodong Li
2018-04-19 16:37       ` Michal Wajdeczko
2018-04-19 21:50         ` Yaodong Li
2018-04-10  0:42 ` [PATCH v3 4/4] HAX enable guc for CI Jackie Li
2018-04-10  1:26 ` ✓ Fi.CI.BAT: success for series starting with [v3,1/4] drm/i915: Always do WOPCM partitioning based on real firmware sizes Patchwork
2018-04-10  3:03 ` ✗ Fi.CI.IGT: failure " Patchwork
2018-04-13 23:33 ` [PATCH v3 1/4] " John Spotswood
2018-04-14  2:15 ` Michal Wajdeczko
2018-04-16 17:28   ` Yaodong Li
2018-04-19 15:31     ` Michal Wajdeczko
2018-04-19 21:17       ` Yaodong Li

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=op.zhp6eejkxaggs7@mwajdecz-mobl1.ger.corp.intel.com \
    --to=michal.wajdeczko@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=yaodong.li@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.