Re: [PATCH 2/7] drm/i915/uc: fetch uc firmwares for each GT

2022-09-30 Thread John Harrison

On 9/22/2022 15:11, Daniele Ceraolo Spurio wrote:

The FW binaries are independently loaded on each GT. On MTL, the memory
is shared so we could potentially re-use a single allocation, but on
discrete multi-gt platforms we are going to need independent copies,
so it is easier to do the same on MTL as well, given that the amount
of duplicated memory is relatively small (~500K).

Signed-off-by: Daniele Ceraolo Spurio 
Cc: John Harrison 
Cc: Alan Previn 

Reviewed-by: John Harrison 


---
  drivers/gpu/drm/i915/i915_gem.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 88df9a35e0fe..a5b192ac885c 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1140,7 +1140,8 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
if (ret)
return ret;
  
-	intel_uc_fetch_firmwares(&to_gt(dev_priv)->uc);

+   for_each_gt(gt, dev_priv, i)
+   intel_uc_fetch_firmwares(>->uc);
intel_wopcm_init(&dev_priv->wopcm);
  
  	ret = i915_init_ggtt(dev_priv);




[PATCH 2/7] drm/i915/uc: fetch uc firmwares for each GT

2022-09-22 Thread Daniele Ceraolo Spurio
The FW binaries are independently loaded on each GT. On MTL, the memory
is shared so we could potentially re-use a single allocation, but on
discrete multi-gt platforms we are going to need independent copies,
so it is easier to do the same on MTL as well, given that the amount
of duplicated memory is relatively small (~500K).

Signed-off-by: Daniele Ceraolo Spurio 
Cc: John Harrison 
Cc: Alan Previn 
---
 drivers/gpu/drm/i915/i915_gem.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 88df9a35e0fe..a5b192ac885c 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1140,7 +1140,8 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
if (ret)
return ret;
 
-   intel_uc_fetch_firmwares(&to_gt(dev_priv)->uc);
+   for_each_gt(gt, dev_priv, i)
+   intel_uc_fetch_firmwares(>->uc);
intel_wopcm_init(&dev_priv->wopcm);
 
ret = i915_init_ggtt(dev_priv);
-- 
2.37.3