Re: [PATCH v2 2/2] drm: zynqmp_dp: Use scope-based mutex helpers

2025-02-07 Thread Sean Anderson
On 2/7/25 11:44, Laurent Pinchart wrote: > Hi Sean, > > Thank you for the patch. > > On Fri, Feb 07, 2025 at 11:25:28AM -0500, Sean Anderson wrote: >> Convert most mutex_(un)lock calls to use (scoped_)guard instead. This >> generally reduces line count and prevents bug

[PATCH v2 0/2] drm: zynqmp_dp: Use scope-based mutex helpers

2025-02-07 Thread Sean Anderson
() Sean Anderson (1): drm: zynqmp_dp: Use scope-based mutex helpers drivers/gpu/drm/xlnx/zynqmp_dp.c | 147 +++ 1 file changed, 50 insertions(+), 97 deletions(-) -- 2.35.1.1320.gc452695387.dirty

[PATCH v2 2/2] drm: zynqmp_dp: Use scope-based mutex helpers

2025-02-07 Thread Sean Anderson
to be called regardless. I looked into defining a CLASS for debugfs_file, but it seems like more effort than it's worth since debugfs_file_get can fail. Signed-off-by: Sean Anderson --- Changes in v2: - Convert some conditional return statements to returns of ternary expressions. - Remove u

[PATCH v2 1/2] drm: zynqmp_dp: Fix a deadlock in zynqmp_dp_ignore_hpd_set()

2025-02-07 Thread Sean Anderson
From: Bart Van Assche Instead of attempting the same mutex twice, lock and unlock it. This bug has been detected by the Clang thread-safety analyzer. Cc: Sean Anderson Cc: Tomi Valkeinen Fixes: 28edaacb821c ("drm: zynqmp_dp: Add debugfs interface for compliance testing") Signed-of

Re: [PATCH 2/2] drm: zynqmp_dp: Use scope-based mutex helpers

