Home
last modified time | relevance | path

Searched refs:host1x (Results 1 – 25 of 113) sorted by relevance

12345

/linux-6.1.9/drivers/gpu/host1x/
Ddev.h32 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 …]
Dbus.c292 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 …]
Dcdma.c51 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 …]
Ddebug.c54 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 …]
Ddebug.h13 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);
Dsyncpt.h19 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);
Ddev.c44 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 …]
Dcontext.c16 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()
Dintr.h15 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);
Dbus.h11 struct host1x;
15 int host1x_register(struct host1x *host1x);
16 int host1x_unregister(struct host1x *host1x);
Dcontext.h14 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
DKconfig7 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
Dsyncpt.c23 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 …]
Dchannel.c41 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()
Dintr.c89 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()
DMakefile2 host1x-y = \
21 host1x-$(CONFIG_IOMMU_API) += \
24 obj-$(CONFIG_TEGRA_HOST1X) += host1x.o
/linux-6.1.9/Documentation/devicetree/bindings/display/tegra/
Dnvidia,tegra20-host1x.yaml4 $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/
Dcdma_hw.c91 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 …]
Dintr_hw.c23 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()
Dsyncpt_hw.c19 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()
Dhost1x04.h11 struct host1x;
13 int host1x04_init(struct host1x *host);
Dhost1x06.h11 struct host1x;
13 int host1x06_init(struct host1x *host);
/linux-6.1.9/include/linux/
Dhost1x.h24 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/
Dtegra.rst6 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/
Duapi.c78 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()

12345