drm/xe: Fix the warning conditions
The maximum timeout display uses in xe_pcode_request is 3 msec, add the warning in cases the function is misused with higher timeouts. Add a warning if pcode_try_request is not passed the timeout parameter greater than 0. Cc: Lucas De Marchi <lucas.demarchi@intel.com> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240508152216.3263109-3-himal.prasad.ghimiray@intel.com Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
c81858eb52
commit
4c0be90e68
@ -10,6 +10,7 @@
|
||||
|
||||
#include <drm/drm_managed.h>
|
||||
|
||||
#include "xe_assert.h"
|
||||
#include "xe_device.h"
|
||||
#include "xe_gt.h"
|
||||
#include "xe_mmio.h"
|
||||
@ -124,6 +125,8 @@ static int pcode_try_request(struct xe_gt *gt, u32 mbox,
|
||||
{
|
||||
int slept, wait = 10;
|
||||
|
||||
xe_gt_assert(gt, timeout_us > 0);
|
||||
|
||||
for (slept = 0; slept < timeout_us; slept += wait) {
|
||||
if (locked)
|
||||
*status = pcode_mailbox_rw(gt, mbox, &request, NULL, 1, true,
|
||||
@ -169,6 +172,8 @@ int xe_pcode_request(struct xe_gt *gt, u32 mbox, u32 request,
|
||||
u32 status;
|
||||
int ret;
|
||||
|
||||
xe_gt_assert(gt, timeout_base_ms <= 3);
|
||||
|
||||
mutex_lock(>->pcode.lock);
|
||||
|
||||
ret = pcode_try_request(gt, mbox, request, reply_mask, reply, &status,
|
||||
@ -188,7 +193,6 @@ int xe_pcode_request(struct xe_gt *gt, u32 mbox, u32 request,
|
||||
*/
|
||||
drm_err(>_to_xe(gt)->drm,
|
||||
"PCODE timeout, retrying with preemption disabled\n");
|
||||
drm_WARN_ON_ONCE(>_to_xe(gt)->drm, timeout_base_ms > 1);
|
||||
preempt_disable();
|
||||
ret = pcode_try_request(gt, mbox, request, reply_mask, reply, &status,
|
||||
true, 50 * 1000, true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user