| /kernel/linux/linux-5.10/drivers/gpu/host1x/ |
| D | intr.c | 152 * Remove & handle all waiters that have completed for the given syncpt 155 struct host1x_syncpt *syncpt, in process_wait_list() argument 165 spin_lock(&syncpt->intr.lock); in process_wait_list() 167 remove_completed_waiters(&syncpt->intr.wait_head, threshold, in process_wait_list() 170 empty = list_empty(&syncpt->intr.wait_head); in process_wait_list() 172 host1x_hw_intr_disable_syncpt_intr(host, syncpt->id); in process_wait_list() 174 reset_threshold_interrupt(host, &syncpt->intr.wait_head, in process_wait_list() 175 syncpt->id); in process_wait_list() 177 spin_unlock(&syncpt->intr.lock); in process_wait_list() 193 struct host1x_syncpt *syncpt = in syncpt_thresh_work() local [all …]
|
| D | dev.h | 19 #include "syncpt.h" 40 int (*timeout_init)(struct host1x_cdma *cdma, unsigned int syncpt); 65 void (*restore)(struct host1x_syncpt *syncpt); 66 void (*restore_wait_base)(struct host1x_syncpt *syncpt); 67 void (*load_wait_base)(struct host1x_syncpt *syncpt); 68 u32 (*load)(struct host1x_syncpt *syncpt); 69 int (*cpu_incr)(struct host1x_syncpt *syncpt); 70 void (*assign_to_channel)(struct host1x_syncpt *syncpt, 111 struct host1x_syncpt *syncpt; member 265 unsigned int syncpt) in host1x_hw_cdma_timeout_init() argument [all …]
|
| D | syncpt.c | 14 #include "syncpt.h" 49 struct host1x_syncpt *sp = host->syncpt; in host1x_syncpt_alloc() 121 struct host1x_syncpt *sp_base = host->syncpt; in host1x_syncpt_restore() 139 struct host1x_syncpt *sp_base = host->syncpt; in host1x_syncpt_save() 368 struct host1x_syncpt *syncpt; in host1x_syncpt_init() local 371 syncpt = devm_kcalloc(host->dev, host->info->nb_pts, sizeof(*syncpt), in host1x_syncpt_init() 373 if (!syncpt) in host1x_syncpt_init() 382 syncpt[i].id = i; in host1x_syncpt_init() 383 syncpt[i].host = host; in host1x_syncpt_init() 386 * Unassign syncpt from channels for purposes of Tegra186 in host1x_syncpt_init() [all …]
|
| D | debug.c | 77 u32 max = host1x_syncpt_read_max(m->syncpt + i); in show_syncpts() 78 u32 min = host1x_syncpt_load(m->syncpt + i); in show_syncpts() 84 i, m->syncpt[i].name, min, max); in show_syncpts() 90 base_val = host1x_syncpt_load_wait_base(m->syncpt + i); in show_syncpts()
|
| D | cdma.h | 46 struct host1x_syncpt *syncpt; /* buffer completion syncpt */ member 47 u32 syncpt_val; /* syncpt value when completed */
|
| D | cdma.c | 284 cdma->timeout.syncpt = host1x_syncpt_get(host, job->syncpt_id); in cdma_start_timer_locked() 330 /* Check whether this syncpt has completed, and bail if not */ in update_cdma_locked() 332 /* Start timer on next pending syncpt */ in update_cdma_locked() 377 syncpt_val = host1x_syncpt_load(cdma->timeout.syncpt); in host1x_cdma_update_sync_queue() 384 * completed based on the current HW syncpt value. It's likely there in host1x_cdma_update_sync_queue() 386 * where a syncpt incr happens just prior/during the teardown. in host1x_cdma_update_sync_queue()
|
| /kernel/linux/linux-5.10/drivers/gpu/host1x/hw/ |
| D | intr_hw.c | 20 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() 91 INIT_WORK(&host->syncpt[i].intr.work, syncpt_thresh_work); in _host1x_intr_init_host_sync() 136 cancel_work_sync(&host->syncpt[i].intr.work); in _host1x_free_syncpt_irq()
|
| D | cdma_hw.c | 26 * 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() 272 syncpt_val = host1x_syncpt_load(cdma->timeout.syncpt); in cdma_timeout_handler() 285 __func__, cdma->timeout.syncpt->id, cdma->timeout.syncpt->name, in cdma_timeout_handler() 298 static int cdma_timeout_init(struct host1x_cdma *cdma, unsigned int syncpt) in cdma_timeout_init() argument
|
| /kernel/linux/linux-6.6/drivers/gpu/host1x/ |
| D | syncpt.c | 15 #include "syncpt.h" 62 struct host1x_syncpt *sp = host->syncpt; in host1x_syncpt_alloc() 138 struct host1x_syncpt *sp_base = host->syncpt; in host1x_syncpt_restore() 143 * Unassign syncpt from channels for purposes of Tegra186 in host1x_syncpt_restore() 165 struct host1x_syncpt *sp_base = host->syncpt; in host1x_syncpt_save() 283 struct host1x_syncpt *syncpt; in host1x_syncpt_init() local 286 syncpt = devm_kcalloc(host->dev, host->info->nb_pts, sizeof(*syncpt), in host1x_syncpt_init() 288 if (!syncpt) in host1x_syncpt_init() 297 syncpt[i].id = i; in host1x_syncpt_init() 298 syncpt[i].host = host; in host1x_syncpt_init() [all …]
|
| D | debug.c | 92 u32 max = host1x_syncpt_read_max(m->syncpt + i); in show_syncpts() 93 u32 min = host1x_syncpt_load(m->syncpt + i); in show_syncpts() 96 spin_lock_irqsave(&m->syncpt[i].fences.lock, irqflags); in show_syncpts() 97 list_for_each(pos, &m->syncpt[i].fences.list) in show_syncpts() 99 spin_unlock_irqrestore(&m->syncpt[i].fences.lock, irqflags); in show_syncpts() 101 if (!kref_read(&m->syncpt[i].ref)) in show_syncpts() 109 i, m->syncpt[i].name, min, max, waiters); in show_syncpts() 115 base_val = host1x_syncpt_load_wait_base(m->syncpt + i); in show_syncpts()
|
| D | intr.c | 77 struct host1x_syncpt *sp = &host->syncpt[id]; in host1x_intr_handle_interrupt() 108 struct host1x_syncpt *syncpt = &host->syncpt[id]; in host1x_intr_init() local 110 spin_lock_init(&syncpt->fences.lock); in host1x_intr_init() 111 INIT_LIST_HEAD(&syncpt->fences.list); in host1x_intr_init()
|
| D | dev.h | 20 #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
|
| D | cdma.c | 282 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() 559 if (job->syncpt->locked) { in host1x_cdma_begin()
|
| D | cdma.h | 47 struct host1x_syncpt *syncpt; /* buffer completion syncpt */ member 48 u32 syncpt_val; /* syncpt value when completed */
|
| /kernel/linux/linux-6.6/drivers/gpu/host1x/hw/ |
| D | channel_hw.c | 165 struct host1x_syncpt *sp = job->syncpt; in synchronize_syncpt_base() 215 struct host1x_syncpt *sp = job->syncpt; in channel_program_cdma() 231 HOST1X_UCLASS_INCR_SYNCPT_INDX_F(job->syncpt->id) | in channel_program_cdma() 233 submit_wait(job, job->syncpt->id, fence, job->class); in channel_program_cdma() 243 HOST1X_UCLASS_INCR_SYNCPT_INDX_F(job->syncpt->id) | in channel_program_cdma() 245 submit_wait(job, job->syncpt->id, fence, job->class); in channel_program_cdma() 259 host1x_class_host_wait_syncpt(job->syncpt->id, in channel_program_cdma() 290 struct host1x_syncpt *sp = job->syncpt; in channel_submit() 298 job->syncpt->id, job->syncpt_incrs); in channel_submit()
|
| D | cdma_hw.c | 26 * 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()
|
| /kernel/linux/linux-5.10/fs/jfs/ |
| D | jfs_logmgr.h | 276 * 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;\
|
| D | jfs_logmgr.c | 276 * commit time to allow forwarding log syncpt past log in lmLog() 317 * forward log syncpt if log reached next syncpt trigger in lmLog() 915 * FUNCTION: write log SYNCPT record for specified log 932 int written; /* written since last syncpt */ in lmLogSync() 948 * forward syncpt in lmLogSync() 950 /* if last sync is same as last syncpt, in lmLogSync() 954 if (log->sync == log->syncpt) { in lmLogSync() 967 /* if sync is different from last syncpt, in lmLogSync() 968 * write a SYNCPT record with syncpt = sync. in lmLogSync() 969 * reset syncpt = sync in lmLogSync() [all …]
|
| /kernel/linux/linux-6.6/fs/jfs/ |
| D | jfs_logmgr.h | 276 * 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;\
|
| D | jfs_logmgr.c | 276 * 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 …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/tegra/ |
| D | submit.c | 332 if (args->syncpt.flags) { in submit_get_syncpt() 333 SUBMIT_ERR(context, "invalid flag specified for syncpt"); in submit_get_syncpt() 337 /* Syncpt ref will be dropped on job release */ in submit_get_syncpt() 338 sp = xa_load(syncpoints, args->syncpt.id); in submit_get_syncpt() 340 SUBMIT_ERR(context, "syncpoint specified in syncpt was not allocated"); in submit_get_syncpt() 344 job->syncpt = host1x_syncpt_get(sp); in submit_get_syncpt() 345 job->syncpt_incrs = args->syncpt.increments; in submit_get_syncpt() 457 if (cmd->wait_syncpt.id != args->syncpt.id) { in submit_create_job() 646 args->syncpt.value = job->syncpt_end; in tegra_drm_ioctl_channel_submit() 649 struct dma_fence *fence = host1x_fence_create(job->syncpt, job->syncpt_end, true); in tegra_drm_ioctl_channel_submit()
|
| D | drm.c | 177 struct drm_tegra_syncpt syncpt; in tegra_drm_submit() local 303 if (copy_from_user(&syncpt, user_syncpt, sizeof(syncpt))) { in tegra_drm_submit() 309 sp = host1x_syncpt_get_by_id(host1x, syncpt.id); in tegra_drm_submit() 317 job->syncpt_incrs = syncpt.incrs; in tegra_drm_submit() 318 job->syncpt = sp; in tegra_drm_submit() 520 struct host1x_syncpt *syncpt; in tegra_get_syncpt() local 536 syncpt = context->client->base.syncpts[args->index]; in tegra_get_syncpt() 537 args->id = host1x_syncpt_id(syncpt); in tegra_get_syncpt() 574 struct host1x_syncpt *syncpt; in tegra_get_syncpt_base() local 585 if (args->syncpt >= context->client->base.num_syncpts) { in tegra_get_syncpt_base() [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/display/tegra/ |
| D | nvidia,tegra20-host1x.yaml | 133 - const: syncpt 170 - const: syncpt 241 interrupts = <0 65 0x04>, /* mpcore syncpt */ 243 interrupt-names = "syncpt", "host1x"; 377 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /* mpcore syncpt */ 379 interrupt-names = "syncpt", "host1x";
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/tegra/ |
| D | drm.c | 171 struct drm_tegra_syncpt syncpt; in tegra_drm_submit() local 296 if (copy_from_user(&syncpt, user_syncpt, sizeof(syncpt))) { in tegra_drm_submit() 302 sp = host1x_syncpt_get(host1x, syncpt.id); in tegra_drm_submit() 310 job->syncpt_incrs = syncpt.incrs; in tegra_drm_submit() 311 job->syncpt_id = syncpt.id; in tegra_drm_submit() 506 struct host1x_syncpt *syncpt; in tegra_get_syncpt() local 522 syncpt = context->client->base.syncpts[args->index]; in tegra_get_syncpt() 523 args->id = host1x_syncpt_id(syncpt); in tegra_get_syncpt() 560 struct host1x_syncpt *syncpt; in tegra_get_syncpt_base() local 571 if (args->syncpt >= context->client->base.num_syncpts) { in tegra_get_syncpt_base() [all …]
|
| /kernel/linux/linux-5.10/drivers/staging/media/tegra-video/ |
| D | tegra210.c | 286 * Tegra VI block interacts with host1x syncpt for synchronizing in tegra_channel_capture_frame() 292 * are added to HW syncpt FIFO and when the HW triggers, syncpt in tegra_channel_capture_frame() 302 /* Program FRAME_START trigger condition syncpt request */ in tegra_channel_capture_frame() 311 /* Program MW_ACK_DONE trigger condition syncpt request */ in tegra_channel_capture_frame() 320 /* wait for syncpt counter to reach frame start event threshold */ in tegra_channel_capture_frame() 325 "frame start syncpt timeout: %d\n", err); in tegra_channel_capture_frame() 355 /* wait for syncpt counter to reach MW_ACK_DONE event threshold */ in tegra_channel_capture_done() 360 "MW_ACK_DONE syncpt timeout: %d\n", ret); in tegra_channel_capture_done()
|