@@ -344,11 +344,10 @@ static int kfd_dbg_set_workaround(struct kfd_process *target, bool enable)
344344 return r ;
345345}
346346
347- int kfd_dbg_set_mes_debug_mode (struct kfd_process_device * pdd )
347+ int kfd_dbg_set_mes_debug_mode (struct kfd_process_device * pdd , bool sq_trap_en )
348348{
349349 uint32_t spi_dbg_cntl = pdd -> spi_dbg_override | pdd -> spi_dbg_launch_mode ;
350350 uint32_t flags = pdd -> process -> dbg_flags ;
351- bool sq_trap_en = !!spi_dbg_cntl || !kfd_dbg_has_cwsr_workaround (pdd -> dev );
352351
353352 if (!kfd_dbg_is_per_vmid_supported (pdd -> dev ))
354353 return 0 ;
@@ -432,7 +431,7 @@ int kfd_dbg_trap_clear_dev_address_watch(struct kfd_process_device *pdd,
432431 if (!pdd -> dev -> kfd -> shared_resources .enable_mes )
433432 r = debug_map_and_unlock (pdd -> dev -> dqm );
434433 else
435- r = kfd_dbg_set_mes_debug_mode (pdd );
434+ r = kfd_dbg_set_mes_debug_mode (pdd , true );
436435
437436 kfd_dbg_clear_dev_watch_id (pdd , watch_id );
438437
@@ -474,7 +473,7 @@ int kfd_dbg_trap_set_dev_address_watch(struct kfd_process_device *pdd,
474473 if (!pdd -> dev -> kfd -> shared_resources .enable_mes )
475474 r = debug_map_and_unlock (pdd -> dev -> dqm );
476475 else
477- r = kfd_dbg_set_mes_debug_mode (pdd );
476+ r = kfd_dbg_set_mes_debug_mode (pdd , true );
478477
479478 /* HWS is broken so no point in HW rollback but release the watchpoint anyways */
480479 if (r )
@@ -516,7 +515,7 @@ int kfd_dbg_trap_set_flags(struct kfd_process *target, uint32_t *flags)
516515 if (!pdd -> dev -> kfd -> shared_resources .enable_mes )
517516 r = debug_refresh_runlist (pdd -> dev -> dqm );
518517 else
519- r = kfd_dbg_set_mes_debug_mode (pdd );
518+ r = kfd_dbg_set_mes_debug_mode (pdd , true );
520519
521520 if (r ) {
522521 target -> dbg_flags = prev_flags ;
@@ -539,7 +538,7 @@ int kfd_dbg_trap_set_flags(struct kfd_process *target, uint32_t *flags)
539538 if (!pdd -> dev -> kfd -> shared_resources .enable_mes )
540539 debug_refresh_runlist (pdd -> dev -> dqm );
541540 else
542- kfd_dbg_set_mes_debug_mode (pdd );
541+ kfd_dbg_set_mes_debug_mode (pdd , true );
543542 }
544543 }
545544
@@ -601,7 +600,7 @@ void kfd_dbg_trap_deactivate(struct kfd_process *target, bool unwind, int unwind
601600 if (!pdd -> dev -> kfd -> shared_resources .enable_mes )
602601 debug_refresh_runlist (pdd -> dev -> dqm );
603602 else
604- kfd_dbg_set_mes_debug_mode (pdd );
603+ kfd_dbg_set_mes_debug_mode (pdd , ! kfd_dbg_has_cwsr_workaround ( pdd -> dev ) );
605604 }
606605
607606 kfd_dbg_set_workaround (target , false);
@@ -717,7 +716,7 @@ int kfd_dbg_trap_activate(struct kfd_process *target)
717716 if (!pdd -> dev -> kfd -> shared_resources .enable_mes )
718717 r = debug_refresh_runlist (pdd -> dev -> dqm );
719718 else
720- r = kfd_dbg_set_mes_debug_mode (pdd );
719+ r = kfd_dbg_set_mes_debug_mode (pdd , true );
721720
722721 if (r ) {
723722 target -> runtime_info .runtime_state =
@@ -851,7 +850,7 @@ int kfd_dbg_trap_set_wave_launch_override(struct kfd_process *target,
851850 if (!pdd -> dev -> kfd -> shared_resources .enable_mes )
852851 r = debug_refresh_runlist (pdd -> dev -> dqm );
853852 else
854- r = kfd_dbg_set_mes_debug_mode (pdd );
853+ r = kfd_dbg_set_mes_debug_mode (pdd , true );
855854
856855 if (r )
857856 break ;
@@ -883,7 +882,7 @@ int kfd_dbg_trap_set_wave_launch_mode(struct kfd_process *target,
883882 if (!pdd -> dev -> kfd -> shared_resources .enable_mes )
884883 r = debug_refresh_runlist (pdd -> dev -> dqm );
885884 else
886- r = kfd_dbg_set_mes_debug_mode (pdd );
885+ r = kfd_dbg_set_mes_debug_mode (pdd , true );
887886
888887 if (r )
889888 break ;
0 commit comments