Home
last modified time | relevance | path

Searched full:ocmem (Results 1 – 19 of 19) sorted by relevance

/linux-6.12.1/drivers/soc/qcom/
Docmem.c3 * The On Chip Memory (OCMEM) allocator allows various clients to allocate
4 * memory from OCMEM based on performance, latency and power requirements.
25 #include <soc/qcom/ocmem.h>
54 struct ocmem { struct
102 static inline void ocmem_write(struct ocmem *ocmem, u32 reg, u32 data) in ocmem_write() argument
104 writel(data, ocmem->mmio + reg); in ocmem_write()
107 static inline u32 ocmem_read(struct ocmem *ocmem, u32 reg) in ocmem_read() argument
109 return readl(ocmem->mmio + reg); in ocmem_read()
112 static void update_ocmem(struct ocmem *ocmem) in update_ocmem() argument
118 for (i = 0; i < ocmem->config->num_regions; i++) { in update_ocmem()
[all …]
DKconfig66 tristate "Qualcomm On Chip Memory (OCMEM) driver"
70 The On Chip Memory (OCMEM) allocator allows various clients to
71 allocate memory from OCMEM based on performance, latency and power
DMakefile9 obj-$(CONFIG_QCOM_OCMEM) += ocmem.o
/linux-6.12.1/include/soc/qcom/
Docmem.h3 * The On Chip Memory (OCMEM) allocator allows various clients to allocate
4 * memory from OCMEM based on performance, latency and power requirements.
28 struct ocmem;
38 struct ocmem *of_get_ocmem(struct device *dev);
39 struct ocmem_buf *ocmem_allocate(struct ocmem *ocmem, enum ocmem_client client,
41 void ocmem_free(struct ocmem *ocmem, enum ocmem_client client,
46 static inline struct ocmem *of_get_ocmem(struct device *dev) in of_get_ocmem()
51 static inline struct ocmem_buf *ocmem_allocate(struct ocmem *ocmem, in ocmem_allocate() argument
58 static inline void ocmem_free(struct ocmem *ocmem, enum ocmem_client client, in ocmem_free() argument
/linux-6.12.1/Documentation/devicetree/bindings/sram/
Dqcom,ocmem.yaml4 $id: http://devicetree.org/schemas/sram/qcom,ocmem.yaml#
7 title: On Chip Memory (OCMEM) that is present on some Qualcomm Snapdragon SoCs.
13 The On Chip Memory (OCMEM) is typically used by the GPU, camera/video, and
19 - qcom,msm8226-ocmem # v1.1.0
20 - qcom,msm8974-ocmem # v1.4.0
25 - description: OCMEM address range
71 - qcom,msm8974-ocmem
104 compatible = "qcom,msm8974-ocmem";
/linux-6.12.1/Documentation/devicetree/bindings/display/msm/
Dgpu.yaml80 - const: ocmem
94 phandle to the On Chip Memory (OCMEM) that's present on some a3xx and
96 Documentation/devicetree/bindings/sram/qcom,ocmem.yaml
270 ocmem@fdd00000 {
271 compatible = "qcom,msm8974-ocmem";
/linux-6.12.1/drivers/gpu/drm/msm/adreno/
Da4xx_gpu.h18 /* if OCMEM is used for GMEM: */
19 struct adreno_ocmem ocmem; member
Da3xx_gpu.h21 /* if OCMEM is used for GMEM: */
22 struct adreno_ocmem ocmem; member
Dadreno_gpu.c18 #include <soc/qcom/ocmem.h>
1031 struct ocmem *ocmem; in adreno_gpu_ocmem_init() local
1033 ocmem = of_get_ocmem(dev); in adreno_gpu_ocmem_init()
1034 if (IS_ERR(ocmem)) { in adreno_gpu_ocmem_init()
1035 if (PTR_ERR(ocmem) == -ENODEV) { in adreno_gpu_ocmem_init()
1037 * Return success since either the ocmem property was in adreno_gpu_ocmem_init()
1038 * not specified in device tree, or ocmem support is in adreno_gpu_ocmem_init()
1044 return PTR_ERR(ocmem); in adreno_gpu_ocmem_init()
1047 ocmem_hdl = ocmem_allocate(ocmem, OCMEM_GRAPHICS, adreno_gpu->info->gmem); in adreno_gpu_ocmem_init()
1051 adreno_ocmem->ocmem = ocmem; in adreno_gpu_ocmem_init()
[all …]
Da3xx_gpu.c260 /* Set the OCMEM base address for A330, etc */ in a3xx_hw_init()
261 if (a3xx_gpu->ocmem.hdl) { in a3xx_hw_init()
263 (unsigned int)(a3xx_gpu->ocmem.base >> 14)); in a3xx_hw_init()
396 adreno_gpu_ocmem_cleanup(&a3xx_gpu->ocmem); in a3xx_destroy()
579 adreno_gpu, &a3xx_gpu->ocmem); in a3xx_gpu_init()
605 ocmem_icc_path = devm_of_icc_get(&pdev->dev, "ocmem"); in a3xx_gpu_init()
608 /* allow -ENODATA, ocmem icc is optional */ in a3xx_gpu_init()
Dadreno_gpu.h245 struct ocmem *ocmem; member
572 struct adreno_ocmem *ocmem);
573 void adreno_gpu_ocmem_cleanup(struct adreno_ocmem *ocmem);
Da4xx_gpu.c240 (unsigned int)(a4xx_gpu->ocmem.base >> 14)); in a4xx_hw_init()
380 adreno_gpu_ocmem_cleanup(&a4xx_gpu->ocmem); in a4xx_destroy()
692 &a4xx_gpu->ocmem); in a4xx_gpu_init()
717 ocmem_icc_path = devm_of_icc_get(&pdev->dev, "ocmem"); in a4xx_gpu_init()
720 /* allow -ENODATA, ocmem icc is optional */ in a4xx_gpu_init()
/linux-6.12.1/drivers/gpu/drm/msm/registers/
D.gitignore4 adreno/ocmem.xml
/linux-6.12.1/arch/arm64/boot/dts/qcom/
Dmsm8992.dtsi28 &ocmem {
Dmsm8994.dtsi1075 ocmem: sram@fdd00000 { label
1076 compatible = "qcom,msm8974-ocmem";
/linux-6.12.1/drivers/firmware/qcom/
Dqcom_scm.c1102 * qcom_scm_ocmem_lock_available() - is OCMEM lock/unlock interface available
1112 * qcom_scm_ocmem_lock() - call OCMEM lock interface to assign an OCMEM
1116 * @offset: OCMEM offset
1117 * @size: OCMEM size
1138 * qcom_scm_ocmem_unlock() - call OCMEM unlock interface to release an OCMEM
1142 * @offset: OCMEM offset
1143 * @size: OCMEM size
/linux-6.12.1/drivers/interconnect/qcom/
Dmsm8974.c26 * Peripheral | On Chip | Memory (OCMEM)
409 /* Virtual NoC is needed for connection to OCMEM */
/linux-6.12.1/arch/arm/boot/dts/qcom/
Dqcom-msm8974.dtsi2151 interconnect-names = "gfx-mem", "ocmem";
2175 compatible = "qcom,msm8974-ocmem";
Dqcom-msm8226.dtsi1192 compatible = "qcom,msm8226-ocmem";