/linux-6.1.9/drivers/gpu/host1x/ |
D | dev.h | 32 int (*init)(struct host1x_channel *channel, struct host1x *host, 55 void (*show_channel_cdma)(struct host1x *host, 58 void (*show_channel_fifo)(struct host1x *host, 61 void (*show_mlocks)(struct host1x *host, struct output *output); 73 void (*enable_protection)(struct host1x *host); 77 int (*init_host_sync)(struct host1x *host, u32 cpm, 80 struct host1x *host, unsigned int id, u32 thresh); 81 void (*enable_syncpt_intr)(struct host1x *host, unsigned int id); 82 void (*disable_syncpt_intr)(struct host1x *host, unsigned int id); 83 void (*disable_all_syncpt_intrs)(struct host1x *host); [all …]
|
D | bus.c | 292 static int host1x_add_client(struct host1x *host1x, in host1x_add_client() argument 298 mutex_lock(&host1x->devices_lock); in host1x_add_client() 300 list_for_each_entry(device, &host1x->devices, list) { in host1x_add_client() 304 mutex_unlock(&host1x->devices_lock); in host1x_add_client() 310 mutex_unlock(&host1x->devices_lock); in host1x_add_client() 314 static int host1x_del_client(struct host1x *host1x, in host1x_del_client() argument 320 mutex_lock(&host1x->devices_lock); in host1x_del_client() 322 list_for_each_entry_safe(device, dt, &host1x->devices, list) { in host1x_del_client() 326 mutex_unlock(&host1x->devices_lock); in host1x_del_client() 332 mutex_unlock(&host1x->devices_lock); in host1x_del_client() [all …]
|
D | cdma.c | 51 struct host1x *host1x = cdma_to_host1x(cdma); in host1x_pushbuffer_destroy() local 56 if (host1x->domain) { in host1x_pushbuffer_destroy() 57 iommu_unmap(host1x->domain, pb->dma, pb->alloc_size); in host1x_pushbuffer_destroy() 58 free_iova(&host1x->iova, iova_pfn(&host1x->iova, pb->dma)); in host1x_pushbuffer_destroy() 61 dma_free_wc(host1x->dev, pb->alloc_size, pb->mapped, pb->phys); in host1x_pushbuffer_destroy() 73 struct host1x *host1x = cdma_to_host1x(cdma); in host1x_pushbuffer_init() local 88 if (host1x->domain) { in host1x_pushbuffer_init() 91 size = iova_align(&host1x->iova, size); in host1x_pushbuffer_init() 93 pb->mapped = dma_alloc_wc(host1x->dev, size, &pb->phys, in host1x_pushbuffer_init() 98 shift = iova_shift(&host1x->iova); in host1x_pushbuffer_init() [all …]
|
D | debug.c | 54 struct host1x *m = dev_get_drvdata(ch->dev->parent); in show_channel() 78 static void show_syncpts(struct host1x *m, struct output *o, bool show_all) in show_syncpts() 125 static void show_all(struct host1x *m, struct output *o, bool show_fifo) in show_all() 191 static void host1x_debugfs_init(struct host1x *host1x) in host1x_debugfs_init() argument 196 host1x->debugfs = de; in host1x_debugfs_init() 198 debugfs_create_file("status", S_IRUGO, de, host1x, &host1x_debug_fops); in host1x_debugfs_init() 199 debugfs_create_file("status_all", S_IRUGO, de, host1x, in host1x_debugfs_init() 205 host1x_hw_debug_init(host1x, de); in host1x_debugfs_init() 215 static void host1x_debugfs_exit(struct host1x *host1x) in host1x_debugfs_exit() argument 217 debugfs_remove_recursive(host1x->debugfs); in host1x_debugfs_exit() [all …]
|
D | debug.h | 13 struct host1x; 41 void host1x_debug_init(struct host1x *host1x); 42 void host1x_debug_deinit(struct host1x *host1x); 43 void host1x_debug_dump(struct host1x *host1x); 44 void host1x_debug_dump_syncpts(struct host1x *host1x);
|
D | syncpt.h | 19 struct host1x; 38 struct host1x *host; 53 int host1x_syncpt_init(struct host1x *host); 56 void host1x_syncpt_deinit(struct host1x *host); 59 unsigned int host1x_syncpt_nb_pts(struct host1x *host); 62 unsigned int host1x_syncpt_nb_bases(struct host1x *host); 65 unsigned int host1x_syncpt_nb_mlocks(struct host1x *host); 108 void host1x_syncpt_save(struct host1x *host); 111 void host1x_syncpt_restore(struct host1x *host);
|
D | dev.c | 44 void host1x_common_writel(struct host1x *host1x, u32 v, u32 r) in host1x_common_writel() argument 46 writel(v, host1x->common_regs + r); in host1x_common_writel() 49 void host1x_hypervisor_writel(struct host1x *host1x, u32 v, u32 r) in host1x_hypervisor_writel() argument 51 writel(v, host1x->hv_regs + r); in host1x_hypervisor_writel() 54 u32 host1x_hypervisor_readl(struct host1x *host1x, u32 r) in host1x_hypervisor_readl() argument 56 return readl(host1x->hv_regs + r); in host1x_hypervisor_readl() 59 void host1x_sync_writel(struct host1x *host1x, u32 v, u32 r) in host1x_sync_writel() argument 61 void __iomem *sync_regs = host1x->regs + host1x->info->sync_offset; in host1x_sync_writel() 66 u32 host1x_sync_readl(struct host1x *host1x, u32 r) in host1x_sync_readl() argument 68 void __iomem *sync_regs = host1x->regs + host1x->info->sync_offset; in host1x_sync_readl() [all …]
|
D | context.c | 16 int host1x_memory_context_list_init(struct host1x *host1x) in host1x_memory_context_list_init() argument 18 struct host1x_memory_context_list *cdl = &host1x->context_list; in host1x_memory_context_list_init() 19 struct device_node *node = host1x->dev->of_node; in host1x_memory_context_list_init() 42 ctx->host = host1x; in host1x_memory_context_list_init() 55 ctx->dev.parent = host1x->dev; in host1x_memory_context_list_init() 61 dev_err(host1x->dev, "could not add context device %d: %d\n", i, err); in host1x_memory_context_list_init() 67 dev_err(host1x->dev, "IOMMU configuration failed for context device %d: %d\n", in host1x_memory_context_list_init() 75 dev_err(host1x->dev, "Context device %d has no IOMMU!\n", i); in host1x_memory_context_list_init() 106 struct host1x_memory_context *host1x_memory_context_alloc(struct host1x *host1x, in host1x_memory_context_alloc() argument 109 struct host1x_memory_context_list *cdl = &host1x->context_list; in host1x_memory_context_alloc()
|
D | intr.h | 15 struct host1x; 70 int host1x_intr_add_action(struct host1x *host, struct host1x_syncpt *syncpt, 81 void host1x_intr_put_ref(struct host1x *host, unsigned int id, void *ref, 85 int host1x_intr_init(struct host1x *host, unsigned int irq_sync); 88 void host1x_intr_deinit(struct host1x *host); 91 void host1x_intr_start(struct host1x *host); 94 void host1x_intr_stop(struct host1x *host);
|
D | bus.h | 11 struct host1x; 15 int host1x_register(struct host1x *host1x); 16 int host1x_unregister(struct host1x *host1x);
|
D | context.h | 14 struct host1x; 25 int host1x_memory_context_list_init(struct host1x *host1x); 28 static inline int host1x_memory_context_list_init(struct host1x *host1x) in host1x_memory_context_list_init() argument
|
D | Kconfig | 7 tristate "NVIDIA Tegra host1x driver" 13 Driver for the NVIDIA Tegra host1x hardware. 15 The Tegra host1x module is the DMA engine for register access to 17 by host1x are referred to as clients. host1x includes some other
|
D | syncpt.c | 23 host1x_syncpt_base_request(struct host1x *host) in host1x_syncpt_base_request() 57 struct host1x_syncpt *host1x_syncpt_alloc(struct host1x *host, in host1x_syncpt_alloc() 135 void host1x_syncpt_restore(struct host1x *host) in host1x_syncpt_restore() 162 void host1x_syncpt_save(struct host1x *host) in host1x_syncpt_save() 328 int host1x_syncpt_init(struct host1x *host) in host1x_syncpt_init() 382 struct host1x *host = dev_get_drvdata(client->host->parent); in host1x_syncpt_request() 424 void host1x_syncpt_deinit(struct host1x *host) in host1x_syncpt_deinit() 473 unsigned int host1x_syncpt_nb_pts(struct host1x *host) in host1x_syncpt_nb_pts() 478 unsigned int host1x_syncpt_nb_bases(struct host1x *host) in host1x_syncpt_nb_bases() 483 unsigned int host1x_syncpt_nb_mlocks(struct host1x *host) in host1x_syncpt_nb_mlocks() [all …]
|
D | channel.c | 41 struct host1x *host = dev_get_drvdata(job->channel->dev->parent); in host1x_job_submit() 63 struct host1x_channel *host1x_channel_get_index(struct host1x *host, in host1x_channel_get_index() 76 struct host1x *host = dev_get_drvdata(channel->dev->parent); in host1x_channel_stop() 86 struct host1x *host = dev_get_drvdata(channel->dev->parent); in release_channel() 101 static struct host1x_channel *acquire_unused_channel(struct host1x *host) in acquire_unused_channel() 129 struct host1x *host = dev_get_drvdata(client->dev->parent); in host1x_channel_request()
|
D | intr.c | 89 static void reset_threshold_interrupt(struct host1x *host, in reset_threshold_interrupt() 163 static int process_wait_list(struct host1x *host, in process_wait_list() 205 struct host1x *host = syncpt->host; in syncpt_thresh_work() 211 int host1x_intr_add_action(struct host1x *host, struct host1x_syncpt *syncpt, in host1x_intr_add_action() 255 void host1x_intr_put_ref(struct host1x *host, unsigned int id, void *ref, in host1x_intr_put_ref() 282 int host1x_intr_init(struct host1x *host, unsigned int irq_sync) in host1x_intr_init() 303 void host1x_intr_deinit(struct host1x *host) in host1x_intr_deinit() 307 void host1x_intr_start(struct host1x *host) in host1x_intr_start() 322 void host1x_intr_stop(struct host1x *host) in host1x_intr_stop()
|
D | Makefile | 2 host1x-y = \ 21 host1x-$(CONFIG_IOMMU_API) += \ 24 obj-$(CONFIG_TEGRA_HOST1X) += host1x.o
|
/linux-6.1.9/Documentation/devicetree/bindings/display/tegra/ |
D | nvidia,tegra20-host1x.yaml | 4 $id: http://devicetree.org/schemas/display/tegra/nvidia,tegra20-host1x.yaml# 7 title: NVIDIA Tegra host1x controller 13 description: The host1x top-level node defines a number of children, each 14 representing one of the host1x client modules defined in this binding. 20 - nvidia,tegra20-host1x 21 - nvidia,tegra30-host1x 22 - nvidia,tegra114-host1x 23 - nvidia,tegra124-host1x 24 - nvidia,tegra210-host1x 25 - nvidia,tegra186-host1x [all …]
|
/linux-6.1.9/drivers/gpu/host1x/hw/ |
D | cdma_hw.c | 91 struct host1x *host1x = cdma_to_host1x(cdma); in cdma_timeout_restart() local 123 dev_dbg(host1x->dev, in cdma_timeout_restart() 170 static void cdma_hw_cmdproc_stop(struct host1x *host, struct host1x_channel *ch, in cdma_hw_cmdproc_stop() 185 static void cdma_hw_teardown(struct host1x *host, struct host1x_channel *ch) in cdma_hw_teardown() 200 struct host1x *host = cdma_to_host1x(cdma); in cdma_freeze() 228 struct host1x *host1x = cdma_to_host1x(cdma); in cdma_resume() local 231 dev_dbg(host1x->dev, in cdma_resume() 235 cdma_hw_cmdproc_stop(host1x, ch, false); in cdma_resume() 253 struct host1x *host1x = cdma_to_host1x(cdma); in timeout_release_mlock() local 268 host1x_common_writel(host1x, 0x0, offset); in timeout_release_mlock() [all …]
|
D | intr_hw.c | 23 struct host1x *host = syncpt->host; in host1x_intr_syncpt_handle() 35 struct host1x *host = dev_id; in syncpt_thresh_isr() 52 static void _host1x_intr_disable_all_syncpt_intrs(struct host1x *host) in _host1x_intr_disable_all_syncpt_intrs() 64 static void intr_hw_init(struct host1x *host, u32 cpm) in intr_hw_init() 93 _host1x_intr_init_host_sync(struct host1x *host, u32 cpm, in _host1x_intr_init_host_sync() 117 static void _host1x_intr_set_syncpt_threshold(struct host1x *host, in _host1x_intr_set_syncpt_threshold() 124 static void _host1x_intr_enable_syncpt_intr(struct host1x *host, in _host1x_intr_enable_syncpt_intr() 131 static void _host1x_intr_disable_syncpt_intr(struct host1x *host, in _host1x_intr_disable_syncpt_intr() 140 static int _host1x_free_syncpt_irq(struct host1x *host) in _host1x_free_syncpt_irq()
|
D | syncpt_hw.c | 19 struct host1x *host = sp->host; in syncpt_restore() 30 struct host1x *host = sp->host; in syncpt_restore_wait_base() 43 struct host1x *host = sp->host; in syncpt_read_wait_base() 55 struct host1x *host = sp->host; in syncpt_load() 78 struct host1x *host = sp->host; in syncpt_cpu_incr() 107 struct host1x *host = sp->host; in syncpt_assign_to_channel() 125 static void syncpt_enable_protection(struct host1x *host) in syncpt_enable_protection()
|
D | host1x04.h | 11 struct host1x; 13 int host1x04_init(struct host1x *host);
|
D | host1x06.h | 11 struct host1x; 13 int host1x06_init(struct host1x *host);
|
/linux-6.1.9/include/linux/ |
D | host1x.h | 24 struct host1x; 28 u64 host1x_get_dma_mask(struct host1x *host1x); 198 struct host1x; 200 struct host1x_syncpt *host1x_syncpt_get_by_id(struct host1x *host, u32 id); 201 struct host1x_syncpt *host1x_syncpt_get_by_id_noref(struct host1x *host, u32 id); 214 struct host1x_syncpt *host1x_syncpt_alloc(struct host1x *host, 460 struct host1x *host; 471 struct host1x_memory_context *host1x_memory_context_alloc(struct host1x *host1x, 476 static inline struct host1x_memory_context *host1x_memory_context_alloc(struct host1x *host1x, in host1x_memory_context_alloc() argument
|
/linux-6.1.9/Documentation/gpu/ |
D | tegra.rst | 6 the host1x controller. host1x supplies command streams, gathered from a push 18 - A host1x driver that provides infrastructure and access to the host1x 25 GPU and video engines via host1x. 30 The various host1x clients need to be bound together into a logical device in 32 this is implemented in the host1x driver. When a driver is registered with the 37 to the logical host1x device. 50 .. kernel-doc:: include/linux/host1x.h 52 .. kernel-doc:: drivers/gpu/host1x/bus.c 58 .. kernel-doc:: drivers/gpu/host1x/syncpt.c 140 to host1x. [all …]
|
/linux-6.1.9/drivers/gpu/drm/tegra/ |
D | uapi.c | 78 struct host1x *host = tegra_drm_to_host1x(drm->dev_private); in tegra_drm_ioctl_channel_open() 300 struct host1x *host1x = tegra_drm_to_host1x(drm->dev_private); in tegra_drm_ioctl_syncpoint_allocate() local 309 sp = host1x_syncpt_alloc(host1x, HOST1X_SYNCPT_CLIENT_MANAGED, current->comm); in tegra_drm_ioctl_syncpoint_allocate() 344 struct host1x *host1x = tegra_drm_to_host1x(drm->dev_private); in tegra_drm_ioctl_syncpoint_wait() local 352 sp = host1x_syncpt_get_by_id_noref(host1x, args->id); in tegra_drm_ioctl_syncpoint_wait()
|