* [PATCH 1/2] drm/i915: Split uncore init into vfunc setup and mmio setup
@ 2017-10-07 8:56 Chris Wilson
2017-10-07 8:56 ` [PATCH 2/2] drm/i915: Remove early invocations of i915_engines_cleanup() Chris Wilson
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Chris Wilson @ 2017-10-07 8:56 UTC (permalink / raw)
To: intel-gfx; +Cc: Daniel Vetter
Some early initialisation functions (like intel_uc_init_early) would
like to access the table of mmio registers sorted by their powerwell,
which is currently setup later in intel_uncore_init(). Since this is a
static table that now doesn't touch hw, once upon a time we needed to
probe ivb to determine the forcewake register, but now only depends on
pciid (i.e. gen) we can do the vfunc setup inside init_early, leaving
the mmio setup where it is.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
drivers/gpu/drm/i915/i915_drv.c | 10 ++++++----
drivers/gpu/drm/i915/intel_uncore.c | 25 ++++++++++++++-----------
drivers/gpu/drm/i915/intel_uncore.h | 3 ++-
3 files changed, 22 insertions(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 66fc156b294a..7d110797e0dc 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -898,13 +898,15 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv,
mutex_init(&dev_priv->wm.wm_mutex);
mutex_init(&dev_priv->pps_mutex);
- intel_uc_init_early(dev_priv);
- i915_memcpy_init_early(dev_priv);
-
ret = i915_workqueues_init(dev_priv);
if (ret < 0)
goto err_engines;
+ i915_memcpy_init_early(dev_priv);
+
+ intel_uncore_init_early(dev_priv);
+ intel_uc_init_early(dev_priv);
+
/* This must be called before any calls to HAS_PCH_* */
intel_detect_pch(dev_priv);
@@ -1014,7 +1016,7 @@ static int i915_driver_init_mmio(struct drm_i915_private *dev_priv)
if (ret < 0)
goto err_bridge;
- intel_uncore_init(dev_priv);
+ intel_uncore_init_mmio(dev_priv);
intel_uc_init_mmio(dev_priv);
diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
index 3d41667919dc..4d81bc066b37 100644
--- a/drivers/gpu/drm/i915/intel_uncore.c
+++ b/drivers/gpu/drm/i915/intel_uncore.c
@@ -1247,18 +1247,8 @@ static int i915_pmic_bus_access_notifier(struct notifier_block *nb,
return NOTIFY_OK;
}
-void intel_uncore_init(struct drm_i915_private *dev_priv)
+void intel_uncore_init_early(struct drm_i915_private *dev_priv)
{
- i915_check_vgpu(dev_priv);
-
- intel_uncore_edram_detect(dev_priv);
- intel_uncore_fw_domains_init(dev_priv);
- __intel_uncore_early_sanitize(dev_priv, false);
-
- dev_priv->uncore.unclaimed_mmio_check = 1;
- dev_priv->uncore.pmic_bus_access_nb.notifier_call =
- i915_pmic_bus_access_notifier;
-
if (IS_GEN(dev_priv, 2, 4) || intel_vgpu_active(dev_priv)) {
ASSIGN_WRITE_MMIO_VFUNCS(dev_priv, gen2);
ASSIGN_READ_MMIO_VFUNCS(dev_priv, gen2);
@@ -1289,6 +1279,19 @@ void intel_uncore_init(struct drm_i915_private *dev_priv)
ASSIGN_WRITE_MMIO_VFUNCS(dev_priv, fwtable);
ASSIGN_READ_MMIO_VFUNCS(dev_priv, fwtable);
}
+}
+
+void intel_uncore_init_mmio(struct drm_i915_private *dev_priv)
+{
+ i915_check_vgpu(dev_priv);
+
+ intel_uncore_edram_detect(dev_priv);
+ intel_uncore_fw_domains_init(dev_priv);
+ __intel_uncore_early_sanitize(dev_priv, false);
+
+ dev_priv->uncore.unclaimed_mmio_check = 1;
+ dev_priv->uncore.pmic_bus_access_nb.notifier_call =
+ i915_pmic_bus_access_notifier;
iosf_mbi_register_pmic_bus_access_notifier(
&dev_priv->uncore.pmic_bus_access_nb);
diff --git a/drivers/gpu/drm/i915/intel_uncore.h b/drivers/gpu/drm/i915/intel_uncore.h
index 582771251b57..695ea5600469 100644
--- a/drivers/gpu/drm/i915/intel_uncore.h
+++ b/drivers/gpu/drm/i915/intel_uncore.h
@@ -128,7 +128,8 @@ struct intel_uncore {
void intel_uncore_sanitize(struct drm_i915_private *dev_priv);
-void intel_uncore_init(struct drm_i915_private *dev_priv);
+void intel_uncore_init_early(struct drm_i915_private *dev_priv);
+void intel_uncore_init_mmio(struct drm_i915_private *dev_priv);
bool intel_uncore_unclaimed_mmio(struct drm_i915_private *dev_priv);
bool intel_uncore_arm_unclaimed_mmio_detection(struct drm_i915_private *dev_priv);
void intel_uncore_fini(struct drm_i915_private *dev_priv);
--
2.14.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 2/2] drm/i915: Remove early invocations of i915_engines_cleanup()
2017-10-07 8:56 [PATCH 1/2] drm/i915: Split uncore init into vfunc setup and mmio setup Chris Wilson
@ 2017-10-07 8:56 ` Chris Wilson
2017-10-09 9:24 ` Joonas Lahtinen
2017-10-07 9:19 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Split uncore init into vfunc setup and mmio setup Patchwork
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Chris Wilson @ 2017-10-07 8:56 UTC (permalink / raw)
To: intel-gfx
Engines are now only allocated during init_mmio, so we can forgo
iterating over the empty list and calling kfree(NULL) prior to
intel_engines_init_mmio().
Fixes: 63ffbcdadcf2 ("drm/i915: Sanitize engine context sizes")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
drivers/gpu/drm/i915/i915_drv.c | 15 ++-------------
1 file changed, 2 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 7d110797e0dc..a45e34dcd04d 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -818,15 +818,6 @@ static int i915_workqueues_init(struct drm_i915_private *dev_priv)
return -ENOMEM;
}
-static void i915_engines_cleanup(struct drm_i915_private *i915)
-{
- struct intel_engine_cs *engine;
- enum intel_engine_id id;
-
- for_each_engine(engine, i915, id)
- kfree(engine);
-}
-
static void i915_workqueues_cleanup(struct drm_i915_private *dev_priv)
{
destroy_workqueue(dev_priv->hotplug.dp_wq);
@@ -900,7 +891,7 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv,
ret = i915_workqueues_init(dev_priv);
if (ret < 0)
- goto err_engines;
+ goto err;
i915_memcpy_init_early(dev_priv);
@@ -935,8 +926,7 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv,
err_irq:
intel_irq_fini(dev_priv);
i915_workqueues_cleanup(dev_priv);
-err_engines:
- i915_engines_cleanup(dev_priv);
+err:
return ret;
}
@@ -950,7 +940,6 @@ static void i915_driver_cleanup_early(struct drm_i915_private *dev_priv)
i915_gem_load_cleanup(dev_priv);
intel_irq_fini(dev_priv);
i915_workqueues_cleanup(dev_priv);
- i915_engines_cleanup(dev_priv);
}
static int i915_mmio_setup(struct drm_i915_private *dev_priv)
--
2.14.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread* ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Split uncore init into vfunc setup and mmio setup
2017-10-07 8:56 [PATCH 1/2] drm/i915: Split uncore init into vfunc setup and mmio setup Chris Wilson
2017-10-07 8:56 ` [PATCH 2/2] drm/i915: Remove early invocations of i915_engines_cleanup() Chris Wilson
@ 2017-10-07 9:19 ` Patchwork
2017-10-07 10:21 ` ✗ Fi.CI.IGT: failure " Patchwork
2017-10-07 11:14 ` [PATCH 1/2] " Michal Wajdeczko
3 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2017-10-07 9:19 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/2] drm/i915: Split uncore init into vfunc setup and mmio setup
URL : https://patchwork.freedesktop.org/series/31531/
State : success
== Summary ==
Series 31531v1 series starting with [1/2] drm/i915: Split uncore init into vfunc setup and mmio setup
https://patchwork.freedesktop.org/api/1.0/series/31531/revisions/1/mbox/
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
pass -> DMESG-WARN (fi-byt-j1900) fdo#101705
fdo#101705 https://bugs.freedesktop.org/show_bug.cgi?id=101705
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:462s
fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:479s
fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:394s
fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:578s
fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:288s
fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:533s
fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:532s
fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:542s
fi-byt-n2820 total:289 pass:249 dwarn:1 dfail:0 fail:0 skip:39 time:530s
fi-cfl-s total:289 pass:256 dwarn:1 dfail:0 fail:0 skip:32 time:565s
fi-cnl-y total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:619s
fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:436s
fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:603s
fi-hsw-4770 total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:436s
fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:420s
fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:510s
fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:474s
fi-kbl-7500u total:289 pass:264 dwarn:1 dfail:0 fail:0 skip:24 time:507s
fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:582s
fi-kbl-7567u total:289 pass:265 dwarn:4 dfail:0 fail:0 skip:20 time:493s
fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:595s
fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:657s
fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:478s
fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:658s
fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:530s
fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:511s
fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:472s
fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:585s
fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:430s
aaf31e875e72b50f6a970c11f797b7f5b61a2681 drm-tip: 2017y-10m-06d-17h-24m-22s UTC integration manifest
1d08244ad22c drm/i915: Remove early invocations of i915_engines_cleanup()
77e7c98fbc62 drm/i915: Split uncore init into vfunc setup and mmio setup
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5940/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread* ✗ Fi.CI.IGT: failure for series starting with [1/2] drm/i915: Split uncore init into vfunc setup and mmio setup
2017-10-07 8:56 [PATCH 1/2] drm/i915: Split uncore init into vfunc setup and mmio setup Chris Wilson
2017-10-07 8:56 ` [PATCH 2/2] drm/i915: Remove early invocations of i915_engines_cleanup() Chris Wilson
2017-10-07 9:19 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Split uncore init into vfunc setup and mmio setup Patchwork
@ 2017-10-07 10:21 ` Patchwork
2017-10-07 11:14 ` [PATCH 1/2] " Michal Wajdeczko
3 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2017-10-07 10:21 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/2] drm/i915: Split uncore init into vfunc setup and mmio setup
URL : https://patchwork.freedesktop.org/series/31531/
State : failure
== Summary ==
Test kms_cursor_legacy:
Subgroup cursorA-vs-flipA-atomic-transitions:
fail -> PASS (shard-hsw) fdo#102723
Test kms_setmode:
Subgroup basic:
pass -> FAIL (shard-hsw) fdo#99912
Test perf:
Subgroup oa-exponents:
pass -> FAIL (shard-hsw)
fdo#102723 https://bugs.freedesktop.org/show_bug.cgi?id=102723
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
shard-hsw total:2446 pass:1327 dwarn:6 dfail:0 fail:10 skip:1103 time:10097s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5940/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH 1/2] drm/i915: Split uncore init into vfunc setup and mmio setup
2017-10-07 8:56 [PATCH 1/2] drm/i915: Split uncore init into vfunc setup and mmio setup Chris Wilson
` (2 preceding siblings ...)
2017-10-07 10:21 ` ✗ Fi.CI.IGT: failure " Patchwork
@ 2017-10-07 11:14 ` Michal Wajdeczko
2017-10-07 15:28 ` Chris Wilson
3 siblings, 1 reply; 9+ messages in thread
From: Michal Wajdeczko @ 2017-10-07 11:14 UTC (permalink / raw)
To: intel-gfx, Chris Wilson; +Cc: Daniel Vetter
On Sat, 07 Oct 2017 10:56:58 +0200, Chris Wilson
<chris@chris-wilson.co.uk> wrote:
> Some early initialisation functions (like intel_uc_init_early) would
> like to access the table of mmio registers sorted by their powerwell,
> which is currently setup later in intel_uncore_init(). Since this is a
> static table that now doesn't touch hw, once upon a time we needed to
> probe ivb to determine the forcewake register, but now only depends on
> pciid (i.e. gen) we can do the vfunc setup inside init_early, leaving
> the mmio setup where it is.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> drivers/gpu/drm/i915/i915_drv.c | 10 ++++++----
> drivers/gpu/drm/i915/intel_uncore.c | 25 ++++++++++++++-----------
> drivers/gpu/drm/i915/intel_uncore.h | 3 ++-
> 3 files changed, 22 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c
> b/drivers/gpu/drm/i915/i915_drv.c
> index 66fc156b294a..7d110797e0dc 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -898,13 +898,15 @@ static int i915_driver_init_early(struct
> drm_i915_private *dev_priv,
> mutex_init(&dev_priv->wm.wm_mutex);
> mutex_init(&dev_priv->pps_mutex);
> - intel_uc_init_early(dev_priv);
> - i915_memcpy_init_early(dev_priv);
> -
> ret = i915_workqueues_init(dev_priv);
> if (ret < 0)
> goto err_engines;
> + i915_memcpy_init_early(dev_priv);
> +
> + intel_uncore_init_early(dev_priv);
> + intel_uc_init_early(dev_priv);
> +
> /* This must be called before any calls to HAS_PCH_* */
> intel_detect_pch(dev_priv);
> @@ -1014,7 +1016,7 @@ static int i915_driver_init_mmio(struct
> drm_i915_private *dev_priv)
> if (ret < 0)
> goto err_bridge;
> - intel_uncore_init(dev_priv);
> + intel_uncore_init_mmio(dev_priv);
> intel_uc_init_mmio(dev_priv);
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c
> b/drivers/gpu/drm/i915/intel_uncore.c
> index 3d41667919dc..4d81bc066b37 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -1247,18 +1247,8 @@ static int i915_pmic_bus_access_notifier(struct
> notifier_block *nb,
> return NOTIFY_OK;
> }
> -void intel_uncore_init(struct drm_i915_private *dev_priv)
> +void intel_uncore_init_early(struct drm_i915_private *dev_priv)
> {
> - i915_check_vgpu(dev_priv);
> -
> - intel_uncore_edram_detect(dev_priv);
> - intel_uncore_fw_domains_init(dev_priv);
> - __intel_uncore_early_sanitize(dev_priv, false);
> -
> - dev_priv->uncore.unclaimed_mmio_check = 1;
> - dev_priv->uncore.pmic_bus_access_nb.notifier_call =
> - i915_pmic_bus_access_notifier;
> -
> if (IS_GEN(dev_priv, 2, 4) || intel_vgpu_active(dev_priv)) {
> ASSIGN_WRITE_MMIO_VFUNCS(dev_priv, gen2);
> ASSIGN_READ_MMIO_VFUNCS(dev_priv, gen2);
> @@ -1289,6 +1279,19 @@ void intel_uncore_init(struct drm_i915_private
> *dev_priv)
> ASSIGN_WRITE_MMIO_VFUNCS(dev_priv, fwtable);
> ASSIGN_READ_MMIO_VFUNCS(dev_priv, fwtable);
> }
> +}
> +
> +void intel_uncore_init_mmio(struct drm_i915_private *dev_priv)
> +{
> + i915_check_vgpu(dev_priv);
> +
> + intel_uncore_edram_detect(dev_priv);
> + intel_uncore_fw_domains_init(dev_priv);
Do you plan to split fw_domains_init into early/mmio parts?
Without such split use of intel_uncore_forcewake_for_reg
from uc_init_early will still be not possible.
Michal
> + __intel_uncore_early_sanitize(dev_priv, false);
> +
> + dev_priv->uncore.unclaimed_mmio_check = 1;
> + dev_priv->uncore.pmic_bus_access_nb.notifier_call =
> + i915_pmic_bus_access_notifier;
> iosf_mbi_register_pmic_bus_access_notifier(
> &dev_priv->uncore.pmic_bus_access_nb);
> diff --git a/drivers/gpu/drm/i915/intel_uncore.h
> b/drivers/gpu/drm/i915/intel_uncore.h
> index 582771251b57..695ea5600469 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.h
> +++ b/drivers/gpu/drm/i915/intel_uncore.h
> @@ -128,7 +128,8 @@ struct intel_uncore {
> void intel_uncore_sanitize(struct drm_i915_private *dev_priv);
> -void intel_uncore_init(struct drm_i915_private *dev_priv);
> +void intel_uncore_init_early(struct drm_i915_private *dev_priv);
> +void intel_uncore_init_mmio(struct drm_i915_private *dev_priv);
> bool intel_uncore_unclaimed_mmio(struct drm_i915_private *dev_priv);
> bool intel_uncore_arm_unclaimed_mmio_detection(struct drm_i915_private
> *dev_priv);
> void intel_uncore_fini(struct drm_i915_private *dev_priv);
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH 1/2] drm/i915: Split uncore init into vfunc setup and mmio setup
2017-10-07 11:14 ` [PATCH 1/2] " Michal Wajdeczko
@ 2017-10-07 15:28 ` Chris Wilson
2017-10-09 9:19 ` Joonas Lahtinen
0 siblings, 1 reply; 9+ messages in thread
From: Chris Wilson @ 2017-10-07 15:28 UTC (permalink / raw)
To: Michal Wajdeczko, intel-gfx; +Cc: Daniel Vetter
Quoting Michal Wajdeczko (2017-10-07 12:14:30)
> On Sat, 07 Oct 2017 10:56:58 +0200, Chris Wilson
> > +void intel_uncore_init_mmio(struct drm_i915_private *dev_priv)
> > +{
> > + i915_check_vgpu(dev_priv);
> > +
> > + intel_uncore_edram_detect(dev_priv);
> > + intel_uncore_fw_domains_init(dev_priv);
>
> Do you plan to split fw_domains_init into early/mmio parts?
> Without such split use of intel_uncore_forcewake_for_reg
> from uc_init_early will still be not possible.
Ah, I was mistaken in thinking the vfunc tables were enough. We still
have some mmio access in fw_domains_init that we need to split into
_early and _mmio parts. On the whole, what do we think, is the motion
still justified? I think it still is -- we have a lot of static
information here that is useful during early setup.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH 1/2] drm/i915: Split uncore init into vfunc setup and mmio setup
2017-10-07 15:28 ` Chris Wilson
@ 2017-10-09 9:19 ` Joonas Lahtinen
2017-10-09 9:23 ` Chris Wilson
0 siblings, 1 reply; 9+ messages in thread
From: Joonas Lahtinen @ 2017-10-09 9:19 UTC (permalink / raw)
To: Chris Wilson, Michal Wajdeczko, intel-gfx; +Cc: Daniel Vetter
On Sat, 2017-10-07 at 16:28 +0100, Chris Wilson wrote:
> Quoting Michal Wajdeczko (2017-10-07 12:14:30)
> > On Sat, 07 Oct 2017 10:56:58 +0200, Chris Wilson
> > > +void intel_uncore_init_mmio(struct drm_i915_private *dev_priv)
> > > +{
> > > + i915_check_vgpu(dev_priv);
> > > +
> > > + intel_uncore_edram_detect(dev_priv);
> > > + intel_uncore_fw_domains_init(dev_priv);
> >
> > Do you plan to split fw_domains_init into early/mmio parts?
> > Without such split use of intel_uncore_forcewake_for_reg
> > from uc_init_early will still be not possible.
>
> Ah, I was mistaken in thinking the vfunc tables were enough. We still
> have some mmio access in fw_domains_init that we need to split into
> _early and _mmio parts. On the whole, what do we think, is the motion
> still justified? I think it still is -- we have a lot of static
> information here that is useful during early setup.
Not sure if I fully understood the quesiton but the init code split
makes it more coherent across driver.
Regards, Joonas
--
Joonas Lahtinen
Open Source Technology Center
Intel Corporation
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH 1/2] drm/i915: Split uncore init into vfunc setup and mmio setup
2017-10-09 9:19 ` Joonas Lahtinen
@ 2017-10-09 9:23 ` Chris Wilson
0 siblings, 0 replies; 9+ messages in thread
From: Chris Wilson @ 2017-10-09 9:23 UTC (permalink / raw)
To: Joonas Lahtinen, Michal Wajdeczko, intel-gfx; +Cc: Daniel Vetter
Quoting Joonas Lahtinen (2017-10-09 10:19:40)
> On Sat, 2017-10-07 at 16:28 +0100, Chris Wilson wrote:
> > Quoting Michal Wajdeczko (2017-10-07 12:14:30)
> > > On Sat, 07 Oct 2017 10:56:58 +0200, Chris Wilson
> > > > +void intel_uncore_init_mmio(struct drm_i915_private *dev_priv)
> > > > +{
> > > > + i915_check_vgpu(dev_priv);
> > > > +
> > > > + intel_uncore_edram_detect(dev_priv);
> > > > + intel_uncore_fw_domains_init(dev_priv);
> > >
> > > Do you plan to split fw_domains_init into early/mmio parts?
> > > Without such split use of intel_uncore_forcewake_for_reg
> > > from uc_init_early will still be not possible.
> >
> > Ah, I was mistaken in thinking the vfunc tables were enough. We still
> > have some mmio access in fw_domains_init that we need to split into
> > _early and _mmio parts. On the whole, what do we think, is the motion
> > still justified? I think it still is -- we have a lot of static
> > information here that is useful during early setup.
>
> Not sure if I fully understood the quesiton but the init code split
> makes it more coherent across driver.
Yes, I was asking if the proposed fixed patch still made sense when the
immediate use case (uc_init) had already been fixed.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2017-10-09 9:24 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-07 8:56 [PATCH 1/2] drm/i915: Split uncore init into vfunc setup and mmio setup Chris Wilson
2017-10-07 8:56 ` [PATCH 2/2] drm/i915: Remove early invocations of i915_engines_cleanup() Chris Wilson
2017-10-09 9:24 ` Joonas Lahtinen
2017-10-07 9:19 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Split uncore init into vfunc setup and mmio setup Patchwork
2017-10-07 10:21 ` ✗ Fi.CI.IGT: failure " Patchwork
2017-10-07 11:14 ` [PATCH 1/2] " Michal Wajdeczko
2017-10-07 15:28 ` Chris Wilson
2017-10-09 9:19 ` Joonas Lahtinen
2017-10-09 9:23 ` Chris Wilson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox