Home
last modified time | relevance | path

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

1234

/linux/drivers/gpu/drm/omapdrm/
H A 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 …]
H A 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 …]
H A Domap_dmm_tiler.c37 static struct tcm *containers[TILFMT_NFORMATS];
307 static struct dmm_txn *dmm_txn_init(struct dmm *dmm, struct tcm *tcm) in dmm_txn_init() argument
333 engine->tcm = tcm; in dmm_txn_init()
365 pat->area.y0 += engine->tcm->y_offset; in dmm_txn_append()
366 pat->area.y1 += engine->tcm->y_offset; in dmm_txn_append()
370 .lut_id = engine->tcm->lut_id, in dmm_txn_append()
483 txn = dmm_txn_init(omap_dmm, area->tcm); in fill()
602 if (block->area.tcm) in tiler_release()
749 if (omap_dmm->tcm && omap_dmm->tcm[i]) in omap_dmm_remove()
750 omap_dmm->tcm[i]->deinit(omap_dmm->tcm[i]); in omap_dmm_remove()
[all …]
H A Domap_dmm_priv.h122 struct tcm *tcm; member
133 struct tcm *tcm; member
178 /* array of LUT - TCM containers */
179 struct tcm **tcm; member
/linux/Documentation/arch/arm/
H A 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 …]
/linux/arch/csky/include/asm/
H A 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")
/linux/drivers/target/
H A 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 …]
/linux/arch/arm/include/asm/
H A 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 */
H A Dvmlinux.lds.h163 *(.tcm.text) \
164 *(.tcm.rodata) \
173 *(.tcm.data) \
/linux/arch/arm/kernel/
H A 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 …]
/linux/drivers/net/wireless/intel/iwlwifi/mvm/
H A Dutils.c814 low_latency = mvm->tcm.result.low_latency[mvmvif->id]; in iwl_mvm_tcm_iter()
816 if (!mvm->tcm.result.change[mvmvif->id] && in iwl_mvm_tcm_iter()
854 if (mvm->tcm.data[mvmvif->id].opened_rx_ba_sessions) in iwl_mvm_tcm_uapsd_nonagg_detected_wk()
885 if (mvm->tcm.data[mvmvif->id].uapsd_nonagg_detect.detected) in iwl_mvm_uapsd_agg_disconnect()
888 mvm->tcm.data[mvmvif->id].uapsd_nonagg_detect.detected = true; in iwl_mvm_uapsd_agg_disconnect()
899 u64 bytes = mvm->tcm.data[mac].uapsd_nonagg_detect.rx_bytes; in iwl_mvm_check_uapsd_agg_expected_tpt()
904 rate = ewma_rate_read(&mvm->tcm.data[mac].uapsd_nonagg_detect.rate); in iwl_mvm_check_uapsd_agg_expected_tpt()
906 if (!rate || mvm->tcm.data[mac].opened_rx_ba_sessions || in iwl_mvm_check_uapsd_agg_expected_tpt()
907 mvm->tcm.data[mac].uapsd_nonagg_detect.detected) in iwl_mvm_check_uapsd_agg_expected_tpt()
954 unsigned int elapsed = jiffies_to_msecs(ts - mvm->tcm.ts); in iwl_mvm_calc_tcm_stats()
[all …]
H A Drx.c226 if (time_after(jiffies, mvm->tcm.ts + MVM_TCM_PERIOD)) in iwl_mvm_rx_handle_tcm()
227 schedule_delayed_work(&mvm->tcm.work, 0); in iwl_mvm_rx_handle_tcm()
228 mdata = &mvm->tcm.data[mac]; in iwl_mvm_rx_handle_tcm()
451 if (!mvm->tcm.paused && len >= sizeof(*hdr) && in iwl_mvm_rx_rx_mpdu()
649 /* make sure that beacon statistics don't go backwards with TCM in iwl_mvm_stat_iterator()
682 /* make sure that beacon statistics don't go backwards with TCM in iwl_mvm_stat_iterator_all_macs()
742 spin_lock(&mvm->tcm.lock); in iwl_mvm_update_tcm_from_stats()
744 struct iwl_mvm_tcm_mac *mdata = &mvm->tcm.data[i]; in iwl_mvm_update_tcm_from_stats()
757 spin_unlock(&mvm->tcm.lock); in iwl_mvm_update_tcm_from_stats()
898 /* make sure that beacon statistics don't go backwards with TCM in iwl_mvm_stat_iterator_all_links()
[all …]
/linux/net/sched/
H A Dsch_api.c921 struct tcmsg *tcm; in tc_fill_qdisc()
930 nlh = nlmsg_put(skb, portid, seq, event, sizeof(*tcm), flags); in tc_fill_qdisc()
933 tcm = nlmsg_data(nlh); in tc_fill_qdisc()
934 tcm->tcm_family = AF_UNSPEC; in tc_fill_qdisc()
935 tcm->tcm__pad1 = 0; in tc_fill_qdisc()
936 tcm->tcm__pad2 = 0; in tc_fill_qdisc()
937 tcm->tcm_ifindex = qdisc_dev(q)->ifindex; in tc_fill_qdisc()
938 tcm->tcm_parent = clid; in tc_fill_qdisc()
939 tcm->tcm_handle = q->handle; in tc_fill_qdisc()
940 tcm in tc_fill_qdisc()
918 struct tcmsg *tcm; tc_fill_qdisc() local
997 tc_qdisc_dump_ignore(struct Qdisc * q,bool dump_invisible,const struct tcmsg * tcm) tc_qdisc_dump_ignore() argument
1498 __tc_get_qdisc(struct sk_buff * skb,struct nlmsghdr * n,struct netlink_ext_ack * extack,struct net_device * dev,struct nlattr * tca[TCA_MAX+1],struct tcmsg * tcm) __tc_get_qdisc() argument
1568 struct tcmsg *tcm = nlmsg_data(n); tc_get_qdisc() local
1612 __tc_modify_qdisc(struct sk_buff * skb,struct nlmsghdr * n,struct netlink_ext_ack * extack,struct net_device * dev,struct nlattr * tca[TCA_MAX+1],struct tcmsg * tcm) __tc_modify_qdisc() argument
1828 struct tcmsg *tcm; tc_modify_qdisc() local
1857 const struct tcmsg *tcm; tc_dump_qdisc_root() local
1917 const struct tcmsg *tcm; tc_dump_qdisc() local
1980 struct tcmsg *tcm; tc_fill_tclass() local
2201 __tc_ctl_tclass(struct sk_buff * skb,struct nlmsghdr * n,struct netlink_ext_ack * extack,struct net_device * dev,struct nlattr * tca[TCA_MAX+1],struct tcmsg * tcm) __tc_ctl_tclass() argument
2331 struct tcmsg *tcm = nlmsg_data(n); tc_ctl_tclass() local
2369 tc_dump_tclass_qdisc(struct Qdisc * q,struct sk_buff * skb,struct tcmsg * tcm,struct netlink_callback * cb,int * t_p,int s_t) tc_dump_tclass_qdisc() argument
2398 tc_dump_tclass_root(struct Qdisc * root,struct sk_buff * skb,struct tcmsg * tcm,struct netlink_callback * cb,int * t_p,int s_t,bool recur) tc_dump_tclass_root() argument
2429 __tc_dump_tclass(struct sk_buff * skb,struct netlink_callback * cb,struct tcmsg * tcm,struct net_device * dev) __tc_dump_tclass() argument
2455 struct tcmsg *tcm = nlmsg_data(cb->nlh); tc_dump_tclass() local
[all...]
H A Dcls_api.c2072 struct tcmsg *tcm; in tcf_fill_node() local
2077 nlh = nlmsg_put(skb, portid, seq, event, sizeof(*tcm), flags); in tcf_fill_node()
2080 tcm = nlmsg_data(nlh); in tcf_fill_node()
2081 tcm->tcm_family = AF_UNSPEC; in tcf_fill_node()
2082 tcm->tcm__pad1 = 0; in tcf_fill_node()
2083 tcm->tcm__pad2 = 0; in tcf_fill_node()
2085 tcm->tcm_ifindex = qdisc_dev(q)->ifindex; in tcf_fill_node()
2086 tcm->tcm_parent = parent; in tcf_fill_node()
2088 tcm->tcm_ifindex = TCM_IFINDEX_MAGIC_BLOCK; in tcf_fill_node()
2089 tcm in tcf_fill_node()
2806 struct tcmsg *tcm = nlmsg_data(cb->nlh); tcf_chain_dump() local
2874 struct tcmsg *tcm = nlmsg_data(cb->nlh); tc_dump_tfilter() local
2981 struct tcmsg *tcm; tc_chain_fill_node() local
3274 struct tcmsg *tcm = nlmsg_data(cb->nlh); tc_dump_chain() local
[all...]
H A Dsch_mq.c203 struct tcmsg *tcm) in mq_graft()
205 return mq_queue_get(sch, TC_H_MIN(tcm->tcm_parent)); in mq_graft()
254 struct sk_buff *skb, struct tcmsg *tcm) in mq_dump_class_stats()
258 tcm->tcm_parent = TC_H_ROOT; in mq_dump_class_stats()
259 tcm->tcm_handle |= TC_H_MIN(cl); in mq_dump_class_stats()
260 tcm->tcm_info = rtnl_dereference(dev_queue->qdisc_sleeping)->handle; in mq_dump_class_stats()
190 mq_select_queue(struct Qdisc * sch,struct tcmsg * tcm) mq_select_queue() argument
241 mq_dump_class(struct Qdisc * sch,unsigned long cl,struct sk_buff * skb,struct tcmsg * tcm) mq_dump_class() argument
/linux/drivers/target/tcm_remote/
H A DKconfig3 tristate "TCM Virtual Remote target"
6 Say Y here to enable the TCM Virtual Remote fabric
7 That fabric is a dummy fabric to tell TCM about configuration
H A Dtcm_remote.c113 * Register the remote_tpg as a emulated TCM Target Endpoint in tcm_remote_make_tpg()
138 * Deregister the remote_tpg as a emulated TCM Target Endpoint in tcm_remote_drop_tpg()
223 return sprintf(page, "TCM Remote Fabric module %s\n", TCM_REMOTE_VERSION); in tcm_remote_wwn_version_show()
264 MODULE_DESCRIPTION("TCM virtual remote target");
/linux/arch/csky/kernel/
H A Dvmlinux.lds.S68 *(.tcm.text)
69 *(.tcm.rodata)
71 *(.tcm.data)
90 *(.tcm.data)
/linux/Documentation/target/
H A Dtcmu-design.rst2 TCM Userspace Design
29 TCM is another name for LIO, an in-kernel iSCSI target (server).
30 Existing TCM targets run in the kernel. TCMU (TCM in Userspace)
35 protocols. TCM also modularizes the data storage. There are existing
220 tcm-user/<hba_num>/<device_name>/<subtype>/<path>
222 where "tcm-user" is common for all TCMU-backed UIO devices. <hba_num>
251 over netlink, using a generic netlink family name of "TCM-USER" and a
319 if (strncmp(buf, "tcm-user", 8))
H A Dtcm_mod_builder.rst2 The TCM v4 fabric module script generator
8 script to generate a brand new functional TCM v4 fabric .ko module of your very own,
9 that once built can be immediately be loaded to start access the new TCM/ConfigFS
20 2) Generate basic infrastructure for loading/unloading LKMs and TCM/ConfigFS fabric module
95 #) Load the new module, create a lun_0 configfs group, and add new TCM Core
/linux/drivers/target/tcm_fc/
H A DKconfig6 Say Y here to enable the TCM FC plugin for accessing FC fabrics in TCM
/linux/drivers/target/loopback/
H A DKconfig3 tristate "TCM Virtual SAS target and Linux/SCSI LDD fabric loopback module"
6 Say Y here to enable the TCM Virtual SAS target and Linux/SCSI LLD
H A Dtcm_loop.h17 /* The TCM I/O descriptor that is accessed via container_of() */
26 * Pointer to TCM session for I_T Nexus
/linux/drivers/usb/gadget/function/
H A Du_tcm.h5 * Utility definitions for the tcm function
37 * Callbacks to be removed when legacy tcm gadget disappears.
/linux/arch/csky/
H A DKconfig267 The implementation are not only used by TCM (Tightly-Coupled Memory)
268 but also used by sram on SOC bus. It follow existed linux tcm
269 software interface, so that old tcm application codes could be

1234