Lines Matching refs:trace_seq_data
190 static u32 read_fw_trace(struct pvr_fw_trace_seq_data *trace_seq_data, u32 offset) in read_fw_trace() argument
194 idx = trace_seq_data->idx + offset; in read_fw_trace()
198 idx = (idx + trace_seq_data->start_offset) % ROGUE_FW_TRACE_BUF_DEFAULT_SIZE_IN_DWORDS; in read_fw_trace()
199 return trace_seq_data->buffer[idx]; in read_fw_trace()
211 static bool fw_trace_get_next(struct pvr_fw_trace_seq_data *trace_seq_data) in fw_trace_get_next() argument
215 while (trace_seq_data->idx < ROGUE_FW_TRACE_BUF_DEFAULT_SIZE_IN_DWORDS) { in fw_trace_get_next()
216 id = read_fw_trace(trace_seq_data, 0); in fw_trace_get_next()
217 trace_seq_data->idx++; in fw_trace_get_next()
237 trace_seq_data->idx += 2 + ROGUE_FW_SF_PARAMNUM(id); in fw_trace_get_next()
240 id = read_fw_trace(trace_seq_data, 0); in fw_trace_get_next()
261 static void fw_trace_get_first(struct pvr_fw_trace_seq_data *trace_seq_data) in fw_trace_get_first() argument
263 trace_seq_data->idx = 0; in fw_trace_get_first()
265 while (trace_seq_data->idx < ROGUE_FW_TRACE_BUF_DEFAULT_SIZE_IN_DWORDS) { in fw_trace_get_first()
266 u32 id = read_fw_trace(trace_seq_data, 0); in fw_trace_get_first()
274 trace_seq_data->idx++; in fw_trace_get_first()
280 struct pvr_fw_trace_seq_data *trace_seq_data = s->private; in fw_trace_seq_start() local
283 fw_trace_get_first(trace_seq_data); in fw_trace_seq_start()
286 if (!fw_trace_get_next(trace_seq_data)) in fw_trace_seq_start()
290 return (trace_seq_data->idx < ROGUE_FW_TRACE_BUF_DEFAULT_SIZE_IN_DWORDS) ? pos : NULL; in fw_trace_seq_start()
295 struct pvr_fw_trace_seq_data *trace_seq_data = s->private; in fw_trace_seq_next() local
298 if (!fw_trace_get_next(trace_seq_data)) in fw_trace_seq_next()
301 return (trace_seq_data->idx < ROGUE_FW_TRACE_BUF_DEFAULT_SIZE_IN_DWORDS) ? pos : NULL; in fw_trace_seq_next()
310 struct pvr_fw_trace_seq_data *trace_seq_data = s->private; in fw_trace_seq_show() local
315 if (trace_seq_data->idx >= ROGUE_FW_TRACE_BUF_DEFAULT_SIZE_IN_DWORDS) in fw_trace_seq_show()
318 id = read_fw_trace(trace_seq_data, 0); in fw_trace_seq_show()
328 timestamp = ((u64)read_fw_trace(trace_seq_data, 1) << 32) | in fw_trace_seq_show()
329 read_fw_trace(trace_seq_data, 2); in fw_trace_seq_show()
336 trace_seq_data->assert_buf.info, in fw_trace_seq_show()
337 trace_seq_data->assert_buf.path, in fw_trace_seq_show()
338 trace_seq_data->assert_buf.line_num); in fw_trace_seq_show()
341 read_fw_trace(trace_seq_data, 3), in fw_trace_seq_show()
342 read_fw_trace(trace_seq_data, 4), in fw_trace_seq_show()
343 read_fw_trace(trace_seq_data, 5), in fw_trace_seq_show()
344 read_fw_trace(trace_seq_data, 6), in fw_trace_seq_show()
345 read_fw_trace(trace_seq_data, 7), in fw_trace_seq_show()
346 read_fw_trace(trace_seq_data, 8), in fw_trace_seq_show()
347 read_fw_trace(trace_seq_data, 9), in fw_trace_seq_show()
348 read_fw_trace(trace_seq_data, 10), in fw_trace_seq_show()
349 read_fw_trace(trace_seq_data, 11), in fw_trace_seq_show()
350 read_fw_trace(trace_seq_data, 12), in fw_trace_seq_show()
351 read_fw_trace(trace_seq_data, 13), in fw_trace_seq_show()
352 read_fw_trace(trace_seq_data, 14), in fw_trace_seq_show()
353 read_fw_trace(trace_seq_data, 15), in fw_trace_seq_show()
354 read_fw_trace(trace_seq_data, 16), in fw_trace_seq_show()
355 read_fw_trace(trace_seq_data, 17), in fw_trace_seq_show()
356 read_fw_trace(trace_seq_data, 18), in fw_trace_seq_show()
357 read_fw_trace(trace_seq_data, 19), in fw_trace_seq_show()
358 read_fw_trace(trace_seq_data, 20), in fw_trace_seq_show()
359 read_fw_trace(trace_seq_data, 21), in fw_trace_seq_show()
360 read_fw_trace(trace_seq_data, 22)); in fw_trace_seq_show()
378 struct pvr_fw_trace_seq_data *trace_seq_data; in fw_trace_open() local
381 trace_seq_data = kzalloc(sizeof(*trace_seq_data), GFP_KERNEL); in fw_trace_open()
382 if (!trace_seq_data) in fw_trace_open()
385 trace_seq_data->buffer = kcalloc(ROGUE_FW_TRACE_BUF_DEFAULT_SIZE_IN_DWORDS, in fw_trace_open()
386 sizeof(*trace_seq_data->buffer), GFP_KERNEL); in fw_trace_open()
387 if (!trace_seq_data->buffer) { in fw_trace_open()
396 memcpy(trace_seq_data->buffer, trace_buffer->buf, in fw_trace_open()
398 trace_seq_data->start_offset = READ_ONCE(tracebuf_space->trace_pointer); in fw_trace_open()
399 trace_seq_data->assert_buf = tracebuf_space->assert_buf; in fw_trace_open()
400 fw_trace_get_first(trace_seq_data); in fw_trace_open()
406 ((struct seq_file *)file->private_data)->private = trace_seq_data; in fw_trace_open()
411 kfree(trace_seq_data->buffer); in fw_trace_open()
414 kfree(trace_seq_data); in fw_trace_open()
421 struct pvr_fw_trace_seq_data *trace_seq_data = in fw_trace_release() local
425 kfree(trace_seq_data->buffer); in fw_trace_release()
426 kfree(trace_seq_data); in fw_trace_release()