m1n1.trace.agx: Handle new queue pointer resets properly

Signed-off-by: Asahi Lina <lina@asahilina.net>
This commit is contained in:
Asahi Lina 2022-08-31 11:16:28 +09:00
parent 5dfbd5216c
commit 35a5e2a838

View file

@ -209,7 +209,7 @@ class FWCtlChannelTracer(ChannelTracer):
RPTR = 0x00
class CommandQueueTracer(Reloadable):
def __init__(self, tracer, info_addr):
def __init__(self, tracer, info_addr, new_queue):
self.tracer = tracer
self.uat = tracer.uat
self.hv = tracer.hv
@ -225,6 +225,9 @@ class CommandQueueTracer(Reloadable):
else:
self.state = tracer.state.queues[info_addr]
if new_queue:
self.state.rptr = 0
self.update_info()
def update_info(self):
@ -347,7 +350,7 @@ class AGXTracer(ASCTracer):
if info_addr in self.cmdqueues and not new_queue:
return self.cmdqueues[info_addr]
cmdqueue = CommandQueueTracer(self, info_addr)
cmdqueue = CommandQueueTracer(self, info_addr, new_queue)
self.cmdqueues[info_addr] = cmdqueue
return cmdqueue