Message ID | 20190613133539.12620-17-tvrtko.ursulin@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Implicit dev_priv removal and GT compartmentalization | expand |
Quoting Tvrtko Ursulin (2019-06-13 14:35:27) > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > Having made start to better code compartmentalization by introducing > struct intel_gt, continue the theme elsewhere in code by making functions > take parameters take what logically makes most sense for them instead of > the global struct drm_i915_private. Is that a can of worms I see? :) While you are here, care to pull in the gmch probe so we can drop the frankenstein approach. -Chris
On 13/06/2019 15:03, Chris Wilson wrote: > Quoting Tvrtko Ursulin (2019-06-13 14:35:27) >> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> >> Having made start to better code compartmentalization by introducing >> struct intel_gt, continue the theme elsewhere in code by making functions >> take parameters take what logically makes most sense for them instead of >> the global struct drm_i915_private. > > Is that a can of worms I see? :) > > While you are here, care to pull in the gmch probe so we can drop the > frankenstein approach. What exactly do you mean? Pull in what from where to where? Regards, Tvrtko
Quoting Tvrtko Ursulin (2019-06-14 10:35:57) > > On 13/06/2019 15:03, Chris Wilson wrote: > > Quoting Tvrtko Ursulin (2019-06-13 14:35:27) > >> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > >> > >> Having made start to better code compartmentalization by introducing > >> struct intel_gt, continue the theme elsewhere in code by making functions > >> take parameters take what logically makes most sense for them instead of > >> the global struct drm_i915_private. > > > > Is that a can of worms I see? :) > > > > While you are here, care to pull in the gmch probe so we can drop the > > frankenstein approach. > > What exactly do you mean? Pull in what from where to where? intel_gtt.ko is the other half of i915_gem_gtt.c -Chris
On 14/06/2019 11:23, Chris Wilson wrote: > Quoting Tvrtko Ursulin (2019-06-14 10:35:57) >> >> On 13/06/2019 15:03, Chris Wilson wrote: >>> Quoting Tvrtko Ursulin (2019-06-13 14:35:27) >>>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >>>> >>>> Having made start to better code compartmentalization by introducing >>>> struct intel_gt, continue the theme elsewhere in code by making functions >>>> take parameters take what logically makes most sense for them instead of >>>> the global struct drm_i915_private. >>> >>> Is that a can of worms I see? :) >>> >>> While you are here, care to pull in the gmch probe so we can drop the >>> frankenstein approach. >> >> What exactly do you mean? Pull in what from where to where? > > intel_gtt.ko is the other half of i915_gem_gtt.c I'll leave this out of this series, at least for now. Otherwise I've done all the other refactors and tweaks to higher or lower standard. I'll send a new RFC out just so we see where we are. Regards, Tvrtko
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index 0810c1655224..c88213fa18af 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c @@ -3507,21 +3507,16 @@ static int i915_gmch_probe(struct i915_ggtt *ggtt) return 0; } -/** - * i915_ggtt_probe_hw - Probe GGTT hardware location - * @dev_priv: i915 device - */ -int i915_ggtt_probe_hw(struct drm_i915_private *dev_priv) +static int ggtt_probe_hw(struct i915_ggtt *ggtt, struct drm_i915_private *i915) { - struct i915_ggtt *ggtt = &dev_priv->ggtt; int ret; - ggtt->vm.i915 = dev_priv; - ggtt->vm.dma = &dev_priv->drm.pdev->dev; + ggtt->vm.i915 = i915; + ggtt->vm.dma = &i915->drm.pdev->dev; - if (INTEL_GEN(dev_priv) <= 5) + if (INTEL_GEN(i915) <= 5) ret = i915_gmch_probe(ggtt); - else if (INTEL_GEN(dev_priv) < 8) + else if (INTEL_GEN(i915) < 8) ret = gen6_gmch_probe(ggtt); else ret = gen8_gmch_probe(ggtt); @@ -3549,6 +3544,22 @@ int i915_ggtt_probe_hw(struct drm_i915_private *dev_priv) DRM_DEBUG_DRIVER("GMADR size = %lluM\n", (u64)ggtt->mappable_end >> 20); DRM_DEBUG_DRIVER("DSM size = %lluM\n", (u64)resource_size(&intel_graphics_stolen_res) >> 20); + + return 0; +} + +/** + * i915_ggtt_probe_hw - Probe GGTT hardware location + * @dev_priv: i915 device + */ +int i915_ggtt_probe_hw(struct drm_i915_private *i915) +{ + int ret; + + ret = ggtt_probe_hw(&i915->ggtt, i915); + if (ret) + return ret; + if (intel_vtd_active()) DRM_INFO("VT-d active for gfx access\n");