Home
last modified time | relevance | path

Searched full:shmem (Results 1 – 25 of 143) sorted by relevance

123456

/Linux-v5.15/drivers/gpu/drm/
Ddrm_gem_shmem_helper.c23 * This library provides helpers for GEM objects backed by shmem buffers
41 struct drm_gem_shmem_object *shmem; in __drm_gem_shmem_create() local
50 obj = kzalloc(sizeof(*shmem), GFP_KERNEL); in __drm_gem_shmem_create()
54 shmem = to_drm_gem_shmem_obj(obj); in __drm_gem_shmem_create()
61 shmem->map_wc = false; /* dma-buf mappings use always writecombine */ in __drm_gem_shmem_create()
72 mutex_init(&shmem->pages_lock); in __drm_gem_shmem_create()
73 mutex_init(&shmem->vmap_lock); in __drm_gem_shmem_create()
74 INIT_LIST_HEAD(&shmem->madv_list); in __drm_gem_shmem_create()
88 return shmem; in __drm_gem_shmem_create()
102 * This function creates a shmem GEM object.
[all …]
/Linux-v5.15/drivers/firmware/arm_scmi/
Dshmem.c32 void shmem_tx_prepare(struct scmi_shared_mem __iomem *shmem, in shmem_tx_prepare() argument
41 spin_until_cond(ioread32(&shmem->channel_status) & in shmem_tx_prepare()
44 iowrite32(0x0, &shmem->channel_status); in shmem_tx_prepare()
46 &shmem->flags); in shmem_tx_prepare()
47 iowrite32(sizeof(shmem->msg_header) + xfer->tx.len, &shmem->length); in shmem_tx_prepare()
48 iowrite32(pack_scmi_header(&xfer->hdr), &shmem->msg_header); in shmem_tx_prepare()
50 memcpy_toio(shmem->msg_payload, xfer->tx.buf, xfer->tx.len); in shmem_tx_prepare()
53 u32 shmem_read_header(struct scmi_shared_mem __iomem *shmem) in shmem_read_header() argument
55 return ioread32(&shmem->msg_header); in shmem_read_header()
58 void shmem_fetch_response(struct scmi_shared_mem __iomem *shmem, in shmem_fetch_response() argument
[all …]
Dmailbox.c24 * @shmem: Transmit/Receive shared memory area
30 struct scmi_shared_mem __iomem *shmem; member
39 shmem_tx_prepare(smbox->shmem, m); in tx_prepare()
46 scmi_rx_callback(smbox->cinfo, shmem_read_header(smbox->shmem), NULL); in rx_callback()
61 struct device_node *shmem; in mailbox_chan_setup() local
71 shmem = of_parse_phandle(cdev->of_node, "shmem", idx); in mailbox_chan_setup()
72 if (!of_device_is_compatible(shmem, "arm,scmi-shmem")) in mailbox_chan_setup()
75 ret = of_address_to_resource(shmem, 0, &res); in mailbox_chan_setup()
76 of_node_put(shmem); in mailbox_chan_setup()
83 smbox->shmem = devm_ioremap(dev, res.start, size); in mailbox_chan_setup()
[all …]
Dsmc.c25 * @shmem: Transmit/Receive shared memory area
34 struct scmi_shared_mem __iomem *shmem; member
52 struct device_node *np = of_parse_phandle(dev->of_node, "shmem", 0); in smc_chan_available()
78 np = of_parse_phandle(cdev->of_node, "shmem", 0); in smc_chan_setup()
79 if (!of_device_is_compatible(np, "arm,scmi-shmem")) in smc_chan_setup()
90 scmi_info->shmem = devm_ioremap(dev, res.start, size); in smc_chan_setup()
91 if (!scmi_info->shmem) { in smc_chan_setup()
147 shmem_tx_prepare(scmi_info->shmem, xfer); in smc_send_message()
158 shmem_read_header(scmi_info->shmem), NULL); in smc_send_message()
173 shmem_fetch_response(scmi_info->shmem, xfer); in smc_fetch_response()
[all …]
Dcommon.h428 /* shmem related declarations */
431 void shmem_tx_prepare(struct scmi_shared_mem __iomem *shmem,
433 u32 shmem_read_header(struct scmi_shared_mem __iomem *shmem);
434 void shmem_fetch_response(struct scmi_shared_mem __iomem *shmem,
436 void shmem_fetch_notification(struct scmi_shared_mem __iomem *shmem,
438 void shmem_clear_channel(struct scmi_shared_mem __iomem *shmem);
439 bool shmem_poll_done(struct scmi_shared_mem __iomem *shmem,
/Linux-v5.15/drivers/gpu/drm/panfrost/
Dpanfrost_gem_shrinker.c23 struct drm_gem_shmem_object *shmem; in panfrost_gem_shrinker_count() local
29 list_for_each_entry(shmem, &pfdev->shrinker_list, madv_list) { in panfrost_gem_shrinker_count()
30 if (drm_gem_shmem_is_purgeable(shmem)) in panfrost_gem_shrinker_count()
31 count += shmem->base.size >> PAGE_SHIFT; in panfrost_gem_shrinker_count()
41 struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); in panfrost_gem_purge() local
51 if (!mutex_trylock(&shmem->pages_lock)) in panfrost_gem_purge()
58 mutex_unlock(&shmem->pages_lock); in panfrost_gem_purge()
70 struct drm_gem_shmem_object *shmem, *tmp; in panfrost_gem_shrinker_scan() local
76 list_for_each_entry_safe(shmem, tmp, &pfdev->shrinker_list, madv_list) { in panfrost_gem_shrinker_scan()
79 if (drm_gem_shmem_is_purgeable(shmem) && in panfrost_gem_shrinker_scan()
[all …]
Dpanfrost_gem.c241 struct drm_gem_shmem_object *shmem; in panfrost_gem_create_with_handle() local
248 shmem = drm_gem_shmem_create(dev, size); in panfrost_gem_create_with_handle()
249 if (IS_ERR(shmem)) in panfrost_gem_create_with_handle()
250 return ERR_CAST(shmem); in panfrost_gem_create_with_handle()
252 bo = to_panfrost_bo(&shmem->base); in panfrost_gem_create_with_handle()
260 ret = drm_gem_handle_create(file_priv, &shmem->base, handle); in panfrost_gem_create_with_handle()
262 drm_gem_object_put(&shmem->base); in panfrost_gem_create_with_handle()
/Linux-v5.15/drivers/gpu/drm/virtio/
Dvirtgpu_object.c70 struct virtio_gpu_object_shmem *shmem = to_virtio_gpu_shmem(bo); in virtio_gpu_cleanup_object() local
72 if (shmem->pages) { in virtio_gpu_cleanup_object()
73 if (shmem->mapped) { in virtio_gpu_cleanup_object()
75 shmem->pages, DMA_TO_DEVICE, 0); in virtio_gpu_cleanup_object()
76 shmem->mapped = 0; in virtio_gpu_cleanup_object()
79 sg_free_table(shmem->pages); in virtio_gpu_cleanup_object()
80 kfree(shmem->pages); in virtio_gpu_cleanup_object()
81 shmem->pages = NULL; in virtio_gpu_cleanup_object()
138 struct virtio_gpu_object_shmem *shmem; in virtio_gpu_create_object() local
141 shmem = kzalloc(sizeof(*shmem), GFP_KERNEL); in virtio_gpu_create_object()
[all …]
/Linux-v5.15/include/drm/
Ddrm_gem_shmem_helper.h21 * struct drm_gem_shmem_object - GEM object backed by shmem
101 * @map_wc: map object write-combined (instead of using shmem defaults).
112 int drm_gem_shmem_get_pages(struct drm_gem_shmem_object *shmem);
113 void drm_gem_shmem_put_pages(struct drm_gem_shmem_object *shmem);
121 static inline bool drm_gem_shmem_is_purgeable(struct drm_gem_shmem_object *shmem) in drm_gem_shmem_is_purgeable() argument
123 return (shmem->madv > 0) && in drm_gem_shmem_is_purgeable()
124 !shmem->vmap_use_count && shmem->sgt && in drm_gem_shmem_is_purgeable()
125 !shmem->base.dma_buf && !shmem->base.import_attach; in drm_gem_shmem_is_purgeable()
153 * DRM_GEM_SHMEM_DRIVER_OPS - Default shmem GEM operations
155 * This macro provides a shortcut for setting the shmem GEM operations in
/Linux-v5.15/Documentation/devicetree/bindings/firmware/
Darm,scmi.yaml68 shmem:
194 shmem:
216 - shmem
227 - shmem
237 shmem = <&cpu_scp_lpri0>,
255 shmem = <&cpu_scp_hpri0>,
308 compatible = "arm,scmi-shmem";
313 compatible = "arm,scmi-shmem";
318 compatible = "arm,scmi-shmem";
323 compatible = "arm,scmi-shmem";
[all …]
Dnvidia,tegra186-bpmp.txt16 - shmem : List of the phandle of the TX and RX shared memory area that
80 cpu_bpmp_tx: shmem@4e000 {
81 compatible = "nvidia,tegra186-bpmp-shmem";
87 cpu_bpmp_rx: shmem@4f000 {
88 compatible = "nvidia,tegra186-bpmp-shmem";
98 shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>;
Darm,scpi.yaml47 shmem:
168 - shmem
176 shmem = <&cpu_scp_hpri>; /* HP-NonSecure */
223 compatible = "arm,scp-shmem";
228 compatible = "arm,scp-shmem";
239 shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
/Linux-v5.15/drivers/net/ethernet/microsoft/mana/
Dshm_channel.c81 /* shmem reads as 0xFFFFFFFF in the reset case */ in mana_smc_poll_register()
145 u64 *shmem; in mana_smc_setup_hwc() local
185 shmem = (u64 *)ptr; in mana_smc_setup_hwc()
187 *shmem = frame_addr & PAGE_FRAME_L48_MASK; in mana_smc_setup_hwc()
193 shmem = (u64 *)ptr; in mana_smc_setup_hwc()
195 *shmem = frame_addr & PAGE_FRAME_L48_MASK; in mana_smc_setup_hwc()
201 shmem = (u64 *)ptr; in mana_smc_setup_hwc()
203 *shmem = frame_addr & PAGE_FRAME_L48_MASK; in mana_smc_setup_hwc()
209 shmem = (u64 *)ptr; in mana_smc_setup_hwc()
211 *shmem = frame_addr & PAGE_FRAME_L48_MASK; in mana_smc_setup_hwc()
[all …]
/Linux-v5.15/drivers/net/arcnet/
Dcom90xx.c44 * shmem are left in the list at Stage 5, they must correspond to each
58 static int com90xx_found(int ioaddr, int airq, u_long shmem, void __iomem *);
86 static int io; /* use the insmod io= irq= shmem= options */
88 static int shmem; variable
93 module_param(shmem, int, 0);
107 if (!io && !irq && !shmem && !*device && com90xx_skip_probe) in com90xx_probe()
131 if (shmem) in com90xx_probe()
132 shmems[numshmems++] = shmem; in com90xx_probe()
203 /* Stage 3: abandon any shmem addresses that don't have the signature in com90xx_probe()
243 * sure no "mirror" shmem areas show up - if they occur in com90xx_probe()
[all …]
Darc-rimi.c65 * need to be passed a specific shmem address, IRQ, and node ID.
72 pr_info("Given: node %02Xh, shmem %lXh, irq %d\n", in arcrimi_probe()
78 pr_err("No autoprobe for RIM I; you must specify the shmem and irq!\n"); in arcrimi_probe()
126 unsigned long first_mirror, last_mirror, shmem; in arcrimi_found() local
146 shmem = dev->mem_start; in arcrimi_found()
159 check_mirror(shmem - MIRROR_SIZE, MIRROR_SIZE) == 0 && in arcrimi_found()
160 check_mirror(shmem - 2 * MIRROR_SIZE, MIRROR_SIZE) == 1) in arcrimi_found()
163 first_mirror = shmem - mirror_size; in arcrimi_found()
168 last_mirror = shmem + mirror_size; in arcrimi_found()
194 release_mem_region(shmem, MIRROR_SIZE); in arcrimi_found()
[all …]
/Linux-v5.15/Documentation/devicetree/bindings/mailbox/
Dmailbox.txt26 - shmem : List of phandle pointing to the shared memory(SHM) area between the
39 Example with shared memory(shmem):
49 cl_shmem: shmem@0 {
50 compatible = "client-shmem";
58 shmem = <&cl_shmem>;
Darm,mhu.yaml110 shmem = <&cpu_scp_hpri>; /* HP-NonSecure */
144 shmem = <&cpu_scp_lpri0>,
162 shmem = <&cpu_scp_hpri0>,
/Linux-v5.15/Documentation/admin-guide/cgroup-v1/
Dmemcg_test.rst108 6. Shmem(tmpfs) Page Cache
111 The best way to understand shmem's page state transition is to read
112 mm/shmem.c.
114 But brief explanation of the behavior of memcg around shmem will be
117 Shmem's page (just leaf page, not direct/indirect block) can be on
119 - radix-tree of shmem's inode.
126 - A new page is added to shmem's radix-tree.
155 9.2 Shmem
158 Historically, memcg's shmem handling was poor and we saw some amount
159 of troubles here. This is because shmem is page-cache but can be
[all …]
/Linux-v5.15/Documentation/devicetree/bindings/sram/
Dsram.yaml83 - amlogic,meson-gxbb-scp-shmem
84 - amlogic,meson-axg-scp-shmem
85 - arm,juno-scp-shmem
86 - arm,scmi-shmem
87 - arm,scp-shmem
/Linux-v5.15/drivers/gpu/drm/lima/
Dlima_gem.c107 struct drm_gem_shmem_object *shmem; in lima_gem_create_handle() local
112 shmem = drm_gem_shmem_create(dev, size); in lima_gem_create_handle()
113 if (IS_ERR(shmem)) in lima_gem_create_handle()
114 return PTR_ERR(shmem); in lima_gem_create_handle()
116 obj = &shmem->base; in lima_gem_create_handle()
/Linux-v5.15/drivers/firmware/tegra/
Dbpmp-tegra186.c176 priv->tx.pool = of_gen_pool_get(bpmp->dev->of_node, "shmem", 0); in tegra186_bpmp_init()
178 dev_err(bpmp->dev, "TX shmem pool not found\n"); in tegra186_bpmp_init()
188 priv->rx.pool = of_gen_pool_get(bpmp->dev->of_node, "shmem", 1); in tegra186_bpmp_init()
190 dev_err(bpmp->dev, "RX shmem pool not found\n"); in tegra186_bpmp_init()
/Linux-v5.15/arch/arm64/boot/dts/nvidia/
Dtegra234.dtsi132 cpu_bpmp_tx: shmem@4e000 {
138 cpu_bpmp_rx: shmem@4f000 {
149 shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>;
/Linux-v5.15/drivers/firmware/
Darm_scpi.c903 { .compatible = "amlogic,meson-gxbb-scp-shmem", },
904 { .compatible = "amlogic,meson-axg-scp-shmem", },
905 { .compatible = "arm,juno-scp-shmem", },
906 { .compatible = "arm,scp-shmem", },
944 struct device_node *shmem = of_parse_phandle(np, "shmem", idx); in scpi_probe() local
946 if (!of_match_node(shmem_of_match, shmem)) in scpi_probe()
949 ret = of_address_to_resource(shmem, 0, &res); in scpi_probe()
950 of_node_put(shmem); in scpi_probe()
/Linux-v5.15/Documentation/translations/zh_CN/filesystems/
Dtmpfs.rst26 中显示为“Shmem”,而在free(1)中显示为“Shared”。请注意,这些计数还包括
27 共享内存(shmem,请参阅ipcs(1))。获得计数的最可靠方法是使用df(1)和du(1)。
/Linux-v5.15/Documentation/translations/zh_TW/filesystems/
Dtmpfs.rst27 中顯示爲「Shmem」,而在free(1)中顯示爲「Shared」。請注意,這些計數還包括
28 共享內存(shmem,請參閱ipcs(1))。獲得計數的最可靠方法是使用df(1)和du(1)。

123456