Home
last modified time | relevance | path

Searched full:tcm (Results 1 – 25 of 245) sorted by relevance

12345678910

/kernel/linux/linux-6.6/drivers/gpu/drm/omapdrm/
Dtcm-sita.c18 #include "tcm.h"
154 static s32 sita_reserve_1d(struct tcm *tcm, u32 num_slots, in sita_reserve_1d() argument
160 spin_lock(&(tcm->lock)); in sita_reserve_1d()
161 ret = r2l_b2t_1d(num_slots, &pos, tcm->bitmap, tcm->map_size); in sita_reserve_1d()
163 area->p0.x = pos % tcm->width; in sita_reserve_1d()
164 area->p0.y = pos / tcm->width; in sita_reserve_1d()
165 area->p1.x = (pos + num_slots - 1) % tcm->width; in sita_reserve_1d()
166 area->p1.y = (pos + num_slots - 1) / tcm->width; in sita_reserve_1d()
168 spin_unlock(&(tcm->lock)); in sita_reserve_1d()
173 static s32 sita_reserve_2d(struct tcm *tcm, u16 h, u16 w, u16 align, in sita_reserve_2d() argument
[all …]
Dtcm.h40 struct tcm;
51 struct tcm *tcm; /* parent */ member
56 struct tcm { struct
67 s32 (*reserve_2d)(struct tcm *tcm, u16 height, u16 width, u16 align, argument
70 s32 (*reserve_1d)(struct tcm *tcm, u32 slots, struct tcm_area *area); argument
71 s32 (*free)(struct tcm *tcm, struct tcm_area *area); argument
72 void (*deinit)(struct tcm *tcm); argument
82 * Since some basic parameter checking is done outside the TCM algorithms,
83 * TCM implementation do NOT have to check the following:
91 struct tcm *sita_init(u16 width, u16 height);
[all …]
Domap_dmm_tiler.c35 static struct tcm *containers[TILFMT_NFORMATS];
305 static struct dmm_txn *dmm_txn_init(struct dmm *dmm, struct tcm *tcm) in dmm_txn_init() argument
331 engine->tcm = tcm; in dmm_txn_init()
363 pat->area.y0 += engine->tcm->y_offset; in dmm_txn_append()
364 pat->area.y1 += engine->tcm->y_offset; in dmm_txn_append()
368 .lut_id = engine->tcm->lut_id, in dmm_txn_append()
481 txn = dmm_txn_init(omap_dmm, area->tcm); in fill()
600 if (block->area.tcm) in tiler_release()
747 if (omap_dmm->tcm && omap_dmm->tcm[i]) in omap_dmm_remove()
748 omap_dmm->tcm[i]->deinit(omap_dmm->tcm[i]); in omap_dmm_remove()
[all …]
Domap_dmm_priv.h122 struct tcm *tcm; member
133 struct tcm *tcm; member
178 /* array of LUT - TCM containers */
179 struct tcm **tcm; member
/kernel/linux/linux-5.10/drivers/gpu/drm/omapdrm/
Dtcm-sita.c26 #include "tcm.h"
162 static s32 sita_reserve_1d(struct tcm *tcm, u32 num_slots, in sita_reserve_1d() argument
168 spin_lock(&(tcm->lock)); in sita_reserve_1d()
169 ret = r2l_b2t_1d(num_slots, &pos, tcm->bitmap, tcm->map_size); in sita_reserve_1d()
171 area->p0.x = pos % tcm->width; in sita_reserve_1d()
172 area->p0.y = pos / tcm->width; in sita_reserve_1d()
173 area->p1.x = (pos + num_slots - 1) % tcm->width; in sita_reserve_1d()
174 area->p1.y = (pos + num_slots - 1) / tcm->width; in sita_reserve_1d()
176 spin_unlock(&(tcm->lock)); in sita_reserve_1d()
181 static s32 sita_reserve_2d(struct tcm *tcm, u16 h, u16 w, u16 align, in sita_reserve_2d() argument
[all …]
Dtcm.h40 struct tcm;
51 struct tcm *tcm; /* parent */ member
56 struct tcm { struct
67 s32 (*reserve_2d)(struct tcm *tcm, u16 height, u16 width, u16 align, argument
70 s32 (*reserve_1d)(struct tcm *tcm, u32 slots, struct tcm_area *area); argument
71 s32 (*free)(struct tcm *tcm, struct tcm_area *area); argument
72 void (*deinit)(struct tcm *tcm); argument
82 * Since some basic parameter checking is done outside the TCM algorithms,
83 * TCM implementation do NOT have to check the following:
91 struct tcm *sita_init(u16 width, u16 height);
[all …]
Domap_dmm_tiler.c42 static struct tcm *containers[TILFMT_NFORMATS];
312 static struct dmm_txn *dmm_txn_init(struct dmm *dmm, struct tcm *tcm) in dmm_txn_init() argument
338 engine->tcm = tcm; in dmm_txn_init()
370 pat->area.y0 += engine->tcm->y_offset; in dmm_txn_append()
371 pat->area.y1 += engine->tcm->y_offset; in dmm_txn_append()
375 .lut_id = engine->tcm->lut_id, in dmm_txn_append()
488 txn = dmm_txn_init(omap_dmm, area->tcm); in fill()
607 if (block->area.tcm) in tiler_release()
754 if (omap_dmm->tcm && omap_dmm->tcm[i]) in omap_dmm_remove()
755 omap_dmm->tcm[i]->deinit(omap_dmm->tcm[i]); in omap_dmm_remove()
[all …]
Domap_dmm_priv.h130 struct tcm *tcm; member
141 struct tcm *tcm; member
186 /* array of LUT - TCM containers */
187 struct tcm **tcm; member
/kernel/linux/linux-6.6/Documentation/arch/arm/
Dtcm.rst2 ARM TCM (Tightly-Coupled Memory) handling in Linux
7 Some ARM SoCs have a so-called TCM (Tightly-Coupled Memory).
11 Due to being embedded inside the CPU, the TCM has a
12 Harvard-architecture, so there is an ITCM (instruction TCM)
13 and a DTCM (data TCM). The DTCM can not contain any
19 location and size of TCM memories. arch/arm/include/asm/cputype.h
22 at http://infocenter.arm.com, search for "TCM Status Register"
27 There is further a TCM region register (search for "TCM Region
29 size of TCM memories at runtime. This is used to read out and modify
30 TCM location and size. Notice that this is not a MMU table: you
[all …]
/kernel/linux/linux-5.10/Documentation/arm/
Dtcm.rst2 ARM TCM (Tightly-Coupled Memory) handling in Linux
7 Some ARM SoCs have a so-called TCM (Tightly-Coupled Memory).
11 Due to being embedded inside the CPU, the TCM has a
12 Harvard-architecture, so there is an ITCM (instruction TCM)
13 and a DTCM (data TCM). The DTCM can not contain any
19 location and size of TCM memories. arch/arm/include/asm/cputype.h
22 at http://infocenter.arm.com, search for "TCM Status Register"
27 There is further a TCM region register (search for "TCM Region
29 size of TCM memories at runtime. This is used to read out and modify
30 TCM location and size. Notice that this is not a MMU table: you
[all …]
/kernel/linux/linux-6.6/arch/csky/include/asm/
Dtcm.h7 #error "You should not be including tcm.h unless you have a TCM!"
13 #define __tcmdata __section(".tcm.data")
15 #define __tcmconst __section(".tcm.rodata")
16 /* Tag functions inside TCM called from outside TCM with this */
17 #define __tcmfunc __section(".tcm.text") noinline
18 /* Tag function inside TCM called from inside TCM with this */
19 #define __tcmlocalfunc __section(".tcm.text")
/kernel/linux/linux-5.10/arch/csky/include/asm/
Dtcm.h7 #error "You should not be including tcm.h unless you have a TCM!"
13 #define __tcmdata __section(".tcm.data")
15 #define __tcmconst __section(".tcm.rodata")
16 /* Tag functions inside TCM called from outside TCM with this */
17 #define __tcmfunc __section(".tcm.text") noinline
18 /* Tag function inside TCM called from inside TCM with this */
19 #define __tcmlocalfunc __section(".tcm.text")
/kernel/linux/linux-5.10/drivers/target/
DKconfig4 tristate "Generic Target Core Mod (TCM) and ConfigFS Infrastructure"
12 Say Y or M here to enable the TCM Storage Engine and ConfigFS enabled
13 control path for target_core_mod. This includes built-in TCM RAMDISK
19 tristate "TCM/IBLOCK Subsystem Plugin for Linux/BLOCK"
22 Say Y here to enable the TCM/IBLOCK subsystem plugin for non-buffered
26 tristate "TCM/FILEIO Subsystem Plugin for Linux/VFS"
28 Say Y here to enable the TCM/FILEIO subsystem plugin for buffered
32 tristate "TCM/pSCSI Subsystem Plugin for Linux/SCSI"
35 Say Y here to enable the TCM/pSCSI subsystem plugin for non-buffered
39 tristate "TCM/USER Subsystem Plugin for Linux"
[all …]
/kernel/linux/linux-6.6/drivers/target/
DKconfig4 tristate "Generic Target Core Mod (TCM) and ConfigFS Infrastructure"
12 Say Y or M here to enable the TCM Storage Engine and ConfigFS enabled
13 control path for target_core_mod. This includes built-in TCM RAMDISK
19 tristate "TCM/IBLOCK Subsystem Plugin for Linux/BLOCK"
22 Say Y here to enable the TCM/IBLOCK subsystem plugin for non-buffered
26 tristate "TCM/FILEIO Subsystem Plugin for Linux/VFS"
28 Say Y here to enable the TCM/FILEIO subsystem plugin for buffered
32 tristate "TCM/pSCSI Subsystem Plugin for Linux/SCSI"
35 Say Y here to enable the TCM/pSCSI subsystem plugin for non-buffered
39 tristate "TCM/USER Subsystem Plugin for Linux"
[all …]
/kernel/linux/linux-5.10/arch/arm/include/asm/
Dtcm.h13 #error "You should not be including tcm.h unless you have a TCM!"
19 #define __tcmdata __section(".tcm.data")
21 #define __tcmconst __section(".tcm.rodata")
22 /* Tag functions inside TCM called from outside TCM with this */
23 #define __tcmfunc __attribute__((long_call)) __section(".tcm.text") noinline
24 /* Tag function inside TCM called from inside TCM with this */
25 #define __tcmlocalfunc __section(".tcm.text")
/kernel/linux/linux-6.6/arch/arm/include/asm/
Dtcm.h17 #define __tcmdata __section(".tcm.data")
19 #define __tcmconst __section(".tcm.rodata")
20 /* Tag functions inside TCM called from outside TCM with this */
21 #define __tcmfunc __attribute__((long_call)) __section(".tcm.text") noinline
22 /* Tag function inside TCM called from inside TCM with this */
23 #define __tcmlocalfunc __section(".tcm.text")
32 /* No TCM support, just blank inlines to be optimized out */
/kernel/linux/linux-5.10/drivers/thunderbolt/
Dtb.c36 static inline struct tb *tcm_to_tb(struct tb_cm *tcm) in tcm_to_tb() argument
38 return ((void *)tcm - sizeof(struct tb)); in tcm_to_tb()
71 struct tb_cm *tcm = tb_priv(sw->tb); in tb_add_dp_resources() local
81 list_add_tail(&port->list, &tcm->dp_resources); in tb_add_dp_resources()
88 struct tb_cm *tcm = tb_priv(sw->tb); in tb_remove_dp_resources() local
97 list_for_each_entry_safe(port, tmp, &tcm->dp_resources, list) { in tb_remove_dp_resources()
108 struct tb_cm *tcm = tb_priv(tb); in tb_discover_tunnels() local
147 list_add_tail(&tunnel->list, &tcm->tunnel_list); in tb_discover_tunnels()
260 struct tb_cm *tcm = tb_priv(tb); in tb_find_tunnel() local
263 list_for_each_entry(tunnel, &tcm->tunnel_list, list) { in tb_find_tunnel()
[all …]
/kernel/linux/linux-6.6/drivers/net/wireless/intel/iwlwifi/mvm/
Dutils.c786 low_latency = mvm->tcm.result.low_latency[mvmvif->id]; in iwl_mvm_tcm_iter()
788 if (!mvm->tcm.result.change[mvmvif->id] && in iwl_mvm_tcm_iter()
828 if (mvm->tcm.data[mvmvif->id].opened_rx_ba_sessions) in iwl_mvm_tcm_uapsd_nonagg_detected_wk()
859 if (mvm->tcm.data[mvmvif->id].uapsd_nonagg_detect.detected) in iwl_mvm_uapsd_agg_disconnect()
862 mvm->tcm.data[mvmvif->id].uapsd_nonagg_detect.detected = true; in iwl_mvm_uapsd_agg_disconnect()
873 u64 bytes = mvm->tcm.data[mac].uapsd_nonagg_detect.rx_bytes; in iwl_mvm_check_uapsd_agg_expected_tpt()
878 rate = ewma_rate_read(&mvm->tcm.data[mac].uapsd_nonagg_detect.rate); in iwl_mvm_check_uapsd_agg_expected_tpt()
880 if (!rate || mvm->tcm.data[mac].opened_rx_ba_sessions || in iwl_mvm_check_uapsd_agg_expected_tpt()
881 mvm->tcm.data[mac].uapsd_nonagg_detect.detected) in iwl_mvm_check_uapsd_agg_expected_tpt()
928 unsigned int elapsed = jiffies_to_msecs(ts - mvm->tcm.ts); in iwl_mvm_calc_tcm_stats()
[all …]
/kernel/linux/linux-6.6/arch/arm/kernel/
Dtcm.c4 * TCM memory handling for ARM systems
21 #include <asm/tcm.h>
29 /* TCM section definitions from the linker */
38 * TCM memory resources
73 * Allocate a chunk of TCM memory
91 * Free a chunk of TCM memory
120 * If there are more than one TCM bank of this type, in setup_tcm_bank()
121 * select the TCM bank to operate on in the TCM selection in setup_tcm_bank()
129 /* Read the special TCM region register c9, 0 */ in setup_tcm_bank()
159 /* Force move the TCM bank to where we want it, enable */ in setup_tcm_bank()
[all …]
/kernel/linux/linux-5.10/arch/arm/kernel/
Dtcm.c4 * TCM memory handling for ARM systems
21 #include <asm/tcm.h>
29 /* TCM section definitions from the linker */
38 * TCM memory resources
73 * Allocate a chunk of TCM memory
91 * Free a chunk of TCM memory
120 * If there are more than one TCM bank of this type, in setup_tcm_bank()
121 * select the TCM bank to operate on in the TCM selection in setup_tcm_bank()
129 /* Read the special TCM region register c9, 0 */ in setup_tcm_bank()
159 /* Force move the TCM bank to where we want it, enable */ in setup_tcm_bank()
[all …]
/kernel/linux/linux-6.6/drivers/remoteproc/
Dxlnx_r5_remoteproc.c75 * Hardcoded TCM bank values. This will be removed once TCM bindings are
79 {0xffe00000UL, 0x10000UL, PD_R5_0_ATCM, "atcm0"}, /* TCM 64KB each */
90 * @tcm_bank_count: number TCM banks accessible to this RPU
91 * @tcm_banks: array of each TCM bank data
296 * set RPU cluster and TCM operation mode
300 * @tcm_mode: value expected by fw to configure TCM mode (lockstep or split)
318 dev_err(r5_core->dev, "failed to configure TCM\n"); in zynqmp_r5_set_mode()
358 bootmem == PM_RPU_BOOTMEM_HIVEC ? "OCM" : "TCM"); in zynqmp_r5_rproc_start()
491 * @mem: tcm mem entry to unmap
493 * Unmap TCM banks when powering down R5 core.
[all …]
/kernel/linux/linux-6.6/drivers/thunderbolt/
Dtb.c65 static inline struct tb *tcm_to_tb(struct tb_cm *tcm) in tcm_to_tb() argument
67 return ((void *)tcm - sizeof(struct tb)); in tcm_to_tb()
78 static void tb_init_bandwidth_groups(struct tb_cm *tcm) in tb_init_bandwidth_groups() argument
82 for (i = 0; i < ARRAY_SIZE(tcm->groups); i++) { in tb_init_bandwidth_groups()
83 struct tb_bandwidth_group *group = &tcm->groups[i]; in tb_init_bandwidth_groups()
85 group->tb = tcm_to_tb(tcm); in tb_init_bandwidth_groups()
103 static struct tb_bandwidth_group *tb_find_free_bandwidth_group(struct tb_cm *tcm) in tb_find_free_bandwidth_group() argument
107 for (i = 0; i < ARRAY_SIZE(tcm->groups); i++) { in tb_find_free_bandwidth_group()
108 struct tb_bandwidth_group *group = &tcm->groups[i]; in tb_find_free_bandwidth_group()
118 tb_attach_bandwidth_group(struct tb_cm *tcm, struct tb_port *in, in tb_attach_bandwidth_group() argument
[all …]
/kernel/linux/linux-5.10/drivers/net/wireless/intel/iwlwifi/mvm/
Dutils.c1059 low_latency = mvm->tcm.result.low_latency[mvmvif->id]; in iwl_mvm_tcm_iter()
1061 if (!mvm->tcm.result.change[mvmvif->id] && in iwl_mvm_tcm_iter()
1108 if (mvm->tcm.data[mvmvif->id].opened_rx_ba_sessions) in iwl_mvm_tcm_uapsd_nonagg_detected_wk()
1139 if (mvm->tcm.data[mvmvif->id].uapsd_nonagg_detect.detected) in iwl_mvm_uapsd_agg_disconnect()
1142 mvm->tcm.data[mvmvif->id].uapsd_nonagg_detect.detected = true; in iwl_mvm_uapsd_agg_disconnect()
1152 u64 bytes = mvm->tcm.data[mac].uapsd_nonagg_detect.rx_bytes; in iwl_mvm_check_uapsd_agg_expected_tpt()
1157 rate = ewma_rate_read(&mvm->tcm.data[mac].uapsd_nonagg_detect.rate); in iwl_mvm_check_uapsd_agg_expected_tpt()
1159 if (!rate || mvm->tcm.data[mac].opened_rx_ba_sessions || in iwl_mvm_check_uapsd_agg_expected_tpt()
1160 mvm->tcm.data[mac].uapsd_nonagg_detect.detected) in iwl_mvm_check_uapsd_agg_expected_tpt()
1207 unsigned int elapsed = jiffies_to_msecs(ts - mvm->tcm.ts); in iwl_mvm_calc_tcm_stats()
[all …]
/kernel/linux/linux-6.6/net/sched/
Dsch_api.c913 struct tcmsg *tcm; in tc_fill_qdisc() local
922 nlh = nlmsg_put(skb, portid, seq, event, sizeof(*tcm), flags); in tc_fill_qdisc()
925 tcm = nlmsg_data(nlh); in tc_fill_qdisc()
926 tcm->tcm_family = AF_UNSPEC; in tc_fill_qdisc()
927 tcm->tcm__pad1 = 0; in tc_fill_qdisc()
928 tcm->tcm__pad2 = 0; in tc_fill_qdisc()
929 tcm->tcm_ifindex = qdisc_dev(q)->ifindex; in tc_fill_qdisc()
930 tcm->tcm_parent = clid; in tc_fill_qdisc()
931 tcm->tcm_handle = q->handle; in tc_fill_qdisc()
932 tcm->tcm_info = refcount_read(&q->refcnt); in tc_fill_qdisc()
[all …]
/kernel/linux/linux-5.10/net/sched/
Dsch_api.c889 struct tcmsg *tcm; in tc_fill_qdisc() local
898 nlh = nlmsg_put(skb, portid, seq, event, sizeof(*tcm), flags); in tc_fill_qdisc()
901 tcm = nlmsg_data(nlh); in tc_fill_qdisc()
902 tcm->tcm_family = AF_UNSPEC; in tc_fill_qdisc()
903 tcm->tcm__pad1 = 0; in tc_fill_qdisc()
904 tcm->tcm__pad2 = 0; in tc_fill_qdisc()
905 tcm->tcm_ifindex = qdisc_dev(q)->ifindex; in tc_fill_qdisc()
906 tcm->tcm_parent = clid; in tc_fill_qdisc()
907 tcm->tcm_handle = q->handle; in tc_fill_qdisc()
908 tcm->tcm_info = refcount_read(&q->refcnt); in tc_fill_qdisc()
[all …]

12345678910