Home
last modified time | relevance | path

Searched full:syncpt (Results 1 – 25 of 42) sorted by relevance

12

/Linux-v6.1/drivers/gpu/host1x/
Dintr.c161 * Remove & handle all waiters that have completed for the given syncpt
164 struct host1x_syncpt *syncpt, in process_wait_list() argument
174 spin_lock(&syncpt->intr.lock); in process_wait_list()
176 remove_completed_waiters(&syncpt->intr.wait_head, threshold, in process_wait_list()
179 empty = list_empty(&syncpt->intr.wait_head); in process_wait_list()
181 host1x_hw_intr_disable_syncpt_intr(host, syncpt->id); in process_wait_list()
183 reset_threshold_interrupt(host, &syncpt->intr.wait_head, in process_wait_list()
184 syncpt->id); in process_wait_list()
186 spin_unlock(&syncpt->intr.lock); in process_wait_list()
202 struct host1x_syncpt *syncpt = in syncpt_thresh_work() local
[all …]
Dsyncpt.c14 #include "syncpt.h"
61 struct host1x_syncpt *sp = host->syncpt; in host1x_syncpt_alloc()
137 struct host1x_syncpt *sp_base = host->syncpt; in host1x_syncpt_restore()
142 * Unassign syncpt from channels for purposes of Tegra186 in host1x_syncpt_restore()
164 struct host1x_syncpt *sp_base = host->syncpt; in host1x_syncpt_save()
331 struct host1x_syncpt *syncpt; in host1x_syncpt_init() local
334 syncpt = devm_kcalloc(host->dev, host->info->nb_pts, sizeof(*syncpt), in host1x_syncpt_init()
336 if (!syncpt) in host1x_syncpt_init()
345 syncpt[i].id = i; in host1x_syncpt_init()
346 syncpt[i].host = host; in host1x_syncpt_init()
[all …]
Ddebug.c91 u32 max = host1x_syncpt_read_max(m->syncpt + i); in show_syncpts()
92 u32 min = host1x_syncpt_load(m->syncpt + i); in show_syncpts()
95 spin_lock(&m->syncpt[i].intr.lock); in show_syncpts()
96 list_for_each(pos, &m->syncpt[i].intr.wait_head) in show_syncpts()
98 spin_unlock(&m->syncpt[i].intr.lock); in show_syncpts()
100 if (!kref_read(&m->syncpt[i].ref)) in show_syncpts()
108 i, m->syncpt[i].name, min, max, waiters); in show_syncpts()
114 base_val = host1x_syncpt_load_wait_base(m->syncpt + i); in show_syncpts()
Ddev.h20 #include "syncpt.h"
66 void (*restore)(struct host1x_syncpt *syncpt);
67 void (*restore_wait_base)(struct host1x_syncpt *syncpt);
68 void (*load_wait_base)(struct host1x_syncpt *syncpt);
69 u32 (*load)(struct host1x_syncpt *syncpt);
70 int (*cpu_incr)(struct host1x_syncpt *syncpt);
71 void (*assign_to_channel)(struct host1x_syncpt *syncpt,
128 struct host1x_syncpt *syncpt; member
Dcdma.c282 cdma->timeout.syncpt = job->syncpt; in cdma_start_timer_locked()
320 struct host1x_syncpt *sp = job->syncpt; in update_cdma_locked()
322 /* Check whether this syncpt has completed, and bail if not */ in update_cdma_locked()
325 /* Start timer on next pending syncpt */ in update_cdma_locked()
370 syncpt_val = host1x_syncpt_load(cdma->timeout.syncpt); in host1x_cdma_update_sync_queue()
377 * completed based on the current HW syncpt value. It's likely there in host1x_cdma_update_sync_queue()
379 * where a syncpt incr happens just prior/during the teardown. in host1x_cdma_update_sync_queue()
441 host1x_syncpt_set_locked(job->syncpt); in host1x_cdma_update_sync_queue()
447 if (job->syncpt != failed_job->syncpt) in host1x_cdma_update_sync_queue()
549 if (job->syncpt->locked) { in host1x_cdma_begin()
Dcdma.h46 struct host1x_syncpt *syncpt; /* buffer completion syncpt */ member
47 u32 syncpt_val; /* syncpt value when completed */
Djob.c22 #include "syncpt.h"
92 host1x_intr_put_ref(job->syncpt->host, job->syncpt->id, in job_free()
95 if (job->syncpt) in job_free()
96 host1x_syncpt_put(job->syncpt); in job_free()
678 dev_dbg(dev, " SYNCPT_ID %d\n", job->syncpt->id); in host1x_job_dump()
DMakefile4 syncpt.o \
Dintr.h70 int host1x_intr_add_action(struct host1x *host, struct host1x_syncpt *syncpt,
Dfence.c16 #include "syncpt.h"
/Linux-v6.1/drivers/gpu/host1x/hw/
Dintr_hw.c20 static void host1x_intr_syncpt_handle(struct host1x_syncpt *syncpt) in host1x_intr_syncpt_handle() argument
22 unsigned int id = syncpt->id; in host1x_intr_syncpt_handle()
23 struct host1x *host = syncpt->host; in host1x_intr_syncpt_handle()
30 schedule_work(&syncpt->intr.work); in host1x_intr_syncpt_handle()
43 struct host1x_syncpt *syncpt = in syncpt_thresh_isr() local
44 host->syncpt + (i * 32 + id); in syncpt_thresh_isr()
45 host1x_intr_syncpt_handle(syncpt); in syncpt_thresh_isr()
102 INIT_WORK(&host->syncpt[i].intr.work, syncpt_thresh_work); in _host1x_intr_init_host_sync()
147 cancel_work_sync(&host->syncpt[i].intr.work); in _host1x_free_syncpt_irq()
Dchannel_hw.c165 struct host1x_syncpt *sp = job->syncpt; in synchronize_syncpt_base()
217 struct host1x_syncpt *sp = job->syncpt; in channel_program_cdma()
233 HOST1X_UCLASS_INCR_SYNCPT_INDX_F(job->syncpt->id) | in channel_program_cdma()
235 submit_wait(job, job->syncpt->id, fence, job->class); in channel_program_cdma()
245 HOST1X_UCLASS_INCR_SYNCPT_INDX_F(job->syncpt->id) | in channel_program_cdma()
247 submit_wait(job, job->syncpt->id, fence, job->class); in channel_program_cdma()
261 host1x_class_host_wait_syncpt(job->syncpt->id, in channel_program_cdma()
284 struct host1x_syncpt *sp = job->syncpt; in channel_submit()
293 job->syncpt->id, job->syncpt_incrs); in channel_submit()
Dcdma_hw.c26 * Increment timedout buffer's syncpt via CPU.
34 host1x_syncpt_incr(cdma->timeout.syncpt); in cdma_timeout_cpu_incr()
37 host1x_syncpt_load(cdma->timeout.syncpt); in cdma_timeout_cpu_incr()
303 syncpt_val = host1x_syncpt_load(cdma->timeout.syncpt); in cdma_timeout_handler()
316 __func__, cdma->timeout.syncpt->id, cdma->timeout.syncpt->name, in cdma_timeout_handler()
Ddebug_hw_1x01.c43 host1x_debug_output(o, "waiting on syncpt %d val %d\n", in host1x_debug_show_channel_cdma()
53 host1x_debug_output(o, "waiting on syncpt %d val %d (base %d = %d; offset = %d)\n", in host1x_debug_show_channel_cdma()
Ddebug_hw.c201 host1x_debug_output(o, "JOB, syncpt %u: %u timeout: %u num_slots: %u num_handles: %u\n", in show_channel_gathers()
202 job->syncpt->id, job->syncpt_end, job->timeout, in show_channel_gathers()
Dsyncpt_hw.c11 #include "../syncpt.h"
Ddebug_hw_1x06.c52 host1x_debug_output(o, "waiting on syncpt\n"); in host1x_debug_show_channel_cdma()
/Linux-v6.1/fs/jfs/
Djfs_logmgr.h276 * SYNCPT: log sync point
278 * replay log up to syncpt address specified;
281 __le32 sync; /* 4: syncpt address (0 = here) */
282 } syncpt; member
356 * before writing syncpt.
379 /* syncpt */
380 int nextsync; /* 4: bytes to write before next syncpt */
394 int syncpt; /* 4: addr of last syncpt record */ member
485 diff = (lsn) - (log)->syncpt;\
Djfs_logmgr.c276 * commit time to allow forwarding log syncpt past log in lmLog()
317 * forward log syncpt if log reached next syncpt trigger in lmLog()
907 * FUNCTION: write log SYNCPT record for specified log
924 int written; /* written since last syncpt */ in lmLogSync()
940 * forward syncpt in lmLogSync()
942 /* if last sync is same as last syncpt, in lmLogSync()
946 if (log->sync == log->syncpt) { in lmLogSync()
959 /* if sync is different from last syncpt, in lmLogSync()
960 * write a SYNCPT record with syncpt = sync. in lmLogSync()
961 * reset syncpt = sync in lmLogSync()
[all …]
/Linux-v6.1/drivers/gpu/drm/tegra/
Dsubmit.c337 if (args->syncpt.flags) { in submit_get_syncpt()
338 SUBMIT_ERR(context, "invalid flag specified for syncpt"); in submit_get_syncpt()
342 /* Syncpt ref will be dropped on job release */ in submit_get_syncpt()
343 sp = xa_load(syncpoints, args->syncpt.id); in submit_get_syncpt()
345 SUBMIT_ERR(context, "syncpoint specified in syncpt was not allocated"); in submit_get_syncpt()
349 job->syncpt = host1x_syncpt_get(sp); in submit_get_syncpt()
350 job->syncpt_incrs = args->syncpt.increments; in submit_get_syncpt()
462 if (cmd->wait_syncpt.id != args->syncpt.id) { in submit_create_job()
659 args->syncpt.value = job->syncpt_end; in tegra_drm_ioctl_channel_submit()
662 struct dma_fence *fence = host1x_fence_create(job->syncpt, job->syncpt_end); in tegra_drm_ioctl_channel_submit()
Ddrm.c180 struct drm_tegra_syncpt syncpt; in tegra_drm_submit() local
306 if (copy_from_user(&syncpt, user_syncpt, sizeof(syncpt))) { in tegra_drm_submit()
312 sp = host1x_syncpt_get_by_id(host1x, syncpt.id); in tegra_drm_submit()
320 job->syncpt_incrs = syncpt.incrs; in tegra_drm_submit()
321 job->syncpt = sp; in tegra_drm_submit()
523 struct host1x_syncpt *syncpt; in tegra_get_syncpt() local
539 syncpt = context->client->base.syncpts[args->index]; in tegra_get_syncpt()
540 args->id = host1x_syncpt_id(syncpt); in tegra_get_syncpt()
577 struct host1x_syncpt *syncpt; in tegra_get_syncpt_base() local
588 if (args->syncpt >= context->client->base.num_syncpts) { in tegra_get_syncpt_base()
[all …]
Ddc.c1759 if (dc->syncpt && !dc->soc->has_nvdisplay) in tegra_dc_get_vblank_counter()
1760 return host1x_syncpt_read(dc->syncpt); in tegra_dc_get_vblank_counter()
2162 if (dc->syncpt) { in tegra_crtc_atomic_enable()
2163 u32 syncpt = host1x_syncpt_id(dc->syncpt), enable; in tegra_crtc_atomic_enable() local
2173 value = enable | syncpt; in tegra_crtc_atomic_enable()
2630 dc->syncpt = host1x_syncpt_request(client, flags); in tegra_dc_init()
2631 if (!dc->syncpt) in tegra_dc_init()
2715 host1x_syncpt_put(dc->syncpt); in tegra_dc_init()
2740 host1x_syncpt_put(dc->syncpt); in tegra_dc_exit()
/Linux-v6.1/Documentation/devicetree/bindings/display/tegra/
Dnvidia,tegra20-host1x.yaml134 - const: syncpt
171 - const: syncpt
242 interrupts = <0 65 0x04>, /* mpcore syncpt */
244 interrupt-names = "syncpt", "host1x";
378 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /* mpcore syncpt */
380 interrupt-names = "syncpt", "host1x";
/Linux-v6.1/drivers/staging/media/tegra-video/
Dtegra210.c347 * Tegra VI block interacts with host1x syncpt to synchronize in tegra_channel_capture_frame()
353 * register are added to HW syncpt FIFO and when HW triggers, in tegra_channel_capture_frame()
354 * syncpt condition is removed from the FIFO and counter at in tegra_channel_capture_frame()
364 /* Program FRAME_START trigger condition syncpt request */ in tegra_channel_capture_frame()
374 /* Program MW_ACK_DONE trigger condition syncpt request */ in tegra_channel_capture_frame()
388 * Wait for syncpt counter to reach frame start event threshold in tegra_channel_capture_frame()
406 "frame start syncpt timeout: %d\n", err); in tegra_channel_capture_frame()
432 * Wait for syncpt counter to reach MW_ACK_DONE event threshold in tegra_channel_capture_done()
449 "MW_ACK_DONE syncpt timeout: %d\n", ret); in tegra_channel_capture_done()
535 /* clear syncpt errors */ in tegra210_vi_start_streaming()
/Linux-v6.1/include/uapi/drm/
Dtegra_drm.h235 * @syncpt:
239 __u32 syncpt; member
377 * @syncpt:
381 __u32 syncpt; member
991 struct drm_tegra_submit_syncpt syncpt; member

12