2025-02-06 Thread Sean Anderson
On 2/6/25 15:31, Bart Van Assche wrote: > On 2/6/25 11:41 AM, Sean Anderson wrote: >> static int zynqmp_dp_enhanced_set(void *data, u64 val) >> { >> struct zynqmp_dp *dp = data; >> -int ret = 0; >> -mutex_lock(&dp->lock); >

[PATCH 0/2] drm: zynqmp_dp: Use scope-based mutex helpers

2025-02-06 Thread Sean Anderson
Fix a mutex bug and convert most of the explicit mutex_(un)locks to guards. Bart Van Assche (1): drm: zynqmp_dp: Fix a deadlock in zynqmp_dp_ignore_hpd_set() Sean Anderson (1): drm: zynqmp_dp: Use scope-based mutex helpers drivers/gpu/drm/xlnx/zynqmp_dp.c | 151

Re: [PATCH v2 10/10] drm: xlnx: zynqmp: Fix max dma segment size

2025-02-06 Thread Sean Anderson
Hi Tomi, On 1/15/25 04:03, Tomi Valkeinen wrote: > Fix "mapping sg segment longer than device claims to support" warning by > setting the max segment size. > > Fixes: d76271d22694 ("drm: xlnx: DRM/KMS driver for Xilinx ZynqMP DisplayPort > Subsystem") > R

[PATCH 2/2] drm: zynqmp_dp: Use scope-based mutex helpers

2025-02-06 Thread Sean Anderson
to be called regardless. I looked into defining a CLASS for debugfs_file, but it seems like more effort than it's worth since debugfs_file_get can fail. Signed-off-by: Sean Anderson --- drivers/gpu/drm/xlnx/zynqmp_dp.c | 151 --- 1 file changed, 58 inserti

[PATCH 1/2] drm: zynqmp_dp: Fix a deadlock in zynqmp_dp_ignore_hpd_set()

2025-02-06 Thread Sean Anderson
From: Bart Van Assche Instead of attempting the same mutex twice, lock and unlock it. This bug has been detected by the Clang thread-safety analyzer. Cc: Sean Anderson Cc: Tomi Valkeinen Fixes: 28edaacb821c ("drm: zynqmp_dp: Add debugfs interface for compliance testing") Signed-of

Re: [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable()

2025-01-23 Thread Sean Anderson
On 11/12/24 12:22, Sean Anderson wrote: > On 11/12/24 11:43, Laurent Pinchart wrote: >> On Tue, Nov 12, 2024 at 09:41:58AM -0500, Sean Anderson wrote: >>> On 11/12/24 00:27, Laurent Pinchart wrote: >>> > Hi Dan, >>> > >>> > Thank you for the

Re: [PATCH 10/10] drm: xlnx: zynqmp: Fix max dma segment size

2025-01-10 Thread Sean Anderson
>dev); > > Fixes: d76271d22694 ("drm: xlnx: DRM/KMS driver for Xilinx ZynqMP DisplayPort Subsystem") Reviewed-by: Sean Anderson Tested-by: Sean Anderson

Re: [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable()

2024-11-12 Thread Sean Anderson
On 11/12/24 11:43, Laurent Pinchart wrote: > On Tue, Nov 12, 2024 at 09:41:58AM -0500, Sean Anderson wrote: >> On 11/12/24 00:27, Laurent Pinchart wrote: >> > Hi Dan, >> > >> > Thank you for the patch. >> > >> > On Mon, Nov 11, 2024 at 12:0

Re: [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable()

2024-11-12 Thread Sean Anderson
On 11/12/24 00:27, Laurent Pinchart wrote: > Hi Dan, > > Thank you for the patch. > > On Mon, Nov 11, 2024 at 12:06:10PM +0300, Dan Carpenter wrote: >> We added some locking to this function, but accidentally forgot to unlock >> if zynqmp_dp_mode_configure() failed. Use a guard lock to fix it. >

Re: [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable()

2024-11-11 Thread Sean Anderson
zynqmp_dp_write(dp, ZYNQMP_DP_MAIN_STREAM_ENABLE, 1); > - mutex_unlock(&dp->lock); > } > > static void zynqmp_dp_bridge_atomic_disable(struct drm_bridge *bridge, Reviewed-by: Sean Anderson Although this reverses the order of pm_runtime_put and mutex_unlock in the error case, I don't think it matters.

Re: [PATCH v6 0/8] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-10-25 Thread Sean Anderson
Hi Tomi, On 10/3/24 10:53, Sean Anderson wrote: > On 10/2/24 10:50, Tomi Valkeinen wrote: >> Hi, >> >> On 01/10/2024 21:31, Sean Anderson wrote: >>> On 8/9/24 15:35, Sean Anderson wrote: >>>> This series cleans up the zyqnmp_dp IRQ and locking situati

Re: [PATCH v6 0/8] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-10-03 Thread Sean Anderson
On 10/2/24 10:50, Tomi Valkeinen wrote: > Hi, > > On 01/10/2024 21:31, Sean Anderson wrote: >> On 8/9/24 15:35, Sean Anderson wrote: >>> This series cleans up the zyqnmp_dp IRQ and locking situation. Once >>> that's done, it adds debugfs support. The intent

Re: [PATCH v6 0/8] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-10-01 Thread Sean Anderson
On 8/9/24 15:35, Sean Anderson wrote: > This series cleans up the zyqnmp_dp IRQ and locking situation. Once > that's done, it adds debugfs support. The intent is to enable compliance > testing or to help debug signal-integrity issues. > > Previously, I discussed converting

[PATCH v6 8/8] drm: zynqmp_dp: Add debugfs interface for compliance testing

2024-08-09 Thread Sean Anderson
would be fairly easy to add. Additionally, add some debugfs files for ignoring AUX errors and HPD events, as this can allow testing with equipment that cannot emulate a DPRX. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - Document debugfs files - Add ignore_aux_errors

[PATCH v6 7/8] drm: zynqmp_dp: Take dp->lock in zynqmp_dp_hpd_work_func

2024-08-09 Thread Sean Anderson
Add a non-locking version of zynqmp_dp_bridge_detect and use it in zynqmp_dp_hpd_work_func so we can take the lock explicitly. This will make it easier to check for hpd_ignore when we add debugfs support. Signed-off-by: Sean Anderson --- (no changes since v3) Changes in v3: - New drivers/gpu

[PATCH v6 6/8] drm: zynqmp_dp: Split off several helper functions

2024-08-09 Thread Sean Anderson
In preparation for supporting compliance testing, split off several helper functions. No functional change intended. Signed-off-by: Sean Anderson Reviewed-by: Laurent Pinchart Reviewed-by: Tomi Valkeinen --- (no changes since v1) drivers/gpu/drm/xlnx/zynqmp_dp.c | 49

[PATCH v6 5/8] drm: zynqmp_dp: Use AUX IRQs instead of polling

2024-08-09 Thread Sean Anderson
Instead of polling the status register for the AUX status, just enable the IRQs and signal a completion. Signed-off-by: Sean Anderson --- (no changes since v3) Changes in v3: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 35 +++- 1 file changed, 25 insertions(+), 10

[PATCH v6 4/8] drm: zynqmp_dp: Convert to a hard IRQ

2024-08-09 Thread Sean Anderson
Now that all of the sleeping work is done outside of the IRQ, we can convert it to a hard IRQ. Shared IRQs may be triggered even after calling disable_irq, so use free_irq instead which removes our callback altogether. Signed-off-by: Sean Anderson --- Changes in v6: - Fix hang upon driver

[PATCH v6 3/8] drm: zynqmp_dp: Don't retrain the link in our IRQ

2024-08-09 Thread Sean Anderson
Retraining the link can take a while, and might involve waiting for DPCD reads/writes to complete. In preparation for unthreading the IRQ handler, move this into its own work function. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - Document hpd_irq_work - Split this

[PATCH v6 2/8] drm: zynqmp_dp: Add locking

2024-08-09 Thread Sean Anderson
uration changes so we don't have to do anything tricky. Configuration should never be in the hot path, so I'm not worried about performance. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - Split off the HPD IRQ work into another commit - Expand the commit messa

[PATCH v6 1/8] drm: zynqmp_kms: Unplug DRM device before removal

2024-08-09 Thread Sean Anderson
for Xilinx ZynqMP DisplayPort Subsystem") Closes: https://lore.kernel.org/dri-devel/4d8f4c9b-2efb-4774-9a37-2f257f79b...@linux.dev/ Signed-off-by: Sean Anderson --- Thanks to Maxime for pointing out the correct function to use here. Changes in v6: - New drivers/gpu/drm/xlnx/zynqmp_kms.c

[PATCH v6 0/8] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-08-09 Thread Sean Anderson
oducable, spurious build warning - Drop "Optionally ignore DPCD errors" in favor of a debugfs file directly affecting zynqmp_dp_aux_transfer. Sean Anderson (8): drm: zynqmp_kms: Unplug DRM device before removal drm: zynqmp_dp: Add locking drm: zynqmp_dp: Don't retrain th

Re: [PATCH v5 00/10] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-08-09 Thread Sean Anderson
On 8/8/24 08:46, Tomi Valkeinen wrote: > Hi Sean, > > On 17/06/2024 17:48, Sean Anderson wrote: >> On 6/17/24 03:47, Tomi Valkeinen wrote: >>> Hi Sean, >>> >>> On 03/05/2024 22:29, Sean Anderson wrote: >>>> This series cleans up the zyqnmp_d

Re: [PATCH v5 00/10] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-06-17 Thread Sean Anderson
On 6/17/24 03:47, Tomi Valkeinen wrote: > Hi Sean, > > On 03/05/2024 22:29, Sean Anderson wrote: >> This series cleans up the zyqnmp_dp IRQ and locking situation. Once >> that's done, it adds debugfs support. The intent is to enable compliance >> testing or to he

Re: [PATCH] drm: zynqmp_dpsub: Fix an error handling path in zynqmp_dpsub_probe()

2024-06-13 Thread Sean Anderson
On 5/20/24 11:05, Sean Anderson wrote: > On 5/20/24 05:40, Christophe JAILLET wrote: >> If zynqmp_dpsub_drm_init() fails, we must undo the previous >> drm_bridge_add() call. >> >> Fixes: be3f3042391d ("drm: zynqmp_dpsub: Always register bridge")

Re: [PATCH v5 00/10] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-05-31 Thread Sean Anderson
On 5/3/24 15:29, Sean Anderson wrote: > This series cleans up the zyqnmp_dp IRQ and locking situation. Once > that's done, it adds debugfs support. The intent is to enable compliance > testing or to help debug signal-integrity issues. > > Last time I discussed converting

Re: [PATCH] drm: zynqmp_dpsub: Fix an error handling path in zynqmp_dpsub_probe()

2024-05-20 Thread Sean Anderson
+ b/drivers/gpu/drm/xlnx/zynqmp_dpsub.c > @@ -269,6 +269,7 @@ static int zynqmp_dpsub_probe(struct platform_device > *pdev) > return 0; > > err_disp: > + drm_bridge_remove(dpsub->bridge); > zynqmp_disp_remove(dpsub); > err_dp: > zynqmp_dp_remove(dpsub); Reviewed-by: Sean Anderson

Re: [BUG] drm: zynqmp_dp: Lockup in zynqmp_dp_bridge_detect when device is unbound

2024-05-06 Thread Sean Anderson
On 5/6/24 03:35, Laurent Pinchart wrote: > On Mon, May 06, 2024 at 09:29:36AM +0200, Maxime Ripard wrote: >> Hi Laurent, Sean, >> >> On Sat, May 04, 2024 at 03:21:18PM GMT, Laurent Pinchart wrote: >> > On Fri, May 03, 2024 at 05:54:32PM -0400, Sean Anderson wrote:

Re: [BUG] drm: zynqmp_dp: Lockup in zynqmp_dp_bridge_detect when device is unbound

2024-05-06 Thread Sean Anderson
On 5/6/24 07:16, Tomi Valkeinen wrote: > Hi, > > On 04/05/2024 00:54, Sean Anderson wrote: >> Hi, >> >> I have discovered a bug in the displayport driver on drm-misc-next. To >> trigger it, run >> >> echo fd4a.display > /sys/bus/platform/d

[BUG] drm: zynqmp_dp: Lockup in zynqmp_dp_bridge_detect when device is unbound

2024-05-03 Thread Sean Anderson
Hi, I have discovered a bug in the displayport driver on drm-misc-next. To trigger it, run echo fd4a.display > /sys/bus/platform/drivers/zynqmp-dpsub/unbind The system will become unresponsive and (after a bit) splat with a hard LOCKUP. One core will be unresponsive at the first zynqmp_dp_re

[PATCH v5 10/10] drm: zynqmp_dp: Add debugfs interface for compliance testing

2024-05-03 Thread Sean Anderson
would be fairly easy to add. Additionally, add some debugfs files for ignoring AUX errors and HPD events, as this can allow testing with equipment that cannot emulate a DPRX. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - Document debugfs files - Add ignore_aux_errors

[PATCH v5 09/10] drm: zynqmp_dp: Take dp->lock in zynqmp_dp_hpd_work_func

2024-05-03 Thread Sean Anderson
Add a non-locking version of zynqmp_dp_bridge_detect and use it in zynqmp_dp_hpd_work_func so we can take the lock explicitly. This will make it easier to check for hpd_ignore when we add debugfs support. Signed-off-by: Sean Anderson --- (no changes since v3) Changes in v3: - New drivers/gpu

[PATCH v5 08/10] drm: zynqmp_dp: Split off several helper functions

2024-05-03 Thread Sean Anderson
In preparation for supporting compliance testing, split off several helper functions. No functional change intended. Signed-off-by: Sean Anderson Reviewed-by: Laurent Pinchart Reviewed-by: Tomi Valkeinen --- (no changes since v1) drivers/gpu/drm/xlnx/zynqmp_dp.c | 49

[PATCH v5 07/10] drm: zynqmp_dp: Use AUX IRQs instead of polling

2024-05-03 Thread Sean Anderson
Instead of polling the status register for the AUX status, just enable the IRQs and signal a completion. Signed-off-by: Sean Anderson --- (no changes since v3) Changes in v3: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 35 +++- 1 file changed, 25 insertions(+), 10

[PATCH v5 06/10] drm: zynqmp_dp: Convert to a hard IRQ

2024-05-03 Thread Sean Anderson
Now that all of the sleeping work is done outside of the IRQ, we can convert it to a hard IRQ. Signed-off-by: Sean Anderson --- (no changes since v3) Changes in v3: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm

[PATCH v5 05/10] drm: zynqmp_dp: Don't retrain the link in our IRQ

2024-05-03 Thread Sean Anderson
Retraining the link can take a while, and might involve waiting for DPCD reads/writes to complete. In preparation for unthreading the IRQ handler, move this into its own work function. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - Document hpd_irq_work - Split this

[PATCH v5 04/10] drm: zynqmp_dp: Add locking

2024-05-03 Thread Sean Anderson
uration changes so we don't have to do anything tricky. Configuration should never be in the hot path, so I'm not worried about performance. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - Split off the HPD IRQ work into another commit - Expand the commit messa

[PATCH v5 03/10] drm: zynqmp_dp: Don't delay work

2024-05-03 Thread Sean Anderson
We always call scheduled_delayed_work with no delay, so just use a non-delayed work_struct instead. Signed-off-by: Sean Anderson Reviewed-by: Tomi Valkeinen --- (no changes since v3) Changes in v3: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 13 ++--- 1 file changed, 6 insertions(+), 7

[PATCH v5 02/10] drm: zynqmp_dp: Rearrange zynqmp_dp for better padding

2024-05-03 Thread Sean Anderson
Sort the members of struct zynqmp_dp to reduce padding necessary for alignment. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 28 ++-- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a

[PATCH v5 00/10] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-05-03 Thread Sean Anderson
purious build warning - Drop "Optionally ignore DPCD errors" in favor of a debugfs file directly affecting zynqmp_dp_aux_transfer. Sean Anderson (10): drm: zynqmp_kms: Fix AUX bus not getting unregistered drm: zynqmp_dp: Rearrange zynqmp_dp for better padding drm: zynqmp_dp: Don't

[PATCH v5 01/10] drm: zynqmp_kms: Fix AUX bus not getting unregistered

2024-05-03 Thread Sean Anderson
der_cleanup get called before or after drm_atomic_helper_shutdown? Fixes: 2dfd045c8435 ("drm: xlnx: zynqmp_dpsub: Register AUX bus at bridge attach time") Signed-off-by: Sean Anderson --- Changes in v5: - New drivers/gpu/drm/xlnx/zynqmp_kms.c | 12 +--- 1 file changed, 9 i

Re: [PATCH v4 00/13] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-04-25 Thread Sean Anderson
On 4/24/24 14:54, Tomi Valkeinen wrote: > Hi Sean, > > On 23/04/2024 20:18, Sean Anderson wrote: >> This series cleans up the zyqnmp_dp IRQ and locking situation. Once >> that's done, it adds debugfs support. The intent is to enable compliance >> testing or to he

Re: [PATCH] drm: zynqmp_dpsub: Always register bridge

2024-04-23 Thread Sean Anderson
Hi, On 3/22/24 02:01, Tomi Valkeinen wrote: > Hi, > > On 08/03/2024 22:47, Sean Anderson wrote: >> We must always register the DRM bridge, since zynqmp_dp_hpd_work_func >> calls drm_bridge_hpd_notify, which in turn expects hpd_mutex to be >> initialized. We do this b

[PATCH v4 12/13] drm: zynqmp_dp: Take dp->lock in zynqmp_dp_hpd_work_func

2024-04-23 Thread Sean Anderson
Add a non-locking version of zynqmp_dp_bridge_detect and use it in zynqmp_dp_hpd_work_func so we can take the lock explicitly. This will make it easier to check for hpd_ignore when we add debugfs support. Signed-off-by: Sean Anderson --- (no changes since v3) Changes in v3: - New drivers/gpu

[PATCH v4 13/13] drm: zynqmp_dp: Add debugfs interface for compliance testing

2024-04-23 Thread Sean Anderson
would be fairly easy to add. Additionally, add some debugfs files for ignoring AUX errors and HPD events, as this can allow testing with equipment that cannot emulate a DPRX. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - Document debugfs files - Add ignore_aux_errors

[PATCH v4 05/13] drm: zynqmp_dp: Rearrange zynqmp_dp for better padding

2024-04-23 Thread Sean Anderson
Sort the members of struct zynqmp_dp to reduce padding necessary for alignment. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 28 ++-- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a

[PATCH v4 00/13] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-04-23 Thread Sean Anderson
;Optionally ignore DPCD errors" in favor of a debugfs file directly affecting zynqmp_dp_aux_transfer. Sean Anderson (13): drm: xlnx: Store base pointers in zynqmp_disp directly drm: xlnx: Fix kerneldoc drm: zynqmp_dp: Downgrade log level for aux retries message drm: zynqmp_dp: Adjust t

[PATCH v4 09/13] drm: zynqmp_dp: Convert to a hard IRQ

2024-04-23 Thread Sean Anderson
Now that all of the sleeping work is done outside of the IRQ, we can convert it to a hard IRQ. Signed-off-by: Sean Anderson --- (no changes since v3) Changes in v3: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm

[PATCH v4 10/13] drm: zynqmp_dp: Use AUX IRQs instead of polling

2024-04-23 Thread Sean Anderson
Instead of polling the status register for the AUX status, just enable the IRQs and signal a completion. Signed-off-by: Sean Anderson --- (no changes since v3) Changes in v3: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 35 +++- 1 file changed, 25 insertions(+), 10

[PATCH v4 08/13] drm: zynqmp_dp: Don't retrain the link in our IRQ

2024-04-23 Thread Sean Anderson
Retraining the link can take a while, and might involve waiting for DPCD reads/writes to complete. In preparation for unthreading the IRQ handler, move this into its own work function. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - Document hpd_irq_work - Split this

[PATCH v4 02/13] drm: xlnx: Fix kerneldoc

2024-04-23 Thread Sean Anderson
Fix a few errors in the kerneldoc. Mostly this addresses missing/renamed members. Signed-off-by: Sean Anderson Reviewed-by: Tomi Valkeinen --- (no changes since v3) Changes in v3: - Split off documentation for base pointers to previous commit Changes in v2: - New drivers/gpu/drm/xlnx

[PATCH v4 11/13] drm: zynqmp_dp: Split off several helper functions

2024-04-23 Thread Sean Anderson
In preparation for supporting compliance testing, split off several helper functions. No functional change intended. Signed-off-by: Sean Anderson Reviewed-by: Laurent Pinchart Reviewed-by: Tomi Valkeinen --- (no changes since v1) drivers/gpu/drm/xlnx/zynqmp_dp.c | 49

[PATCH v4 07/13] drm: zynqmp_dp: Add locking

2024-04-23 Thread Sean Anderson
uration changes so we don't have to do anything tricky. Configuration should never be in the hot path, so I'm not worried about performance. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - Split off the HPD IRQ work into another commit - Expand the commit messa

[PATCH v4 06/13] drm: zynqmp_dp: Don't delay work

2024-04-23 Thread Sean Anderson
We always call scheduled_delayed_work with no delay, so just use a non-delayed work_struct instead. Signed-off-by: Sean Anderson Reviewed-by: Tomi Valkeinen --- (no changes since v3) Changes in v3: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 13 ++--- 1 file changed, 6 insertions(+), 7

[PATCH v4 04/13] drm: zynqmp_dp: Adjust training values per-lane

2024-04-23 Thread Sean Anderson
The feedback we get from the DPRX is per-lane. Make changes using this information, instead of picking the maximum values from all lanes. This results in more-consistent training on marginal links. Signed-off-by: Sean Anderson Reviewed-by: Tomi Valkeinen --- (no changes since v1) drivers/gpu

[PATCH v4 01/13] drm: xlnx: Store base pointers in zynqmp_disp directly

2024-04-23 Thread Sean Anderson
The blend, avbuf, and audio members of zynqmp_disp are anonymous structs with only one member each. This is rather pointless, so move the members up a level. Signed-off-by: Sean Anderson Reviewed-by: Tomi Valkeinen --- (no changes since v3) Changes in v3: - New drivers/gpu/drm/xlnx

[PATCH v4 03/13] drm: zynqmp_dp: Downgrade log level for aux retries message

2024-04-23 Thread Sean Anderson
Enable this message for verbose debugging only as it is otherwise printed after every AUX message, quickly filling the log buffer. Signed-off-by: Sean Anderson Reviewed-by: Laurent Pinchart Reviewed-by: Tomi Valkeinen --- (no changes since v1) drivers/gpu/drm/xlnx/zynqmp_dp.c | 2 +- 1 file

Re: [PATCH v3 00/13] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-04-23 Thread Sean Anderson
On 4/23/24 11:30, Tomi Valkeinen wrote: > On 23/04/2024 17:59, Sean Anderson wrote: >> On 4/23/24 09:33, Tomi Valkeinen wrote: >>> Hi Sean, >>> >>> On 22/04/2024 21:45, Sean Anderson wrote: >>>> This series cleans up the zyqnmp_dp IRQ and locking s

Re: [PATCH v3 00/13] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-04-23 Thread Sean Anderson
On 4/23/24 09:33, Tomi Valkeinen wrote: > Hi Sean, > > On 22/04/2024 21:45, Sean Anderson wrote: >> This series cleans up the zyqnmp_dp IRQ and locking situation. Once >> that's done, it adds debugfs support. The intent is to enable compliance >> testing or to he

Re: [PATCH v3 00/13] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-04-22 Thread Sean Anderson
On 4/22/24 14:45, Sean Anderson wrote: > This series cleans up the zyqnmp_dp IRQ and locking situation. Once > that's done, it adds debugfs support. The intent is to enable compliance > testing or to help debug signal-integrity issues. > > Last time I discussed converting

[PATCH v3 12/13] drm: zynqmp_dp: Take dp->lock in zynqmp_dp_hpd_work_func

2024-04-22 Thread Sean Anderson
Add a non-locking version of zynqmp_dp_bridge_detect and use it in zynqmp_dp_hpd_work_func so we can take the lock explicitly. This will make it easier to check for hpd_ignore when we add debugfs support. Signed-off-by: Sean Anderson --- Changes in v3: - New drivers/gpu/drm/xlnx/zynqmp_dp.c

[PATCH v3 06/13] drm: zynqmp_dp: Don't delay work

2024-04-22 Thread Sean Anderson
We always call scheduled_delayed_work with no delay, so just use a non-delayed work_struct instead. Signed-off-by: Sean Anderson --- Changes in v3: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 13 ++--- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/xlnx

[PATCH v3 10/13] drm: zynqmp_dp: Use AUX IRQs instead of polling

2024-04-22 Thread Sean Anderson
Instead of polling the status register for the AUX status, just enable the IRQs and signal a completion. Signed-off-by: Sean Anderson --- Changes in v3: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 35 +++- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git

[PATCH v3 13/13] drm: zynqmp_dp: Add debugfs interface for compliance testing

2024-04-22 Thread Sean Anderson
would be fairly easy to add. Additionally, add some debugfs files for ignoring AUX errors and HPD events, as this can allow testing with equipment that cannot emulate a DPRX. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - Document debugfs files - Add ignore_aux_errors

[PATCH v3 11/13] drm: zynqmp_dp: Split off several helper functions

2024-04-22 Thread Sean Anderson
In preparation for supporting compliance testing, split off several helper functions. No functional change intended. Signed-off-by: Sean Anderson Reviewed-by: Laurent Pinchart Reviewed-by: Tomi Valkeinen --- (no changes since v1) drivers/gpu/drm/xlnx/zynqmp_dp.c | 49

[PATCH v3 07/13] drm: zynqmp_dp: Add locking

2024-04-22 Thread Sean Anderson
uration changes so we don't have to do anything tricky. Configuration should never be in the hot path, so I'm not worried about performance. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - Split off the HPD IRQ work into another commit - Expand the commit messa

[PATCH v3 05/13] drm: zynqmp_dp: Rearrange zynqmp_dp for better padding

2024-04-22 Thread Sean Anderson
Sort the members of struct zynqmp_dp to reduce padding necessary for alignment. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 28 ++-- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a

[PATCH v3 09/13] drm: zynqmp_dp: Convert to a hard IRQ

2024-04-22 Thread Sean Anderson
Now that all of the sleeping work is done outside of the IRQ, we can convert it to a hard IRQ. Signed-off-by: Sean Anderson --- Changes in v3: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/xlnx/zynqmp_dp.c b

[PATCH v3 04/13] drm: zynqmp_dp: Adjust training values per-lane

2024-04-22 Thread Sean Anderson
The feedback we get from the DPRX is per-lane. Make changes using this information, instead of picking the maximum values from all lanes. This results in more-consistent training on marginal links. Signed-off-by: Sean Anderson Reviewed-by: Tomi Valkeinen --- (no changes since v1) drivers/gpu

[PATCH v3 08/13] drm: zynqmp_dp: Don't retrain the link in our IRQ

2024-04-22 Thread Sean Anderson
Retraining the link can take a while, and might involve waiting for DPCD reads/writes to complete. In preparation for unthreading the IRQ handler, move this into its own work function. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - Document hpd_irq_work - Split this

[PATCH v3 03/13] drm: zynqmp_dp: Downgrade log level for aux retries message

2024-04-22 Thread Sean Anderson
Enable this message for verbose debugging only as it is otherwise printed after every AUX message, quickly filling the log buffer. Signed-off-by: Sean Anderson Reviewed-by: Laurent Pinchart Reviewed-by: Tomi Valkeinen --- (no changes since v1) drivers/gpu/drm/xlnx/zynqmp_dp.c | 2 +- 1 file

[PATCH v3 00/13] drm: zynqmp_dp: IRQ cleanups and debugfs support

2024-04-22 Thread Sean Anderson
favor of a debugfs file directly affecting zynqmp_dp_aux_transfer. Sean Anderson (13): drm: xlnx: Store base pointers in zynqmp_disp directly drm: xlnx: Fix kerneldoc drm: zynqmp_dp: Downgrade log level for aux retries message drm: zynqmp_dp: Adjust training values per-lane drm: zynqmp_dp:

[PATCH v3 02/13] drm: xlnx: Fix kerneldoc

2024-04-22 Thread Sean Anderson
Fix a few errors in the kerneldoc. Mostly this addresses missing/renamed members. Signed-off-by: Sean Anderson --- Changes in v3: - Split off documentation for base pointers to previous commit Changes in v2: - New drivers/gpu/drm/xlnx/zynqmp_dpsub.h | 1 + drivers/gpu/drm/xlnx/zynqmp_kms.h

[PATCH v3 01/13] drm: xlnx: Store base pointers in zynqmp_disp directly

2024-04-22 Thread Sean Anderson
The blend, avbuf, and audio members of zynqmp_disp are anonymous structs with only one member each. This is rather pointless, so move the members up a level. Signed-off-by: Sean Anderson --- Changes in v3: - New drivers/gpu/drm/xlnx/zynqmp_disp.c | 44 +- 1 file

Re: [PATCH v2 5/8] drm: zynqmp_dp: Don't retrain the link in our IRQ

2024-03-22 Thread Sean Anderson
On 3/22/24 14:09, Tomi Valkeinen wrote: > On 22/03/2024 18:18, Sean Anderson wrote: >> On 3/22/24 01:32, Tomi Valkeinen wrote: >>> On 21/03/2024 21:17, Sean Anderson wrote: >>>> On 3/21/24 15:08, Tomi Valkeinen wrote: >>>>> On 21/03/2024 20:01, Sean

Re: [PATCH v2 5/8] drm: zynqmp_dp: Don't retrain the link in our IRQ

2024-03-22 Thread Sean Anderson
On 3/22/24 01:32, Tomi Valkeinen wrote: > On 21/03/2024 21:17, Sean Anderson wrote: >> On 3/21/24 15:08, Tomi Valkeinen wrote: >>> On 21/03/2024 20:01, Sean Anderson wrote: >>>> On 3/21/24 13:25, Tomi Valkeinen wrote: >>>>> On 21/03/2024 17:52, Sean

Re: [PATCH v2 1/8] drm: xlnx: Fix kerneldoc

2024-03-22 Thread Sean Anderson
On 3/22/24 01:50, Tomi Valkeinen wrote: > On 21/03/2024 17:33, Sean Anderson wrote: >> On 3/20/24 02:05, Randy Dunlap wrote: >>> >>> >>> On 3/19/24 22:42, Tomi Valkeinen wrote: >>>> On 20/03/2024 00:51, Sean Anderson wrote: >>>>> F

Re: [PATCH v2 5/8] drm: zynqmp_dp: Don't retrain the link in our IRQ

2024-03-21 Thread Sean Anderson
On 3/21/24 15:08, Tomi Valkeinen wrote: > On 21/03/2024 20:01, Sean Anderson wrote: >> On 3/21/24 13:25, Tomi Valkeinen wrote: >>> On 21/03/2024 17:52, Sean Anderson wrote: >>>> On 3/20/24 02:53, Tomi Valkeinen wrote: >>>>> On 20/03/2024 00:51, Sean A

Re: [PATCH v2 5/8] drm: zynqmp_dp: Don't retrain the link in our IRQ

2024-03-21 Thread Sean Anderson
On 3/21/24 13:25, Tomi Valkeinen wrote: > On 21/03/2024 17:52, Sean Anderson wrote: >> On 3/20/24 02:53, Tomi Valkeinen wrote: >>> On 20/03/2024 00:51, Sean Anderson wrote: >>>> Retraining the link can take a while, and might involve waiting for >>>&

Re: [PATCH v2 8/8] drm: zynqmp_dp: Add debugfs interface for compliance testing

2024-03-21 Thread Sean Anderson
On 3/21/24 12:31, Tomi Valkeinen wrote: > On 21/03/2024 18:08, Sean Anderson wrote: >> On 3/20/24 03:49, Tomi Valkeinen wrote: >>> On 20/03/2024 00:51, Sean Anderson wrote: >>> >>>> +/** >>>> + * enum test_pattern - Test patterns for test testing

Re: [PATCH v2 8/8] drm: zynqmp_dp: Add debugfs interface for compliance testing

2024-03-21 Thread Sean Anderson
On 3/20/24 03:49, Tomi Valkeinen wrote: > On 20/03/2024 00:51, Sean Anderson wrote: > >> +/** >> + * enum test_pattern - Test patterns for test testing > > "for test testing"? =) > >> @@ -1655,6 +2321,9 @@ static void zynqmp_dp_hpd_irq_work_func(struc

Re: [PATCH v2 5/8] drm: zynqmp_dp: Don't retrain the link in our IRQ

2024-03-21 Thread Sean Anderson
On 3/20/24 02:53, Tomi Valkeinen wrote: > On 20/03/2024 00:51, Sean Anderson wrote: >> Retraining the link can take a while, and might involve waiting for >> DPCD reads/writes to complete. This is inappropriate for an IRQ handler. >> Just schedule this work for later completi

Re: [PATCH v2 4/8] drm: zynqmp_dp: Rearrange zynqmp_dp for better padding

2024-03-21 Thread Sean Anderson
On 3/20/24 02:14, Tomi Valkeinen wrote: > On 20/03/2024 00:51, Sean Anderson wrote: >> Sort the members of struct zynqmp_dp to reduce padding necessary for >> alignment. >> >> Signed-off-by: Sean Anderson >> --- >> >> Changes in v2: >>

Re: [PATCH v2 3/8] drm: zynqmp_dp: Adjust training values per-lane

2024-03-21 Thread Sean Anderson
On 3/20/24 01:57, Tomi Valkeinen wrote: > On 20/03/2024 00:51, Sean Anderson wrote: >> The feedback we get from the DPRX is per-lane. Make changes using this >> information, instead of picking the maximum values from all lanes. This >> results in more-consistent train

Re: [PATCH v2 1/8] drm: xlnx: Fix kerneldoc

2024-03-21 Thread Sean Anderson
On 3/20/24 02:05, Randy Dunlap wrote: > > > On 3/19/24 22:42, Tomi Valkeinen wrote: >> On 20/03/2024 00:51, Sean Anderson wrote: >>> Fix a few errors in the kerneldoc. Mostly this addresses missing/renamed >>> members. >>> >>> Signed-o

Re: [PATCH v2 0/8] drm: zynqmp_dp: Misc. patches and debugfs support

2024-03-19 Thread Sean Anderson
On 3/19/24 18:51, Sean Anderson wrote: > This series adds debugfs support for the zynqmp_dp driver. The intent is > to enable compliance testing or to help debug signal-integrity issues. > > The first four patches are general improvements (and could be applied > independently),

[PATCH v2 8/8] drm: zynqmp_dp: Add debugfs interface for compliance testing

2024-03-19 Thread Sean Anderson
would be fairly easy to add. Additionally, add some debugfs files for ignoring AUX errors and HPD events, as this can allow testing with equipment that cannot emulate a DPRX. Signed-off-by: Sean Anderson --- Changes in v2: - Document debugfs files - Add ignore_aux_errors and ignore_hpd debugfs

[PATCH v2 6/8] drm: zynqmp_dp: Add locking

2024-03-19 Thread Sean Anderson
uration changes so we don't have to do anything tricky. Configuration should never be in the hot path, so I'm not worried about performance. Signed-off-by: Sean Anderson --- Changes in v2: - Split off the HPD IRQ work into another commit - Expand the commit message drivers/gpu/

[PATCH v2 5/8] drm: zynqmp_dp: Don't retrain the link in our IRQ

2024-03-19 Thread Sean Anderson
Retraining the link can take a while, and might involve waiting for DPCD reads/writes to complete. This is inappropriate for an IRQ handler. Just schedule this work for later completion. This is racy, but will be fixed in the next commit. Signed-off-by: Sean Anderson --- Actually, on second look

[PATCH v2 4/8] drm: zynqmp_dp: Rearrange zynqmp_dp for better padding

2024-03-19 Thread Sean Anderson
Sort the members of struct zynqmp_dp to reduce padding necessary for alignment. Signed-off-by: Sean Anderson --- Changes in v2: - New drivers/gpu/drm/xlnx/zynqmp_dp.c | 28 ++-- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/xlnx

[PATCH v2 7/8] drm: zynqmp_dp: Split off several helper functions

2024-03-19 Thread Sean Anderson
In preparation for supporting compliance testing, split off several helper functions. No functional change intended. Signed-off-by: Sean Anderson Reviewed-by: Laurent Pinchart --- (no changes since v1) drivers/gpu/drm/xlnx/zynqmp_dp.c | 49 ++-- 1 file changed, 34

[PATCH v2 0/8] drm: zynqmp_dp: Misc. patches and debugfs support

2024-03-19 Thread Sean Anderson
unreproducable, spurious build warning - Drop "Optionally ignore DPCD errors" in favor of a debugfs file directly affecting zynqmp_dp_aux_transfer. Sean Anderson (8): drm: xlnx: Fix kerneldoc drm: zynqmp_dp: Downgrade log level for aux retries message drm: zynqmp_dp: Adjust training value

[PATCH v2 3/8] drm: zynqmp_dp: Adjust training values per-lane

2024-03-19 Thread Sean Anderson
The feedback we get from the DPRX is per-lane. Make changes using this information, instead of picking the maximum values from all lanes. This results in more-consistent training on marginal links. Signed-off-by: Sean Anderson --- (no changes since v1) drivers/gpu/drm/xlnx/zynqmp_dp.c | 23

[PATCH v2 2/8] drm: zynqmp_dp: Downgrade log level for aux retries message

2024-03-19 Thread Sean Anderson
Enable this message for verbose debugging only as it is otherwise printed after every AUX message, quickly filling the log buffer. Signed-off-by: Sean Anderson Reviewed-by: Laurent Pinchart --- (no changes since v1) drivers/gpu/drm/xlnx/zynqmp_dp.c | 2 +- 1 file changed, 1 insertion(+), 1

[PATCH v2 1/8] drm: xlnx: Fix kerneldoc

2024-03-19 Thread Sean Anderson
Fix a few errors in the kerneldoc. Mostly this addresses missing/renamed members. Signed-off-by: Sean Anderson --- Changes in v2: - New drivers/gpu/drm/xlnx/zynqmp_disp.c | 6 +++--- drivers/gpu/drm/xlnx/zynqmp_dpsub.h | 1 + drivers/gpu/drm/xlnx/zynqmp_kms.h | 4 ++-- 3 files changed, 6

Re: [PATCH 6/6] drm: zynqmp_dp: Add debugfs interface for compliance testing

2024-03-18 Thread Sean Anderson
On 3/18/24 13:50, Laurent Pinchart wrote: > On Mon, Mar 18, 2024 at 11:06:40AM -0400, Sean Anderson wrote: >> On 3/16/24 06:14, kernel test robot wrote: >> > Hi Sean, >> > >> > kernel test robot noticed the following build warnings: >> > >> >

  1   2   >