| /kernel/linux/linux-4.19/drivers/gpu/drm/omapdrm/ |
| D | tcm-sita.c | 26 #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 …]
|
| D | tcm.h | 40 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 …]
|
| D | omap_dmm_tiler.c | 41 static struct tcm *containers[TILFMT_NFORMATS]; 189 static struct dmm_txn *dmm_txn_init(struct dmm *dmm, struct tcm *tcm) in dmm_txn_init() argument 215 engine->tcm = tcm; in dmm_txn_init() 247 pat->area.y0 += engine->tcm->y_offset; in dmm_txn_append() 248 pat->area.y1 += engine->tcm->y_offset; in dmm_txn_append() 252 .lut_id = engine->tcm->lut_id, in dmm_txn_append() 365 txn = dmm_txn_init(omap_dmm, area->tcm); in fill() 484 if (block->area.tcm) in tiler_release() 627 if (omap_dmm->tcm && omap_dmm->tcm[i]) in omap_dmm_remove() 628 omap_dmm->tcm[i]->deinit(omap_dmm->tcm[i]); in omap_dmm_remove() [all …]
|
| D | omap_dmm_priv.h | 130 struct tcm *tcm; member 141 struct tcm *tcm; member 185 /* array of LUT - TCM containers */ 186 struct tcm **tcm; member
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/omapdrm/ |
| D | tcm-sita.c | 26 #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 …]
|
| D | tcm.h | 40 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 …]
|
| D | omap_dmm_tiler.c | 42 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 …]
|
| D | omap_dmm_priv.h | 130 struct tcm *tcm; member 141 struct tcm *tcm; member 186 /* array of LUT - TCM containers */ 187 struct tcm **tcm; member
|
| /kernel/linux/linux-5.10/Documentation/arm/ |
| D | tcm.rst | 2 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-4.19/Documentation/arm/ |
| D | tcm.txt | 1 ARM TCM (Tightly-Coupled Memory) handling in Linux 5 Some ARM SoC:s have a so-called TCM (Tightly-Coupled Memory). 9 Due to being embedded inside the CPU The TCM has a 10 Harvard-architecture, so there is an ITCM (instruction TCM) 11 and a DTCM (data TCM). The DTCM can not contain any 17 location and size of TCM memories. arch/arm/include/asm/cputype.h 20 at http://infocenter.arm.com, search for "TCM Status Register" 25 There is further a TCM region register (search for "TCM Region 27 size of TCM memories at runtime. This is used to read out and modify 28 TCM location and size. Notice that this is not a MMU table: you [all …]
|
| /kernel/linux/linux-4.19/drivers/target/ |
| D | Kconfig | 3 tristate "Generic Target Core Mod (TCM) and ConfigFS Infrastructure" 11 Say Y or M here to enable the TCM Storage Engine and ConfigFS enabled 12 control path for target_core_mod. This includes built-in TCM RAMDISK 18 tristate "TCM/IBLOCK Subsystem Plugin for Linux/BLOCK" 21 Say Y here to enable the TCM/IBLOCK subsystem plugin for non-buffered 25 tristate "TCM/FILEIO Subsystem Plugin for Linux/VFS" 27 Say Y here to enable the TCM/FILEIO subsystem plugin for buffered 31 tristate "TCM/pSCSI Subsystem Plugin for Linux/SCSI" 34 Say Y here to enable the TCM/pSCSI subsystem plugin for non-buffered 38 tristate "TCM/USER Subsystem Plugin for Linux" [all …]
|
| /kernel/linux/linux-5.10/arch/csky/include/asm/ |
| D | tcm.h | 7 #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/ |
| D | Kconfig | 4 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-4.19/arch/arm/include/asm/ |
| D | tcm.h | 14 #error "You should not be including tcm.h unless you have a TCM!" 20 #define __tcmdata __section(.tcm.data) 22 #define __tcmconst __section(.tcm.rodata) 23 /* Tag functions inside TCM called from outside TCM with this */ 24 #define __tcmfunc __attribute__((long_call)) __section(.tcm.text) noinline 25 /* Tag function inside TCM called from inside TCM with this */ 26 #define __tcmlocalfunc __section(.tcm.text)
|
| /kernel/linux/linux-5.10/arch/arm/include/asm/ |
| D | tcm.h | 13 #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-5.10/drivers/thunderbolt/ |
| D | tb.c | 36 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-4.19/arch/arm/kernel/ |
| D | tcm.c | 4 * TCM memory handling for ARM systems 28 /* TCM section definitions from the linker */ 37 * TCM memory resources 72 * Allocate a chunk of TCM memory 90 * Free a chunk of TCM memory 119 * If there are more than one TCM bank of this type, in setup_tcm_bank() 120 * select the TCM bank to operate on in the TCM selection in setup_tcm_bank() 128 /* Read the special TCM region register c9, 0 */ in setup_tcm_bank() 158 /* Force move the TCM bank to where we want it, enable */ in setup_tcm_bank() 183 * has not explicitly given us access to the TCM we will get an [all …]
|
| /kernel/linux/linux-5.10/arch/arm/kernel/ |
| D | tcm.c | 4 * 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-4.19/drivers/thunderbolt/ |
| D | tb.c | 93 struct tb_cm *tcm = tb_priv(tb); in tb_free_invalid_tunnels() local 97 list_for_each_entry_safe(tunnel, n, &tcm->tunnel_list, list) { in tb_free_invalid_tunnels() 182 struct tb_cm *tcm = tb_priv(tb); in tb_activate_pcie_devices() local 231 list_add(&tunnel->list, &tcm->tunnel_list); in tb_activate_pcie_devices() 254 struct tb_cm *tcm = tb_priv(tb); in tb_handle_hotplug() local 258 if (!tcm->hotplug_active) in tb_handle_hotplug() 355 struct tb_cm *tcm = tb_priv(tb); in tb_stop() local 360 list_for_each_entry_safe(tunnel, n, &tcm->tunnel_list, list) { in tb_stop() 365 tcm->hotplug_active = false; /* signal tb_handle_hotplug to quit */ in tb_stop() 370 struct tb_cm *tcm = tb_priv(tb); in tb_start() local [all …]
|
| /kernel/linux/linux-5.10/drivers/net/wireless/intel/iwlwifi/mvm/ |
| D | utils.c | 1056 low_latency = mvm->tcm.result.low_latency[mvmvif->id]; in iwl_mvm_tcm_iter() 1058 if (!mvm->tcm.result.change[mvmvif->id] && in iwl_mvm_tcm_iter() 1105 if (mvm->tcm.data[mvmvif->id].opened_rx_ba_sessions) in iwl_mvm_tcm_uapsd_nonagg_detected_wk() 1136 if (mvm->tcm.data[mvmvif->id].uapsd_nonagg_detect.detected) in iwl_mvm_uapsd_agg_disconnect() 1139 mvm->tcm.data[mvmvif->id].uapsd_nonagg_detect.detected = true; in iwl_mvm_uapsd_agg_disconnect() 1149 u64 bytes = mvm->tcm.data[mac].uapsd_nonagg_detect.rx_bytes; in iwl_mvm_check_uapsd_agg_expected_tpt() 1154 rate = ewma_rate_read(&mvm->tcm.data[mac].uapsd_nonagg_detect.rate); in iwl_mvm_check_uapsd_agg_expected_tpt() 1156 if (!rate || mvm->tcm.data[mac].opened_rx_ba_sessions || in iwl_mvm_check_uapsd_agg_expected_tpt() 1157 mvm->tcm.data[mac].uapsd_nonagg_detect.detected) in iwl_mvm_check_uapsd_agg_expected_tpt() 1204 unsigned int elapsed = jiffies_to_msecs(ts - mvm->tcm.ts); in iwl_mvm_calc_tcm_stats() [all …]
|
| /kernel/linux/linux-5.10/net/sched/ |
| D | sch_api.c | 889 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 …]
|
| /kernel/linux/linux-4.19/net/sched/ |
| D | sch_api.c | 801 struct tcmsg *tcm; in tc_fill_qdisc() local 810 nlh = nlmsg_put(skb, portid, seq, event, sizeof(*tcm), flags); in tc_fill_qdisc() 813 tcm = nlmsg_data(nlh); in tc_fill_qdisc() 814 tcm->tcm_family = AF_UNSPEC; in tc_fill_qdisc() 815 tcm->tcm__pad1 = 0; in tc_fill_qdisc() 816 tcm->tcm__pad2 = 0; in tc_fill_qdisc() 817 tcm->tcm_ifindex = qdisc_dev(q)->ifindex; in tc_fill_qdisc() 818 tcm->tcm_parent = clid; in tc_fill_qdisc() 819 tcm->tcm_handle = q->handle; in tc_fill_qdisc() 820 tcm->tcm_info = refcount_read(&q->refcnt); in tc_fill_qdisc() [all …]
|
| D | cls_api.c | 1075 struct tcmsg *tcm; in tcf_fill_node() local 1079 nlh = nlmsg_put(skb, portid, seq, event, sizeof(*tcm), flags); in tcf_fill_node() 1082 tcm = nlmsg_data(nlh); in tcf_fill_node() 1083 tcm->tcm_family = AF_UNSPEC; in tcf_fill_node() 1084 tcm->tcm__pad1 = 0; in tcf_fill_node() 1085 tcm->tcm__pad2 = 0; in tcf_fill_node() 1087 tcm->tcm_ifindex = qdisc_dev(q)->ifindex; in tcf_fill_node() 1088 tcm->tcm_parent = parent; in tcf_fill_node() 1090 tcm->tcm_ifindex = TCM_IFINDEX_MAGIC_BLOCK; in tcf_fill_node() 1091 tcm->tcm_block_index = block->index; in tcf_fill_node() [all …]
|
| /kernel/linux/linux-4.19/drivers/net/wireless/intel/iwlwifi/mvm/ |
| D | utils.c | 1496 low_latency = mvm->tcm.result.low_latency[mvmvif->id]; in iwl_mvm_tcm_iter() 1498 if (!mvm->tcm.result.change[mvmvif->id] && in iwl_mvm_tcm_iter() 1545 if (mvm->tcm.data[mvmvif->id].opened_rx_ba_sessions) in iwl_mvm_tcm_uapsd_nonagg_detected_wk() 1581 if (mvm->tcm.data[*mac_id].uapsd_nonagg_detect.detected) in iwl_mvm_uapsd_agg_disconnect_iter() 1584 mvm->tcm.data[*mac_id].uapsd_nonagg_detect.detected = true; in iwl_mvm_uapsd_agg_disconnect_iter() 1594 u64 bytes = mvm->tcm.data[mac].uapsd_nonagg_detect.rx_bytes; in iwl_mvm_check_uapsd_agg_expected_tpt() 1598 rate = ewma_rate_read(&mvm->tcm.data[mac].uapsd_nonagg_detect.rate); in iwl_mvm_check_uapsd_agg_expected_tpt() 1600 if (!rate || mvm->tcm.data[mac].opened_rx_ba_sessions || in iwl_mvm_check_uapsd_agg_expected_tpt() 1601 mvm->tcm.data[mac].uapsd_nonagg_detect.detected) in iwl_mvm_check_uapsd_agg_expected_tpt() 1646 unsigned int elapsed = jiffies_to_msecs(ts - mvm->tcm.ts); in iwl_mvm_calc_tcm_stats() [all …]
|
| /kernel/linux/linux-5.10/arch/csky/kernel/ |
| D | vmlinux.lds.S | 67 *(.tcm.text) 68 *(.tcm.rodata) 70 *(.tcm.data) 89 *(.tcm.data)
|