* [Intel-gfx] [PATCH v2 rebased 1/6] drm/i915: Nuke unused dsparb_lock
@ 2023-04-06 14:31 José Roberto de Souza
2023-04-06 14:31 ` [Intel-gfx] [PATCH v2 rebased 2/6] drm/i915: Initialize dkl_phy spin lock from display code path José Roberto de Souza
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: José Roberto de Souza @ 2023-04-06 14:31 UTC (permalink / raw)
To: intel-xe; +Cc: intel-gfx
dsparb_lock it not used anymore, nuke it.
Cc: intel-gfx@lists.freedesktop.org
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
drivers/gpu/drm/i915/display/intel_display_core.h | 3 ---
drivers/gpu/drm/i915/i915_driver.c | 1 -
2 files changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h
index cc058eb303ee8..d2346d43d1162 100644
--- a/drivers/gpu/drm/i915/display/intel_display_core.h
+++ b/drivers/gpu/drm/i915/display/intel_display_core.h
@@ -266,9 +266,6 @@ struct intel_wm {
*/
struct mutex wm_mutex;
- /* protects DSPARB registers on pre-g4x/vlv/chv */
- spinlock_t dsparb_lock;
-
bool ipc_enabled;
};
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index 066d79c2069c4..ea2cc56d18a6e 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -214,7 +214,6 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv)
spin_lock_init(&dev_priv->irq_lock);
spin_lock_init(&dev_priv->gpu_error.lock);
spin_lock_init(&dev_priv->display.fb_tracking.lock);
- spin_lock_init(&dev_priv->display.wm.dsparb_lock);
mutex_init(&dev_priv->display.backlight.lock);
mutex_init(&dev_priv->sb_lock);
--
2.40.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [Intel-gfx] [PATCH v2 rebased 2/6] drm/i915: Initialize dkl_phy spin lock from display code path 2023-04-06 14:31 [Intel-gfx] [PATCH v2 rebased 1/6] drm/i915: Nuke unused dsparb_lock José Roberto de Souza @ 2023-04-06 14:31 ` José Roberto de Souza 2023-04-10 15:33 ` Rodrigo Vivi 2023-04-06 14:31 ` [Intel-gfx] [PATCH v2 rebased 3/6] drm/i915: Only initialize dlk phy lock in display 12 and newer José Roberto de Souza 2023-04-06 20:38 ` [Intel-gfx] [Intel-xe] [PATCH v2 rebased 1/6] drm/i915: Nuke unused dsparb_lock Rodrigo Vivi 2 siblings, 1 reply; 13+ messages in thread From: José Roberto de Souza @ 2023-04-06 14:31 UTC (permalink / raw) To: intel-xe; +Cc: intel-gfx, Rodrigo Vivi Start to move the initialization of some lock from i915_driver_early_probe(). This will also fix a warning in Xe kmd: [ 201.894839] xe 0000:00:02.0: [drm] [ENCODER:235:DDI A/PHY A] failed to retrieve link info, disabling eDP [ 202.136336] xe 0000:00:02.0: [drm] *ERROR* Failed to write source OUI [ 202.175346] INFO: trying to register non-static key. [ 202.175347] irq event stamp: 754060 [ 202.175359] hardirqs last enabled at (754059): [<ffffffff8122cf79>] tick_nohz_idle_enter+0x59/0x80 [ 202.180294] The code is fine but needs lockdep annotation, or maybe [ 202.183774] hardirqs last disabled at (754060): [<ffffffff811a5539>] do_idle+0x99/0x230 [ 202.192734] you didn't initialize this object before use? [ 202.198951] softirqs last enabled at (753948): [<ffffffff8114abae>] irq_exit_rcu+0xbe/0x130 [ 202.206882] turning off the locking correctness validator. [ 202.212236] softirqs last disabled at (753943): [<ffffffff8114abae>] irq_exit_rcu+0xbe/0x130 [ 202.220592] CPU: 2 PID: 1415 Comm: modprobe Tainted: G W 6.3.0-rc4+zeh-xe+ #909 [ 202.243002] Hardware name: Intel Corporation Raptor Lake Client Platform/RaptorLake-P LP5 RVP, BIOS RPLPFWI1.R00.3361.A14.2211151548 11/15/2022 [ 202.255737] Call Trace: [ 202.258179] <TASK> [ 202.260275] dump_stack_lvl+0x58/0xc0 [ 202.263922] register_lock_class+0x756/0x7d0 [ 202.268165] ? find_held_lock+0x2b/0x80 [ 202.271975] __lock_acquire+0x72/0x28b0 [ 202.275786] ? debug_object_free+0xb4/0x160 [ 202.279946] lock_acquire+0xd1/0x2d0 [ 202.283503] ? intel_dkl_phy_read+0x18/0x60 [xe] [ 202.288181] _raw_spin_lock+0x2a/0x40 [ 202.291825] ? intel_dkl_phy_read+0x18/0x60 [xe] [ 202.296475] intel_dkl_phy_read+0x18/0x60 [xe] [ 202.300949] icl_aux_power_well_enable+0x2bd/0x400 [xe] [ 202.306202] ? intel_display_power_grab_async_put_ref+0x75/0x120 [xe] [ 202.312649] intel_power_well_enable+0x1c/0x70 [xe] [ 202.317543] __intel_display_power_get_domain.part.0+0x4d/0x70 [xe] [ 202.323812] intel_display_power_get+0x43/0x70 [xe] [ 202.328708] intel_tc_port_init+0x199/0x2a0 [xe] [ 202.333363] intel_ddi_init+0x6ad/0xb00 [xe] [ 202.337678] intel_modeset_init_nogem+0x536/0x6d0 [xe] [ 202.342838] xe_display_init_noaccel+0x19/0x40 [xe] [ 202.347743] xe_device_probe+0x1f5/0x2a0 [xe] [ 202.352127] xe_pci_probe+0x28c/0x480 [xe] [ 202.356260] pci_device_probe+0x9d/0x150 [ 202.360164] really_probe+0x19a/0x400 [ 202.363809] ? __pfx___driver_attach+0x10/0x10 [ 202.368226] __driver_probe_device+0x73/0x170 [ 202.372558] driver_probe_device+0x1a/0x90 [ 202.376632] __driver_attach+0xcd/0x1c0 [ 202.380442] bus_for_each_dev+0x72/0xc0 [ 202.384253] bus_add_driver+0x110/0x210 [ 202.388063] driver_register+0x50/0x100 [ 202.391873] ? __pfx_init_module+0x10/0x10 [xe] [ 202.396431] do_one_initcall+0x55/0x260 [ 202.400245] ? rcu_is_watching+0xd/0x40 [ 202.404058] ? kmalloc_trace+0xa0/0xb0 [ 202.407786] do_init_module+0x45/0x1e0 [ 202.411512] __do_sys_finit_module+0xac/0x120 [ 202.415838] do_syscall_64+0x37/0x90 [ 202.419397] entry_SYSCALL_64_after_hwframe+0x72/0xdc [ 202.424409] RIP: 0033:0x7fd11291ea3d [ 202.427967] Code: 5b 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d c3 a3 0f 00 f7 d8 64 89 01 48 [ 202.446530] RSP: 002b:00007ffffde11368 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 [ 202.454031] RAX: ffffffffffffffda RBX: 00005616a617f210 RCX: 00007fd11291ea3d [ 202.461106] RDX: 0000000000000000 RSI: 00005616a617fe60 RDI: 000000000000000e [ 202.468182] RBP: 0000000000040000 R08: 0000000000000000 R09: 0000000000000002 [ 202.475250] R10: 000000000000000e R11: 0000000000000246 R12: 00005616a617fe60 [ 202.482319] R13: 00005616a617f340 R14: 0000000000000000 R15: 00005616a6180650 [ 202.489396] </TASK> Cc: intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com> --- drivers/gpu/drm/i915/display/intel_display.c | 3 +++ drivers/gpu/drm/i915/display/intel_dkl_phy.c | 6 ++++++ drivers/gpu/drm/i915/display/intel_dkl_phy.h | 2 ++ drivers/gpu/drm/i915/i915_driver.c | 1 - 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 2d59330ff5abd..92e1b535b2798 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -85,6 +85,7 @@ #include "intel_display_debugfs.h" #include "intel_display_power.h" #include "intel_display_types.h" +#include "intel_dkl_phy.h" #include "intel_dmc.h" #include "intel_dp.h" #include "intel_dp_link_training.h" @@ -7890,6 +7891,8 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv) if (!HAS_DISPLAY(dev_priv)) return; + intel_dkl_phy_init(dev_priv); + if (IS_DG2(dev_priv)) { intel_ddi_init(dev_priv, PORT_A); intel_ddi_init(dev_priv, PORT_B); diff --git a/drivers/gpu/drm/i915/display/intel_dkl_phy.c b/drivers/gpu/drm/i915/display/intel_dkl_phy.c index 57cc3edba0163..5bce7b5b27bc7 100644 --- a/drivers/gpu/drm/i915/display/intel_dkl_phy.c +++ b/drivers/gpu/drm/i915/display/intel_dkl_phy.c @@ -104,3 +104,9 @@ intel_dkl_phy_posting_read(struct drm_i915_private *i915, struct intel_dkl_phy_r spin_unlock(&i915->display.dkl.phy_lock); } + +void +intel_dkl_phy_init(struct drm_i915_private *i915) +{ + spin_lock_init(&i915->display.dkl.phy_lock); +} diff --git a/drivers/gpu/drm/i915/display/intel_dkl_phy.h b/drivers/gpu/drm/i915/display/intel_dkl_phy.h index 570ee36f9386f..615429b6392c5 100644 --- a/drivers/gpu/drm/i915/display/intel_dkl_phy.h +++ b/drivers/gpu/drm/i915/display/intel_dkl_phy.h @@ -20,5 +20,7 @@ void intel_dkl_phy_rmw(struct drm_i915_private *i915, struct intel_dkl_phy_reg reg, u32 clear, u32 set); void intel_dkl_phy_posting_read(struct drm_i915_private *i915, struct intel_dkl_phy_reg reg); +void +intel_dkl_phy_init(struct drm_i915_private *i915); #endif /* __INTEL_DKL_PHY_H__ */ diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c index ea2cc56d18a6e..617b3d0da267d 100644 --- a/drivers/gpu/drm/i915/i915_driver.c +++ b/drivers/gpu/drm/i915/i915_driver.c @@ -223,7 +223,6 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) mutex_init(&dev_priv->display.wm.wm_mutex); mutex_init(&dev_priv->display.pps.mutex); mutex_init(&dev_priv->display.hdcp.comp_mutex); - spin_lock_init(&dev_priv->display.dkl.phy_lock); i915_memcpy_init_early(dev_priv); intel_runtime_pm_init_early(&dev_priv->runtime_pm); -- 2.40.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [PATCH v2 rebased 2/6] drm/i915: Initialize dkl_phy spin lock from display code path 2023-04-06 14:31 ` [Intel-gfx] [PATCH v2 rebased 2/6] drm/i915: Initialize dkl_phy spin lock from display code path José Roberto de Souza @ 2023-04-10 15:33 ` Rodrigo Vivi 2023-04-10 17:07 ` Souza, Jose 0 siblings, 1 reply; 13+ messages in thread From: Rodrigo Vivi @ 2023-04-10 15:33 UTC (permalink / raw) To: José Roberto de Souza; +Cc: intel-gfx, intel-xe On Thu, Apr 06, 2023 at 07:31:29AM -0700, José Roberto de Souza wrote: > Start to move the initialization of some lock from > i915_driver_early_probe(). > This will also fix a warning in Xe kmd: > > [ 201.894839] xe 0000:00:02.0: [drm] [ENCODER:235:DDI A/PHY A] failed to retrieve link info, disabling eDP > [ 202.136336] xe 0000:00:02.0: [drm] *ERROR* Failed to write source OUI > [ 202.175346] INFO: trying to register non-static key. > [ 202.175347] irq event stamp: 754060 > [ 202.175359] hardirqs last enabled at (754059): [<ffffffff8122cf79>] tick_nohz_idle_enter+0x59/0x80 > [ 202.180294] The code is fine but needs lockdep annotation, or maybe > [ 202.183774] hardirqs last disabled at (754060): [<ffffffff811a5539>] do_idle+0x99/0x230 > [ 202.192734] you didn't initialize this object before use? > [ 202.198951] softirqs last enabled at (753948): [<ffffffff8114abae>] irq_exit_rcu+0xbe/0x130 > [ 202.206882] turning off the locking correctness validator. > [ 202.212236] softirqs last disabled at (753943): [<ffffffff8114abae>] irq_exit_rcu+0xbe/0x130 > [ 202.220592] CPU: 2 PID: 1415 Comm: modprobe Tainted: G W 6.3.0-rc4+zeh-xe+ #909 > [ 202.243002] Hardware name: Intel Corporation Raptor Lake Client Platform/RaptorLake-P LP5 RVP, BIOS RPLPFWI1.R00.3361.A14.2211151548 11/15/2022 > [ 202.255737] Call Trace: > [ 202.258179] <TASK> > [ 202.260275] dump_stack_lvl+0x58/0xc0 > [ 202.263922] register_lock_class+0x756/0x7d0 > [ 202.268165] ? find_held_lock+0x2b/0x80 > [ 202.271975] __lock_acquire+0x72/0x28b0 > [ 202.275786] ? debug_object_free+0xb4/0x160 > [ 202.279946] lock_acquire+0xd1/0x2d0 > [ 202.283503] ? intel_dkl_phy_read+0x18/0x60 [xe] > [ 202.288181] _raw_spin_lock+0x2a/0x40 > [ 202.291825] ? intel_dkl_phy_read+0x18/0x60 [xe] > [ 202.296475] intel_dkl_phy_read+0x18/0x60 [xe] > [ 202.300949] icl_aux_power_well_enable+0x2bd/0x400 [xe] > [ 202.306202] ? intel_display_power_grab_async_put_ref+0x75/0x120 [xe] > [ 202.312649] intel_power_well_enable+0x1c/0x70 [xe] > [ 202.317543] __intel_display_power_get_domain.part.0+0x4d/0x70 [xe] > [ 202.323812] intel_display_power_get+0x43/0x70 [xe] > [ 202.328708] intel_tc_port_init+0x199/0x2a0 [xe] > [ 202.333363] intel_ddi_init+0x6ad/0xb00 [xe] > [ 202.337678] intel_modeset_init_nogem+0x536/0x6d0 [xe] > [ 202.342838] xe_display_init_noaccel+0x19/0x40 [xe] > [ 202.347743] xe_device_probe+0x1f5/0x2a0 [xe] > [ 202.352127] xe_pci_probe+0x28c/0x480 [xe] > [ 202.356260] pci_device_probe+0x9d/0x150 > [ 202.360164] really_probe+0x19a/0x400 > [ 202.363809] ? __pfx___driver_attach+0x10/0x10 > [ 202.368226] __driver_probe_device+0x73/0x170 > [ 202.372558] driver_probe_device+0x1a/0x90 > [ 202.376632] __driver_attach+0xcd/0x1c0 > [ 202.380442] bus_for_each_dev+0x72/0xc0 > [ 202.384253] bus_add_driver+0x110/0x210 > [ 202.388063] driver_register+0x50/0x100 > [ 202.391873] ? __pfx_init_module+0x10/0x10 [xe] > [ 202.396431] do_one_initcall+0x55/0x260 > [ 202.400245] ? rcu_is_watching+0xd/0x40 > [ 202.404058] ? kmalloc_trace+0xa0/0xb0 > [ 202.407786] do_init_module+0x45/0x1e0 > [ 202.411512] __do_sys_finit_module+0xac/0x120 > [ 202.415838] do_syscall_64+0x37/0x90 > [ 202.419397] entry_SYSCALL_64_after_hwframe+0x72/0xdc > [ 202.424409] RIP: 0033:0x7fd11291ea3d > [ 202.427967] Code: 5b 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d c3 a3 0f 00 f7 d8 64 89 01 48 > [ 202.446530] RSP: 002b:00007ffffde11368 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 > [ 202.454031] RAX: ffffffffffffffda RBX: 00005616a617f210 RCX: 00007fd11291ea3d > [ 202.461106] RDX: 0000000000000000 RSI: 00005616a617fe60 RDI: 000000000000000e > [ 202.468182] RBP: 0000000000040000 R08: 0000000000000000 R09: 0000000000000002 > [ 202.475250] R10: 000000000000000e R11: 0000000000000246 R12: 00005616a617fe60 > [ 202.482319] R13: 00005616a617f340 R14: 0000000000000000 R15: 00005616a6180650 > [ 202.489396] </TASK> > > Cc: intel-gfx@lists.freedesktop.org > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > --- > drivers/gpu/drm/i915/display/intel_display.c | 3 +++ > drivers/gpu/drm/i915/display/intel_dkl_phy.c | 6 ++++++ > drivers/gpu/drm/i915/display/intel_dkl_phy.h | 2 ++ > drivers/gpu/drm/i915/i915_driver.c | 1 - > 4 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c > index 2d59330ff5abd..92e1b535b2798 100644 > --- a/drivers/gpu/drm/i915/display/intel_display.c > +++ b/drivers/gpu/drm/i915/display/intel_display.c > @@ -85,6 +85,7 @@ > #include "intel_display_debugfs.h" > #include "intel_display_power.h" > #include "intel_display_types.h" > +#include "intel_dkl_phy.h" > #include "intel_dmc.h" > #include "intel_dp.h" > #include "intel_dp_link_training.h" > @@ -7890,6 +7891,8 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv) I'm afraid this is too late. Since dkl phy read can happen on some get hw state which can occur in wm and power_domain code... > if (!HAS_DISPLAY(dev_priv)) > return; > > + intel_dkl_phy_init(dev_priv); > + > if (IS_DG2(dev_priv)) { > intel_ddi_init(dev_priv, PORT_A); > intel_ddi_init(dev_priv, PORT_B); > diff --git a/drivers/gpu/drm/i915/display/intel_dkl_phy.c b/drivers/gpu/drm/i915/display/intel_dkl_phy.c > index 57cc3edba0163..5bce7b5b27bc7 100644 > --- a/drivers/gpu/drm/i915/display/intel_dkl_phy.c > +++ b/drivers/gpu/drm/i915/display/intel_dkl_phy.c > @@ -104,3 +104,9 @@ intel_dkl_phy_posting_read(struct drm_i915_private *i915, struct intel_dkl_phy_r > > spin_unlock(&i915->display.dkl.phy_lock); > } > + > +void > +intel_dkl_phy_init(struct drm_i915_private *i915) > +{ > + spin_lock_init(&i915->display.dkl.phy_lock); > +} > diff --git a/drivers/gpu/drm/i915/display/intel_dkl_phy.h b/drivers/gpu/drm/i915/display/intel_dkl_phy.h > index 570ee36f9386f..615429b6392c5 100644 > --- a/drivers/gpu/drm/i915/display/intel_dkl_phy.h > +++ b/drivers/gpu/drm/i915/display/intel_dkl_phy.h > @@ -20,5 +20,7 @@ void > intel_dkl_phy_rmw(struct drm_i915_private *i915, struct intel_dkl_phy_reg reg, u32 clear, u32 set); > void > intel_dkl_phy_posting_read(struct drm_i915_private *i915, struct intel_dkl_phy_reg reg); > +void > +intel_dkl_phy_init(struct drm_i915_private *i915); > > #endif /* __INTEL_DKL_PHY_H__ */ > diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c > index ea2cc56d18a6e..617b3d0da267d 100644 > --- a/drivers/gpu/drm/i915/i915_driver.c > +++ b/drivers/gpu/drm/i915/i915_driver.c > @@ -223,7 +223,6 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) > mutex_init(&dev_priv->display.wm.wm_mutex); > mutex_init(&dev_priv->display.pps.mutex); > mutex_init(&dev_priv->display.hdcp.comp_mutex); > - spin_lock_init(&dev_priv->display.dkl.phy_lock); > > i915_memcpy_init_early(dev_priv); > intel_runtime_pm_init_early(&dev_priv->runtime_pm); > -- > 2.40.0 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [PATCH v2 rebased 2/6] drm/i915: Initialize dkl_phy spin lock from display code path 2023-04-10 15:33 ` Rodrigo Vivi @ 2023-04-10 17:07 ` Souza, Jose 2023-04-10 17:20 ` [Intel-gfx] [Intel-xe] " Rodrigo Vivi 0 siblings, 1 reply; 13+ messages in thread From: Souza, Jose @ 2023-04-10 17:07 UTC (permalink / raw) To: Vivi, Rodrigo Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org On Mon, 2023-04-10 at 11:33 -0400, Rodrigo Vivi wrote: > On Thu, Apr 06, 2023 at 07:31:29AM -0700, José Roberto de Souza wrote: > > Start to move the initialization of some lock from > > i915_driver_early_probe(). > > This will also fix a warning in Xe kmd: > > > > [ 201.894839] xe 0000:00:02.0: [drm] [ENCODER:235:DDI A/PHY A] failed to retrieve link info, disabling eDP > > [ 202.136336] xe 0000:00:02.0: [drm] *ERROR* Failed to write source OUI > > [ 202.175346] INFO: trying to register non-static key. > > [ 202.175347] irq event stamp: 754060 > > [ 202.175359] hardirqs last enabled at (754059): [<ffffffff8122cf79>] tick_nohz_idle_enter+0x59/0x80 > > [ 202.180294] The code is fine but needs lockdep annotation, or maybe > > [ 202.183774] hardirqs last disabled at (754060): [<ffffffff811a5539>] do_idle+0x99/0x230 > > [ 202.192734] you didn't initialize this object before use? > > [ 202.198951] softirqs last enabled at (753948): [<ffffffff8114abae>] irq_exit_rcu+0xbe/0x130 > > [ 202.206882] turning off the locking correctness validator. > > [ 202.212236] softirqs last disabled at (753943): [<ffffffff8114abae>] irq_exit_rcu+0xbe/0x130 > > [ 202.220592] CPU: 2 PID: 1415 Comm: modprobe Tainted: G W 6.3.0-rc4+zeh-xe+ #909 > > [ 202.243002] Hardware name: Intel Corporation Raptor Lake Client Platform/RaptorLake-P LP5 RVP, BIOS RPLPFWI1.R00.3361.A14.2211151548 11/15/2022 > > [ 202.255737] Call Trace: > > [ 202.258179] <TASK> > > [ 202.260275] dump_stack_lvl+0x58/0xc0 > > [ 202.263922] register_lock_class+0x756/0x7d0 > > [ 202.268165] ? find_held_lock+0x2b/0x80 > > [ 202.271975] __lock_acquire+0x72/0x28b0 > > [ 202.275786] ? debug_object_free+0xb4/0x160 > > [ 202.279946] lock_acquire+0xd1/0x2d0 > > [ 202.283503] ? intel_dkl_phy_read+0x18/0x60 [xe] > > [ 202.288181] _raw_spin_lock+0x2a/0x40 > > [ 202.291825] ? intel_dkl_phy_read+0x18/0x60 [xe] > > [ 202.296475] intel_dkl_phy_read+0x18/0x60 [xe] > > [ 202.300949] icl_aux_power_well_enable+0x2bd/0x400 [xe] > > [ 202.306202] ? intel_display_power_grab_async_put_ref+0x75/0x120 [xe] > > [ 202.312649] intel_power_well_enable+0x1c/0x70 [xe] > > [ 202.317543] __intel_display_power_get_domain.part.0+0x4d/0x70 [xe] > > [ 202.323812] intel_display_power_get+0x43/0x70 [xe] > > [ 202.328708] intel_tc_port_init+0x199/0x2a0 [xe] > > [ 202.333363] intel_ddi_init+0x6ad/0xb00 [xe] > > [ 202.337678] intel_modeset_init_nogem+0x536/0x6d0 [xe] > > [ 202.342838] xe_display_init_noaccel+0x19/0x40 [xe] > > [ 202.347743] xe_device_probe+0x1f5/0x2a0 [xe] > > [ 202.352127] xe_pci_probe+0x28c/0x480 [xe] > > [ 202.356260] pci_device_probe+0x9d/0x150 > > [ 202.360164] really_probe+0x19a/0x400 > > [ 202.363809] ? __pfx___driver_attach+0x10/0x10 > > [ 202.368226] __driver_probe_device+0x73/0x170 > > [ 202.372558] driver_probe_device+0x1a/0x90 > > [ 202.376632] __driver_attach+0xcd/0x1c0 > > [ 202.380442] bus_for_each_dev+0x72/0xc0 > > [ 202.384253] bus_add_driver+0x110/0x210 > > [ 202.388063] driver_register+0x50/0x100 > > [ 202.391873] ? __pfx_init_module+0x10/0x10 [xe] > > [ 202.396431] do_one_initcall+0x55/0x260 > > [ 202.400245] ? rcu_is_watching+0xd/0x40 > > [ 202.404058] ? kmalloc_trace+0xa0/0xb0 > > [ 202.407786] do_init_module+0x45/0x1e0 > > [ 202.411512] __do_sys_finit_module+0xac/0x120 > > [ 202.415838] do_syscall_64+0x37/0x90 > > [ 202.419397] entry_SYSCALL_64_after_hwframe+0x72/0xdc > > [ 202.424409] RIP: 0033:0x7fd11291ea3d > > [ 202.427967] Code: 5b 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d c3 a3 0f 00 f7 d8 64 89 01 48 > > [ 202.446530] RSP: 002b:00007ffffde11368 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 > > [ 202.454031] RAX: ffffffffffffffda RBX: 00005616a617f210 RCX: 00007fd11291ea3d > > [ 202.461106] RDX: 0000000000000000 RSI: 00005616a617fe60 RDI: 000000000000000e > > [ 202.468182] RBP: 0000000000040000 R08: 0000000000000000 R09: 0000000000000002 > > [ 202.475250] R10: 000000000000000e R11: 0000000000000246 R12: 00005616a617fe60 > > [ 202.482319] R13: 00005616a617f340 R14: 0000000000000000 R15: 00005616a6180650 > > [ 202.489396] </TASK> > > > > Cc: intel-gfx@lists.freedesktop.org > > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > --- > > drivers/gpu/drm/i915/display/intel_display.c | 3 +++ > > drivers/gpu/drm/i915/display/intel_dkl_phy.c | 6 ++++++ > > drivers/gpu/drm/i915/display/intel_dkl_phy.h | 2 ++ > > drivers/gpu/drm/i915/i915_driver.c | 1 - > > 4 files changed, 11 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c > > index 2d59330ff5abd..92e1b535b2798 100644 > > --- a/drivers/gpu/drm/i915/display/intel_display.c > > +++ b/drivers/gpu/drm/i915/display/intel_display.c > > @@ -85,6 +85,7 @@ > > #include "intel_display_debugfs.h" > > #include "intel_display_power.h" > > #include "intel_display_types.h" > > +#include "intel_dkl_phy.h" > > #include "intel_dmc.h" > > #include "intel_dp.h" > > #include "intel_dp_link_training.h" > > @@ -7890,6 +7891,8 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv) > > I'm afraid this is too late. Since dkl phy read can happen on some get hw state > which can occur in wm and power_domain code... Double checked in: intel_power_domains_init() intel_power_domains_init_hw() intel_wm_init() intel_modeset_init_hw() And none of those places call any dkl function. The closest is: intel_power_domains_init_hw() -> icl_display_core_init() -> intel_combo_phy_init() -> icl_combo_phys_init() but it is only over combo phys. But I can move it to intel_modeset_init_noirq(), before intel_power_domains_init() is you think is better to be safer. > > > if (!HAS_DISPLAY(dev_priv)) > > return; > > > > + intel_dkl_phy_init(dev_priv); > > + > > if (IS_DG2(dev_priv)) { > > intel_ddi_init(dev_priv, PORT_A); > > intel_ddi_init(dev_priv, PORT_B); > > diff --git a/drivers/gpu/drm/i915/display/intel_dkl_phy.c b/drivers/gpu/drm/i915/display/intel_dkl_phy.c > > index 57cc3edba0163..5bce7b5b27bc7 100644 > > --- a/drivers/gpu/drm/i915/display/intel_dkl_phy.c > > +++ b/drivers/gpu/drm/i915/display/intel_dkl_phy.c > > @@ -104,3 +104,9 @@ intel_dkl_phy_posting_read(struct drm_i915_private *i915, struct intel_dkl_phy_r > > > > spin_unlock(&i915->display.dkl.phy_lock); > > } > > + > > +void > > +intel_dkl_phy_init(struct drm_i915_private *i915) > > +{ > > + spin_lock_init(&i915->display.dkl.phy_lock); > > +} > > diff --git a/drivers/gpu/drm/i915/display/intel_dkl_phy.h b/drivers/gpu/drm/i915/display/intel_dkl_phy.h > > index 570ee36f9386f..615429b6392c5 100644 > > --- a/drivers/gpu/drm/i915/display/intel_dkl_phy.h > > +++ b/drivers/gpu/drm/i915/display/intel_dkl_phy.h > > @@ -20,5 +20,7 @@ void > > intel_dkl_phy_rmw(struct drm_i915_private *i915, struct intel_dkl_phy_reg reg, u32 clear, u32 set); > > void > > intel_dkl_phy_posting_read(struct drm_i915_private *i915, struct intel_dkl_phy_reg reg); > > +void > > +intel_dkl_phy_init(struct drm_i915_private *i915); > > > > #endif /* __INTEL_DKL_PHY_H__ */ > > diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c > > index ea2cc56d18a6e..617b3d0da267d 100644 > > --- a/drivers/gpu/drm/i915/i915_driver.c > > +++ b/drivers/gpu/drm/i915/i915_driver.c > > @@ -223,7 +223,6 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) > > mutex_init(&dev_priv->display.wm.wm_mutex); > > mutex_init(&dev_priv->display.pps.mutex); > > mutex_init(&dev_priv->display.hdcp.comp_mutex); > > - spin_lock_init(&dev_priv->display.dkl.phy_lock); > > > > i915_memcpy_init_early(dev_priv); > > intel_runtime_pm_init_early(&dev_priv->runtime_pm); > > -- > > 2.40.0 > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH v2 rebased 2/6] drm/i915: Initialize dkl_phy spin lock from display code path 2023-04-10 17:07 ` Souza, Jose @ 2023-04-10 17:20 ` Rodrigo Vivi 0 siblings, 0 replies; 13+ messages in thread From: Rodrigo Vivi @ 2023-04-10 17:20 UTC (permalink / raw) To: Souza, Jose Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org On Mon, Apr 10, 2023 at 05:07:57PM +0000, Souza, Jose wrote: > On Mon, 2023-04-10 at 11:33 -0400, Rodrigo Vivi wrote: > > On Thu, Apr 06, 2023 at 07:31:29AM -0700, José Roberto de Souza wrote: > > > Start to move the initialization of some lock from > > > i915_driver_early_probe(). > > > This will also fix a warning in Xe kmd: > > > > > > [ 201.894839] xe 0000:00:02.0: [drm] [ENCODER:235:DDI A/PHY A] failed to retrieve link info, disabling eDP > > > [ 202.136336] xe 0000:00:02.0: [drm] *ERROR* Failed to write source OUI > > > [ 202.175346] INFO: trying to register non-static key. > > > [ 202.175347] irq event stamp: 754060 > > > [ 202.175359] hardirqs last enabled at (754059): [<ffffffff8122cf79>] tick_nohz_idle_enter+0x59/0x80 > > > [ 202.180294] The code is fine but needs lockdep annotation, or maybe > > > [ 202.183774] hardirqs last disabled at (754060): [<ffffffff811a5539>] do_idle+0x99/0x230 > > > [ 202.192734] you didn't initialize this object before use? > > > [ 202.198951] softirqs last enabled at (753948): [<ffffffff8114abae>] irq_exit_rcu+0xbe/0x130 > > > [ 202.206882] turning off the locking correctness validator. > > > [ 202.212236] softirqs last disabled at (753943): [<ffffffff8114abae>] irq_exit_rcu+0xbe/0x130 > > > [ 202.220592] CPU: 2 PID: 1415 Comm: modprobe Tainted: G W 6.3.0-rc4+zeh-xe+ #909 > > > [ 202.243002] Hardware name: Intel Corporation Raptor Lake Client Platform/RaptorLake-P LP5 RVP, BIOS RPLPFWI1.R00.3361.A14.2211151548 11/15/2022 > > > [ 202.255737] Call Trace: > > > [ 202.258179] <TASK> > > > [ 202.260275] dump_stack_lvl+0x58/0xc0 > > > [ 202.263922] register_lock_class+0x756/0x7d0 > > > [ 202.268165] ? find_held_lock+0x2b/0x80 > > > [ 202.271975] __lock_acquire+0x72/0x28b0 > > > [ 202.275786] ? debug_object_free+0xb4/0x160 > > > [ 202.279946] lock_acquire+0xd1/0x2d0 > > > [ 202.283503] ? intel_dkl_phy_read+0x18/0x60 [xe] > > > [ 202.288181] _raw_spin_lock+0x2a/0x40 > > > [ 202.291825] ? intel_dkl_phy_read+0x18/0x60 [xe] > > > [ 202.296475] intel_dkl_phy_read+0x18/0x60 [xe] > > > [ 202.300949] icl_aux_power_well_enable+0x2bd/0x400 [xe] > > > [ 202.306202] ? intel_display_power_grab_async_put_ref+0x75/0x120 [xe] > > > [ 202.312649] intel_power_well_enable+0x1c/0x70 [xe] > > > [ 202.317543] __intel_display_power_get_domain.part.0+0x4d/0x70 [xe] > > > [ 202.323812] intel_display_power_get+0x43/0x70 [xe] > > > [ 202.328708] intel_tc_port_init+0x199/0x2a0 [xe] > > > [ 202.333363] intel_ddi_init+0x6ad/0xb00 [xe] > > > [ 202.337678] intel_modeset_init_nogem+0x536/0x6d0 [xe] > > > [ 202.342838] xe_display_init_noaccel+0x19/0x40 [xe] > > > [ 202.347743] xe_device_probe+0x1f5/0x2a0 [xe] > > > [ 202.352127] xe_pci_probe+0x28c/0x480 [xe] > > > [ 202.356260] pci_device_probe+0x9d/0x150 > > > [ 202.360164] really_probe+0x19a/0x400 > > > [ 202.363809] ? __pfx___driver_attach+0x10/0x10 > > > [ 202.368226] __driver_probe_device+0x73/0x170 > > > [ 202.372558] driver_probe_device+0x1a/0x90 > > > [ 202.376632] __driver_attach+0xcd/0x1c0 > > > [ 202.380442] bus_for_each_dev+0x72/0xc0 > > > [ 202.384253] bus_add_driver+0x110/0x210 > > > [ 202.388063] driver_register+0x50/0x100 > > > [ 202.391873] ? __pfx_init_module+0x10/0x10 [xe] > > > [ 202.396431] do_one_initcall+0x55/0x260 > > > [ 202.400245] ? rcu_is_watching+0xd/0x40 > > > [ 202.404058] ? kmalloc_trace+0xa0/0xb0 > > > [ 202.407786] do_init_module+0x45/0x1e0 > > > [ 202.411512] __do_sys_finit_module+0xac/0x120 > > > [ 202.415838] do_syscall_64+0x37/0x90 > > > [ 202.419397] entry_SYSCALL_64_after_hwframe+0x72/0xdc > > > [ 202.424409] RIP: 0033:0x7fd11291ea3d > > > [ 202.427967] Code: 5b 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d c3 a3 0f 00 f7 d8 64 89 01 48 > > > [ 202.446530] RSP: 002b:00007ffffde11368 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 > > > [ 202.454031] RAX: ffffffffffffffda RBX: 00005616a617f210 RCX: 00007fd11291ea3d > > > [ 202.461106] RDX: 0000000000000000 RSI: 00005616a617fe60 RDI: 000000000000000e > > > [ 202.468182] RBP: 0000000000040000 R08: 0000000000000000 R09: 0000000000000002 > > > [ 202.475250] R10: 000000000000000e R11: 0000000000000246 R12: 00005616a617fe60 > > > [ 202.482319] R13: 00005616a617f340 R14: 0000000000000000 R15: 00005616a6180650 > > > [ 202.489396] </TASK> > > > > > > Cc: intel-gfx@lists.freedesktop.org > > > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> > > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > > --- > > > drivers/gpu/drm/i915/display/intel_display.c | 3 +++ > > > drivers/gpu/drm/i915/display/intel_dkl_phy.c | 6 ++++++ > > > drivers/gpu/drm/i915/display/intel_dkl_phy.h | 2 ++ > > > drivers/gpu/drm/i915/i915_driver.c | 1 - > > > 4 files changed, 11 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c > > > index 2d59330ff5abd..92e1b535b2798 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_display.c > > > +++ b/drivers/gpu/drm/i915/display/intel_display.c > > > @@ -85,6 +85,7 @@ > > > #include "intel_display_debugfs.h" > > > #include "intel_display_power.h" > > > #include "intel_display_types.h" > > > +#include "intel_dkl_phy.h" > > > #include "intel_dmc.h" > > > #include "intel_dp.h" > > > #include "intel_dp_link_training.h" > > > @@ -7890,6 +7891,8 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv) > > > > I'm afraid this is too late. Since dkl phy read can happen on some get hw state > > which can occur in wm and power_domain code... > > > Double checked in: > intel_power_domains_init() > intel_power_domains_init_hw() > intel_wm_init() > intel_modeset_init_hw() > > And none of those places call any dkl function. > > The closest is: > intel_power_domains_init_hw() -> icl_display_core_init() -> intel_combo_phy_init() -> icl_combo_phys_init() > but it is only over combo phys. > > But I can move it to intel_modeset_init_noirq(), before intel_power_domains_init() is you think is better to be safer. we are probably safe then... but let's send to intel-gfx and see what Jani and Ville think... > > > > > > if (!HAS_DISPLAY(dev_priv)) > > > return; > > > > > > + intel_dkl_phy_init(dev_priv); > > > + > > > if (IS_DG2(dev_priv)) { > > > intel_ddi_init(dev_priv, PORT_A); > > > intel_ddi_init(dev_priv, PORT_B); > > > diff --git a/drivers/gpu/drm/i915/display/intel_dkl_phy.c b/drivers/gpu/drm/i915/display/intel_dkl_phy.c > > > index 57cc3edba0163..5bce7b5b27bc7 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_dkl_phy.c > > > +++ b/drivers/gpu/drm/i915/display/intel_dkl_phy.c > > > @@ -104,3 +104,9 @@ intel_dkl_phy_posting_read(struct drm_i915_private *i915, struct intel_dkl_phy_r > > > > > > spin_unlock(&i915->display.dkl.phy_lock); > > > } > > > + > > > +void > > > +intel_dkl_phy_init(struct drm_i915_private *i915) > > > +{ > > > + spin_lock_init(&i915->display.dkl.phy_lock); > > > +} > > > diff --git a/drivers/gpu/drm/i915/display/intel_dkl_phy.h b/drivers/gpu/drm/i915/display/intel_dkl_phy.h > > > index 570ee36f9386f..615429b6392c5 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_dkl_phy.h > > > +++ b/drivers/gpu/drm/i915/display/intel_dkl_phy.h > > > @@ -20,5 +20,7 @@ void > > > intel_dkl_phy_rmw(struct drm_i915_private *i915, struct intel_dkl_phy_reg reg, u32 clear, u32 set); > > > void > > > intel_dkl_phy_posting_read(struct drm_i915_private *i915, struct intel_dkl_phy_reg reg); > > > +void > > > +intel_dkl_phy_init(struct drm_i915_private *i915); > > > > > > #endif /* __INTEL_DKL_PHY_H__ */ > > > diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c > > > index ea2cc56d18a6e..617b3d0da267d 100644 > > > --- a/drivers/gpu/drm/i915/i915_driver.c > > > +++ b/drivers/gpu/drm/i915/i915_driver.c > > > @@ -223,7 +223,6 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) > > > mutex_init(&dev_priv->display.wm.wm_mutex); > > > mutex_init(&dev_priv->display.pps.mutex); > > > mutex_init(&dev_priv->display.hdcp.comp_mutex); > > > - spin_lock_init(&dev_priv->display.dkl.phy_lock); > > > > > > i915_memcpy_init_early(dev_priv); > > > intel_runtime_pm_init_early(&dev_priv->runtime_pm); > > > -- > > > 2.40.0 > > > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Intel-gfx] [PATCH v2 rebased 3/6] drm/i915: Only initialize dlk phy lock in display 12 and newer 2023-04-06 14:31 [Intel-gfx] [PATCH v2 rebased 1/6] drm/i915: Nuke unused dsparb_lock José Roberto de Souza 2023-04-06 14:31 ` [Intel-gfx] [PATCH v2 rebased 2/6] drm/i915: Initialize dkl_phy spin lock from display code path José Roberto de Souza @ 2023-04-06 14:31 ` José Roberto de Souza 2023-04-10 15:37 ` [Intel-gfx] [Intel-xe] " Rodrigo Vivi 2023-04-06 20:38 ` [Intel-gfx] [Intel-xe] [PATCH v2 rebased 1/6] drm/i915: Nuke unused dsparb_lock Rodrigo Vivi 2 siblings, 1 reply; 13+ messages in thread From: José Roberto de Souza @ 2023-04-06 14:31 UTC (permalink / raw) To: intel-xe; +Cc: intel-gfx This spin lock will not be used in older display versions, so no need to initialize it. Cc: intel-gfx@lists.freedesktop.org Signed-off-by: José Roberto de Souza <jose.souza@intel.com> --- drivers/gpu/drm/i915/display/intel_dkl_phy.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_dkl_phy.c b/drivers/gpu/drm/i915/display/intel_dkl_phy.c index 5bce7b5b27bc7..1c5d410b74e5d 100644 --- a/drivers/gpu/drm/i915/display/intel_dkl_phy.c +++ b/drivers/gpu/drm/i915/display/intel_dkl_phy.c @@ -108,5 +108,6 @@ intel_dkl_phy_posting_read(struct drm_i915_private *i915, struct intel_dkl_phy_r void intel_dkl_phy_init(struct drm_i915_private *i915) { - spin_lock_init(&i915->display.dkl.phy_lock); + if (DISPLAY_VER(i915) >= 12) + spin_lock_init(&i915->display.dkl.phy_lock); } -- 2.40.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH v2 rebased 3/6] drm/i915: Only initialize dlk phy lock in display 12 and newer 2023-04-06 14:31 ` [Intel-gfx] [PATCH v2 rebased 3/6] drm/i915: Only initialize dlk phy lock in display 12 and newer José Roberto de Souza @ 2023-04-10 15:37 ` Rodrigo Vivi 2023-04-10 17:10 ` Souza, Jose 0 siblings, 1 reply; 13+ messages in thread From: Rodrigo Vivi @ 2023-04-10 15:37 UTC (permalink / raw) To: José Roberto de Souza; +Cc: intel-gfx, intel-xe On Thu, Apr 06, 2023 at 07:31:30AM -0700, José Roberto de Souza wrote: > This spin lock will not be used in older display versions, so no need > to initialize it. Should we add some warn_on(disp_ver < 12) on the dkl phy functions? Anyway: Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > > Cc: intel-gfx@lists.freedesktop.org > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > --- > drivers/gpu/drm/i915/display/intel_dkl_phy.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dkl_phy.c b/drivers/gpu/drm/i915/display/intel_dkl_phy.c > index 5bce7b5b27bc7..1c5d410b74e5d 100644 > --- a/drivers/gpu/drm/i915/display/intel_dkl_phy.c > +++ b/drivers/gpu/drm/i915/display/intel_dkl_phy.c > @@ -108,5 +108,6 @@ intel_dkl_phy_posting_read(struct drm_i915_private *i915, struct intel_dkl_phy_r > void > intel_dkl_phy_init(struct drm_i915_private *i915) > { > - spin_lock_init(&i915->display.dkl.phy_lock); > + if (DISPLAY_VER(i915) >= 12) > + spin_lock_init(&i915->display.dkl.phy_lock); > } > -- > 2.40.0 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH v2 rebased 3/6] drm/i915: Only initialize dlk phy lock in display 12 and newer 2023-04-10 15:37 ` [Intel-gfx] [Intel-xe] " Rodrigo Vivi @ 2023-04-10 17:10 ` Souza, Jose 2023-04-10 17:19 ` Rodrigo Vivi 0 siblings, 1 reply; 13+ messages in thread From: Souza, Jose @ 2023-04-10 17:10 UTC (permalink / raw) To: Vivi, Rodrigo Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org On Mon, 2023-04-10 at 11:37 -0400, Rodrigo Vivi wrote: > On Thu, Apr 06, 2023 at 07:31:30AM -0700, José Roberto de Souza wrote: > > This spin lock will not be used in older display versions, so no need > > to initialize it. > > Should we add some warn_on(disp_ver < 12) on the dkl phy functions? If called in platforms with display version older than 12 we will get warnings about spink lock functions being called in a non initialized spinlock_t anyways. > > Anyway: > > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > > > > > > Cc: intel-gfx@lists.freedesktop.org > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > --- > > drivers/gpu/drm/i915/display/intel_dkl_phy.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_dkl_phy.c b/drivers/gpu/drm/i915/display/intel_dkl_phy.c > > index 5bce7b5b27bc7..1c5d410b74e5d 100644 > > --- a/drivers/gpu/drm/i915/display/intel_dkl_phy.c > > +++ b/drivers/gpu/drm/i915/display/intel_dkl_phy.c > > @@ -108,5 +108,6 @@ intel_dkl_phy_posting_read(struct drm_i915_private *i915, struct intel_dkl_phy_r > > void > > intel_dkl_phy_init(struct drm_i915_private *i915) > > { > > - spin_lock_init(&i915->display.dkl.phy_lock); > > + if (DISPLAY_VER(i915) >= 12) > > + spin_lock_init(&i915->display.dkl.phy_lock); > > } > > -- > > 2.40.0 > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH v2 rebased 3/6] drm/i915: Only initialize dlk phy lock in display 12 and newer 2023-04-10 17:10 ` Souza, Jose @ 2023-04-10 17:19 ` Rodrigo Vivi 0 siblings, 0 replies; 13+ messages in thread From: Rodrigo Vivi @ 2023-04-10 17:19 UTC (permalink / raw) To: Souza, Jose Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org On Mon, Apr 10, 2023 at 05:10:01PM +0000, Souza, Jose wrote: > On Mon, 2023-04-10 at 11:37 -0400, Rodrigo Vivi wrote: > > On Thu, Apr 06, 2023 at 07:31:30AM -0700, José Roberto de Souza wrote: > > > This spin lock will not be used in older display versions, so no need > > > to initialize it. > > > > Should we add some warn_on(disp_ver < 12) on the dkl phy functions? > > If called in platforms with display version older than 12 we will get warnings about spink lock functions being called in a non initialized spinlock_t > anyways. indeed! we are good then... > > > > > Anyway: > > > > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > > > > > > > > > > Cc: intel-gfx@lists.freedesktop.org > > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > > --- > > > drivers/gpu/drm/i915/display/intel_dkl_phy.c | 3 ++- > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_dkl_phy.c b/drivers/gpu/drm/i915/display/intel_dkl_phy.c > > > index 5bce7b5b27bc7..1c5d410b74e5d 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_dkl_phy.c > > > +++ b/drivers/gpu/drm/i915/display/intel_dkl_phy.c > > > @@ -108,5 +108,6 @@ intel_dkl_phy_posting_read(struct drm_i915_private *i915, struct intel_dkl_phy_r > > > void > > > intel_dkl_phy_init(struct drm_i915_private *i915) > > > { > > > - spin_lock_init(&i915->display.dkl.phy_lock); > > > + if (DISPLAY_VER(i915) >= 12) > > > + spin_lock_init(&i915->display.dkl.phy_lock); > > > } > > > -- > > > 2.40.0 > > > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH v2 rebased 1/6] drm/i915: Nuke unused dsparb_lock 2023-04-06 14:31 [Intel-gfx] [PATCH v2 rebased 1/6] drm/i915: Nuke unused dsparb_lock José Roberto de Souza 2023-04-06 14:31 ` [Intel-gfx] [PATCH v2 rebased 2/6] drm/i915: Initialize dkl_phy spin lock from display code path José Roberto de Souza 2023-04-06 14:31 ` [Intel-gfx] [PATCH v2 rebased 3/6] drm/i915: Only initialize dlk phy lock in display 12 and newer José Roberto de Souza @ 2023-04-06 20:38 ` Rodrigo Vivi 2023-04-10 14:43 ` Souza, Jose 2 siblings, 1 reply; 13+ messages in thread From: Rodrigo Vivi @ 2023-04-06 20:38 UTC (permalink / raw) To: José Roberto de Souza; +Cc: intel-gfx, intel-xe On Thu, Apr 06, 2023 at 07:31:28AM -0700, José Roberto de Souza wrote: > dsparb_lock it not used anymore, nuke it. Well, this doesn't exist in our drm-tip baseline, so it would be good if this patch is a fixup! to whatever patch is adding this back here. Take a look to the Jani series I just pushed: https://lists.freedesktop.org/archives/intel-xe/2023-April/002000.html I believe you should make this series on something more like that. so on a next step I run a rebase --autosquash and we get cleaner patches. Also, I believe this series here might conflict with that, so I'm afraid you will have to rebase it anyway. Sorry about that... > > Cc: intel-gfx@lists.freedesktop.org > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > --- > drivers/gpu/drm/i915/display/intel_display_core.h | 3 --- > drivers/gpu/drm/i915/i915_driver.c | 1 - > 2 files changed, 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h > index cc058eb303ee8..d2346d43d1162 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_core.h > +++ b/drivers/gpu/drm/i915/display/intel_display_core.h > @@ -266,9 +266,6 @@ struct intel_wm { > */ > struct mutex wm_mutex; > > - /* protects DSPARB registers on pre-g4x/vlv/chv */ > - spinlock_t dsparb_lock; > - > bool ipc_enabled; > }; > > diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c > index 066d79c2069c4..ea2cc56d18a6e 100644 > --- a/drivers/gpu/drm/i915/i915_driver.c > +++ b/drivers/gpu/drm/i915/i915_driver.c > @@ -214,7 +214,6 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) > spin_lock_init(&dev_priv->irq_lock); > spin_lock_init(&dev_priv->gpu_error.lock); > spin_lock_init(&dev_priv->display.fb_tracking.lock); > - spin_lock_init(&dev_priv->display.wm.dsparb_lock); > mutex_init(&dev_priv->display.backlight.lock); > > mutex_init(&dev_priv->sb_lock); > -- > 2.40.0 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH v2 rebased 1/6] drm/i915: Nuke unused dsparb_lock 2023-04-06 20:38 ` [Intel-gfx] [Intel-xe] [PATCH v2 rebased 1/6] drm/i915: Nuke unused dsparb_lock Rodrigo Vivi @ 2023-04-10 14:43 ` Souza, Jose 2023-04-10 15:26 ` Rodrigo Vivi 0 siblings, 1 reply; 13+ messages in thread From: Souza, Jose @ 2023-04-10 14:43 UTC (permalink / raw) To: Vivi, Rodrigo Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org On Thu, 2023-04-06 at 16:38 -0400, Rodrigo Vivi wrote: > On Thu, Apr 06, 2023 at 07:31:28AM -0700, José Roberto de Souza wrote: > > dsparb_lock it not used anymore, nuke it. > > Well, this doesn't exist in our drm-tip baseline, so it would be good > if this patch is a fixup! to whatever patch is adding this back here. > > Take a look to the Jani series I just pushed: > > https://lists.freedesktop.org/archives/intel-xe/2023-April/002000.html > > I believe you should make this series on something more like that. > so on a next step I run a rebase --autosquash and we get cleaner patches. > > Also, I believe this series here might conflict with that, so I'm > afraid you will have to rebase it anyway. Sorry about that... Will skip this patch then, it will probably be gone in next rebase. Can you please take a look at the other 5 patches before I send a new version? > > > > > Cc: intel-gfx@lists.freedesktop.org > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > --- > > drivers/gpu/drm/i915/display/intel_display_core.h | 3 --- > > drivers/gpu/drm/i915/i915_driver.c | 1 - > > 2 files changed, 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h > > index cc058eb303ee8..d2346d43d1162 100644 > > --- a/drivers/gpu/drm/i915/display/intel_display_core.h > > +++ b/drivers/gpu/drm/i915/display/intel_display_core.h > > @@ -266,9 +266,6 @@ struct intel_wm { > > */ > > struct mutex wm_mutex; > > > > - /* protects DSPARB registers on pre-g4x/vlv/chv */ > > - spinlock_t dsparb_lock; > > - > > bool ipc_enabled; > > }; > > > > diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c > > index 066d79c2069c4..ea2cc56d18a6e 100644 > > --- a/drivers/gpu/drm/i915/i915_driver.c > > +++ b/drivers/gpu/drm/i915/i915_driver.c > > @@ -214,7 +214,6 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) > > spin_lock_init(&dev_priv->irq_lock); > > spin_lock_init(&dev_priv->gpu_error.lock); > > spin_lock_init(&dev_priv->display.fb_tracking.lock); > > - spin_lock_init(&dev_priv->display.wm.dsparb_lock); > > mutex_init(&dev_priv->display.backlight.lock); > > > > mutex_init(&dev_priv->sb_lock); > > -- > > 2.40.0 > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH v2 rebased 1/6] drm/i915: Nuke unused dsparb_lock 2023-04-10 14:43 ` Souza, Jose @ 2023-04-10 15:26 ` Rodrigo Vivi 2023-04-10 15:45 ` Rodrigo Vivi 0 siblings, 1 reply; 13+ messages in thread From: Rodrigo Vivi @ 2023-04-10 15:26 UTC (permalink / raw) To: Souza, Jose Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org On Mon, Apr 10, 2023 at 10:43:12AM -0400, Souza, Jose wrote: > On Thu, 2023-04-06 at 16:38 -0400, Rodrigo Vivi wrote: > > On Thu, Apr 06, 2023 at 07:31:28AM -0700, José Roberto de Souza wrote: > > > dsparb_lock it not used anymore, nuke it. > > > > Well, this doesn't exist in our drm-tip baseline, so it would be good > > if this patch is a fixup! to whatever patch is adding this back here. > > > > Take a look to the Jani series I just pushed: > > > > https://lists.freedesktop.org/archives/intel-xe/2023-April/002000.html > > > > I believe you should make this series on something more like that. > > so on a next step I run a rebase --autosquash and we get cleaner patches. > > > > Also, I believe this series here might conflict with that, so I'm > > afraid you will have to rebase it anyway. Sorry about that... > > Will skip this patch then, it will probably be gone in next rebase. no. we do need to remove it. But the right way is with a fixup! drm/i915/display: Remaining changes to make xe compile A patch that removes this dsparb_lock from the patch that is now incorrectly addding it in our xe tree. > > Can you please take a look at the other 5 patches before I send a new version? I will take a look one by one... > > > > > > > > > Cc: intel-gfx@lists.freedesktop.org > > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > > --- > > > drivers/gpu/drm/i915/display/intel_display_core.h | 3 --- > > > drivers/gpu/drm/i915/i915_driver.c | 1 - > > > 2 files changed, 4 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h > > > index cc058eb303ee8..d2346d43d1162 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_display_core.h > > > +++ b/drivers/gpu/drm/i915/display/intel_display_core.h > > > @@ -266,9 +266,6 @@ struct intel_wm { > > > */ > > > struct mutex wm_mutex; > > > > > > - /* protects DSPARB registers on pre-g4x/vlv/chv */ > > > - spinlock_t dsparb_lock; > > > - > > > bool ipc_enabled; > > > }; > > > > > > diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c > > > index 066d79c2069c4..ea2cc56d18a6e 100644 > > > --- a/drivers/gpu/drm/i915/i915_driver.c > > > +++ b/drivers/gpu/drm/i915/i915_driver.c > > > @@ -214,7 +214,6 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) > > > spin_lock_init(&dev_priv->irq_lock); > > > spin_lock_init(&dev_priv->gpu_error.lock); > > > spin_lock_init(&dev_priv->display.fb_tracking.lock); > > > - spin_lock_init(&dev_priv->display.wm.dsparb_lock); > > > mutex_init(&dev_priv->display.backlight.lock); > > > > > > mutex_init(&dev_priv->sb_lock); > > > -- > > > 2.40.0 > > > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH v2 rebased 1/6] drm/i915: Nuke unused dsparb_lock 2023-04-10 15:26 ` Rodrigo Vivi @ 2023-04-10 15:45 ` Rodrigo Vivi 0 siblings, 0 replies; 13+ messages in thread From: Rodrigo Vivi @ 2023-04-10 15:45 UTC (permalink / raw) To: Souza, Jose Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org On Mon, Apr 10, 2023 at 11:26:57AM -0400, Rodrigo Vivi wrote: > On Mon, Apr 10, 2023 at 10:43:12AM -0400, Souza, Jose wrote: > > On Thu, 2023-04-06 at 16:38 -0400, Rodrigo Vivi wrote: > > > On Thu, Apr 06, 2023 at 07:31:28AM -0700, José Roberto de Souza wrote: > > > > dsparb_lock it not used anymore, nuke it. > > > > > > Well, this doesn't exist in our drm-tip baseline, so it would be good > > > if this patch is a fixup! to whatever patch is adding this back here. > > > > > > Take a look to the Jani series I just pushed: > > > > > > https://lists.freedesktop.org/archives/intel-xe/2023-April/002000.html > > > > > > I believe you should make this series on something more like that. > > > so on a next step I run a rebase --autosquash and we get cleaner patches. > > > > > > Also, I believe this series here might conflict with that, so I'm > > > afraid you will have to rebase it anyway. Sorry about that... > > > > Will skip this patch then, it will probably be gone in next rebase. > > no. we do need to remove it. But the right way is with a > fixup! drm/i915/display: Remaining changes to make xe compile > > A patch that removes this dsparb_lock from the patch that is now incorrectly > addding it in our xe tree. > > > > > Can you please take a look at the other 5 patches before I send a new version? > > I will take a look one by one... done, but the i915 patches should first land in drm-intel-next and then we backport them here or get on a rebase. > > > > > > > > > > > > > > Cc: intel-gfx@lists.freedesktop.org > > > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > > > --- > > > > drivers/gpu/drm/i915/display/intel_display_core.h | 3 --- > > > > drivers/gpu/drm/i915/i915_driver.c | 1 - > > > > 2 files changed, 4 deletions(-) > > > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h > > > > index cc058eb303ee8..d2346d43d1162 100644 > > > > --- a/drivers/gpu/drm/i915/display/intel_display_core.h > > > > +++ b/drivers/gpu/drm/i915/display/intel_display_core.h > > > > @@ -266,9 +266,6 @@ struct intel_wm { > > > > */ > > > > struct mutex wm_mutex; > > > > > > > > - /* protects DSPARB registers on pre-g4x/vlv/chv */ > > > > - spinlock_t dsparb_lock; > > > > - > > > > bool ipc_enabled; > > > > }; > > > > > > > > diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c > > > > index 066d79c2069c4..ea2cc56d18a6e 100644 > > > > --- a/drivers/gpu/drm/i915/i915_driver.c > > > > +++ b/drivers/gpu/drm/i915/i915_driver.c > > > > @@ -214,7 +214,6 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) > > > > spin_lock_init(&dev_priv->irq_lock); > > > > spin_lock_init(&dev_priv->gpu_error.lock); > > > > spin_lock_init(&dev_priv->display.fb_tracking.lock); > > > > - spin_lock_init(&dev_priv->display.wm.dsparb_lock); > > > > mutex_init(&dev_priv->display.backlight.lock); > > > > > > > > mutex_init(&dev_priv->sb_lock); > > > > -- > > > > 2.40.0 > > > > > > ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2023-04-10 17:21 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-04-06 14:31 [Intel-gfx] [PATCH v2 rebased 1/6] drm/i915: Nuke unused dsparb_lock José Roberto de Souza 2023-04-06 14:31 ` [Intel-gfx] [PATCH v2 rebased 2/6] drm/i915: Initialize dkl_phy spin lock from display code path José Roberto de Souza 2023-04-10 15:33 ` Rodrigo Vivi 2023-04-10 17:07 ` Souza, Jose 2023-04-10 17:20 ` [Intel-gfx] [Intel-xe] " Rodrigo Vivi 2023-04-06 14:31 ` [Intel-gfx] [PATCH v2 rebased 3/6] drm/i915: Only initialize dlk phy lock in display 12 and newer José Roberto de Souza 2023-04-10 15:37 ` [Intel-gfx] [Intel-xe] " Rodrigo Vivi 2023-04-10 17:10 ` Souza, Jose 2023-04-10 17:19 ` Rodrigo Vivi 2023-04-06 20:38 ` [Intel-gfx] [Intel-xe] [PATCH v2 rebased 1/6] drm/i915: Nuke unused dsparb_lock Rodrigo Vivi 2023-04-10 14:43 ` Souza, Jose 2023-04-10 15:26 ` Rodrigo Vivi 2023-04-10 15:45 ` Rodrigo Vivi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox