* [PATCH v6] drm/i915: Fix assert_plane() warning on bootup with external display
@ 2018-07-03 20:21 Azhar Shaikh
2018-07-03 21:02 ` ✓ Fi.CI.BAT: success for drm/i915: Fix assert_plane() warning on bootup with external display (rev6) Patchwork
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Azhar Shaikh @ 2018-07-03 20:21 UTC (permalink / raw)
To: intel-gfx
On KBL, WHL RVPs, booting up with an external display connected, triggers
below warning, when the BiOS brings up the external display too.
This warning is not seen during hotplug.
[ 3.615226] ------------[ cut here ]------------
[ 3.619829] plane 1A assertion failure (expected on, current off)
[ 3.632039] WARNING: CPU: 2 PID: 354 at drivers/gpu/drm/i915/intel_display.c:1294 assert_plane+0x71/0xbb
[ 3.633920] iwlwifi 0000:00:14.3: loaded firmware version 38.c0e03d94.0 op_mode iwlmvm
[ 3.647157] Modules linked in: iwlwifi cfg80211 btusb btrtl btbcm btintel bluetooth ecdh_generic
[ 3.647163] CPU: 2 PID: 354 Comm: frecon Not tainted 4.17.0-rc7-50176-g655af12d39c2 #3
[ 3.647165] Hardware name: Intel Corporation CoffeeLake Client Platform/WhiskeyLake U DDR4 ERB, BIOS CNLSFWR1.R00.X140.B00.1804040304 04/04/2018
[ 3.684509] RIP: 0010:assert_plane+0x71/0xbb
[ 3.764451] Call Trace:
[ 3.766888] intel_atomic_commit_tail+0xa97/0xb77
[ 3.771569] intel_atomic_commit+0x26a/0x279
[ 3.771572] drm_atomic_helper_set_config+0x5c/0x76
[ 3.780670] __drm_mode_set_config_internal+0x66/0x109
[ 3.780672] drm_mode_setcrtc+0x4c9/0x5cc
[ 3.780674] ? drm_mode_getcrtc+0x162/0x162
[ 3.789774] ? drm_mode_getcrtc+0x162/0x162
[ 3.798108] drm_ioctl_kernel+0x8d/0xe4
[ 3.801926] drm_ioctl+0x27d/0x368
[ 3.805311] ? drm_mode_getcrtc+0x162/0x162
[ 3.805314] ? selinux_file_ioctl+0x14e/0x199
[ 3.805317] vfs_ioctl+0x21/0x2f
[ 3.813812] do_vfs_ioctl+0x491/0x4b4
[ 3.813813] ? security_file_ioctl+0x37/0x4b
[ 3.813816] ksys_ioctl+0x55/0x75
[ 3.820672] __x64_sys_ioctl+0x1a/0x1e
[ 3.820674] do_syscall_64+0x51/0x5f
[ 3.820678] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 3.828221] RIP: 0033:0x7b5e04953967
[ 3.835504] RSP: 002b:00007fff2eafb6f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[ 3.835505] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007b5e04953967
[ 3.835505] RDX: 00007fff2eafb730 RSI: 00000000c06864a2 RDI: 000000000000000f
[ 3.835506] RBP: 00007fff2eafb720 R08: 0000000000000000 R09: 0000000000000000
[ 3.835507] R10: 0000000000000070 R11: 0000000000000246 R12: 000000000000000f
[ 3.879988] R13: 000056bc9dd7d210 R14: 00007fff2eafb730 R15: 00000000c06864a2
[ 3.887081] Code: 48 c7 c7 06 71 a5 be 84 c0 48 c7 c2 06 fd a3 be 48 89 f9 48 0f 44 ca 84 db 48 0f 45 d7 48 c7 c7 df d3 a4 be 31 c0 e8 af a0 c0 ff <0f> 0b eb 2b 48 c7 c7 06 fd a3 be 84 c0 48 c7 c2 06 71 a5 be 48
[ 3.905845] WARNING: CPU: 2 PID: 354 at drivers/gpu/drm/i915/intel_display.c:1294 assert_plane+0x71/0xbb
[ 3.920964] ---[ end trace dac692f4ac46391a ]---
The warning is seen when mode_setcrtc() is called for pipeB
during bootup and before we get a mode_setcrtc() for pipeA,
while doing update_crtcs() in intel_atomic_commit_tail().
Now since, plane1A is still active after commit, update_crtcs()
is done for pipeA and eventually update_plane() for plane1A.
intel_plane_state->ctl for plane1A is not updated since set_modecrtc() is
called for pipeB. So intel_plane_state->ctl for plane 1A will be 0x0.
So doing an update_plane() for plane1A, will result in clearing
PLANE_CTL_ENABLE bit, and hence the warning.
To fix this warning, force all active planes to recompute their states
in probe.
Changes in v6:
- Handle EDEADLK for drm_atomic_get_crtc_state() and
drm_atomic_add_affected_planes()
- Remove optimization of calling intel_initial_commit()
only when there is more than one active pipe in probe.
- Avoid using intel_ types.
Changes in v5:
- Drop drm_modeset_lock_all_ctx() since locks will be taken later.
Changes in v4:
- Handle locking in intel_initial_commit()
- Move the for loop inside intel_initial_commit() so that
drm_atomic_commit() is called only once
- Call intel_initial_commit() only for more than one active crtc on boot.
- Save the return value of intel_initial_commit() and print a message in
case of an error
Changes in v3:
- Add comments
Changes in v2:
- Force all planes to recompute their states.(Ville Syrjälä)
- Update the commit message
Signed-off-by: Azhar Shaikh <azhar.shaikh@intel.com>
---
drivers/gpu/drm/i915/intel_display.c | 61 ++++++++++++++++++++++++++++++++++--
1 file changed, 59 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 56818a45181c..d27b63fe2fc0 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -15092,12 +15092,61 @@ static void intel_update_fdi_pll_freq(struct drm_i915_private *dev_priv)
DRM_DEBUG_DRIVER("FDI PLL freq=%d\n", dev_priv->fdi_pll_freq);
}
+static int intel_initial_commit(struct drm_device *dev)
+{
+ struct drm_atomic_state *state = NULL;
+ struct drm_modeset_acquire_ctx ctx;
+ struct drm_crtc *crtc;
+ struct drm_crtc_state *crtc_state;
+ int ret = 0;
+
+ state = drm_atomic_state_alloc(dev);
+ if (!state)
+ return -ENOMEM;
+
+ drm_modeset_acquire_init(&ctx, 0);
+
+retry:
+ state->acquire_ctx = &ctx;
+
+ drm_for_each_crtc(crtc, dev) {
+ crtc_state = drm_atomic_get_crtc_state(state, crtc);
+ if (IS_ERR(crtc_state)) {
+ ret = PTR_ERR(crtc_state);
+ goto out;
+ }
+
+ if (crtc_state->active) {
+ ret = drm_atomic_add_affected_planes(state, crtc);
+ if (ret)
+ goto out;
+ }
+ }
+
+ ret = drm_atomic_commit(state);
+
+out:
+ if (ret == -EDEADLK) {
+ drm_atomic_state_clear(state);
+ drm_modeset_backoff(&ctx);
+ goto retry;
+ }
+
+ drm_atomic_state_put(state);
+
+ drm_modeset_drop_locks(&ctx);
+ drm_modeset_acquire_fini(&ctx);
+
+ return ret;
+}
+
int intel_modeset_init(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = to_i915(dev);
struct i915_ggtt *ggtt = &dev_priv->ggtt;
enum pipe pipe;
struct intel_crtc *crtc;
+ int ret;
dev_priv->modeset_wq = alloc_ordered_workqueue("i915_modeset", 0);
@@ -15172,8 +15221,6 @@ int intel_modeset_init(struct drm_device *dev)
INTEL_INFO(dev_priv)->num_pipes > 1 ? "s" : "");
for_each_pipe(dev_priv, pipe) {
- int ret;
-
ret = intel_crtc_init(dev_priv, pipe);
if (ret) {
drm_mode_config_cleanup(dev);
@@ -15222,6 +15269,16 @@ int intel_modeset_init(struct drm_device *dev)
}
/*
+ * Force all active planes to recompute their states. So that on
+ * mode_setcrtc after probe, all the intel_plane_state variables
+ * are already calculated and there is no assert_plane warnings
+ * during bootup.
+ */
+ ret = intel_initial_commit(dev);
+ if (ret)
+ DRM_DEBUG_KMS("Initial commit in probe failed.\n");
+
+ /*
* Make sure hardware watermarks really match the state we read out.
* Note that we need to do this after reconstructing the BIOS fb's
* since the watermark calculation done here will use pstate->fb.
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 4+ messages in thread* ✓ Fi.CI.BAT: success for drm/i915: Fix assert_plane() warning on bootup with external display (rev6)
2018-07-03 20:21 [PATCH v6] drm/i915: Fix assert_plane() warning on bootup with external display Azhar Shaikh
@ 2018-07-03 21:02 ` Patchwork
2018-07-04 3:38 ` ✓ Fi.CI.IGT: " Patchwork
2018-07-06 18:06 ` [PATCH v6] drm/i915: Fix assert_plane() warning on bootup with external display Ville Syrjälä
2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2018-07-03 21:02 UTC (permalink / raw)
To: Azhar Shaikh; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Fix assert_plane() warning on bootup with external display (rev6)
URL : https://patchwork.freedesktop.org/series/44909/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4423 -> Patchwork_9515 =
== Summary - SUCCESS ==
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/44909/revisions/6/mbox/
== Known issues ==
Here are the changes found in Patchwork_9515 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@prime_vgem@basic-fence-flip:
fi-ilk-650: PASS -> FAIL (fdo#104008)
==== Possible fixes ====
igt@gem_exec_suspend@basic-s3:
{fi-cfl-8109u}: INCOMPLETE -> PASS
igt@kms_chamelium@dp-edid-read:
fi-kbl-7500u: FAIL (fdo#103841) -> PASS
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841
fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
== Participating hosts (45 -> 41) ==
Additional (1): fi-bxt-dsi
Missing (5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u
== Build changes ==
* Linux: CI_DRM_4423 -> Patchwork_9515
CI_DRM_4423: 9b9b45349fe3a36d41586992426d03a238396531 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4533: 199220052af977598033d3810ffb4cc32d377522 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9515: cb60effe2a3f8432831dccd3e4ef76c3245c8e5f @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
cb60effe2a3f drm/i915: Fix assert_plane() warning on bootup with external display
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9515/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 4+ messages in thread* ✓ Fi.CI.IGT: success for drm/i915: Fix assert_plane() warning on bootup with external display (rev6)
2018-07-03 20:21 [PATCH v6] drm/i915: Fix assert_plane() warning on bootup with external display Azhar Shaikh
2018-07-03 21:02 ` ✓ Fi.CI.BAT: success for drm/i915: Fix assert_plane() warning on bootup with external display (rev6) Patchwork
@ 2018-07-04 3:38 ` Patchwork
2018-07-06 18:06 ` [PATCH v6] drm/i915: Fix assert_plane() warning on bootup with external display Ville Syrjälä
2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2018-07-04 3:38 UTC (permalink / raw)
To: Azhar Shaikh; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Fix assert_plane() warning on bootup with external display (rev6)
URL : https://patchwork.freedesktop.org/series/44909/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4423_full -> Patchwork_9515_full =
== Summary - WARNING ==
Minor unknown changes coming with Patchwork_9515_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_9515_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
== Possible new issues ==
Here are the unknown changes that may have been introduced in Patchwork_9515_full:
=== IGT changes ===
==== Warnings ====
igt@gem_exec_schedule@deep-blt:
shard-kbl: SKIP -> PASS
igt@gem_exec_schedule@deep-bsd1:
shard-kbl: PASS -> SKIP +4
== Known issues ==
Here are the changes found in Patchwork_9515_full that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@drv_suspend@shrink:
shard-hsw: PASS -> FAIL (fdo#106886)
igt@kms_flip_tiling@flip-to-x-tiled:
shard-glk: PASS -> FAIL (fdo#104724)
igt@kms_setmode@basic:
shard-kbl: PASS -> FAIL (fdo#99912)
igt@perf@blocking:
shard-hsw: PASS -> FAIL (fdo#102252)
==== Possible fixes ====
igt@kms_flip@2x-plain-flip-ts-check:
shard-glk: FAIL (fdo#100368) -> PASS +1
igt@kms_vblank@pipe-a-ts-continuation-suspend:
shard-hsw: FAIL (fdo#104894) -> PASS
igt@perf@polling:
shard-hsw: FAIL (fdo#102252) -> PASS
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724
fdo#104894 https://bugs.freedesktop.org/show_bug.cgi?id=104894
fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
== Participating hosts (5 -> 5) ==
No changes in participating hosts
== Build changes ==
* Linux: CI_DRM_4423 -> Patchwork_9515
CI_DRM_4423: 9b9b45349fe3a36d41586992426d03a238396531 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4533: 199220052af977598033d3810ffb4cc32d377522 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9515: cb60effe2a3f8432831dccd3e4ef76c3245c8e5f @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9515/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH v6] drm/i915: Fix assert_plane() warning on bootup with external display
2018-07-03 20:21 [PATCH v6] drm/i915: Fix assert_plane() warning on bootup with external display Azhar Shaikh
2018-07-03 21:02 ` ✓ Fi.CI.BAT: success for drm/i915: Fix assert_plane() warning on bootup with external display (rev6) Patchwork
2018-07-04 3:38 ` ✓ Fi.CI.IGT: " Patchwork
@ 2018-07-06 18:06 ` Ville Syrjälä
2 siblings, 0 replies; 4+ messages in thread
From: Ville Syrjälä @ 2018-07-06 18:06 UTC (permalink / raw)
To: Azhar Shaikh; +Cc: intel-gfx
On Tue, Jul 03, 2018 at 01:21:02PM -0700, Azhar Shaikh wrote:
> On KBL, WHL RVPs, booting up with an external display connected, triggers
> below warning, when the BiOS brings up the external display too.
> This warning is not seen during hotplug.
>
> [ 3.615226] ------------[ cut here ]------------
> [ 3.619829] plane 1A assertion failure (expected on, current off)
> [ 3.632039] WARNING: CPU: 2 PID: 354 at drivers/gpu/drm/i915/intel_display.c:1294 assert_plane+0x71/0xbb
> [ 3.633920] iwlwifi 0000:00:14.3: loaded firmware version 38.c0e03d94.0 op_mode iwlmvm
> [ 3.647157] Modules linked in: iwlwifi cfg80211 btusb btrtl btbcm btintel bluetooth ecdh_generic
> [ 3.647163] CPU: 2 PID: 354 Comm: frecon Not tainted 4.17.0-rc7-50176-g655af12d39c2 #3
> [ 3.647165] Hardware name: Intel Corporation CoffeeLake Client Platform/WhiskeyLake U DDR4 ERB, BIOS CNLSFWR1.R00.X140.B00.1804040304 04/04/2018
> [ 3.684509] RIP: 0010:assert_plane+0x71/0xbb
> [ 3.764451] Call Trace:
> [ 3.766888] intel_atomic_commit_tail+0xa97/0xb77
> [ 3.771569] intel_atomic_commit+0x26a/0x279
> [ 3.771572] drm_atomic_helper_set_config+0x5c/0x76
> [ 3.780670] __drm_mode_set_config_internal+0x66/0x109
> [ 3.780672] drm_mode_setcrtc+0x4c9/0x5cc
> [ 3.780674] ? drm_mode_getcrtc+0x162/0x162
> [ 3.789774] ? drm_mode_getcrtc+0x162/0x162
> [ 3.798108] drm_ioctl_kernel+0x8d/0xe4
> [ 3.801926] drm_ioctl+0x27d/0x368
> [ 3.805311] ? drm_mode_getcrtc+0x162/0x162
> [ 3.805314] ? selinux_file_ioctl+0x14e/0x199
> [ 3.805317] vfs_ioctl+0x21/0x2f
> [ 3.813812] do_vfs_ioctl+0x491/0x4b4
> [ 3.813813] ? security_file_ioctl+0x37/0x4b
> [ 3.813816] ksys_ioctl+0x55/0x75
> [ 3.820672] __x64_sys_ioctl+0x1a/0x1e
> [ 3.820674] do_syscall_64+0x51/0x5f
> [ 3.820678] entry_SYSCALL_64_after_hwframe+0x44/0xa9
> [ 3.828221] RIP: 0033:0x7b5e04953967
> [ 3.835504] RSP: 002b:00007fff2eafb6f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [ 3.835505] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007b5e04953967
> [ 3.835505] RDX: 00007fff2eafb730 RSI: 00000000c06864a2 RDI: 000000000000000f
> [ 3.835506] RBP: 00007fff2eafb720 R08: 0000000000000000 R09: 0000000000000000
> [ 3.835507] R10: 0000000000000070 R11: 0000000000000246 R12: 000000000000000f
> [ 3.879988] R13: 000056bc9dd7d210 R14: 00007fff2eafb730 R15: 00000000c06864a2
> [ 3.887081] Code: 48 c7 c7 06 71 a5 be 84 c0 48 c7 c2 06 fd a3 be 48 89 f9 48 0f 44 ca 84 db 48 0f 45 d7 48 c7 c7 df d3 a4 be 31 c0 e8 af a0 c0 ff <0f> 0b eb 2b 48 c7 c7 06 fd a3 be 84 c0 48 c7 c2 06 71 a5 be 48
> [ 3.905845] WARNING: CPU: 2 PID: 354 at drivers/gpu/drm/i915/intel_display.c:1294 assert_plane+0x71/0xbb
> [ 3.920964] ---[ end trace dac692f4ac46391a ]---
>
> The warning is seen when mode_setcrtc() is called for pipeB
> during bootup and before we get a mode_setcrtc() for pipeA,
> while doing update_crtcs() in intel_atomic_commit_tail().
> Now since, plane1A is still active after commit, update_crtcs()
> is done for pipeA and eventually update_plane() for plane1A.
>
> intel_plane_state->ctl for plane1A is not updated since set_modecrtc() is
> called for pipeB. So intel_plane_state->ctl for plane 1A will be 0x0.
> So doing an update_plane() for plane1A, will result in clearing
> PLANE_CTL_ENABLE bit, and hence the warning.
>
> To fix this warning, force all active planes to recompute their states
> in probe.
>
> Changes in v6:
> - Handle EDEADLK for drm_atomic_get_crtc_state() and
> drm_atomic_add_affected_planes()
> - Remove optimization of calling intel_initial_commit()
> only when there is more than one active pipe in probe.
> - Avoid using intel_ types.
>
> Changes in v5:
> - Drop drm_modeset_lock_all_ctx() since locks will be taken later.
>
> Changes in v4:
> - Handle locking in intel_initial_commit()
> - Move the for loop inside intel_initial_commit() so that
> drm_atomic_commit() is called only once
> - Call intel_initial_commit() only for more than one active crtc on boot.
> - Save the return value of intel_initial_commit() and print a message in
> case of an error
>
> Changes in v3:
> - Add comments
>
> Changes in v2:
> - Force all planes to recompute their states.(Ville Syrjälä)
> - Update the commit message
>
> Signed-off-by: Azhar Shaikh <azhar.shaikh@intel.com>
> ---
> drivers/gpu/drm/i915/intel_display.c | 61 ++++++++++++++++++++++++++++++++++--
> 1 file changed, 59 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 56818a45181c..d27b63fe2fc0 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -15092,12 +15092,61 @@ static void intel_update_fdi_pll_freq(struct drm_i915_private *dev_priv)
> DRM_DEBUG_DRIVER("FDI PLL freq=%d\n", dev_priv->fdi_pll_freq);
> }
>
> +static int intel_initial_commit(struct drm_device *dev)
> +{
> + struct drm_atomic_state *state = NULL;
> + struct drm_modeset_acquire_ctx ctx;
> + struct drm_crtc *crtc;
> + struct drm_crtc_state *crtc_state;
> + int ret = 0;
> +
> + state = drm_atomic_state_alloc(dev);
> + if (!state)
> + return -ENOMEM;
> +
> + drm_modeset_acquire_init(&ctx, 0);
> +
> +retry:
> + state->acquire_ctx = &ctx;
> +
> + drm_for_each_crtc(crtc, dev) {
> + crtc_state = drm_atomic_get_crtc_state(state, crtc);
> + if (IS_ERR(crtc_state)) {
> + ret = PTR_ERR(crtc_state);
> + goto out;
> + }
> +
> + if (crtc_state->active) {
> + ret = drm_atomic_add_affected_planes(state, crtc);
> + if (ret)
> + goto out;
> + }
> + }
> +
> + ret = drm_atomic_commit(state);
> +
> +out:
> + if (ret == -EDEADLK) {
> + drm_atomic_state_clear(state);
> + drm_modeset_backoff(&ctx);
> + goto retry;
> + }
> +
> + drm_atomic_state_put(state);
> +
> + drm_modeset_drop_locks(&ctx);
> + drm_modeset_acquire_fini(&ctx);
> +
> + return ret;
> +}
> +
> int intel_modeset_init(struct drm_device *dev)
> {
> struct drm_i915_private *dev_priv = to_i915(dev);
> struct i915_ggtt *ggtt = &dev_priv->ggtt;
> enum pipe pipe;
> struct intel_crtc *crtc;
> + int ret;
>
> dev_priv->modeset_wq = alloc_ordered_workqueue("i915_modeset", 0);
>
> @@ -15172,8 +15221,6 @@ int intel_modeset_init(struct drm_device *dev)
> INTEL_INFO(dev_priv)->num_pipes > 1 ? "s" : "");
>
> for_each_pipe(dev_priv, pipe) {
> - int ret;
> -
> ret = intel_crtc_init(dev_priv, pipe);
> if (ret) {
> drm_mode_config_cleanup(dev);
> @@ -15222,6 +15269,16 @@ int intel_modeset_init(struct drm_device *dev)
> }
>
> /*
> + * Force all active planes to recompute their states. So that on
> + * mode_setcrtc after probe, all the intel_plane_state variables
> + * are already calculated and there is no assert_plane warnings
> + * during bootup.
> + */
> + ret = intel_initial_commit(dev);
> + if (ret)
> + DRM_DEBUG_KMS("Initial commit in probe failed.\n");
> +
I think we want to do this after the sanitize_watermarks() thing.
Otherwise the plane update will still consult potentially bogus
watermarks we read out from the hardware.
With that
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> + /*
> * Make sure hardware watermarks really match the state we read out.
> * Note that we need to do this after reconstructing the BIOS fb's
> * since the watermark calculation done here will use pstate->fb.
> --
> 1.9.1
--
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-07-06 18:06 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-03 20:21 [PATCH v6] drm/i915: Fix assert_plane() warning on bootup with external display Azhar Shaikh
2018-07-03 21:02 ` ✓ Fi.CI.BAT: success for drm/i915: Fix assert_plane() warning on bootup with external display (rev6) Patchwork
2018-07-04 3:38 ` ✓ Fi.CI.IGT: " Patchwork
2018-07-06 18:06 ` [PATCH v6] drm/i915: Fix assert_plane() warning on bootup with external display Ville Syrjälä
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).