Symbol: ca
arch/mips/include/asm/mach-rc32434/dma.h
25
u32 ca; /* Current Address. */
arch/mips/include/asm/octeon/cvmx-npei-defs.h
146
uint32_t ca:1;
arch/mips/include/asm/octeon/cvmx-npei-defs.h
152
uint32_t ca:1;
arch/mips/include/asm/octeon/cvmx-pci-defs.h
123
uint32_t ca:1;
arch/mips/include/asm/octeon/cvmx-pci-defs.h
129
uint32_t ca:1;
arch/mips/include/asm/octeon/cvmx-pemx-defs.h
60
uint64_t ca:1;
arch/mips/include/asm/octeon/cvmx-pemx-defs.h
66
uint64_t ca:1;
arch/mips/pci/pci-octeon.c
641
bar1_index.s.ca = 1;
arch/mips/pci/pci-octeon.c
677
bar1_index.s.ca = 1;
arch/mips/pci/pcie-octeon.c
1416
bar1_index.s.ca = 1; /* Not Cached */
arch/mips/pci/pcie-octeon.c
933
bar1_index.s.ca = 1; /* Not Cached */
arch/s390/kvm/gaccess.c
104
unsigned long ca : 1; /* Controlled-ASN Bit */
arch/sparc/include/asm/hypervisor.h
1039
unsigned long sun4v_ccb_info(unsigned long ca,
arch/sparc/include/asm/hypervisor.h
1073
unsigned long sun4v_ccb_kill(unsigned long ca,
arch/x86/boot/startup/sev-shared.c
669
pvalidate_4k_page(vaddr, paddr, false, desc->ca, desc->caa_pa);
arch/x86/boot/startup/sev-shared.c
691
pvalidate_4k_page(vaddr, paddr, true, desc->ca, desc->caa_pa);
arch/x86/include/asm/sev.h
578
struct svsm_ca *ca;
crypto/testmgr.h
1098
be64_to_cpua(10, 0e, f4, 1f, 39, ca, 4d, 43),
crypto/testmgr.h
1127
be64_to_cpua(29, e6, fb, ca, 8c, d6, b6, b4),
crypto/testmgr.h
1246
be64_to_cpua(50, 9f, 7d, 1f, ca, 8b, a8, 2d),
crypto/testmgr.h
1283
be64_to_cpua(e4, df, 9b, 7d, 9e, 47, ca, 33),
crypto/testmgr.h
1332
be64_to_cpua(71, d0, e9, ca, a7, c0, cb, aa),
crypto/testmgr.h
845
be64_to_cpua(ee, ca, 6a, 52, 0e, 48, 4d, cc),
drivers/base/cpu.c
219
struct cpu_attr *ca = container_of(attr, struct cpu_attr, attr);
drivers/base/cpu.c
221
return cpumap_print_to_pagebuf(true, buf, ca->map);
drivers/clk/keystone/sci-clk.c
394
const struct sci_clk *ca = a;
drivers/clk/keystone/sci-clk.c
397
if (ca->dev_id == cb->dev_id && ca->clk_id == cb->clk_id)
drivers/clk/keystone/sci-clk.c
399
if (ca->dev_id > cb->dev_id ||
drivers/clk/keystone/sci-clk.c
400
(ca->dev_id == cb->dev_id && ca->clk_id > cb->clk_id))
drivers/clk/keystone/sci-clk.c
536
const struct sci_clk *ca = container_of(a, struct sci_clk, node);
drivers/clk/keystone/sci-clk.c
539
return _cmp_sci_clk(ca, &cb);
drivers/dma/imx-sdma.c
363
u32 ca;
drivers/dma/milbeaut-hdmac.c
119
u32 cb, ca, src_addr, dest_addr, len;
drivers/dma/milbeaut-hdmac.c
147
ca = FIELD_PREP(MLB_HDMAC_IS, mc->slave_id);
drivers/dma/milbeaut-hdmac.c
149
ca |= FIELD_PREP(MLB_HDMAC_BT, 0xf);
drivers/dma/milbeaut-hdmac.c
151
ca |= FIELD_PREP(MLB_HDMAC_BT, 0xd);
drivers/dma/milbeaut-hdmac.c
153
ca |= FIELD_PREP(MLB_HDMAC_BT, 0xb);
drivers/dma/milbeaut-hdmac.c
155
ca |= FIELD_PREP(MLB_HDMAC_TC, (len / burst - 1));
drivers/dma/milbeaut-hdmac.c
156
writel_relaxed(ca, mc->reg_ch_base + MLB_HDMAC_DMACA);
drivers/dma/milbeaut-hdmac.c
157
ca |= MLB_HDMAC_EB;
drivers/dma/milbeaut-hdmac.c
158
writel_relaxed(ca, mc->reg_ch_base + MLB_HDMAC_DMACA);
drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
428
u8 threshold, conf0, conf1, ca;
drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
457
ca = default_hdmi_channel_config[runtime->channels - 2].ca;
drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
464
dw_hdmi_set_channel_allocation(dw->data.hdmi, ca);
drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
81
u8 ca;
drivers/gpu/drm/bridge/synopsys/dw-hdmi-gp-audio.c
39
u8 ca;
drivers/gpu/drm/bridge/synopsys/dw-hdmi-gp-audio.c
80
u8 ca;
drivers/gpu/drm/bridge/synopsys/dw-hdmi-gp-audio.c
84
ca = default_hdmi_channel_config[params->channels - 2].ca;
drivers/gpu/drm/bridge/synopsys/dw-hdmi-gp-audio.c
87
dw_hdmi_set_channel_allocation(dw->data.hdmi, ca);
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
766
void dw_hdmi_set_channel_allocation(struct dw_hdmi *hdmi, unsigned int ca)
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
770
hdmi_writeb(hdmi, ca, HDMI_FC_AUDICONF2);
drivers/gpu/drm/panel/panel-ilitek-ili9341.c
119
u8 ca[ILI9341_CA_LEN];
drivers/gpu/drm/panel/panel-ilitek-ili9341.c
204
.ca = {0xc3, 0x08, 0x50},
drivers/gpu/drm/panel/panel-ilitek-ili9341.c
303
mipi_dbi_command_stackbuf(dbi, 0xca, cfg->ca, ILI9341_CA_LEN);
drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams427ap24.c
462
u8 ca[LEN_GAMMA];
drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams427ap24.c
503
ca[0] = 0xca;
drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams427ap24.c
504
memcpy(&ca[FIX_LEN_GAMMA],
drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams427ap24.c
513
mipi_dsi_dcs_write_buffer_multi(&dsi_ctx, ca, ARRAY_SIZE(ca)); // set gamma
drivers/infiniband/ulp/ipoib/ipoib.h
354
struct ib_device *ca;
drivers/infiniband/ulp/ipoib/ipoib.h
533
int ipoib_dma_map_tx(struct ib_device *ca, struct ipoib_tx_buf *tx_req);
drivers/infiniband/ulp/ipoib/ipoib.h
587
int ipoib_transport_dev_init(struct net_device *dev, struct ib_device *ca);
drivers/infiniband/ulp/ipoib/ipoib_cm.c
1074
attr.cap.max_send_sge = min_t(u32, priv->ca->attrs.max_send_sge,
drivers/infiniband/ulp/ipoib/ipoib_cm.c
1163
p->id = ib_create_cm_id(priv->ca, ipoib_cm_tx_handler, p);
drivers/infiniband/ulp/ipoib/ipoib_cm.c
1567
priv->ca->name, PTR_ERR(priv->cm.srq));
drivers/infiniband/ulp/ipoib/ipoib_cm.c
1603
ipoib_dbg(priv, "max_srq_sge=%d\n", priv->ca->attrs.max_srq_sge);
drivers/infiniband/ulp/ipoib/ipoib_cm.c
1605
max_srq_sge = min_t(int, IPOIB_CM_RX_SG, priv->ca->attrs.max_srq_sge);
drivers/infiniband/ulp/ipoib/ipoib_cm.c
161
mapping[0] = ib_dma_map_single(priv->ca, skb->data, IPOIB_CM_HEAD_SIZE,
drivers/infiniband/ulp/ipoib/ipoib_cm.c
163
if (unlikely(ib_dma_mapping_error(priv->ca, mapping[0]))) {
drivers/infiniband/ulp/ipoib/ipoib_cm.c
175
mapping[i + 1] = ib_dma_map_page(priv->ca, page,
drivers/infiniband/ulp/ipoib/ipoib_cm.c
177
if (unlikely(ib_dma_mapping_error(priv->ca, mapping[i + 1])))
drivers/infiniband/ulp/ipoib/ipoib_cm.c
186
ib_dma_unmap_single(priv->ca, mapping[0], IPOIB_CM_HEAD_SIZE, DMA_FROM_DEVICE);
drivers/infiniband/ulp/ipoib/ipoib_cm.c
189
ib_dma_unmap_page(priv->ca, mapping[i], PAGE_SIZE, DMA_FROM_DEVICE);
drivers/infiniband/ulp/ipoib/ipoib_cm.c
632
ib_dma_sync_single_for_cpu(priv->ca, rx_ring[wr_id].mapping[0],
drivers/infiniband/ulp/ipoib/ipoib_cm.c
635
ib_dma_sync_single_for_device(priv->ca, rx_ring[wr_id].mapping[0],
drivers/infiniband/ulp/ipoib/ipoib_cm.c
753
if (unlikely(ipoib_dma_map_tx(priv->ca, tx_req))) {
drivers/infiniband/ulp/ipoib/ipoib_cm.c
88
ib_dma_unmap_single(priv->ca, mapping[0], IPOIB_CM_HEAD_SIZE, DMA_FROM_DEVICE);
drivers/infiniband/ulp/ipoib/ipoib_cm.c
880
priv->cm.id = ib_create_cm_id(priv->ca, ipoib_cm_rx_handler, dev);
drivers/infiniband/ulp/ipoib/ipoib_cm.c
882
pr_warn("%s: failed to create CM ID\n", priv->ca->name);
drivers/infiniband/ulp/ipoib/ipoib_cm.c
890
pr_warn("%s: failed to listen on ID 0x%llx\n", priv->ca->name,
drivers/infiniband/ulp/ipoib/ipoib_cm.c
91
ib_dma_unmap_page(priv->ca, mapping[i + 1], PAGE_SIZE, DMA_FROM_DEVICE);
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
194
ret = ib_query_port(priv->ca, priv->port, &attr);
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
66
ib_get_device_fw_str(priv->ca, drvinfo->fw_version);
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
68
strscpy(drvinfo->bus_info, dev_name(priv->ca->dev.parent),
drivers/infiniband/ulp/ipoib/ipoib_ib.c
1042
result = ib_query_pkey(priv->ca, priv->port, 0, &priv->pkey);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
1094
if (rdma_query_gid(priv->ca, priv->port, 0, &gid0))
drivers/infiniband/ulp/ipoib/ipoib_ib.c
1111
err = ib_find_gid(priv->ca, &search_gid, &port, &index);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
143
mapping[0] = ib_dma_map_single(priv->ca, skb->data, buf_size,
drivers/infiniband/ulp/ipoib/ipoib_ib.c
145
if (unlikely(ib_dma_mapping_error(priv->ca, mapping[0])))
drivers/infiniband/ulp/ipoib/ipoib_ib.c
276
int ipoib_dma_map_tx(struct ib_device *ca, struct ipoib_tx_buf *tx_req)
drivers/infiniband/ulp/ipoib/ipoib_ib.c
284
mapping[0] = ib_dma_map_single(ca, skb->data, skb_headlen(skb),
drivers/infiniband/ulp/ipoib/ipoib_ib.c
286
if (unlikely(ib_dma_mapping_error(ca, mapping[0])))
drivers/infiniband/ulp/ipoib/ipoib_ib.c
295
mapping[i + off] = ib_dma_map_page(ca,
drivers/infiniband/ulp/ipoib/ipoib_ib.c
300
if (unlikely(ib_dma_mapping_error(ca, mapping[i + off])))
drivers/infiniband/ulp/ipoib/ipoib_ib.c
309
ib_dma_unmap_page(ca, mapping[i - !off], skb_frag_size(frag), DMA_TO_DEVICE);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
313
ib_dma_unmap_single(ca, mapping[0], skb_headlen(skb), DMA_TO_DEVICE);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
327
ib_dma_unmap_single(priv->ca, mapping[0], skb_headlen(skb),
drivers/infiniband/ulp/ipoib/ipoib_ib.c
336
ib_dma_unmap_page(priv->ca, mapping[i + off],
drivers/infiniband/ulp/ipoib/ipoib_ib.c
653
if (unlikely(ipoib_dma_map_tx(priv->ca, tx_req))) {
drivers/infiniband/ulp/ipoib/ipoib_ib.c
951
ib_find_pkey(priv->ca, priv->port, priv->pkey,
drivers/infiniband/ulp/ipoib/ipoib_ib.c
97
ib_dma_unmap_single(priv->ca, mapping[0],
drivers/infiniband/ulp/ipoib/ipoib_main.c
1787
priv->ca->name, ipoib_sendq_size);
drivers/infiniband/ulp/ipoib/ipoib_main.c
1793
if (ipoib_transport_dev_init(dev, priv->ca)) {
drivers/infiniband/ulp/ipoib/ipoib_main.c
1795
priv->ca->name);
drivers/infiniband/ulp/ipoib/ipoib_main.c
1870
priv->pd = ib_alloc_pd(priv->ca, 0);
drivers/infiniband/ulp/ipoib/ipoib_main.c
1872
pr_warn("%s: failed to allocate PD\n", priv->ca->name);
drivers/infiniband/ulp/ipoib/ipoib_main.c
1948
priv->hca_caps = priv->ca->attrs.device_cap_flags;
drivers/infiniband/ulp/ipoib/ipoib_main.c
1949
priv->kernel_caps = priv->ca->attrs.kernel_cap_flags;
drivers/infiniband/ulp/ipoib/ipoib_main.c
1967
result = ib_query_port(priv->ca, priv->port, &attr);
drivers/infiniband/ulp/ipoib/ipoib_main.c
1969
pr_warn("%s: ib_query_port %d failed\n", priv->ca->name,
drivers/infiniband/ulp/ipoib/ipoib_main.c
1973
priv->max_ib_mtu = rdma_mtu_from_attr(priv->ca, priv->port, &attr);
drivers/infiniband/ulp/ipoib/ipoib_main.c
1975
result = ib_query_pkey(priv->ca, priv->port, 0, &priv->pkey);
drivers/infiniband/ulp/ipoib/ipoib_main.c
1978
priv->ca->name, priv->port, result);
drivers/infiniband/ulp/ipoib/ipoib_main.c
1982
result = rdma_query_gid(priv->ca, priv->port, 0, &priv->local_gid);
drivers/infiniband/ulp/ipoib/ipoib_main.c
1985
priv->ca->name, priv->port, result);
drivers/infiniband/ulp/ipoib/ipoib_main.c
1990
SET_NETDEV_DEV(priv->dev, priv->ca->dev.parent);
drivers/infiniband/ulp/ipoib/ipoib_main.c
2053
priv->ca->name, priv->dev->name, priv->port, rc);
drivers/infiniband/ulp/ipoib/ipoib_main.c
2107
return ib_set_vf_link_state(priv->ca, vf, priv->port, link_state);
drivers/infiniband/ulp/ipoib/ipoib_main.c
2116
err = ib_get_vf_config(priv->ca, vf, priv->port, ivf);
drivers/infiniband/ulp/ipoib/ipoib_main.c
2133
return ib_set_vf_guid(priv->ca, vf, priv->port, guid, type);
drivers/infiniband/ulp/ipoib/ipoib_main.c
2142
return ib_get_vf_guid(priv->ca, vf, priv->port, node_guid, port_guid);
drivers/infiniband/ulp/ipoib/ipoib_main.c
2150
return ib_get_vf_stats(priv->ca, vf, priv->port, vf_stats);
drivers/infiniband/ulp/ipoib/ipoib_main.c
2286
priv->ca = hca;
drivers/infiniband/ulp/ipoib/ipoib_main.c
2601
priv->ca, ipoib_event);
drivers/infiniband/ulp/ipoib/ipoib_main.c
811
if (!ib_init_ah_attr_from_path(priv->ca, priv->port,
drivers/infiniband/ulp/ipoib/ipoib_main.c
907
if (rdma_cap_opa_ah(priv->ca, priv->port))
drivers/infiniband/ulp/ipoib/ipoib_main.c
951
ib_sa_path_rec_get(&ipoib_sa_client, priv->ca, priv->port,
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
243
mtu = rdma_mtu_enum_to_int(priv->ca, priv->port,
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
264
ret = rn->attach_mcast(dev, priv->ca, &mcast->mcmember.mgid,
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
277
av.type = rdma_ah_find_type(priv->ca, priv->port);
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
330
if (ib_query_port(priv->ca, priv->port, &attr) ||
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
534
multicast = ib_sa_join_multicast(&ipoib_sa_client, priv->ca, priv->port,
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
561
if (ib_query_port(priv->ca, priv->port, &port_attr)) {
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
694
ret = rn->detach_mcast(dev, priv->ca, &mcast->mcmember.mgid,
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
911
!ib_sa_get_mcmember_rec(priv->ca, priv->port, &mgid, &rec)) {
drivers/infiniband/ulp/ipoib/ipoib_netlink.c
132
err = ipoib_intf_init(ppriv->ca, ppriv->port, dev->name, dev);
drivers/infiniband/ulp/ipoib/ipoib_verbs.c
143
int ipoib_transport_dev_init(struct net_device *dev, struct ib_device *ca)
drivers/infiniband/ulp/ipoib/ipoib_verbs.c
150
.max_send_sge = min_t(u32, priv->ca->attrs.max_send_sge,
drivers/infiniband/ulp/ipoib/ipoib_verbs.c
177
cq_attr.comp_vector = req_vec % priv->ca->num_comp_vectors;
drivers/infiniband/ulp/ipoib/ipoib_verbs.c
178
priv->recv_cq = ib_create_cq(priv->ca, ipoib_ib_rx_completion, NULL,
drivers/infiniband/ulp/ipoib/ipoib_verbs.c
181
pr_warn("%s: failed to create receive CQ\n", ca->name);
drivers/infiniband/ulp/ipoib/ipoib_verbs.c
186
cq_attr.comp_vector = (req_vec + 1) % priv->ca->num_comp_vectors;
drivers/infiniband/ulp/ipoib/ipoib_verbs.c
187
priv->send_cq = ib_create_cq(priv->ca, ipoib_ib_tx_completion, NULL,
drivers/infiniband/ulp/ipoib/ipoib_verbs.c
190
pr_warn("%s: failed to create send CQ\n", ca->name);
drivers/infiniband/ulp/ipoib/ipoib_verbs.c
214
pr_warn("%s: failed to create QP\n", ca->name);
drivers/infiniband/ulp/ipoib/ipoib_verbs.c
46
if (ib_find_pkey(priv->ca, priv->port, priv->pkey, &pkey_index)) {
drivers/infiniband/ulp/ipoib/ipoib_vlan.c
195
ndev = ipoib_intf_alloc(ppriv->ca, ppriv->port, intf_name);
drivers/md/bcache/alloc.c
103
ca = c->cache;
drivers/md/bcache/alloc.c
104
for_each_bucket(b, ca)
drivers/md/bcache/alloc.c
126
bool bch_can_invalidate_bucket(struct cache *ca, struct bucket *b)
drivers/md/bcache/alloc.c
128
return (ca->set->gc_mark_valid || b->reclaimable_in_gc) &&
drivers/md/bcache/alloc.c
133
void __bch_invalidate_one_bucket(struct cache *ca, struct bucket *b)
drivers/md/bcache/alloc.c
135
lockdep_assert_held(&ca->set->bucket_lock);
drivers/md/bcache/alloc.c
139
trace_bcache_invalidate(ca, b - ca->buckets);
drivers/md/bcache/alloc.c
141
bch_inc_gen(ca, b);
drivers/md/bcache/alloc.c
147
static void bch_invalidate_one_bucket(struct cache *ca, struct bucket *b)
drivers/md/bcache/alloc.c
149
__bch_invalidate_one_bucket(ca, b);
drivers/md/bcache/alloc.c
151
fifo_push(&ca->free_inc, b - ca->buckets);
drivers/md/bcache/alloc.c
165
unsigned int min_prio = (INITIAL_PRIO - ca->set->min_prio) / 8; \
drivers/md/bcache/alloc.c
167
(b->prio - ca->set->min_prio + min_prio) * GC_SECTORS_USED(b); \
drivers/md/bcache/alloc.c
173
static void invalidate_buckets_lru(struct cache *ca)
drivers/md/bcache/alloc.c
178
ca->heap.used = 0;
drivers/md/bcache/alloc.c
180
for_each_bucket(b, ca) {
drivers/md/bcache/alloc.c
181
if (!bch_can_invalidate_bucket(ca, b))
drivers/md/bcache/alloc.c
184
if (!heap_full(&ca->heap))
drivers/md/bcache/alloc.c
185
heap_add(&ca->heap, b, bucket_max_cmp);
drivers/md/bcache/alloc.c
186
else if (bucket_max_cmp(b, heap_peek(&ca->heap))) {
drivers/md/bcache/alloc.c
187
ca->heap.data[0] = b;
drivers/md/bcache/alloc.c
188
heap_sift(&ca->heap, 0, bucket_max_cmp);
drivers/md/bcache/alloc.c
192
for (i = ca->heap.used / 2 - 1; i >= 0; --i)
drivers/md/bcache/alloc.c
193
heap_sift(&ca->heap, i, bucket_min_cmp);
drivers/md/bcache/alloc.c
195
while (!fifo_full(&ca->free_inc)) {
drivers/md/bcache/alloc.c
196
if (!heap_pop(&ca->heap, b, bucket_min_cmp)) {
drivers/md/bcache/alloc.c
201
ca->invalidate_needs_gc = 1;
drivers/md/bcache/alloc.c
202
wake_up_gc(ca->set);
drivers/md/bcache/alloc.c
206
bch_invalidate_one_bucket(ca, b);
drivers/md/bcache/alloc.c
210
static void invalidate_buckets_fifo(struct cache *ca)
drivers/md/bcache/alloc.c
215
while (!fifo_full(&ca->free_inc)) {
drivers/md/bcache/alloc.c
216
if (ca->fifo_last_bucket < ca->sb.first_bucket ||
drivers/md/bcache/alloc.c
217
ca->fifo_last_bucket >= ca->sb.nbuckets)
drivers/md/bcache/alloc.c
218
ca->fifo_last_bucket = ca->sb.first_bucket;
drivers/md/bcache/alloc.c
220
b = ca->buckets + ca->fifo_last_bucket++;
drivers/md/bcache/alloc.c
222
if (bch_can_invalidate_bucket(ca, b))
drivers/md/bcache/alloc.c
223
bch_invalidate_one_bucket(ca, b);
drivers/md/bcache/alloc.c
225
if (++checked >= ca->sb.nbuckets) {
drivers/md/bcache/alloc.c
226
ca->invalidate_needs_gc = 1;
drivers/md/bcache/alloc.c
227
wake_up_gc(ca->set);
drivers/md/bcache/alloc.c
233
static void invalidate_buckets_random(struct cache *ca)
drivers/md/bcache/alloc.c
238
while (!fifo_full(&ca->free_inc)) {
drivers/md/bcache/alloc.c
243
n %= (size_t) (ca->sb.nbuckets - ca->sb.first_bucket);
drivers/md/bcache/alloc.c
244
n += ca->sb.first_bucket;
drivers/md/bcache/alloc.c
246
b = ca->buckets + n;
drivers/md/bcache/alloc.c
248
if (bch_can_invalidate_bucket(ca, b))
drivers/md/bcache/alloc.c
249
bch_invalidate_one_bucket(ca, b);
drivers/md/bcache/alloc.c
251
if (++checked >= ca->sb.nbuckets / 2) {
drivers/md/bcache/alloc.c
252
ca->invalidate_needs_gc = 1;
drivers/md/bcache/alloc.c
253
wake_up_gc(ca->set);
drivers/md/bcache/alloc.c
259
static void invalidate_buckets(struct cache *ca)
drivers/md/bcache/alloc.c
261
BUG_ON(ca->invalidate_needs_gc);
drivers/md/bcache/alloc.c
263
switch (CACHE_REPLACEMENT(&ca->sb)) {
drivers/md/bcache/alloc.c
265
invalidate_buckets_lru(ca);
drivers/md/bcache/alloc.c
268
invalidate_buckets_fifo(ca);
drivers/md/bcache/alloc.c
271
invalidate_buckets_random(ca);
drivers/md/bcache/alloc.c
276
#define allocator_wait(ca, cond) \
drivers/md/bcache/alloc.c
283
mutex_unlock(&(ca)->set->bucket_lock); \
drivers/md/bcache/alloc.c
285
test_bit(CACHE_SET_IO_DISABLE, &ca->set->flags)) { \
drivers/md/bcache/alloc.c
291
mutex_lock(&(ca)->set->bucket_lock); \
drivers/md/bcache/alloc.c
296
static int bch_allocator_push(struct cache *ca, long bucket)
drivers/md/bcache/alloc.c
301
if (fifo_push(&ca->free[RESERVE_PRIO], bucket))
drivers/md/bcache/alloc.c
305
if (fifo_push(&ca->free[i], bucket))
drivers/md/bcache/alloc.c
313
struct cache *ca = arg;
drivers/md/bcache/alloc.c
315
mutex_lock(&ca->set->bucket_lock);
drivers/md/bcache/alloc.c
325
if (!fifo_pop(&ca->free_inc, bucket))
drivers/md/bcache/alloc.c
328
allocator_wait(ca, bch_allocator_push(ca, bucket));
drivers/md/bcache/alloc.c
329
wake_up(&ca->set->btree_cache_wait);
drivers/md/bcache/alloc.c
330
wake_up(&ca->set->bucket_wait);
drivers/md/bcache/alloc.c
340
allocator_wait(ca, !ca->invalidate_needs_gc);
drivers/md/bcache/alloc.c
341
invalidate_buckets(ca);
drivers/md/bcache/alloc.c
347
allocator_wait(ca, !atomic_read(&ca->set->prio_blocked));
drivers/md/bcache/alloc.c
348
if (CACHE_SYNC(&ca->sb)) {
drivers/md/bcache/alloc.c
360
if (!fifo_full(&ca->free_inc))
drivers/md/bcache/alloc.c
363
if (bch_prio_write(ca, false) < 0) {
drivers/md/bcache/alloc.c
364
ca->invalidate_needs_gc = 1;
drivers/md/bcache/alloc.c
365
wake_up_gc(ca->set);
drivers/md/bcache/alloc.c
376
long bch_bucket_alloc(struct cache *ca, unsigned int reserve, bool wait)
drivers/md/bcache/alloc.c
384
if (unlikely(test_bit(CACHE_SET_IO_DISABLE, &ca->set->flags)))
drivers/md/bcache/alloc.c
388
if (fifo_pop(&ca->free[RESERVE_NONE], r) ||
drivers/md/bcache/alloc.c
389
fifo_pop(&ca->free[reserve], r))
drivers/md/bcache/alloc.c
393
trace_bcache_alloc_fail(ca, reserve);
drivers/md/bcache/alloc.c
398
prepare_to_wait(&ca->set->bucket_wait, &w,
drivers/md/bcache/alloc.c
401
mutex_unlock(&ca->set->bucket_lock);
drivers/md/bcache/alloc.c
403
atomic_inc(&ca->set->bucket_wait_cnt);
drivers/md/bcache/alloc.c
405
atomic_dec(&ca->set->bucket_wait_cnt);
drivers/md/bcache/alloc.c
407
mutex_lock(&ca->set->bucket_lock);
drivers/md/bcache/alloc.c
408
} while (!fifo_pop(&ca->free[RESERVE_NONE], r) &&
drivers/md/bcache/alloc.c
409
!fifo_pop(&ca->free[reserve], r));
drivers/md/bcache/alloc.c
411
finish_wait(&ca->set->bucket_wait, &w);
drivers/md/bcache/alloc.c
413
if (ca->alloc_thread)
drivers/md/bcache/alloc.c
414
wake_up_process(ca->alloc_thread);
drivers/md/bcache/alloc.c
416
trace_bcache_alloc(ca, reserve);
drivers/md/bcache/alloc.c
418
if (expensive_debug_checks(ca->set)) {
drivers/md/bcache/alloc.c
423
for (iter = 0; iter < prio_buckets(ca) * 2; iter++)
drivers/md/bcache/alloc.c
424
BUG_ON(ca->prio_buckets[iter] == (uint64_t) r);
drivers/md/bcache/alloc.c
427
fifo_for_each(i, &ca->free[j], iter)
drivers/md/bcache/alloc.c
429
fifo_for_each(i, &ca->free_inc, iter)
drivers/md/bcache/alloc.c
433
b = ca->buckets + r;
drivers/md/bcache/alloc.c
437
SET_GC_SECTORS_USED(b, ca->sb.bucket_size);
drivers/md/bcache/alloc.c
449
if (ca->set->avail_nbuckets > 0) {
drivers/md/bcache/alloc.c
450
ca->set->avail_nbuckets--;
drivers/md/bcache/alloc.c
451
bch_update_bucket_in_use(ca->set, &ca->set->gc_stats);
drivers/md/bcache/alloc.c
457
void __bch_bucket_free(struct cache *ca, struct bucket *b)
drivers/md/bcache/alloc.c
462
if (ca->set->avail_nbuckets < ca->set->nbuckets) {
drivers/md/bcache/alloc.c
463
ca->set->avail_nbuckets++;
drivers/md/bcache/alloc.c
464
bch_update_bucket_in_use(ca->set, &ca->set->gc_stats);
drivers/md/bcache/alloc.c
479
struct cache *ca;
drivers/md/bcache/alloc.c
490
ca = c->cache;
drivers/md/bcache/alloc.c
491
b = bch_bucket_alloc(ca, reserve, wait);
drivers/md/bcache/alloc.c
495
k->ptr[0] = MAKE_PTR(ca->buckets[b].gen,
drivers/md/bcache/alloc.c
497
ca->sb.nr_this_dev);
drivers/md/bcache/alloc.c
711
int bch_cache_allocator_start(struct cache *ca)
drivers/md/bcache/alloc.c
714
ca, "bcache_allocator");
drivers/md/bcache/alloc.c
718
ca->alloc_thread = k;
drivers/md/bcache/alloc.c
73
uint8_t bch_inc_gen(struct cache *ca, struct bucket *b)
drivers/md/bcache/alloc.c
77
ca->set->need_gc = max(ca->set->need_gc, bucket_gc_gen(b));
drivers/md/bcache/alloc.c
78
WARN_ON_ONCE(ca->set->need_gc > BUCKET_GC_GEN_MAX);
drivers/md/bcache/alloc.c
85
struct cache *ca;
drivers/md/bcache/bcache.h
1009
int bch_prio_write(struct cache *ca, bool wait);
drivers/md/bcache/bcache.h
1050
int bch_cache_allocator_start(struct cache *ca);
drivers/md/bcache/bcache.h
775
#define bucket_bytes(ca) ((ca)->sb.bucket_size << 9)
drivers/md/bcache/bcache.h
776
#define block_bytes(ca) ((ca)->sb.block_size << 9)
drivers/md/bcache/bcache.h
798
#define prios_per_bucket(ca) \
drivers/md/bcache/bcache.h
799
((meta_bucket_bytes(&(ca)->sb) - sizeof(struct prio_set)) / \
drivers/md/bcache/bcache.h
802
#define prio_buckets(ca) \
drivers/md/bcache/bcache.h
803
DIV_ROUND_UP((size_t) (ca)->sb.nbuckets, prios_per_bucket(ca))
drivers/md/bcache/bcache.h
898
#define for_each_bucket(b, ca) \
drivers/md/bcache/bcache.h
899
for (b = (ca)->buckets + (ca)->sb.first_bucket; \
drivers/md/bcache/bcache.h
900
b < (ca)->buckets + (ca)->sb.nbuckets; b++)
drivers/md/bcache/bcache.h
939
struct cache *ca = c->cache;
drivers/md/bcache/bcache.h
941
wake_up_process(ca->alloc_thread);
drivers/md/bcache/bcache.h
974
void bch_count_io_errors(struct cache *ca, blk_status_t error,
drivers/md/bcache/bcache.h
987
uint8_t bch_inc_gen(struct cache *ca, struct bucket *b);
drivers/md/bcache/bcache.h
990
bool bch_can_invalidate_bucket(struct cache *ca, struct bucket *b);
drivers/md/bcache/bcache.h
991
void __bch_invalidate_one_bucket(struct cache *ca, struct bucket *b);
drivers/md/bcache/bcache.h
993
void __bch_bucket_free(struct cache *ca, struct bucket *b);
drivers/md/bcache/bcache.h
996
long bch_bucket_alloc(struct cache *ca, unsigned int reserve, bool wait);
drivers/md/bcache/btree.c
1206
struct cache *ca = c->cache;
drivers/md/bcache/btree.c
1211
if (fifo_used(&ca->free[RESERVE_BTREE]) < reserve) {
drivers/md/bcache/btree.c
1733
struct cache *ca;
drivers/md/bcache/btree.c
1743
ca = c->cache;
drivers/md/bcache/btree.c
1744
for_each_bucket(b, ca) {
drivers/md/bcache/btree.c
1746
if (bch_can_invalidate_bucket(ca, b))
drivers/md/bcache/btree.c
1761
struct cache *ca;
drivers/md/bcache/btree.c
1798
ca = c->cache;
drivers/md/bcache/btree.c
1799
ca->invalidate_needs_gc = 0;
drivers/md/bcache/btree.c
1801
for (k = ca->sb.d; k < ca->sb.d + ca->sb.keys; k++)
drivers/md/bcache/btree.c
1802
SET_GC_MARK(ca->buckets + *k, GC_MARK_METADATA);
drivers/md/bcache/btree.c
1804
for (k = ca->prio_buckets;
drivers/md/bcache/btree.c
1805
k < ca->prio_buckets + prio_buckets(ca) * 2; k++)
drivers/md/bcache/btree.c
1806
SET_GC_MARK(ca->buckets + *k, GC_MARK_METADATA);
drivers/md/bcache/btree.c
1808
for_each_bucket(b, ca) {
drivers/md/bcache/btree.c
1872
struct cache *ca = c->cache;
drivers/md/bcache/btree.c
1874
if (ca->invalidate_needs_gc)
drivers/md/bcache/btree.c
2127
struct cache *ca = c->cache;
drivers/md/bcache/btree.c
2143
for_each_bucket(b, ca) {
drivers/md/bcache/btree.c
2144
if (fifo_full(&ca->free[RESERVE_PRIO]) &&
drivers/md/bcache/btree.c
2145
fifo_full(&ca->free[RESERVE_BTREE]))
drivers/md/bcache/btree.c
2148
if (bch_can_invalidate_bucket(ca, b) &&
drivers/md/bcache/btree.c
2150
__bch_invalidate_one_bucket(ca, b);
drivers/md/bcache/btree.c
2151
if (!fifo_push(&ca->free[RESERVE_PRIO],
drivers/md/bcache/btree.c
2152
b - ca->buckets))
drivers/md/bcache/btree.c
2153
fifo_push(&ca->free[RESERVE_BTREE],
drivers/md/bcache/btree.c
2154
b - ca->buckets);
drivers/md/bcache/extents.c
53
struct cache *ca = c->cache;
drivers/md/bcache/extents.c
58
bucket < ca->sb.first_bucket ||
drivers/md/bcache/extents.c
59
bucket >= ca->sb.nbuckets)
drivers/md/bcache/extents.c
74
struct cache *ca = c->cache;
drivers/md/bcache/extents.c
80
if (bucket < ca->sb.first_bucket)
drivers/md/bcache/extents.c
82
if (bucket >= ca->sb.nbuckets)
drivers/md/bcache/io.c
104
count = atomic_cmpxchg(&ca->io_count, old, new);
drivers/md/bcache/io.c
109
errors = atomic_read(&ca->io_errors);
drivers/md/bcache/io.c
113
errors = atomic_cmpxchg(&ca->io_errors,
drivers/md/bcache/io.c
122
&ca->io_errors);
drivers/md/bcache/io.c
125
if (errors < ca->set->error_limit)
drivers/md/bcache/io.c
127
ca->bdev, m,
drivers/md/bcache/io.c
130
bch_cache_set_error(ca->set,
drivers/md/bcache/io.c
132
ca->bdev, m);
drivers/md/bcache/io.c
140
struct cache *ca = c->cache;
drivers/md/bcache/io.c
163
bch_count_io_errors(ca, error, is_read, m);
drivers/md/bcache/io.c
81
void bch_count_io_errors(struct cache *ca,
drivers/md/bcache/io.c
91
if (ca->set->error_decay) {
drivers/md/bcache/io.c
92
unsigned int count = atomic_inc_return(&ca->io_count);
drivers/md/bcache/io.c
94
while (count > ca->set->error_decay) {
drivers/md/bcache/io.c
97
unsigned int new = count - ca->set->error_decay;
drivers/md/bcache/journal.c
161
offset += blocks * ca->sb.block_size;
drivers/md/bcache/journal.c
162
len -= blocks * ca->sb.block_size;
drivers/md/bcache/journal.c
163
j = ((void *) j) + blocks * block_bytes(ca);
drivers/md/bcache/journal.c
174
ret = journal_read_bucket(ca, list, b); \
drivers/md/bcache/journal.c
181
struct cache *ca = c->cache;
drivers/md/bcache/journal.c
183
struct journal_device *ja = &ca->journal;
drivers/md/bcache/journal.c
189
pr_debug("%u journal buckets\n", ca->sb.njournal_buckets);
drivers/md/bcache/journal.c
195
for (i = 0; i < ca->sb.njournal_buckets; i++) {
drivers/md/bcache/journal.c
201
l = (i * 2654435769U) % ca->sb.njournal_buckets;
drivers/md/bcache/journal.c
216
for_each_clear_bit(l, bitmap, ca->sb.njournal_buckets)
drivers/md/bcache/journal.c
221
if (l == ca->sb.njournal_buckets)
drivers/md/bcache/journal.c
228
r = find_next_bit(bitmap, ca->sb.njournal_buckets, l + 1);
drivers/md/bcache/journal.c
250
m, ca->sb.njournal_buckets);
drivers/md/bcache/journal.c
255
l = ca->sb.njournal_buckets - 1;
drivers/md/bcache/journal.c
269
for (i = 0; i < ca->sb.njournal_buckets; i++)
drivers/md/bcache/journal.c
278
ja->last_idx = (i + 1) % ca->sb.njournal_buckets;
drivers/md/bcache/journal.c
35
static int journal_read_bucket(struct cache *ca, struct list_head *list,
drivers/md/bcache/journal.c
38
struct journal_device *ja = &ca->journal;
drivers/md/bcache/journal.c
42
struct jset *j, *data = ca->set->journal.w[0].data;
drivers/md/bcache/journal.c
46
sector_t bucket = bucket_to_sector(ca->set, ca->sb.d[bucket_index]);
drivers/md/bcache/journal.c
52
while (offset < ca->sb.bucket_size) {
drivers/md/bcache/journal.c
53
reread: left = ca->sb.bucket_size - offset;
drivers/md/bcache/journal.c
558
struct cache *ca = c->cache;
drivers/md/bcache/journal.c
56
bio_reset(bio, ca->bdev, REQ_OP_READ);
drivers/md/bcache/journal.c
564
n = ca->sb.njournal_buckets + ja->last_idx - ja->cur_idx;
drivers/md/bcache/journal.c
577
struct cache *ca = c->cache;
drivers/md/bcache/journal.c
579
struct journal_device *ja = &ca->journal;
drivers/md/bcache/journal.c
594
ca->sb.njournal_buckets;
drivers/md/bcache/journal.c
602
ja->cur_idx = (ja->cur_idx + 1) % ca->sb.njournal_buckets;
drivers/md/bcache/journal.c
604
bucket_to_sector(c, ca->sb.d[ja->cur_idx]),
drivers/md/bcache/journal.c
605
ca->sb.nr_this_dev);
drivers/md/bcache/journal.c
610
c->journal.blocks_free = ca->sb.bucket_size >> c->block_bits;
drivers/md/bcache/journal.c
64
closure_bio_submit(ca->set, bio, &cl);
drivers/md/bcache/journal.c
675
struct cache *ca = c->cache;
drivers/md/bcache/journal.c
678
unsigned int i, sectors = set_blocks(w->data, block_bytes(ca)) *
drivers/md/bcache/journal.c
679
ca->sb.block_size;
drivers/md/bcache/journal.c
698
c->journal.blocks_free -= set_blocks(w->data, block_bytes(ca));
drivers/md/bcache/journal.c
705
w->data->prio_bucket[ca->sb.nr_this_dev] = ca->prio_buckets[0];
drivers/md/bcache/journal.c
706
w->data->magic = jset_magic(&ca->sb);
drivers/md/bcache/journal.c
712
ca = c->cache;
drivers/md/bcache/journal.c
713
bio = &ca->journal.bio;
drivers/md/bcache/journal.c
715
atomic_long_add(sectors, &ca->meta_sectors_written);
drivers/md/bcache/journal.c
717
bio_reset(bio, ca->bdev, REQ_OP_WRITE |
drivers/md/bcache/journal.c
731
ca->journal.seq[ca->journal.cur_idx] = w->data->seq;
drivers/md/bcache/journal.c
78
if (j->magic != jset_magic(&ca->sb)) {
drivers/md/bcache/journal.c
780
struct cache *ca = c->cache;
drivers/md/bcache/journal.c
790
block_bytes(ca)) * ca->sb.block_size;
drivers/md/bcache/journal.c
793
c->journal.blocks_free * ca->sb.block_size,
drivers/md/bcache/journal.c
99
blocks = set_blocks(j, block_bytes(ca));
drivers/md/bcache/movinggc.c
190
static unsigned int bucket_heap_top(struct cache *ca)
drivers/md/bcache/movinggc.c
194
return (b = heap_peek(&ca->heap)) ? GC_SECTORS_USED(b) : 0;
drivers/md/bcache/movinggc.c
199
struct cache *ca = c->cache;
drivers/md/bcache/movinggc.c
209
reserve_sectors = ca->sb.bucket_size *
drivers/md/bcache/movinggc.c
210
fifo_used(&ca->free[RESERVE_MOVINGGC]);
drivers/md/bcache/movinggc.c
212
ca->heap.used = 0;
drivers/md/bcache/movinggc.c
214
for_each_bucket(b, ca) {
drivers/md/bcache/movinggc.c
217
GC_SECTORS_USED(b) == ca->sb.bucket_size ||
drivers/md/bcache/movinggc.c
221
if (!heap_full(&ca->heap)) {
drivers/md/bcache/movinggc.c
223
heap_add(&ca->heap, b, bucket_cmp);
drivers/md/bcache/movinggc.c
224
} else if (bucket_cmp(b, heap_peek(&ca->heap))) {
drivers/md/bcache/movinggc.c
225
sectors_to_move -= bucket_heap_top(ca);
drivers/md/bcache/movinggc.c
228
ca->heap.data[0] = b;
drivers/md/bcache/movinggc.c
229
heap_sift(&ca->heap, 0, bucket_cmp);
drivers/md/bcache/movinggc.c
234
heap_pop(&ca->heap, b, bucket_cmp);
drivers/md/bcache/movinggc.c
238
while (heap_pop(&ca->heap, b, bucket_cmp))
drivers/md/bcache/super.c
1684
struct cache *ca;
drivers/md/bcache/super.c
1696
ca = c->cache;
drivers/md/bcache/super.c
1697
if (ca) {
drivers/md/bcache/super.c
1698
ca->set = NULL;
drivers/md/bcache/super.c
1700
kobject_put(&ca->kobj);
drivers/md/bcache/super.c
1725
struct cache *ca = c->cache;
drivers/md/bcache/super.c
1756
if (ca && ca->alloc_thread)
drivers/md/bcache/super.c
1757
kthread_stop(ca->alloc_thread);
drivers/md/bcache/super.c
1873
struct cache *ca = container_of(sb, struct cache, sb);
drivers/md/bcache/super.c
1897
c->cache = ca;
drivers/md/bcache/super.c
1990
struct cache *ca = c->cache;
drivers/md/bcache/super.c
1997
c->nbuckets = ca->sb.nbuckets;
drivers/md/bcache/super.c
2017
if (prio_read(ca, j->prio_bucket[ca->sb.nr_this_dev]))
drivers/md/bcache/super.c
2062
if (bch_cache_allocator_start(ca))
drivers/md/bcache/super.c
2085
ca->sb.keys = clamp_t(int, ca->sb.nbuckets >> 7,
drivers/md/bcache/super.c
2088
for (j = 0; j < ca->sb.keys; j++)
drivers/md/bcache/super.c
2089
ca->sb.d[j] = ca->sb.first_bucket + j;
drivers/md/bcache/super.c
2094
if (bch_cache_allocator_start(ca))
drivers/md/bcache/super.c
2098
bch_prio_write(ca, true);
drivers/md/bcache/super.c
2162
static const char *register_cache_set(struct cache *ca)
drivers/md/bcache/super.c
2169
if (!memcmp(c->set_uuid, ca->sb.set_uuid, 16)) {
drivers/md/bcache/super.c
2176
c = bch_cache_set_alloc(&ca->sb);
drivers/md/bcache/super.c
2192
sprintf(buf, "cache%i", ca->sb.nr_this_dev);
drivers/md/bcache/super.c
2193
if (sysfs_create_link(&ca->kobj, &c->kobj, "set") ||
drivers/md/bcache/super.c
2194
sysfs_create_link(&c->kobj, &ca->kobj, buf))
drivers/md/bcache/super.c
2197
kobject_get(&ca->kobj);
drivers/md/bcache/super.c
2198
ca->set = c;
drivers/md/bcache/super.c
2199
ca->set->cache = ca;
drivers/md/bcache/super.c
2216
struct cache *ca = container_of(kobj, struct cache, kobj);
drivers/md/bcache/super.c
2219
if (ca->set) {
drivers/md/bcache/super.c
2220
BUG_ON(ca->set->cache != ca);
drivers/md/bcache/super.c
2221
ca->set->cache = NULL;
drivers/md/bcache/super.c
2224
free_pages((unsigned long) ca->disk_buckets, ilog2(meta_bucket_pages(&ca->sb)));
drivers/md/bcache/super.c
2225
kfree(ca->prio_buckets);
drivers/md/bcache/super.c
2226
vfree(ca->buckets);
drivers/md/bcache/super.c
2228
free_heap(&ca->heap);
drivers/md/bcache/super.c
2229
free_fifo(&ca->free_inc);
drivers/md/bcache/super.c
2232
free_fifo(&ca->free[i]);
drivers/md/bcache/super.c
2234
if (ca->sb_disk)
drivers/md/bcache/super.c
2235
folio_put(virt_to_folio(ca->sb_disk));
drivers/md/bcache/super.c
2237
if (ca->bdev_file)
drivers/md/bcache/super.c
2238
fput(ca->bdev_file);
drivers/md/bcache/super.c
2240
kfree(ca);
drivers/md/bcache/super.c
2244
static int cache_alloc(struct cache *ca)
drivers/md/bcache/super.c
2253
kobject_init(&ca->kobj, &bch_cache_ktype);
drivers/md/bcache/super.c
2255
bio_init_inline(&ca->journal.bio, NULL, 8, 0);
drivers/md/bcache/super.c
2297
btree_buckets = clamp_t(size_t, ca->sb.nbuckets >> 7,
drivers/md/bcache/super.c
2299
free = roundup_pow_of_two(ca->sb.nbuckets) >> 10;
drivers/md/bcache/super.c
2306
if (!init_fifo(&ca->free[RESERVE_BTREE], btree_buckets,
drivers/md/bcache/super.c
2312
if (!init_fifo_exact(&ca->free[RESERVE_PRIO], prio_buckets(ca),
drivers/md/bcache/super.c
2318
if (!init_fifo(&ca->free[RESERVE_MOVINGGC], free, GFP_KERNEL)) {
drivers/md/bcache/super.c
2323
if (!init_fifo(&ca->free[RESERVE_NONE], free, GFP_KERNEL)) {
drivers/md/bcache/super.c
2328
if (!init_fifo(&ca->free_inc, free << 2, GFP_KERNEL)) {
drivers/md/bcache/super.c
2333
if (!init_heap(&ca->heap, free << 3, GFP_KERNEL)) {
drivers/md/bcache/super.c
2338
ca->buckets = vzalloc(array_size(sizeof(struct bucket),
drivers/md/bcache/super.c
2339
ca->sb.nbuckets));
drivers/md/bcache/super.c
2340
if (!ca->buckets) {
drivers/md/bcache/super.c
2345
ca->prio_buckets = kzalloc(array3_size(sizeof(uint64_t),
drivers/md/bcache/super.c
2346
prio_buckets(ca), 2),
drivers/md/bcache/super.c
2348
if (!ca->prio_buckets) {
drivers/md/bcache/super.c
2353
ca->disk_buckets = alloc_meta_bucket_pages(GFP_KERNEL, &ca->sb);
drivers/md/bcache/super.c
2354
if (!ca->disk_buckets) {
drivers/md/bcache/super.c
2359
ca->prio_last_buckets = ca->prio_buckets + prio_buckets(ca);
drivers/md/bcache/super.c
2361
for_each_bucket(b, ca)
drivers/md/bcache/super.c
2366
kfree(ca->prio_buckets);
drivers/md/bcache/super.c
2368
vfree(ca->buckets);
drivers/md/bcache/super.c
2370
free_heap(&ca->heap);
drivers/md/bcache/super.c
2372
free_fifo(&ca->free_inc);
drivers/md/bcache/super.c
2374
free_fifo(&ca->free[RESERVE_NONE]);
drivers/md/bcache/super.c
2376
free_fifo(&ca->free[RESERVE_MOVINGGC]);
drivers/md/bcache/super.c
2378
free_fifo(&ca->free[RESERVE_PRIO]);
drivers/md/bcache/super.c
2380
free_fifo(&ca->free[RESERVE_BTREE]);
drivers/md/bcache/super.c
2385
pr_notice("error %pg: %s\n", ca->bdev, err);
drivers/md/bcache/super.c
2391
struct cache *ca)
drivers/md/bcache/super.c
2396
memcpy(&ca->sb, sb, sizeof(struct cache_sb));
drivers/md/bcache/super.c
2397
ca->bdev_file = bdev_file;
drivers/md/bcache/super.c
2398
ca->bdev = file_bdev(bdev_file);
drivers/md/bcache/super.c
2399
ca->sb_disk = sb_disk;
drivers/md/bcache/super.c
2401
ret = cache_alloc(ca);
drivers/md/bcache/super.c
2420
if (kobject_add(&ca->kobj, bdev_kobj(file_bdev(bdev_file)), "bcache")) {
drivers/md/bcache/super.c
2428
err = register_cache_set(ca);
drivers/md/bcache/super.c
2436
pr_info("registered cache device %pg\n", file_bdev(ca->bdev_file));
drivers/md/bcache/super.c
2439
kobject_put(&ca->kobj);
drivers/md/bcache/super.c
2475
struct cache *ca = c->cache;
drivers/md/bcache/super.c
2477
if (ca->bdev->bd_dev == dev)
drivers/md/bcache/super.c
357
struct cache *ca = bio->bi_private;
drivers/md/bcache/super.c
360
bch_count_io_errors(ca, bio->bi_status, 0,
drivers/md/bcache/super.c
362
closure_put(&ca->set->sb_write);
drivers/md/bcache/super.c
375
struct cache *ca = c->cache;
drivers/md/bcache/super.c
376
struct bio *bio = &ca->sb_bio;
drivers/md/bcache/super.c
382
ca->sb.seq++;
drivers/md/bcache/super.c
384
if (ca->sb.version < version)
drivers/md/bcache/super.c
385
ca->sb.version = version;
drivers/md/bcache/super.c
387
bio_init(bio, ca->bdev, ca->sb_bv, 1, 0);
drivers/md/bcache/super.c
389
bio->bi_private = ca;
drivers/md/bcache/super.c
392
__write_super(&ca->sb, ca->sb_disk, bio);
drivers/md/bcache/super.c
502
struct cache *ca = c->cache;
drivers/md/bcache/super.c
511
size = meta_bucket_pages(&ca->sb) * PAGE_SECTORS;
drivers/md/bcache/super.c
517
atomic_long_add(ca->sb.bucket_size, &ca->meta_sectors_written);
drivers/md/bcache/super.c
583
struct cache *ca = bio->bi_private;
drivers/md/bcache/super.c
585
cache_set_err_on(bio->bi_status, ca->set, "accessing priorities");
drivers/md/bcache/super.c
586
bch_bbio_free(bio, ca->set);
drivers/md/bcache/super.c
587
closure_put(&ca->prio);
drivers/md/bcache/super.c
590
static void prio_io(struct cache *ca, uint64_t bucket, blk_opf_t opf)
drivers/md/bcache/super.c
592
struct closure *cl = &ca->prio;
drivers/md/bcache/super.c
593
struct bio *bio = bch_bbio_alloc(ca->set);
drivers/md/bcache/super.c
597
bio->bi_iter.bi_sector = bucket * ca->sb.bucket_size;
drivers/md/bcache/super.c
598
bio_set_dev(bio, ca->bdev);
drivers/md/bcache/super.c
599
bio->bi_iter.bi_size = meta_bucket_bytes(&ca->sb);
drivers/md/bcache/super.c
602
bio->bi_private = ca;
drivers/md/bcache/super.c
604
bch_bio_map(bio, ca->disk_buckets);
drivers/md/bcache/super.c
606
closure_bio_submit(ca->set, bio, &ca->prio);
drivers/md/bcache/super.c
610
int bch_prio_write(struct cache *ca, bool wait)
drivers/md/bcache/super.c
617
fifo_used(&ca->free[RESERVE_PRIO]),
drivers/md/bcache/super.c
618
fifo_used(&ca->free[RESERVE_NONE]),
drivers/md/bcache/super.c
619
fifo_used(&ca->free_inc));
drivers/md/bcache/super.c
627
size_t avail = fifo_used(&ca->free[RESERVE_PRIO]) +
drivers/md/bcache/super.c
628
fifo_used(&ca->free[RESERVE_NONE]);
drivers/md/bcache/super.c
629
if (prio_buckets(ca) > avail)
drivers/md/bcache/super.c
635
lockdep_assert_held(&ca->set->bucket_lock);
drivers/md/bcache/super.c
637
ca->disk_buckets->seq++;
drivers/md/bcache/super.c
639
atomic_long_add(ca->sb.bucket_size * prio_buckets(ca),
drivers/md/bcache/super.c
640
&ca->meta_sectors_written);
drivers/md/bcache/super.c
642
for (i = prio_buckets(ca) - 1; i >= 0; --i) {
drivers/md/bcache/super.c
644
struct prio_set *p = ca->disk_buckets;
drivers/md/bcache/super.c
646
struct bucket_disk *end = d + prios_per_bucket(ca);
drivers/md/bcache/super.c
648
for (b = ca->buckets + i * prios_per_bucket(ca);
drivers/md/bcache/super.c
649
b < ca->buckets + ca->sb.nbuckets && d < end;
drivers/md/bcache/super.c
655
p->next_bucket = ca->prio_buckets[i + 1];
drivers/md/bcache/super.c
656
p->magic = pset_magic(&ca->sb);
drivers/md/bcache/super.c
657
p->csum = bch_crc64(&p->magic, meta_bucket_bytes(&ca->sb) - 8);
drivers/md/bcache/super.c
659
bucket = bch_bucket_alloc(ca, RESERVE_PRIO, wait);
drivers/md/bcache/super.c
662
mutex_unlock(&ca->set->bucket_lock);
drivers/md/bcache/super.c
663
prio_io(ca, bucket, REQ_OP_WRITE);
drivers/md/bcache/super.c
664
mutex_lock(&ca->set->bucket_lock);
drivers/md/bcache/super.c
666
ca->prio_buckets[i] = bucket;
drivers/md/bcache/super.c
667
atomic_dec_bug(&ca->buckets[bucket].pin);
drivers/md/bcache/super.c
670
mutex_unlock(&ca->set->bucket_lock);
drivers/md/bcache/super.c
672
bch_journal_meta(ca->set, &cl);
drivers/md/bcache/super.c
675
mutex_lock(&ca->set->bucket_lock);
drivers/md/bcache/super.c
681
for (i = 0; i < prio_buckets(ca); i++) {
drivers/md/bcache/super.c
682
if (ca->prio_last_buckets[i])
drivers/md/bcache/super.c
683
__bch_bucket_free(ca,
drivers/md/bcache/super.c
684
&ca->buckets[ca->prio_last_buckets[i]]);
drivers/md/bcache/super.c
686
ca->prio_last_buckets[i] = ca->prio_buckets[i];
drivers/md/bcache/super.c
691
static int prio_read(struct cache *ca, uint64_t bucket)
drivers/md/bcache/super.c
693
struct prio_set *p = ca->disk_buckets;
drivers/md/bcache/super.c
694
struct bucket_disk *d = p->data + prios_per_bucket(ca), *end = d;
drivers/md/bcache/super.c
699
for (b = ca->buckets;
drivers/md/bcache/super.c
700
b < ca->buckets + ca->sb.nbuckets;
drivers/md/bcache/super.c
703
ca->prio_buckets[bucket_nr] = bucket;
drivers/md/bcache/super.c
704
ca->prio_last_buckets[bucket_nr] = bucket;
drivers/md/bcache/super.c
707
prio_io(ca, bucket, REQ_OP_READ);
drivers/md/bcache/super.c
710
bch_crc64(&p->magic, meta_bucket_bytes(&ca->sb) - 8)) {
drivers/md/bcache/super.c
715
if (p->magic != pset_magic(&ca->sb)) {
drivers/md/bcache/super.c
793
struct cache *ca = d->c->cache;
drivers/md/bcache/super.c
798
bd_unlink_disk_holder(ca->bdev, d->disk);
drivers/md/bcache/super.c
805
struct cache *ca = c->cache;
drivers/md/bcache/super.c
808
bd_link_disk_holder(ca->bdev, d->disk);
drivers/md/bcache/sysfs.c
1033
struct cache *ca = container_of(kobj, struct cache, kobj);
drivers/md/bcache/sysfs.c
1035
sysfs_hprint(bucket_size, bucket_bytes(ca));
drivers/md/bcache/sysfs.c
1036
sysfs_hprint(block_size, block_bytes(ca));
drivers/md/bcache/sysfs.c
1037
sysfs_print(nbuckets, ca->sb.nbuckets);
drivers/md/bcache/sysfs.c
1038
sysfs_hprint(written, atomic_long_read(&ca->sectors_written) << 9);
drivers/md/bcache/sysfs.c
1040
atomic_long_read(&ca->btree_sectors_written) << 9);
drivers/md/bcache/sysfs.c
1042
(atomic_long_read(&ca->meta_sectors_written) +
drivers/md/bcache/sysfs.c
1043
atomic_long_read(&ca->btree_sectors_written)) << 9);
drivers/md/bcache/sysfs.c
1046
atomic_read(&ca->io_errors) >> IO_ERROR_SHIFT);
drivers/md/bcache/sysfs.c
1051
CACHE_REPLACEMENT(&ca->sb));
drivers/md/bcache/sysfs.c
1055
size_t n = ca->sb.nbuckets, i;
drivers/md/bcache/sysfs.c
1063
ca->sb.nbuckets));
drivers/md/bcache/sysfs.c
1067
mutex_lock(&ca->set->bucket_lock);
drivers/md/bcache/sysfs.c
1068
for_each_bucket(b, ca) {
drivers/md/bcache/sysfs.c
1079
for (i = ca->sb.first_bucket; i < n; i++)
drivers/md/bcache/sysfs.c
1080
p[i] = ca->buckets[i].prio;
drivers/md/bcache/sysfs.c
1081
mutex_unlock(&ca->set->bucket_lock);
drivers/md/bcache/sysfs.c
1115
unused * 100 / (size_t) ca->sb.nbuckets,
drivers/md/bcache/sysfs.c
1116
available * 100 / (size_t) ca->sb.nbuckets,
drivers/md/bcache/sysfs.c
1117
dirty * 100 / (size_t) ca->sb.nbuckets,
drivers/md/bcache/sysfs.c
1118
meta * 100 / (size_t) ca->sb.nbuckets, sum,
drivers/md/bcache/sysfs.c
1119
n * ca->sb.bucket_size / (ARRAY_SIZE(q) + 1));
drivers/md/bcache/sysfs.c
1136
struct cache *ca = container_of(kobj, struct cache, kobj);
drivers/md/bcache/sysfs.c
1148
if ((unsigned int) v != CACHE_REPLACEMENT(&ca->sb)) {
drivers/md/bcache/sysfs.c
1149
mutex_lock(&ca->set->bucket_lock);
drivers/md/bcache/sysfs.c
1150
SET_CACHE_REPLACEMENT(&ca->sb, v);
drivers/md/bcache/sysfs.c
1151
mutex_unlock(&ca->set->bucket_lock);
drivers/md/bcache/sysfs.c
1153
bcache_write_super(ca->set);
drivers/md/bcache/sysfs.c
1158
atomic_long_set(&ca->sectors_written, 0);
drivers/md/bcache/sysfs.c
1159
atomic_long_set(&ca->btree_sectors_written, 0);
drivers/md/bcache/sysfs.c
1160
atomic_long_set(&ca->meta_sectors_written, 0);
drivers/md/bcache/sysfs.c
1161
atomic_set(&ca->io_count, 0);
drivers/md/bcache/sysfs.c
1162
atomic_set(&ca->io_errors, 0);
drivers/md/dm-cache-target.c
2066
static void destroy_cache_args(struct cache_args *ca)
drivers/md/dm-cache-target.c
2068
if (ca->metadata_dev)
drivers/md/dm-cache-target.c
2069
dm_put_device(ca->ti, ca->metadata_dev);
drivers/md/dm-cache-target.c
2071
if (ca->cache_dev)
drivers/md/dm-cache-target.c
2072
dm_put_device(ca->ti, ca->cache_dev);
drivers/md/dm-cache-target.c
2074
if (ca->origin_dev)
drivers/md/dm-cache-target.c
2075
dm_put_device(ca->ti, ca->origin_dev);
drivers/md/dm-cache-target.c
2077
kfree(ca);
drivers/md/dm-cache-target.c
2090
static int parse_metadata_dev(struct cache_args *ca, struct dm_arg_set *as,
drivers/md/dm-cache-target.c
2099
r = dm_get_device(ca->ti, dm_shift_arg(as),
drivers/md/dm-cache-target.c
2100
BLK_OPEN_READ | BLK_OPEN_WRITE, &ca->metadata_dev);
drivers/md/dm-cache-target.c
2106
metadata_dev_size = get_dev_size(ca->metadata_dev);
drivers/md/dm-cache-target.c
2109
ca->metadata_dev->bdev, THIN_METADATA_MAX_SECTORS);
drivers/md/dm-cache-target.c
2114
static int parse_cache_dev(struct cache_args *ca, struct dm_arg_set *as,
drivers/md/dm-cache-target.c
2122
r = dm_get_device(ca->ti, dm_shift_arg(as),
drivers/md/dm-cache-target.c
2123
BLK_OPEN_READ | BLK_OPEN_WRITE, &ca->cache_dev);
drivers/md/dm-cache-target.c
2128
ca->cache_sectors = get_dev_size(ca->cache_dev);
drivers/md/dm-cache-target.c
2133
static int parse_origin_dev(struct cache_args *ca, struct dm_arg_set *as,
drivers/md/dm-cache-target.c
2141
r = dm_get_device(ca->ti, dm_shift_arg(as),
drivers/md/dm-cache-target.c
2142
BLK_OPEN_READ | BLK_OPEN_WRITE, &ca->origin_dev);
drivers/md/dm-cache-target.c
2151
static int parse_block_size(struct cache_args *ca, struct dm_arg_set *as,
drivers/md/dm-cache-target.c
2167
if (block_size > ca->cache_sectors) {
drivers/md/dm-cache-target.c
2172
ca->block_size = block_size;
drivers/md/dm-cache-target.c
2185
static int parse_features(struct cache_args *ca, struct dm_arg_set *as,
drivers/md/dm-cache-target.c
2195
struct cache_features *cf = &ca->features;
drivers/md/dm-cache-target.c
2241
static int parse_policy(struct cache_args *ca, struct dm_arg_set *as,
drivers/md/dm-cache-target.c
2253
ca->policy_name = dm_shift_arg(as);
drivers/md/dm-cache-target.c
2255
r = dm_read_arg_group(_args, as, &ca->policy_argc, error);
drivers/md/dm-cache-target.c
2259
ca->policy_argv = (const char **)as->argv;
drivers/md/dm-cache-target.c
2260
dm_consume_args(as, ca->policy_argc);
drivers/md/dm-cache-target.c
2265
static int parse_cache_args(struct cache_args *ca, int argc, char **argv,
drivers/md/dm-cache-target.c
2274
r = parse_metadata_dev(ca, &as, error);
drivers/md/dm-cache-target.c
2278
r = parse_cache_dev(ca, &as, error);
drivers/md/dm-cache-target.c
2282
r = parse_origin_dev(ca, &as, error);
drivers/md/dm-cache-target.c
2286
r = parse_block_size(ca, &as, error);
drivers/md/dm-cache-target.c
2290
r = parse_features(ca, &as, error);
drivers/md/dm-cache-target.c
2294
r = parse_policy(ca, &as, error);
drivers/md/dm-cache-target.c
2356
static int create_cache_policy(struct cache *cache, struct cache_args *ca,
drivers/md/dm-cache-target.c
2359
struct dm_cache_policy *p = dm_cache_policy_create(ca->policy_name,
drivers/md/dm-cache-target.c
2414
static int cache_create(struct cache_args *ca, struct cache **result)
drivers/md/dm-cache-target.c
2417
char **error = &ca->ti->error;
drivers/md/dm-cache-target.c
2419
struct dm_target *ti = ca->ti;
drivers/md/dm-cache-target.c
2422
bool may_format = ca->features.mode == CM_WRITE;
drivers/md/dm-cache-target.c
2428
cache->ti = ca->ti;
drivers/md/dm-cache-target.c
2439
cache->features = ca->features;
drivers/md/dm-cache-target.c
2447
cache->metadata_dev = ca->metadata_dev;
drivers/md/dm-cache-target.c
2448
cache->origin_dev = ca->origin_dev;
drivers/md/dm-cache-target.c
2449
cache->cache_dev = ca->cache_dev;
drivers/md/dm-cache-target.c
2451
ca->metadata_dev = ca->origin_dev = ca->cache_dev = NULL;
drivers/md/dm-cache-target.c
2454
origin_blocks = block_div(origin_blocks, ca->block_size);
drivers/md/dm-cache-target.c
2457
cache->sectors_per_block = ca->block_size;
drivers/md/dm-cache-target.c
2463
if (ca->block_size & (ca->block_size - 1)) {
drivers/md/dm-cache-target.c
2464
dm_block_t cache_size = ca->cache_sectors;
drivers/md/dm-cache-target.c
2467
cache_size = block_div(cache_size, ca->block_size);
drivers/md/dm-cache-target.c
2470
cache->sectors_per_block_shift = __ffs(ca->block_size);
drivers/md/dm-cache-target.c
2471
set_cache_size(cache, to_cblock(ca->cache_sectors >> cache->sectors_per_block_shift));
drivers/md/dm-cache-target.c
2474
r = create_cache_policy(cache, ca, error);
drivers/md/dm-cache-target.c
2478
cache->policy_nr_args = ca->policy_argc;
drivers/md/dm-cache-target.c
2481
r = set_config_values(cache, ca->policy_argc, ca->policy_argv);
drivers/md/dm-cache-target.c
2488
ca->block_size, may_format,
drivers/md/dm-cache-target.c
2490
ca->features.metadata_version);
drivers/md/dm-cache-target.c
2631
struct cache_args *ca;
drivers/md/dm-cache-target.c
2634
ca = kzalloc_obj(*ca);
drivers/md/dm-cache-target.c
2635
if (!ca) {
drivers/md/dm-cache-target.c
2639
ca->ti = ti;
drivers/md/dm-cache-target.c
2641
r = parse_cache_args(ca, argc, argv, &ti->error);
drivers/md/dm-cache-target.c
2645
r = cache_create(ca, &cache);
drivers/md/dm-cache-target.c
2657
destroy_cache_args(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1006
if (ca->open)
drivers/media/dvb-core/dvb_ca_en50221.c
1007
dvb_ca_en50221_thread_wakeup(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1021
static void dvb_ca_en50221_thread_wakeup(struct dvb_ca_private *ca)
drivers/media/dvb-core/dvb_ca_en50221.c
1025
ca->wakeup = 1;
drivers/media/dvb-core/dvb_ca_en50221.c
1027
wake_up_process(ca->thread);
drivers/media/dvb-core/dvb_ca_en50221.c
1035
static void dvb_ca_en50221_thread_update_delay(struct dvb_ca_private *ca)
drivers/media/dvb-core/dvb_ca_en50221.c
1045
for (slot = 0; slot < ca->slot_count; slot++) {
drivers/media/dvb-core/dvb_ca_en50221.c
1046
struct dvb_ca_slot *sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
1052
if (!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE))
drivers/media/dvb-core/dvb_ca_en50221.c
1057
if (!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE))
drivers/media/dvb-core/dvb_ca_en50221.c
1071
if (!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE))
drivers/media/dvb-core/dvb_ca_en50221.c
1073
if (ca->open) {
drivers/media/dvb-core/dvb_ca_en50221.c
1075
(!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_DA)))
drivers/media/dvb-core/dvb_ca_en50221.c
1085
ca->delay = curdelay;
drivers/media/dvb-core/dvb_ca_en50221.c
1097
static int dvb_ca_en50221_poll_cam_gone(struct dvb_ca_private *ca, int slot)
drivers/media/dvb-core/dvb_ca_en50221.c
1106
if ((!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE)) &&
drivers/media/dvb-core/dvb_ca_en50221.c
1107
(ca->pub->poll_slot_status)) {
drivers/media/dvb-core/dvb_ca_en50221.c
1108
status = ca->pub->poll_slot_status(ca->pub, slot, 0);
drivers/media/dvb-core/dvb_ca_en50221.c
1111
ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE;
drivers/media/dvb-core/dvb_ca_en50221.c
1112
dvb_ca_en50221_thread_update_delay(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1126
static void dvb_ca_en50221_thread_state_machine(struct dvb_ca_private *ca,
drivers/media/dvb-core/dvb_ca_en50221.c
1129
struct dvb_ca_slot *sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
1137
while (dvb_ca_en50221_check_camstatus(ca, slot)) {
drivers/media/dvb-core/dvb_ca_en50221.c
1140
dvb_ca_en50221_slot_shutdown(ca, slot);
drivers/media/dvb-core/dvb_ca_en50221.c
1147
dvb_ca_en50221_thread_update_delay(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1160
ca->pub->slot_reset(ca->pub, slot);
drivers/media/dvb-core/dvb_ca_en50221.c
1167
ca->dvbdev->adapter->num);
drivers/media/dvb-core/dvb_ca_en50221.c
1169
dvb_ca_en50221_thread_update_delay(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1179
if (dvb_ca_en50221_parse_attributes(ca, slot) != 0) {
drivers/media/dvb-core/dvb_ca_en50221.c
1180
if (dvb_ca_en50221_poll_cam_gone(ca, slot))
drivers/media/dvb-core/dvb_ca_en50221.c
1184
ca->dvbdev->adapter->num);
drivers/media/dvb-core/dvb_ca_en50221.c
1186
dvb_ca_en50221_thread_update_delay(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1189
if (dvb_ca_en50221_set_configoption(ca, slot) != 0) {
drivers/media/dvb-core/dvb_ca_en50221.c
1191
ca->dvbdev->adapter->num);
drivers/media/dvb-core/dvb_ca_en50221.c
1193
dvb_ca_en50221_thread_update_delay(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1196
if (ca->pub->write_cam_control(ca->pub, slot,
drivers/media/dvb-core/dvb_ca_en50221.c
1200
ca->dvbdev->adapter->num);
drivers/media/dvb-core/dvb_ca_en50221.c
1202
dvb_ca_en50221_thread_update_delay(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1209
ca->wakeup = 1;
drivers/media/dvb-core/dvb_ca_en50221.c
1215
ca->dvbdev->adapter->num);
drivers/media/dvb-core/dvb_ca_en50221.c
1217
dvb_ca_en50221_thread_update_delay(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1221
flags = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_STATUS);
drivers/media/dvb-core/dvb_ca_en50221.c
1224
ca->wakeup = 1;
drivers/media/dvb-core/dvb_ca_en50221.c
1229
if (dvb_ca_en50221_link_init(ca, slot) != 0) {
drivers/media/dvb-core/dvb_ca_en50221.c
1230
if (dvb_ca_en50221_poll_cam_gone(ca, slot))
drivers/media/dvb-core/dvb_ca_en50221.c
1234
ca->dvbdev->adapter->num);
drivers/media/dvb-core/dvb_ca_en50221.c
1236
dvb_ca_en50221_thread_update_delay(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1244
ca->dvbdev->adapter->num);
drivers/media/dvb-core/dvb_ca_en50221.c
1246
dvb_ca_en50221_thread_update_delay(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1253
ca->pub->slot_ts_enable(ca->pub, slot);
drivers/media/dvb-core/dvb_ca_en50221.c
1255
dvb_ca_en50221_thread_update_delay(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1257
ca->dvbdev->adapter->num);
drivers/media/dvb-core/dvb_ca_en50221.c
1261
if (!ca->open)
drivers/media/dvb-core/dvb_ca_en50221.c
1266
while (dvb_ca_en50221_read_data(ca, slot, NULL, 0) > 0) {
drivers/media/dvb-core/dvb_ca_en50221.c
1267
if (!ca->open)
drivers/media/dvb-core/dvb_ca_en50221.c
1274
if (dvb_ca_en50221_check_camstatus(ca, slot)) {
drivers/media/dvb-core/dvb_ca_en50221.c
1279
ca->wakeup = 1;
drivers/media/dvb-core/dvb_ca_en50221.c
1289
ca->wakeup = 1;
drivers/media/dvb-core/dvb_ca_en50221.c
1305
struct dvb_ca_private *ca = data;
drivers/media/dvb-core/dvb_ca_en50221.c
1311
dvb_ca_en50221_thread_update_delay(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1316
if (!ca->wakeup) {
drivers/media/dvb-core/dvb_ca_en50221.c
1318
schedule_timeout(ca->delay);
drivers/media/dvb-core/dvb_ca_en50221.c
1322
ca->wakeup = 0;
drivers/media/dvb-core/dvb_ca_en50221.c
1325
for (slot = 0; slot < ca->slot_count; slot++)
drivers/media/dvb-core/dvb_ca_en50221.c
1326
dvb_ca_en50221_thread_state_machine(ca, slot);
drivers/media/dvb-core/dvb_ca_en50221.c
1350
struct dvb_ca_private *ca = dvbdev->priv;
drivers/media/dvb-core/dvb_ca_en50221.c
1356
if (mutex_lock_interruptible(&ca->ioctl_mutex))
drivers/media/dvb-core/dvb_ca_en50221.c
1361
for (slot = 0; slot < ca->slot_count; slot++) {
drivers/media/dvb-core/dvb_ca_en50221.c
1362
struct dvb_ca_slot *sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
1366
dvb_ca_en50221_slot_shutdown(ca, slot);
drivers/media/dvb-core/dvb_ca_en50221.c
1367
if (ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE)
drivers/media/dvb-core/dvb_ca_en50221.c
1368
dvb_ca_en50221_camchange_irq(ca->pub,
drivers/media/dvb-core/dvb_ca_en50221.c
1374
ca->next_read_slot = 0;
drivers/media/dvb-core/dvb_ca_en50221.c
1375
dvb_ca_en50221_thread_wakeup(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1381
caps->slot_num = ca->slot_count;
drivers/media/dvb-core/dvb_ca_en50221.c
1393
if ((slot >= ca->slot_count) || (slot < 0)) {
drivers/media/dvb-core/dvb_ca_en50221.c
1397
slot = array_index_nospec(slot, ca->slot_count);
drivers/media/dvb-core/dvb_ca_en50221.c
1401
sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
1417
mutex_unlock(&ca->ioctl_mutex);
drivers/media/dvb-core/dvb_ca_en50221.c
1451
struct dvb_ca_private *ca = dvbdev->priv;
drivers/media/dvb-core/dvb_ca_en50221.c
1478
if (slot >= ca->slot_count)
drivers/media/dvb-core/dvb_ca_en50221.c
1480
slot = array_index_nospec(slot, ca->slot_count);
drivers/media/dvb-core/dvb_ca_en50221.c
1481
sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
1518
status = dvb_ca_en50221_write_data(ca, slot, fragbuf,
drivers/media/dvb-core/dvb_ca_en50221.c
1546
static int dvb_ca_en50221_io_read_condition(struct dvb_ca_private *ca,
drivers/media/dvb-core/dvb_ca_en50221.c
1557
slot = ca->next_read_slot;
drivers/media/dvb-core/dvb_ca_en50221.c
1558
while ((slot_count < ca->slot_count) && (!found)) {
drivers/media/dvb-core/dvb_ca_en50221.c
1559
struct dvb_ca_slot *sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
1584
slot = (slot + 1) % ca->slot_count;
drivers/media/dvb-core/dvb_ca_en50221.c
1588
ca->next_read_slot = slot;
drivers/media/dvb-core/dvb_ca_en50221.c
1606
struct dvb_ca_private *ca = dvbdev->priv;
drivers/media/dvb-core/dvb_ca_en50221.c
162
static void dvb_ca_private_free(struct dvb_ca_private *ca)
drivers/media/dvb-core/dvb_ca_en50221.c
1629
status = dvb_ca_en50221_io_read_condition(ca, &result, &slot);
drivers/media/dvb-core/dvb_ca_en50221.c
1636
status = wait_event_interruptible(ca->wait_queue,
drivers/media/dvb-core/dvb_ca_en50221.c
1638
(ca, &result, &slot));
drivers/media/dvb-core/dvb_ca_en50221.c
1646
sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
1652
ca->dvbdev->adapter->num);
drivers/media/dvb-core/dvb_ca_en50221.c
166
dvb_device_put(ca->dvbdev);
drivers/media/dvb-core/dvb_ca_en50221.c
167
for (i = 0; i < ca->slot_count; i++)
drivers/media/dvb-core/dvb_ca_en50221.c
168
vfree(ca->slot_info[i].rx_buffer.data);
drivers/media/dvb-core/dvb_ca_en50221.c
170
kfree(ca->slot_info);
drivers/media/dvb-core/dvb_ca_en50221.c
171
kfree(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1714
struct dvb_ca_private *ca = dvbdev->priv;
drivers/media/dvb-core/dvb_ca_en50221.c
1720
mutex_lock(&ca->remove_mutex);
drivers/media/dvb-core/dvb_ca_en50221.c
1722
if (ca->exit) {
drivers/media/dvb-core/dvb_ca_en50221.c
1723
mutex_unlock(&ca->remove_mutex);
drivers/media/dvb-core/dvb_ca_en50221.c
1727
if (!try_module_get(ca->pub->owner)) {
drivers/media/dvb-core/dvb_ca_en50221.c
1728
mutex_unlock(&ca->remove_mutex);
drivers/media/dvb-core/dvb_ca_en50221.c
1734
module_put(ca->pub->owner);
drivers/media/dvb-core/dvb_ca_en50221.c
1735
mutex_unlock(&ca->remove_mutex);
drivers/media/dvb-core/dvb_ca_en50221.c
1739
for (i = 0; i < ca->slot_count; i++) {
drivers/media/dvb-core/dvb_ca_en50221.c
1740
struct dvb_ca_slot *sl = &ca->slot_info[i];
drivers/media/dvb-core/dvb_ca_en50221.c
1754
ca->open = 1;
drivers/media/dvb-core/dvb_ca_en50221.c
1755
dvb_ca_en50221_thread_update_delay(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1756
dvb_ca_en50221_thread_wakeup(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1758
dvb_ca_private_get(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
176
struct dvb_ca_private *ca;
drivers/media/dvb-core/dvb_ca_en50221.c
1760
mutex_unlock(&ca->remove_mutex);
drivers/media/dvb-core/dvb_ca_en50221.c
1775
struct dvb_ca_private *ca = dvbdev->priv;
drivers/media/dvb-core/dvb_ca_en50221.c
178
ca = container_of(ref, struct dvb_ca_private, refcount);
drivers/media/dvb-core/dvb_ca_en50221.c
1780
mutex_lock(&ca->remove_mutex);
drivers/media/dvb-core/dvb_ca_en50221.c
1783
ca->open = 0;
drivers/media/dvb-core/dvb_ca_en50221.c
1784
dvb_ca_en50221_thread_update_delay(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1788
module_put(ca->pub->owner);
drivers/media/dvb-core/dvb_ca_en50221.c
179
dvb_ca_private_free(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1790
dvb_ca_private_put(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1792
if (dvbdev->users == 1 && ca->exit == 1) {
drivers/media/dvb-core/dvb_ca_en50221.c
1793
mutex_unlock(&ca->remove_mutex);
drivers/media/dvb-core/dvb_ca_en50221.c
1796
mutex_unlock(&ca->remove_mutex);
drivers/media/dvb-core/dvb_ca_en50221.c
1813
struct dvb_ca_private *ca = dvbdev->priv;
drivers/media/dvb-core/dvb_ca_en50221.c
182
static void dvb_ca_private_get(struct dvb_ca_private *ca)
drivers/media/dvb-core/dvb_ca_en50221.c
1820
poll_wait(file, &ca->wait_queue, wait);
drivers/media/dvb-core/dvb_ca_en50221.c
1822
if (dvb_ca_en50221_io_read_condition(ca, &result, &slot) == 1)
drivers/media/dvb-core/dvb_ca_en50221.c
1829
if (dvb_ca_en50221_io_read_condition(ca, &result, &slot) == 1)
drivers/media/dvb-core/dvb_ca_en50221.c
184
kref_get(&ca->refcount);
drivers/media/dvb-core/dvb_ca_en50221.c
187
static void dvb_ca_private_put(struct dvb_ca_private *ca)
drivers/media/dvb-core/dvb_ca_en50221.c
1874
struct dvb_ca_private *ca = NULL;
drivers/media/dvb-core/dvb_ca_en50221.c
1883
ca = kzalloc_obj(*ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1884
if (!ca) {
drivers/media/dvb-core/dvb_ca_en50221.c
1888
kref_init(&ca->refcount);
drivers/media/dvb-core/dvb_ca_en50221.c
1889
ca->pub = pubca;
drivers/media/dvb-core/dvb_ca_en50221.c
189
kref_put(&ca->refcount, dvb_ca_private_release);
drivers/media/dvb-core/dvb_ca_en50221.c
1890
ca->flags = flags;
drivers/media/dvb-core/dvb_ca_en50221.c
1891
ca->slot_count = slot_count;
drivers/media/dvb-core/dvb_ca_en50221.c
1892
ca->slot_info = kzalloc_objs(struct dvb_ca_slot, slot_count);
drivers/media/dvb-core/dvb_ca_en50221.c
1893
if (!ca->slot_info) {
drivers/media/dvb-core/dvb_ca_en50221.c
1897
init_waitqueue_head(&ca->wait_queue);
drivers/media/dvb-core/dvb_ca_en50221.c
1898
ca->open = 0;
drivers/media/dvb-core/dvb_ca_en50221.c
1899
ca->wakeup = 0;
drivers/media/dvb-core/dvb_ca_en50221.c
1900
ca->next_read_slot = 0;
drivers/media/dvb-core/dvb_ca_en50221.c
1901
pubca->private = ca;
drivers/media/dvb-core/dvb_ca_en50221.c
1904
ret = dvb_register_device(dvb_adapter, &ca->dvbdev, &dvbdev_ca, ca,
drivers/media/dvb-core/dvb_ca_en50221.c
1911
struct dvb_ca_slot *sl = &ca->slot_info[i];
drivers/media/dvb-core/dvb_ca_en50221.c
192
static void dvb_ca_en50221_thread_wakeup(struct dvb_ca_private *ca);
drivers/media/dvb-core/dvb_ca_en50221.c
1920
mutex_init(&ca->ioctl_mutex);
drivers/media/dvb-core/dvb_ca_en50221.c
1921
mutex_init(&ca->remove_mutex);
drivers/media/dvb-core/dvb_ca_en50221.c
193
static int dvb_ca_en50221_read_data(struct dvb_ca_private *ca, int slot,
drivers/media/dvb-core/dvb_ca_en50221.c
1930
ca->thread = kthread_run(dvb_ca_en50221_thread, ca, "kdvb-ca-%i:%i",
drivers/media/dvb-core/dvb_ca_en50221.c
1931
ca->dvbdev->adapter->num, ca->dvbdev->id);
drivers/media/dvb-core/dvb_ca_en50221.c
1932
if (IS_ERR(ca->thread)) {
drivers/media/dvb-core/dvb_ca_en50221.c
1933
ret = PTR_ERR(ca->thread);
drivers/media/dvb-core/dvb_ca_en50221.c
1941
dvb_unregister_device(ca->dvbdev);
drivers/media/dvb-core/dvb_ca_en50221.c
1943
kfree(ca->slot_info);
drivers/media/dvb-core/dvb_ca_en50221.c
1945
kfree(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
195
static int dvb_ca_en50221_write_data(struct dvb_ca_private *ca, int slot,
drivers/media/dvb-core/dvb_ca_en50221.c
1959
struct dvb_ca_private *ca = pubca->private;
drivers/media/dvb-core/dvb_ca_en50221.c
1964
mutex_lock(&ca->remove_mutex);
drivers/media/dvb-core/dvb_ca_en50221.c
1965
ca->exit = 1;
drivers/media/dvb-core/dvb_ca_en50221.c
1966
mutex_unlock(&ca->remove_mutex);
drivers/media/dvb-core/dvb_ca_en50221.c
1968
if (ca->dvbdev->users < 1)
drivers/media/dvb-core/dvb_ca_en50221.c
1969
wait_event(ca->dvbdev->wait_queue,
drivers/media/dvb-core/dvb_ca_en50221.c
1970
ca->dvbdev->users == 1);
drivers/media/dvb-core/dvb_ca_en50221.c
1973
kthread_stop(ca->thread);
drivers/media/dvb-core/dvb_ca_en50221.c
1975
for (i = 0; i < ca->slot_count; i++)
drivers/media/dvb-core/dvb_ca_en50221.c
1976
dvb_ca_en50221_slot_shutdown(ca, i);
drivers/media/dvb-core/dvb_ca_en50221.c
1978
dvb_remove_device(ca->dvbdev);
drivers/media/dvb-core/dvb_ca_en50221.c
1979
dvb_ca_private_put(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
228
static int dvb_ca_en50221_check_camstatus(struct dvb_ca_private *ca, int slot)
drivers/media/dvb-core/dvb_ca_en50221.c
230
struct dvb_ca_slot *sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
236
if (ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE)
drivers/media/dvb-core/dvb_ca_en50221.c
240
slot_status = ca->pub->poll_slot_status(ca->pub, slot, ca->open);
drivers/media/dvb-core/dvb_ca_en50221.c
278
static int dvb_ca_en50221_wait_if_status(struct dvb_ca_private *ca, int slot,
drivers/media/dvb-core/dvb_ca_en50221.c
293
res = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_STATUS);
drivers/media/dvb-core/dvb_ca_en50221.c
326
static int dvb_ca_en50221_link_init(struct dvb_ca_private *ca, int slot)
drivers/media/dvb-core/dvb_ca_en50221.c
328
struct dvb_ca_slot *sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
345
ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND,
drivers/media/dvb-core/dvb_ca_en50221.c
349
ret = dvb_ca_en50221_wait_if_status(ca, slot, STATUSREG_DA, HZ);
drivers/media/dvb-core/dvb_ca_en50221.c
352
ret = dvb_ca_en50221_read_data(ca, slot, buf, 2);
drivers/media/dvb-core/dvb_ca_en50221.c
355
ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, IRQEN);
drivers/media/dvb-core/dvb_ca_en50221.c
372
ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND,
drivers/media/dvb-core/dvb_ca_en50221.c
376
ret = dvb_ca_en50221_wait_if_status(ca, slot, STATUSREG_FR, HZ / 10);
drivers/media/dvb-core/dvb_ca_en50221.c
379
ret = dvb_ca_en50221_write_data(ca, slot, buf, 2, CMDREG_SW);
drivers/media/dvb-core/dvb_ca_en50221.c
382
ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, IRQEN);
drivers/media/dvb-core/dvb_ca_en50221.c
402
static int dvb_ca_en50221_read_tuple(struct dvb_ca_private *ca, int slot,
drivers/media/dvb-core/dvb_ca_en50221.c
412
_tuple_type = ca->pub->read_attribute_mem(ca->pub, slot, _address);
drivers/media/dvb-core/dvb_ca_en50221.c
422
_tuple_length = ca->pub->read_attribute_mem(ca->pub, slot,
drivers/media/dvb-core/dvb_ca_en50221.c
432
tuple[i] = ca->pub->read_attribute_mem(ca->pub, slot,
drivers/media/dvb-core/dvb_ca_en50221.c
456
static int dvb_ca_en50221_parse_attributes(struct dvb_ca_private *ca, int slot)
drivers/media/dvb-core/dvb_ca_en50221.c
473
status = dvb_ca_en50221_read_tuple(ca, slot, &address, &tuple_type,
drivers/media/dvb-core/dvb_ca_en50221.c
481
status = dvb_ca_en50221_read_tuple(ca, slot, &address, &tuple_type,
drivers/media/dvb-core/dvb_ca_en50221.c
489
status = dvb_ca_en50221_read_tuple(ca, slot, &address, &tuple_type,
drivers/media/dvb-core/dvb_ca_en50221.c
497
status = dvb_ca_en50221_read_tuple(ca, slot, &address, &tuple_type,
drivers/media/dvb-core/dvb_ca_en50221.c
509
status = dvb_ca_en50221_read_tuple(ca, slot, &address, &tuple_type,
drivers/media/dvb-core/dvb_ca_en50221.c
522
sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
537
ca->dvbdev->adapter->num, dvb_str[8], dvb_str[9],
drivers/media/dvb-core/dvb_ca_en50221.c
544
status = dvb_ca_en50221_read_tuple(ca, slot, &address,
drivers/media/dvb-core/dvb_ca_en50221.c
601
static int dvb_ca_en50221_set_configoption(struct dvb_ca_private *ca, int slot)
drivers/media/dvb-core/dvb_ca_en50221.c
603
struct dvb_ca_slot *sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
609
ca->pub->write_attribute_mem(ca->pub, slot, sl->config_base,
drivers/media/dvb-core/dvb_ca_en50221.c
613
configoption = ca->pub->read_attribute_mem(ca->pub, slot,
drivers/media/dvb-core/dvb_ca_en50221.c
637
static int dvb_ca_en50221_read_data(struct dvb_ca_private *ca, int slot,
drivers/media/dvb-core/dvb_ca_en50221.c
640
struct dvb_ca_slot *sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
665
if (ca->pub->read_data &&
drivers/media/dvb-core/dvb_ca_en50221.c
668
status = ca->pub->read_data(ca->pub, slot, buf,
drivers/media/dvb-core/dvb_ca_en50221.c
671
status = ca->pub->read_data(ca->pub, slot, buf, ecount);
drivers/media/dvb-core/dvb_ca_en50221.c
679
status = ca->pub->read_cam_control(ca->pub, slot,
drivers/media/dvb-core/dvb_ca_en50221.c
690
status = ca->pub->read_cam_control(ca->pub, slot,
drivers/media/dvb-core/dvb_ca_en50221.c
695
status = ca->pub->read_cam_control(ca->pub, slot,
drivers/media/dvb-core/dvb_ca_en50221.c
705
ca->dvbdev->adapter->num, bytes_read,
drivers/media/dvb-core/dvb_ca_en50221.c
713
ca->dvbdev->adapter->num);
drivers/media/dvb-core/dvb_ca_en50221.c
721
ca->dvbdev->adapter->num);
drivers/media/dvb-core/dvb_ca_en50221.c
730
status = ca->pub->read_cam_control(ca->pub, slot,
drivers/media/dvb-core/dvb_ca_en50221.c
740
status = ca->pub->read_cam_control(ca->pub, slot,
drivers/media/dvb-core/dvb_ca_en50221.c
770
wake_up_interruptible(&ca->wait_queue);
drivers/media/dvb-core/dvb_ca_en50221.c
792
static int dvb_ca_en50221_write_data(struct dvb_ca_private *ca, int slot,
drivers/media/dvb-core/dvb_ca_en50221.c
795
struct dvb_ca_slot *sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
805
if (ca->pub->write_data &&
drivers/media/dvb-core/dvb_ca_en50221.c
807
return ca->pub->write_data(ca->pub, slot, buf, bytes_write);
drivers/media/dvb-core/dvb_ca_en50221.c
815
status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_STATUS);
drivers/media/dvb-core/dvb_ca_en50221.c
820
dvb_ca_en50221_thread_wakeup(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
827
status = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND,
drivers/media/dvb-core/dvb_ca_en50221.c
833
status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_STATUS);
drivers/media/dvb-core/dvb_ca_en50221.c
853
status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_STATUS);
drivers/media/dvb-core/dvb_ca_en50221.c
859
dvb_ca_en50221_thread_wakeup(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
866
status = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_SIZE_HIGH,
drivers/media/dvb-core/dvb_ca_en50221.c
870
status = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_SIZE_LOW,
drivers/media/dvb-core/dvb_ca_en50221.c
877
status = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_DATA,
drivers/media/dvb-core/dvb_ca_en50221.c
884
status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_STATUS);
drivers/media/dvb-core/dvb_ca_en50221.c
898
ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, IRQEN);
drivers/media/dvb-core/dvb_ca_en50221.c
913
static int dvb_ca_en50221_slot_shutdown(struct dvb_ca_private *ca, int slot)
drivers/media/dvb-core/dvb_ca_en50221.c
917
ca->pub->slot_shutdown(ca->pub, slot);
drivers/media/dvb-core/dvb_ca_en50221.c
918
ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE;
drivers/media/dvb-core/dvb_ca_en50221.c
924
wake_up_interruptible(&ca->wait_queue);
drivers/media/dvb-core/dvb_ca_en50221.c
942
struct dvb_ca_private *ca = pubca->private;
drivers/media/dvb-core/dvb_ca_en50221.c
943
struct dvb_ca_slot *sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
958
dvb_ca_en50221_thread_wakeup(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
970
struct dvb_ca_private *ca = pubca->private;
drivers/media/dvb-core/dvb_ca_en50221.c
971
struct dvb_ca_slot *sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
977
dvb_ca_en50221_thread_wakeup(ca);
drivers/media/dvb-core/dvb_ca_en50221.c
990
struct dvb_ca_private *ca = pubca->private;
drivers/media/dvb-core/dvb_ca_en50221.c
991
struct dvb_ca_slot *sl = &ca->slot_info[slot];
drivers/media/dvb-core/dvb_ca_en50221.c
998
flags = ca->pub->read_cam_control(pubca, slot, CTRLIF_STATUS);
drivers/media/dvb-core/dvbdev.c
668
struct media_entity *demux = NULL, *ca = NULL;
drivers/media/dvb-core/dvbdev.c
694
ca = entity;
drivers/media/dvb-core/dvbdev.c
785
if (demux && ca) {
drivers/media/dvb-core/dvbdev.c
786
ret = media_create_pad_link(demux, 1, ca,
drivers/media/dvb-core/dvbdev.c
818
if (intf->type == MEDIA_INTF_T_DVB_CA && ca) {
drivers/media/dvb-core/dvbdev.c
819
link = media_create_intf_link(ca, intf,
drivers/media/dvb-frontends/cxd2099.c
24
static int read_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount);
drivers/media/dvb-frontends/cxd2099.c
376
static int read_attribute_mem(struct dvb_ca_en50221 *ca,
drivers/media/dvb-frontends/cxd2099.c
379
struct cxd *ci = ca->data;
drivers/media/dvb-frontends/cxd2099.c
389
static int write_attribute_mem(struct dvb_ca_en50221 *ca, int slot,
drivers/media/dvb-frontends/cxd2099.c
392
struct cxd *ci = ca->data;
drivers/media/dvb-frontends/cxd2099.c
401
static int read_cam_control(struct dvb_ca_en50221 *ca,
drivers/media/dvb-frontends/cxd2099.c
404
struct cxd *ci = ca->data;
drivers/media/dvb-frontends/cxd2099.c
414
static int write_cam_control(struct dvb_ca_en50221 *ca, int slot,
drivers/media/dvb-frontends/cxd2099.c
417
struct cxd *ci = ca->data;
drivers/media/dvb-frontends/cxd2099.c
426
static int slot_reset(struct dvb_ca_en50221 *ca, int slot)
drivers/media/dvb-frontends/cxd2099.c
428
struct cxd *ci = ca->data;
drivers/media/dvb-frontends/cxd2099.c
431
read_data(ca, slot, ci->rbuf, 0);
drivers/media/dvb-frontends/cxd2099.c
455
static int slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
drivers/media/dvb-frontends/cxd2099.c
457
struct cxd *ci = ca->data;
drivers/media/dvb-frontends/cxd2099.c
461
read_data(ca, slot, ci->rbuf, 0);
drivers/media/dvb-frontends/cxd2099.c
477
static int slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
drivers/media/dvb-frontends/cxd2099.c
479
struct cxd *ci = ca->data;
drivers/media/dvb-frontends/cxd2099.c
531
static int poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open)
drivers/media/dvb-frontends/cxd2099.c
533
struct cxd *ci = ca->data;
drivers/media/dvb-frontends/cxd2099.c
544
static int read_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount)
drivers/media/dvb-frontends/cxd2099.c
546
struct cxd *ci = ca->data;
drivers/media/dvb-frontends/cxd2099.c
573
static int write_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount)
drivers/media/dvb-frontends/cxd2099.c
575
struct cxd *ci = ca->data;
drivers/media/dvb-frontends/sp2.c
306
s->ca.owner = THIS_MODULE;
drivers/media/dvb-frontends/sp2.c
307
s->ca.read_attribute_mem = sp2_ci_read_attribute_mem;
drivers/media/dvb-frontends/sp2.c
308
s->ca.write_attribute_mem = sp2_ci_write_attribute_mem;
drivers/media/dvb-frontends/sp2.c
309
s->ca.read_cam_control = sp2_ci_read_cam_control;
drivers/media/dvb-frontends/sp2.c
310
s->ca.write_cam_control = sp2_ci_write_cam_control;
drivers/media/dvb-frontends/sp2.c
311
s->ca.slot_reset = sp2_ci_slot_reset;
drivers/media/dvb-frontends/sp2.c
312
s->ca.slot_shutdown = sp2_ci_slot_shutdown;
drivers/media/dvb-frontends/sp2.c
313
s->ca.slot_ts_enable = sp2_ci_slot_ts_enable;
drivers/media/dvb-frontends/sp2.c
314
s->ca.poll_slot_status = sp2_ci_poll_slot_status;
drivers/media/dvb-frontends/sp2.c
315
s->ca.data = s;
drivers/media/dvb-frontends/sp2.c
334
ret = dvb_ca_en50221_init(s->dvb_adap, &s->ca, 0, 1);
drivers/media/dvb-frontends/sp2.c
358
if (!s->ca.data)
drivers/media/dvb-frontends/sp2.c
361
dvb_ca_en50221_release(&s->ca);
drivers/media/dvb-frontends/sp2_priv.h
19
struct dvb_ca_en50221 ca;
drivers/media/pci/cx23885/altera-ci.c
112
struct dvb_ca_en50221 ca;
drivers/media/pci/cx23885/altera-ci.c
504
if (state->ca.data != NULL)
drivers/media/pci/cx23885/altera-ci.c
505
dvb_ca_en50221_release(&state->ca);
drivers/media/pci/cx23885/altera-ci.c
748
state->ca.owner = THIS_MODULE;
drivers/media/pci/cx23885/altera-ci.c
749
state->ca.read_attribute_mem = altera_ci_read_attribute_mem;
drivers/media/pci/cx23885/altera-ci.c
750
state->ca.write_attribute_mem = altera_ci_write_attribute_mem;
drivers/media/pci/cx23885/altera-ci.c
751
state->ca.read_cam_control = altera_ci_read_cam_ctl;
drivers/media/pci/cx23885/altera-ci.c
752
state->ca.write_cam_control = altera_ci_write_cam_ctl;
drivers/media/pci/cx23885/altera-ci.c
753
state->ca.slot_reset = altera_ci_slot_reset;
drivers/media/pci/cx23885/altera-ci.c
754
state->ca.slot_shutdown = altera_ci_slot_shutdown;
drivers/media/pci/cx23885/altera-ci.c
755
state->ca.slot_ts_enable = altera_ci_slot_ts_ctl;
drivers/media/pci/cx23885/altera-ci.c
756
state->ca.poll_slot_status = altera_poll_ci_slot_status;
drivers/media/pci/cx23885/altera-ci.c
757
state->ca.data = state;
drivers/media/pci/cx23885/altera-ci.c
760
&state->ca,
drivers/media/pci/cx23885/cimax2.c
285
dvb_ca_en50221_camready_irq(&state->ca, 0);
drivers/media/pci/cx23885/cimax2.c
343
dvb_ca_en50221_frda_irq(&state->ca, 0);
drivers/media/pci/cx23885/cimax2.c
473
state->ca.owner = THIS_MODULE;
drivers/media/pci/cx23885/cimax2.c
474
state->ca.read_attribute_mem = netup_ci_read_attribute_mem;
drivers/media/pci/cx23885/cimax2.c
475
state->ca.write_attribute_mem = netup_ci_write_attribute_mem;
drivers/media/pci/cx23885/cimax2.c
476
state->ca.read_cam_control = netup_ci_read_cam_ctl;
drivers/media/pci/cx23885/cimax2.c
477
state->ca.write_cam_control = netup_ci_write_cam_ctl;
drivers/media/pci/cx23885/cimax2.c
478
state->ca.slot_reset = netup_ci_slot_reset;
drivers/media/pci/cx23885/cimax2.c
479
state->ca.slot_shutdown = netup_ci_slot_shutdown;
drivers/media/pci/cx23885/cimax2.c
480
state->ca.slot_ts_enable = netup_ci_slot_ts_ctl;
drivers/media/pci/cx23885/cimax2.c
481
state->ca.poll_slot_status = netup_poll_ci_slot_status;
drivers/media/pci/cx23885/cimax2.c
482
state->ca.data = state;
drivers/media/pci/cx23885/cimax2.c
499
&state->ca,
drivers/media/pci/cx23885/cimax2.c
528
if (NULL == state->ca.data)
drivers/media/pci/cx23885/cimax2.c
531
dvb_ca_en50221_release(&state->ca);
drivers/media/pci/cx23885/cimax2.c
69
struct dvb_ca_en50221 ca;
drivers/media/pci/ddbridge/ddbridge-ci.c
111
static int slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
drivers/media/pci/ddbridge/ddbridge-ci.c
113
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
120
static int slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
drivers/media/pci/ddbridge/ddbridge-ci.c
122
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
130
static int poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open)
drivers/media/pci/ddbridge/ddbridge-ci.c
132
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
180
static int read_attribute_mem_xo2(struct dvb_ca_en50221 *ca,
drivers/media/pci/ddbridge/ddbridge-ci.c
183
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
193
static int write_attribute_mem_xo2(struct dvb_ca_en50221 *ca, int slot,
drivers/media/pci/ddbridge/ddbridge-ci.c
196
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
203
static int read_cam_control_xo2(struct dvb_ca_en50221 *ca,
drivers/media/pci/ddbridge/ddbridge-ci.c
206
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
216
static int write_cam_control_xo2(struct dvb_ca_en50221 *ca, int slot,
drivers/media/pci/ddbridge/ddbridge-ci.c
219
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
226
static int slot_reset_xo2(struct dvb_ca_en50221 *ca, int slot)
drivers/media/pci/ddbridge/ddbridge-ci.c
228
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
240
static int slot_shutdown_xo2(struct dvb_ca_en50221 *ca, int slot)
drivers/media/pci/ddbridge/ddbridge-ci.c
242
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
250
static int slot_ts_enable_xo2(struct dvb_ca_en50221 *ca, int slot)
drivers/media/pci/ddbridge/ddbridge-ci.c
252
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
259
static int poll_slot_status_xo2(struct dvb_ca_en50221 *ca, int slot, int open)
drivers/media/pci/ddbridge/ddbridge-ci.c
261
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
36
static int read_attribute_mem(struct dvb_ca_en50221 *ca,
drivers/media/pci/ddbridge/ddbridge-ci.c
39
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
51
static int write_attribute_mem(struct dvb_ca_en50221 *ca, int slot,
drivers/media/pci/ddbridge/ddbridge-ci.c
54
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
62
static int read_cam_control(struct dvb_ca_en50221 *ca,
drivers/media/pci/ddbridge/ddbridge-ci.c
66
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
83
static int write_cam_control(struct dvb_ca_en50221 *ca, int slot,
drivers/media/pci/ddbridge/ddbridge-ci.c
86
struct ddb_ci *ci = ca->data;
drivers/media/pci/ddbridge/ddbridge-ci.c
94
static int slot_reset(struct dvb_ca_en50221 *ca, int slot)
drivers/media/pci/ddbridge/ddbridge-ci.c
96
struct ddb_ci *ci = ca->data;
drivers/media/pci/mantis/hopper_cards.c
60
struct mantis_ca *ca;
drivers/media/pci/mantis/hopper_cards.c
65
ca = mantis->mantis_ca;
drivers/media/pci/mantis/hopper_cards.c
90
wake_up(&ca->hif_write_wq);
drivers/media/pci/mantis/hopper_cards.c
91
schedule_work(&ca->hif_evm_work);
drivers/media/pci/mantis/mantis_ca.c
108
struct mantis_ca *ca = en50221->data;
drivers/media/pci/mantis/mantis_ca.c
109
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_ca.c
118
struct mantis_ca *ca = en50221->data;
drivers/media/pci/mantis/mantis_ca.c
119
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_ca.c
123
if (ca->slot_state == MODULE_INSERTED) {
drivers/media/pci/mantis/mantis_ca.c
136
struct mantis_ca *ca;
drivers/media/pci/mantis/mantis_ca.c
140
ca = kzalloc_obj(struct mantis_ca);
drivers/media/pci/mantis/mantis_ca.c
141
if (!ca) {
drivers/media/pci/mantis/mantis_ca.c
147
ca->ca_priv = mantis;
drivers/media/pci/mantis/mantis_ca.c
148
mantis->mantis_ca = ca;
drivers/media/pci/mantis/mantis_ca.c
151
ca->en50221.owner = THIS_MODULE;
drivers/media/pci/mantis/mantis_ca.c
152
ca->en50221.read_attribute_mem = mantis_ca_read_attr_mem;
drivers/media/pci/mantis/mantis_ca.c
153
ca->en50221.write_attribute_mem = mantis_ca_write_attr_mem;
drivers/media/pci/mantis/mantis_ca.c
154
ca->en50221.read_cam_control = mantis_ca_read_cam_ctl;
drivers/media/pci/mantis/mantis_ca.c
155
ca->en50221.write_cam_control = mantis_ca_write_cam_ctl;
drivers/media/pci/mantis/mantis_ca.c
156
ca->en50221.slot_reset = mantis_ca_slot_reset;
drivers/media/pci/mantis/mantis_ca.c
157
ca->en50221.slot_shutdown = mantis_ca_slot_shutdown;
drivers/media/pci/mantis/mantis_ca.c
158
ca->en50221.slot_ts_enable = mantis_ts_control;
drivers/media/pci/mantis/mantis_ca.c
159
ca->en50221.poll_slot_status = mantis_slot_status;
drivers/media/pci/mantis/mantis_ca.c
160
ca->en50221.data = ca;
drivers/media/pci/mantis/mantis_ca.c
162
mutex_init(&ca->ca_lock);
drivers/media/pci/mantis/mantis_ca.c
164
init_waitqueue_head(&ca->hif_data_wq);
drivers/media/pci/mantis/mantis_ca.c
165
init_waitqueue_head(&ca->hif_opdone_wq);
drivers/media/pci/mantis/mantis_ca.c
166
init_waitqueue_head(&ca->hif_write_wq);
drivers/media/pci/mantis/mantis_ca.c
169
result = dvb_ca_en50221_init(dvb_adapter, &ca->en50221, ca_flags, 1);
drivers/media/pci/mantis/mantis_ca.c
175
mantis_evmgr_init(ca);
drivers/media/pci/mantis/mantis_ca.c
178
kfree(ca);
drivers/media/pci/mantis/mantis_ca.c
185
struct mantis_ca *ca = mantis->mantis_ca;
drivers/media/pci/mantis/mantis_ca.c
188
if (!ca)
drivers/media/pci/mantis/mantis_ca.c
191
mantis_evmgr_exit(ca);
drivers/media/pci/mantis/mantis_ca.c
193
dvb_ca_en50221_release(&ca->en50221);
drivers/media/pci/mantis/mantis_ca.c
195
kfree(ca);
drivers/media/pci/mantis/mantis_ca.c
30
struct mantis_ca *ca = en50221->data;
drivers/media/pci/mantis/mantis_ca.c
31
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_ca.c
38
return mantis_hif_read_mem(ca, addr);
drivers/media/pci/mantis/mantis_ca.c
43
struct mantis_ca *ca = en50221->data;
drivers/media/pci/mantis/mantis_ca.c
44
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_ca.c
51
return mantis_hif_write_mem(ca, addr, data);
drivers/media/pci/mantis/mantis_ca.c
56
struct mantis_ca *ca = en50221->data;
drivers/media/pci/mantis/mantis_ca.c
57
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_ca.c
64
return mantis_hif_read_iom(ca, addr);
drivers/media/pci/mantis/mantis_ca.c
69
struct mantis_ca *ca = en50221->data;
drivers/media/pci/mantis/mantis_ca.c
70
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_ca.c
77
return mantis_hif_write_iom(ca, addr, data);
drivers/media/pci/mantis/mantis_ca.c
82
struct mantis_ca *ca = en50221->data;
drivers/media/pci/mantis/mantis_ca.c
83
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_ca.c
91
dvb_ca_en50221_camready_irq(&ca->en50221, 0);
drivers/media/pci/mantis/mantis_ca.c
98
struct mantis_ca *ca = en50221->data;
drivers/media/pci/mantis/mantis_ca.c
99
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_cards.c
100
schedule_work(&ca->hif_evm_work);
drivers/media/pci/mantis/mantis_cards.c
69
struct mantis_ca *ca;
drivers/media/pci/mantis/mantis_cards.c
74
ca = mantis->mantis_ca;
drivers/media/pci/mantis/mantis_cards.c
99
wake_up(&ca->hif_write_wq);
drivers/media/pci/mantis/mantis_evm.c
102
flush_work(&ca->hif_evm_work);
drivers/media/pci/mantis/mantis_evm.c
103
mantis_hif_exit(ca);
drivers/media/pci/mantis/mantis_evm.c
104
mantis_pcmcia_exit(ca);
drivers/media/pci/mantis/mantis_evm.c
29
struct mantis_ca *ca = container_of(work, struct mantis_ca, hif_evm_work);
drivers/media/pci/mantis/mantis_evm.c
30
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_evm.c
40
mantis_event_cam_plugin(ca);
drivers/media/pci/mantis/mantis_evm.c
41
dvb_ca_en50221_camchange_irq(&ca->en50221,
drivers/media/pci/mantis/mantis_evm.c
49
mantis_event_cam_unplug(ca);
drivers/media/pci/mantis/mantis_evm.c
50
dvb_ca_en50221_camchange_irq(&ca->en50221,
drivers/media/pci/mantis/mantis_evm.c
79
ca->sbuf_status = MANTIS_SBUF_DATA_AVAIL;
drivers/media/pci/mantis/mantis_evm.c
80
ca->hif_event = MANTIS_SBUF_OPDONE;
drivers/media/pci/mantis/mantis_evm.c
81
wake_up(&ca->hif_opdone_wq);
drivers/media/pci/mantis/mantis_evm.c
85
int mantis_evmgr_init(struct mantis_ca *ca)
drivers/media/pci/mantis/mantis_evm.c
87
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_evm.c
90
INIT_WORK(&ca->hif_evm_work, mantis_hifevm_work);
drivers/media/pci/mantis/mantis_evm.c
91
mantis_pcmcia_init(ca);
drivers/media/pci/mantis/mantis_evm.c
92
schedule_work(&ca->hif_evm_work);
drivers/media/pci/mantis/mantis_evm.c
93
mantis_hif_init(ca);
drivers/media/pci/mantis/mantis_evm.c
97
void mantis_evmgr_exit(struct mantis_ca *ca)
drivers/media/pci/mantis/mantis_evm.c
99
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_hif.c
100
mutex_unlock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
105
int mantis_hif_write_mem(struct mantis_ca *ca, u32 addr, u8 data)
drivers/media/pci/mantis/mantis_hif.c
107
struct mantis_slot *slot = ca->slot;
drivers/media/pci/mantis/mantis_hif.c
108
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_hif.c
112
mutex_lock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
123
if (mantis_hif_write_wait(ca) != 0) {
drivers/media/pci/mantis/mantis_hif.c
125
mutex_unlock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
129
mutex_unlock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
134
int mantis_hif_read_iom(struct mantis_ca *ca, u32 addr)
drivers/media/pci/mantis/mantis_hif.c
136
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_hif.c
140
mutex_lock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
151
if (mantis_hif_sbuf_opdone_wait(ca) != 0) {
drivers/media/pci/mantis/mantis_hif.c
153
mutex_unlock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
159
mutex_unlock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
164
int mantis_hif_write_iom(struct mantis_ca *ca, u32 addr, u8 data)
drivers/media/pci/mantis/mantis_hif.c
166
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_hif.c
170
mutex_lock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
180
if (mantis_hif_write_wait(ca) != 0) {
drivers/media/pci/mantis/mantis_hif.c
182
mutex_unlock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
186
mutex_unlock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
192
int mantis_hif_init(struct mantis_ca *ca)
drivers/media/pci/mantis/mantis_hif.c
194
struct mantis_slot *slot = ca->slot;
drivers/media/pci/mantis/mantis_hif.c
195
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_hif.c
201
mutex_lock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
211
mutex_unlock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
216
void mantis_hif_exit(struct mantis_ca *ca)
drivers/media/pci/mantis/mantis_hif.c
218
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_hif.c
222
mutex_lock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
226
mutex_unlock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
30
static int mantis_hif_sbuf_opdone_wait(struct mantis_ca *ca)
drivers/media/pci/mantis/mantis_hif.c
32
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_hif.c
35
if (wait_event_timeout(ca->hif_opdone_wq,
drivers/media/pci/mantis/mantis_hif.c
36
ca->hif_event & MANTIS_SBUF_OPDONE,
drivers/media/pci/mantis/mantis_hif.c
43
ca->hif_event &= ~MANTIS_SBUF_OPDONE;
drivers/media/pci/mantis/mantis_hif.c
47
static int mantis_hif_write_wait(struct mantis_ca *ca)
drivers/media/pci/mantis/mantis_hif.c
49
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_hif.c
53
if (wait_event_timeout(ca->hif_write_wq,
drivers/media/pci/mantis/mantis_hif.c
77
int mantis_hif_read_mem(struct mantis_ca *ca, u32 addr)
drivers/media/pci/mantis/mantis_hif.c
79
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_hif.c
83
mutex_lock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_hif.c
94
if (mantis_hif_sbuf_opdone_wait(ca) != 0) {
drivers/media/pci/mantis/mantis_hif.c
96
mutex_unlock(&ca->ca_lock);
drivers/media/pci/mantis/mantis_link.h
56
extern void mantis_event_cam_plugin(struct mantis_ca *ca);
drivers/media/pci/mantis/mantis_link.h
57
extern void mantis_event_cam_unplug(struct mantis_ca *ca);
drivers/media/pci/mantis/mantis_link.h
58
extern int mantis_pcmcia_init(struct mantis_ca *ca);
drivers/media/pci/mantis/mantis_link.h
59
extern void mantis_pcmcia_exit(struct mantis_ca *ca);
drivers/media/pci/mantis/mantis_link.h
60
extern int mantis_evmgr_init(struct mantis_ca *ca);
drivers/media/pci/mantis/mantis_link.h
61
extern void mantis_evmgr_exit(struct mantis_ca *ca);
drivers/media/pci/mantis/mantis_link.h
64
extern int mantis_hif_init(struct mantis_ca *ca);
drivers/media/pci/mantis/mantis_link.h
65
extern void mantis_hif_exit(struct mantis_ca *ca);
drivers/media/pci/mantis/mantis_link.h
66
extern int mantis_hif_read_mem(struct mantis_ca *ca, u32 addr);
drivers/media/pci/mantis/mantis_link.h
67
extern int mantis_hif_write_mem(struct mantis_ca *ca, u32 addr, u8 data);
drivers/media/pci/mantis/mantis_link.h
68
extern int mantis_hif_read_iom(struct mantis_ca *ca, u32 addr);
drivers/media/pci/mantis/mantis_link.h
69
extern int mantis_hif_write_iom(struct mantis_ca *ca, u32 addr, u8 data);
drivers/media/pci/mantis/mantis_pcmcia.c
103
void mantis_pcmcia_exit(struct mantis_ca *ca)
drivers/media/pci/mantis/mantis_pcmcia.c
105
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_pcmcia.c
30
void mantis_event_cam_plugin(struct mantis_ca *ca)
drivers/media/pci/mantis/mantis_pcmcia.c
32
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_pcmcia.c
36
if (ca->slot_state == MODULE_XTRACTED) {
drivers/media/pci/mantis/mantis_pcmcia.c
45
ca->slot_state = MODULE_INSERTED;
drivers/media/pci/mantis/mantis_pcmcia.c
54
void mantis_event_cam_unplug(struct mantis_ca *ca)
drivers/media/pci/mantis/mantis_pcmcia.c
56
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_pcmcia.c
60
if (ca->slot_state == MODULE_INSERTED) {
drivers/media/pci/mantis/mantis_pcmcia.c
69
ca->slot_state = MODULE_XTRACTED;
drivers/media/pci/mantis/mantis_pcmcia.c
74
int mantis_pcmcia_init(struct mantis_ca *ca)
drivers/media/pci/mantis/mantis_pcmcia.c
76
struct mantis_pci *mantis = ca->ca_priv;
drivers/media/pci/mantis/mantis_pcmcia.c
87
ca->slot_state = MODULE_INSERTED;
drivers/media/pci/mantis/mantis_pcmcia.c
88
dvb_ca_en50221_camchange_irq(&ca->en50221,
drivers/media/pci/mantis/mantis_pcmcia.c
94
ca->slot_state = MODULE_XTRACTED;
drivers/media/pci/mantis/mantis_pcmcia.c
95
dvb_ca_en50221_camchange_irq(&ca->en50221,
drivers/media/pci/netup_unidvb/netup_unidvb.h
92
struct dvb_ca_en50221 ca;
drivers/media/pci/netup_unidvb/netup_unidvb_ci.c
202
state->ca.owner = THIS_MODULE;
drivers/media/pci/netup_unidvb/netup_unidvb_ci.c
203
state->ca.read_attribute_mem = netup_unidvb_ci_read_attribute_mem;
drivers/media/pci/netup_unidvb/netup_unidvb_ci.c
204
state->ca.write_attribute_mem = netup_unidvb_ci_write_attribute_mem;
drivers/media/pci/netup_unidvb/netup_unidvb_ci.c
205
state->ca.read_cam_control = netup_unidvb_ci_read_cam_ctl;
drivers/media/pci/netup_unidvb/netup_unidvb_ci.c
206
state->ca.write_cam_control = netup_unidvb_ci_write_cam_ctl;
drivers/media/pci/netup_unidvb/netup_unidvb_ci.c
207
state->ca.slot_reset = netup_unidvb_ci_slot_reset;
drivers/media/pci/netup_unidvb/netup_unidvb_ci.c
208
state->ca.slot_shutdown = netup_unidvb_ci_slot_shutdown;
drivers/media/pci/netup_unidvb/netup_unidvb_ci.c
209
state->ca.slot_ts_enable = netup_unidvb_ci_slot_ts_ctl;
drivers/media/pci/netup_unidvb/netup_unidvb_ci.c
210
state->ca.poll_slot_status = netup_unidvb_poll_ci_slot_status;
drivers/media/pci/netup_unidvb/netup_unidvb_ci.c
211
state->ca.data = state;
drivers/media/pci/netup_unidvb/netup_unidvb_ci.c
213
&state->ca, 0, 1);
drivers/media/pci/netup_unidvb/netup_unidvb_ci.c
237
dvb_ca_en50221_release(&state->ca);
drivers/media/pci/ttpci/budget-av.c
124
static int ciintf_read_attribute_mem(struct dvb_ca_en50221 *ca, int slot, int address)
drivers/media/pci/ttpci/budget-av.c
126
struct budget_av *budget_av = ca->data;
drivers/media/pci/ttpci/budget-av.c
137
ciintf_slot_shutdown(ca, slot);
drivers/media/pci/ttpci/budget-av.c
143
static int ciintf_write_attribute_mem(struct dvb_ca_en50221 *ca, int slot, int address, u8 value)
drivers/media/pci/ttpci/budget-av.c
145
struct budget_av *budget_av = ca->data;
drivers/media/pci/ttpci/budget-av.c
156
ciintf_slot_shutdown(ca, slot);
drivers/media/pci/ttpci/budget-av.c
162
static int ciintf_read_cam_control(struct dvb_ca_en50221 *ca, int slot, u8 address)
drivers/media/pci/ttpci/budget-av.c
164
struct budget_av *budget_av = ca->data;
drivers/media/pci/ttpci/budget-av.c
175
ciintf_slot_shutdown(ca, slot);
drivers/media/pci/ttpci/budget-av.c
182
static int ciintf_write_cam_control(struct dvb_ca_en50221 *ca, int slot, u8 address, u8 value)
drivers/media/pci/ttpci/budget-av.c
184
struct budget_av *budget_av = ca->data;
drivers/media/pci/ttpci/budget-av.c
195
ciintf_slot_shutdown(ca, slot);
drivers/media/pci/ttpci/budget-av.c
201
static int ciintf_slot_reset(struct dvb_ca_en50221 *ca, int slot)
drivers/media/pci/ttpci/budget-av.c
203
struct budget_av *budget_av = ca->data;
drivers/media/pci/ttpci/budget-av.c
230
static int ciintf_slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
drivers/media/pci/ttpci/budget-av.c
232
struct budget_av *budget_av = ca->data;
drivers/media/pci/ttpci/budget-av.c
246
static int ciintf_slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
drivers/media/pci/ttpci/budget-av.c
248
struct budget_av *budget_av = ca->data;
drivers/media/pci/ttpci/budget-av.c
261
static int ciintf_poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open)
drivers/media/pci/ttpci/budget-av.c
263
struct budget_av *budget_av = ca->data;
drivers/media/pci/ttpci/budget-av.c
302
ciintf_slot_shutdown(ca, slot);
drivers/media/pci/ttpci/budget-av.c
311
result = ciintf_read_attribute_mem(ca, slot, 0);
drivers/media/pci/ttpci/budget-av.c
330
memset(&budget_av->ca, 0, sizeof(struct dvb_ca_en50221));
drivers/media/pci/ttpci/budget-av.c
341
budget_av->ca.owner = THIS_MODULE;
drivers/media/pci/ttpci/budget-av.c
342
budget_av->ca.read_attribute_mem = ciintf_read_attribute_mem;
drivers/media/pci/ttpci/budget-av.c
343
budget_av->ca.write_attribute_mem = ciintf_write_attribute_mem;
drivers/media/pci/ttpci/budget-av.c
344
budget_av->ca.read_cam_control = ciintf_read_cam_control;
drivers/media/pci/ttpci/budget-av.c
345
budget_av->ca.write_cam_control = ciintf_write_cam_control;
drivers/media/pci/ttpci/budget-av.c
346
budget_av->ca.slot_reset = ciintf_slot_reset;
drivers/media/pci/ttpci/budget-av.c
347
budget_av->ca.slot_shutdown = ciintf_slot_shutdown;
drivers/media/pci/ttpci/budget-av.c
348
budget_av->ca.slot_ts_enable = ciintf_slot_ts_enable;
drivers/media/pci/ttpci/budget-av.c
349
budget_av->ca.poll_slot_status = ciintf_poll_slot_status;
drivers/media/pci/ttpci/budget-av.c
350
budget_av->ca.data = budget_av;
drivers/media/pci/ttpci/budget-av.c
355
&budget_av->ca, 0, 1);
drivers/media/pci/ttpci/budget-av.c
379
dvb_ca_en50221_release(&budget_av->ca);
drivers/media/pci/ttpci/budget-av.c
60
struct dvb_ca_en50221 ca;
drivers/media/pci/ttpci/budget-av.c
64
static int ciintf_slot_shutdown(struct dvb_ca_en50221 *ca, int slot);
drivers/media/pci/ttpci/budget-ci.c
255
static int ciintf_read_attribute_mem(struct dvb_ca_en50221 *ca, int slot, int address)
drivers/media/pci/ttpci/budget-ci.c
257
struct budget_ci *budget_ci = ca->data;
drivers/media/pci/ttpci/budget-ci.c
266
static int ciintf_write_attribute_mem(struct dvb_ca_en50221 *ca, int slot, int address, u8 value)
drivers/media/pci/ttpci/budget-ci.c
268
struct budget_ci *budget_ci = ca->data;
drivers/media/pci/ttpci/budget-ci.c
277
static int ciintf_read_cam_control(struct dvb_ca_en50221 *ca, int slot, u8 address)
drivers/media/pci/ttpci/budget-ci.c
279
struct budget_ci *budget_ci = ca->data;
drivers/media/pci/ttpci/budget-ci.c
288
static int ciintf_write_cam_control(struct dvb_ca_en50221 *ca, int slot, u8 address, u8 value)
drivers/media/pci/ttpci/budget-ci.c
290
struct budget_ci *budget_ci = ca->data;
drivers/media/pci/ttpci/budget-ci.c
299
static int ciintf_slot_reset(struct dvb_ca_en50221 *ca, int slot)
drivers/media/pci/ttpci/budget-ci.c
301
struct budget_ci *budget_ci = ca->data;
drivers/media/pci/ttpci/budget-ci.c
322
static int ciintf_slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
drivers/media/pci/ttpci/budget-ci.c
324
struct budget_ci *budget_ci = ca->data;
drivers/media/pci/ttpci/budget-ci.c
335
static int ciintf_slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
drivers/media/pci/ttpci/budget-ci.c
337
struct budget_ci *budget_ci = ca->data;
drivers/media/pci/ttpci/budget-ci.c
375
dvb_ca_en50221_camchange_irq(&budget_ci->ca, 0,
drivers/media/pci/ttpci/budget-ci.c
381
dvb_ca_en50221_camready_irq(&budget_ci->ca, 0);
drivers/media/pci/ttpci/budget-ci.c
385
dvb_ca_en50221_frda_irq(&budget_ci->ca, 0);
drivers/media/pci/ttpci/budget-ci.c
398
dvb_ca_en50221_camchange_irq(&budget_ci->ca, 0,
drivers/media/pci/ttpci/budget-ci.c
404
static int ciintf_poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open)
drivers/media/pci/ttpci/budget-ci.c
406
struct budget_ci *budget_ci = ca->data;
drivers/media/pci/ttpci/budget-ci.c
422
if (ciintf_read_attribute_mem(ca, slot, 0) == 0x1d)
drivers/media/pci/ttpci/budget-ci.c
446
memset(&budget_ci->ca, 0, sizeof(struct dvb_ca_en50221));
drivers/media/pci/ttpci/budget-ci.c
476
budget_ci->ca.owner = THIS_MODULE;
drivers/media/pci/ttpci/budget-ci.c
477
budget_ci->ca.read_attribute_mem = ciintf_read_attribute_mem;
drivers/media/pci/ttpci/budget-ci.c
478
budget_ci->ca.write_attribute_mem = ciintf_write_attribute_mem;
drivers/media/pci/ttpci/budget-ci.c
479
budget_ci->ca.read_cam_control = ciintf_read_cam_control;
drivers/media/pci/ttpci/budget-ci.c
480
budget_ci->ca.write_cam_control = ciintf_write_cam_control;
drivers/media/pci/ttpci/budget-ci.c
481
budget_ci->ca.slot_reset = ciintf_slot_reset;
drivers/media/pci/ttpci/budget-ci.c
482
budget_ci->ca.slot_shutdown = ciintf_slot_shutdown;
drivers/media/pci/ttpci/budget-ci.c
483
budget_ci->ca.slot_ts_enable = ciintf_slot_ts_enable;
drivers/media/pci/ttpci/budget-ci.c
484
budget_ci->ca.poll_slot_status = ciintf_poll_slot_status;
drivers/media/pci/ttpci/budget-ci.c
485
budget_ci->ca.data = budget_ci;
drivers/media/pci/ttpci/budget-ci.c
488
&budget_ci->ca, ca_flags, 1);
drivers/media/pci/ttpci/budget-ci.c
517
dvb_ca_en50221_camchange_irq(&budget_ci->ca, 0, flags);
drivers/media/pci/ttpci/budget-ci.c
548
dvb_ca_en50221_release(&budget_ci->ca);
drivers/media/pci/ttpci/budget-ci.c
99
struct dvb_ca_en50221 ca;
drivers/media/usb/dvb-usb-v2/az6007.c
248
static int az6007_ci_read_attribute_mem(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb-v2/az6007.c
252
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb-v2/az6007.c
289
static int az6007_ci_write_attribute_mem(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb-v2/az6007.c
294
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb-v2/az6007.c
321
static int az6007_ci_read_cam_control(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb-v2/az6007.c
325
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb-v2/az6007.c
366
static int az6007_ci_write_cam_control(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb-v2/az6007.c
371
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb-v2/az6007.c
400
static int CI_CamReady(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb-v2/az6007.c
402
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb-v2/az6007.c
431
static int az6007_ci_slot_reset(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb-v2/az6007.c
433
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb-v2/az6007.c
44
struct dvb_ca_en50221 ca;
drivers/media/usb/dvb-usb-v2/az6007.c
470
if (CI_CamReady(ca, slot)) {
drivers/media/usb/dvb-usb-v2/az6007.c
482
static int az6007_ci_slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb-v2/az6007.c
487
static int az6007_ci_slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb-v2/az6007.c
489
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb-v2/az6007.c
516
static int az6007_ci_poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open)
drivers/media/usb/dvb-usb-v2/az6007.c
518
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb-v2/az6007.c
568
if (NULL == state->ca.data)
drivers/media/usb/dvb-usb-v2/az6007.c
571
dvb_ca_en50221_release(&state->ca);
drivers/media/usb/dvb-usb-v2/az6007.c
573
memset(&state->ca, 0, sizeof(state->ca));
drivers/media/usb/dvb-usb-v2/az6007.c
586
state->ca.owner = THIS_MODULE;
drivers/media/usb/dvb-usb-v2/az6007.c
587
state->ca.read_attribute_mem = az6007_ci_read_attribute_mem;
drivers/media/usb/dvb-usb-v2/az6007.c
588
state->ca.write_attribute_mem = az6007_ci_write_attribute_mem;
drivers/media/usb/dvb-usb-v2/az6007.c
589
state->ca.read_cam_control = az6007_ci_read_cam_control;
drivers/media/usb/dvb-usb-v2/az6007.c
590
state->ca.write_cam_control = az6007_ci_write_cam_control;
drivers/media/usb/dvb-usb-v2/az6007.c
591
state->ca.slot_reset = az6007_ci_slot_reset;
drivers/media/usb/dvb-usb-v2/az6007.c
592
state->ca.slot_shutdown = az6007_ci_slot_shutdown;
drivers/media/usb/dvb-usb-v2/az6007.c
593
state->ca.slot_ts_enable = az6007_ci_slot_ts_enable;
drivers/media/usb/dvb-usb-v2/az6007.c
594
state->ca.poll_slot_status = az6007_ci_poll_slot_status;
drivers/media/usb/dvb-usb-v2/az6007.c
595
state->ca.data = d;
drivers/media/usb/dvb-usb-v2/az6007.c
598
&state->ca,
drivers/media/usb/dvb-usb-v2/az6007.c
603
memset(&state->ca, 0, sizeof(state->ca));
drivers/media/usb/dvb-usb/az6027.c
26
struct dvb_ca_en50221 ca;
drivers/media/usb/dvb-usb/az6027.c
406
static int az6027_ci_read_attribute_mem(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb/az6027.c
410
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb/az6027.c
447
static int az6027_ci_write_attribute_mem(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb/az6027.c
452
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb/az6027.c
479
static int az6027_ci_read_cam_control(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb/az6027.c
483
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb/az6027.c
524
static int az6027_ci_write_cam_control(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb/az6027.c
529
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb/az6027.c
558
static int CI_CamReady(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb/az6027.c
560
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb/az6027.c
589
static int az6027_ci_slot_reset(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb/az6027.c
591
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb/az6027.c
628
if (CI_CamReady(ca, slot)) {
drivers/media/usb/dvb-usb/az6027.c
640
static int az6027_ci_slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb/az6027.c
645
static int az6027_ci_slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb/az6027.c
647
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb/az6027.c
674
static int az6027_ci_poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open)
drivers/media/usb/dvb-usb/az6027.c
676
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb/az6027.c
726
if (NULL == state->ca.data)
drivers/media/usb/dvb-usb/az6027.c
729
dvb_ca_en50221_release(&state->ca);
drivers/media/usb/dvb-usb/az6027.c
731
memset(&state->ca, 0, sizeof(state->ca));
drivers/media/usb/dvb-usb/az6027.c
745
state->ca.owner = THIS_MODULE;
drivers/media/usb/dvb-usb/az6027.c
746
state->ca.read_attribute_mem = az6027_ci_read_attribute_mem;
drivers/media/usb/dvb-usb/az6027.c
747
state->ca.write_attribute_mem = az6027_ci_write_attribute_mem;
drivers/media/usb/dvb-usb/az6027.c
748
state->ca.read_cam_control = az6027_ci_read_cam_control;
drivers/media/usb/dvb-usb/az6027.c
749
state->ca.write_cam_control = az6027_ci_write_cam_control;
drivers/media/usb/dvb-usb/az6027.c
750
state->ca.slot_reset = az6027_ci_slot_reset;
drivers/media/usb/dvb-usb/az6027.c
751
state->ca.slot_shutdown = az6027_ci_slot_shutdown;
drivers/media/usb/dvb-usb/az6027.c
752
state->ca.slot_ts_enable = az6027_ci_slot_ts_enable;
drivers/media/usb/dvb-usb/az6027.c
753
state->ca.poll_slot_status = az6027_ci_poll_slot_status;
drivers/media/usb/dvb-usb/az6027.c
754
state->ca.data = d;
drivers/media/usb/dvb-usb/az6027.c
757
&state->ca,
drivers/media/usb/dvb-usb/az6027.c
762
memset(&state->ca, 0, sizeof(state->ca));
drivers/media/usb/dvb-usb/pctv452e.c
100
struct dvb_ca_en50221 ca;
drivers/media/usb/dvb-usb/pctv452e.c
158
static int tt3650_ci_msg_locked(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb/pctv452e.c
162
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb/pctv452e.c
173
static int tt3650_ci_read_attribute_mem(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb/pctv452e.c
185
ret = tt3650_ci_msg_locked(ca, TT3650_CMD_CI_RD_ATTR, buf, 2, 3);
drivers/media/usb/dvb-usb/pctv452e.c
196
static int tt3650_ci_write_attribute_mem(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb/pctv452e.c
211
return tt3650_ci_msg_locked(ca, TT3650_CMD_CI_WR_ATTR, buf, 3, 3);
drivers/media/usb/dvb-usb/pctv452e.c
214
static int tt3650_ci_read_cam_control(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb/pctv452e.c
226
ret = tt3650_ci_msg_locked(ca, TT3650_CMD_CI_RD_CTRL, buf, 1, 2);
drivers/media/usb/dvb-usb/pctv452e.c
237
static int tt3650_ci_write_cam_control(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb/pctv452e.c
253
return tt3650_ci_msg_locked(ca, TT3650_CMD_CI_WR_CTRL, buf, 2, 2);
drivers/media/usb/dvb-usb/pctv452e.c
256
static int tt3650_ci_set_video_port(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb/pctv452e.c
271
ret = tt3650_ci_msg_locked(ca, TT3650_CMD_CI_SET_VIDEO_PORT, buf, 1, 1);
drivers/media/usb/dvb-usb/pctv452e.c
283
static int tt3650_ci_slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb/pctv452e.c
285
return tt3650_ci_set_video_port(ca, slot, /* enable */ 0);
drivers/media/usb/dvb-usb/pctv452e.c
288
static int tt3650_ci_slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb/pctv452e.c
290
return tt3650_ci_set_video_port(ca, slot, /* enable */ 1);
drivers/media/usb/dvb-usb/pctv452e.c
293
static int tt3650_ci_slot_reset(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb/pctv452e.c
295
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb/pctv452e.c
333
static int tt3650_ci_poll_slot_status(struct dvb_ca_en50221 *ca,
drivers/media/usb/dvb-usb/pctv452e.c
343
ret = tt3650_ci_msg_locked(ca, TT3650_CMD_CI_TEST, buf, 0, 1);
drivers/media/usb/dvb-usb/pctv452e.c
368
if (NULL == state->ca.data)
drivers/media/usb/dvb-usb/pctv452e.c
372
tt3650_ci_set_video_port(&state->ca, /* slot */ 0, /* enable */ 0);
drivers/media/usb/dvb-usb/pctv452e.c
374
dvb_ca_en50221_release(&state->ca);
drivers/media/usb/dvb-usb/pctv452e.c
376
memset(&state->ca, 0, sizeof(state->ca));
drivers/media/usb/dvb-usb/pctv452e.c
389
state->ca.owner = THIS_MODULE;
drivers/media/usb/dvb-usb/pctv452e.c
390
state->ca.read_attribute_mem = tt3650_ci_read_attribute_mem;
drivers/media/usb/dvb-usb/pctv452e.c
391
state->ca.write_attribute_mem = tt3650_ci_write_attribute_mem;
drivers/media/usb/dvb-usb/pctv452e.c
392
state->ca.read_cam_control = tt3650_ci_read_cam_control;
drivers/media/usb/dvb-usb/pctv452e.c
393
state->ca.write_cam_control = tt3650_ci_write_cam_control;
drivers/media/usb/dvb-usb/pctv452e.c
394
state->ca.slot_reset = tt3650_ci_slot_reset;
drivers/media/usb/dvb-usb/pctv452e.c
395
state->ca.slot_shutdown = tt3650_ci_slot_shutdown;
drivers/media/usb/dvb-usb/pctv452e.c
396
state->ca.slot_ts_enable = tt3650_ci_slot_ts_enable;
drivers/media/usb/dvb-usb/pctv452e.c
397
state->ca.poll_slot_status = tt3650_ci_poll_slot_status;
drivers/media/usb/dvb-usb/pctv452e.c
398
state->ca.data = d;
drivers/media/usb/dvb-usb/pctv452e.c
401
&state->ca,
drivers/media/usb/dvb-usb/pctv452e.c
406
memset(&state->ca, 0, sizeof(state->ca));
drivers/media/usb/dvb-usb/ttusb2.c
130
static int tt3650_ci_msg_locked(struct dvb_ca_en50221 *ca, u8 cmd, u8 *data, unsigned int write_len, unsigned int read_len)
drivers/media/usb/dvb-usb/ttusb2.c
132
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb/ttusb2.c
143
static int tt3650_ci_read_attribute_mem(struct dvb_ca_en50221 *ca, int slot, int address)
drivers/media/usb/dvb-usb/ttusb2.c
155
ret = tt3650_ci_msg_locked(ca, TT3650_CMD_CI_RD_ATTR, buf, 2, 3);
drivers/media/usb/dvb-usb/ttusb2.c
165
static int tt3650_ci_write_attribute_mem(struct dvb_ca_en50221 *ca, int slot, int address, u8 value)
drivers/media/usb/dvb-usb/ttusb2.c
178
return tt3650_ci_msg_locked(ca, TT3650_CMD_CI_WR_ATTR, buf, 3, 3);
drivers/media/usb/dvb-usb/ttusb2.c
181
static int tt3650_ci_read_cam_control(struct dvb_ca_en50221 *ca, int slot, u8 address)
drivers/media/usb/dvb-usb/ttusb2.c
191
ret = tt3650_ci_msg_locked(ca, TT3650_CMD_CI_RD_CTRL, buf, 1, 2);
drivers/media/usb/dvb-usb/ttusb2.c
201
static int tt3650_ci_write_cam_control(struct dvb_ca_en50221 *ca, int slot, u8 address, u8 value)
drivers/media/usb/dvb-usb/ttusb2.c
213
return tt3650_ci_msg_locked(ca, TT3650_CMD_CI_WR_CTRL, buf, 2, 2);
drivers/media/usb/dvb-usb/ttusb2.c
216
static int tt3650_ci_set_video_port(struct dvb_ca_en50221 *ca, int slot, int enable)
drivers/media/usb/dvb-usb/ttusb2.c
228
ret = tt3650_ci_msg_locked(ca, TT3650_CMD_CI_SET_VIDEO_PORT, buf, 1, 1);
drivers/media/usb/dvb-usb/ttusb2.c
240
static int tt3650_ci_slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb/ttusb2.c
242
return tt3650_ci_set_video_port(ca, slot, 0);
drivers/media/usb/dvb-usb/ttusb2.c
245
static int tt3650_ci_slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb/ttusb2.c
247
return tt3650_ci_set_video_port(ca, slot, 1);
drivers/media/usb/dvb-usb/ttusb2.c
250
static int tt3650_ci_slot_reset(struct dvb_ca_en50221 *ca, int slot)
drivers/media/usb/dvb-usb/ttusb2.c
252
struct dvb_usb_device *d = ca->data;
drivers/media/usb/dvb-usb/ttusb2.c
292
static int tt3650_ci_poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open)
drivers/media/usb/dvb-usb/ttusb2.c
300
ret = tt3650_ci_msg_locked(ca, TT3650_CMD_CI_TEST, buf, 0, 1);
drivers/media/usb/dvb-usb/ttusb2.c
324
if (NULL == state->ca.data)
drivers/media/usb/dvb-usb/ttusb2.c
327
dvb_ca_en50221_release(&state->ca);
drivers/media/usb/dvb-usb/ttusb2.c
329
memset(&state->ca, 0, sizeof(state->ca));
drivers/media/usb/dvb-usb/ttusb2.c
342
state->ca.owner = THIS_MODULE;
drivers/media/usb/dvb-usb/ttusb2.c
343
state->ca.read_attribute_mem = tt3650_ci_read_attribute_mem;
drivers/media/usb/dvb-usb/ttusb2.c
344
state->ca.write_attribute_mem = tt3650_ci_write_attribute_mem;
drivers/media/usb/dvb-usb/ttusb2.c
345
state->ca.read_cam_control = tt3650_ci_read_cam_control;
drivers/media/usb/dvb-usb/ttusb2.c
346
state->ca.write_cam_control = tt3650_ci_write_cam_control;
drivers/media/usb/dvb-usb/ttusb2.c
347
state->ca.slot_reset = tt3650_ci_slot_reset;
drivers/media/usb/dvb-usb/ttusb2.c
348
state->ca.slot_shutdown = tt3650_ci_slot_shutdown;
drivers/media/usb/dvb-usb/ttusb2.c
349
state->ca.slot_ts_enable = tt3650_ci_slot_ts_enable;
drivers/media/usb/dvb-usb/ttusb2.c
350
state->ca.poll_slot_status = tt3650_ci_poll_slot_status;
drivers/media/usb/dvb-usb/ttusb2.c
351
state->ca.data = d;
drivers/media/usb/dvb-usb/ttusb2.c
354
&state->ca,
drivers/media/usb/dvb-usb/ttusb2.c
359
memset(&state->ca, 0, sizeof(state->ca));
drivers/media/usb/dvb-usb/ttusb2.c
65
struct dvb_ca_en50221 ca;
drivers/net/ethernet/i825xx/82596.c
202
unsigned long ca;
drivers/net/ethernet/i825xx/82596.c
378
((struct i596_reg *) dev->base_addr)->ca = 1;
drivers/net/ethernet/i825xx/lib82596.c
1304
ca(dev);
drivers/net/ethernet/i825xx/lib82596.c
1331
ca(dev);
drivers/net/ethernet/i825xx/lib82596.c
168
u32 ca;
drivers/net/ethernet/i825xx/lib82596.c
328
void __iomem *ca;
drivers/net/ethernet/i825xx/lib82596.c
356
static inline void ca(struct net_device *dev);
drivers/net/ethernet/i825xx/lib82596.c
610
ca(dev);
drivers/net/ethernet/i825xx/lib82596.c
657
ca(dev);
drivers/net/ethernet/i825xx/lib82596.c
881
ca(dev);
drivers/net/ethernet/i825xx/lib82596.c
922
ca(dev);
drivers/net/ethernet/i825xx/lib82596.c
987
ca (dev);
drivers/net/ethernet/i825xx/sni_82596.c
131
lp->ca = ca_addr;
drivers/net/ethernet/i825xx/sni_82596.c
164
iounmap(lp->ca);
drivers/net/ethernet/i825xx/sni_82596.c
48
writel(0, lp->ca);
drivers/net/ethernet/i825xx/sni_82596.c
76
struct resource *res, *ca, *idprom, *options;
drivers/net/ethernet/i825xx/sni_82596.c
84
ca = platform_get_resource(dev, IORESOURCE_MEM, 1);
drivers/net/ethernet/i825xx/sni_82596.c
87
if (!res || !ca || !options || !idprom)
drivers/net/ethernet/i825xx/sni_82596.c
92
ca_addr = ioremap(ca->start, 4);
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
79
FM10K_STAT("ca", stats.ca.count),
drivers/net/ethernet/intel/fm10k/fm10k_pf.c
1310
u32 timeout, ur, ca, um, xec, vlan_drop, loopback_drop, nodesc_drop;
drivers/net/ethernet/intel/fm10k/fm10k_pf.c
1321
ca = fm10k_read_hw_stats_32b(hw, FM10K_STATS_CA, &stats->ca);
drivers/net/ethernet/intel/fm10k/fm10k_pf.c
1347
stats->ca.count += ca;
drivers/net/ethernet/intel/fm10k/fm10k_pf.c
1358
fm10k_update_hw_base_32b(&stats->ca, ca);
drivers/net/ethernet/intel/fm10k/fm10k_pf.c
1384
fm10k_unbind_hw_stats_32b(&stats->ca);
drivers/net/ethernet/intel/fm10k/fm10k_type.h
433
struct fm10k_hw_stat ca;
drivers/net/ethernet/korina.c
1015
ca = dma_map_single(lp->dmadev, skb->data, KORINA_RBSIZE,
drivers/net/ethernet/korina.c
1017
if (dma_mapping_error(lp->dmadev, ca))
drivers/net/ethernet/korina.c
1019
lp->rd_ring[i].ca = ca;
drivers/net/ethernet/korina.c
1020
lp->rx_skb_dma[i] = ca;
drivers/net/ethernet/korina.c
251
u32 ca; /* Current Address. */
drivers/net/ethernet/korina.c
426
dma_addr_t ca;
drivers/net/ethernet/korina.c
452
ca = dma_map_single(lp->dmadev, skb->data, length, DMA_TO_DEVICE);
drivers/net/ethernet/korina.c
453
if (dma_mapping_error(lp->dmadev, ca))
drivers/net/ethernet/korina.c
456
lp->tx_skb_dma[idx] = ca;
drivers/net/ethernet/korina.c
457
td->ca = ca;
drivers/net/ethernet/korina.c
602
dma_addr_t ca;
drivers/net/ethernet/korina.c
643
ca = dma_map_single(lp->dmadev, skb_new->data, KORINA_RBSIZE,
drivers/net/ethernet/korina.c
645
if (dma_mapping_error(lp->dmadev, ca)) {
drivers/net/ethernet/korina.c
668
lp->rx_skb_dma[lp->rx_next_done] = ca;
drivers/net/ethernet/korina.c
674
rd->ca = lp->rx_skb_dma[lp->rx_next_done];
drivers/net/ethernet/korina.c
695
rd->ca = lp->rx_skb_dma[lp->rx_next_done];
drivers/net/ethernet/korina.c
831
lp->td_ring[lp->tx_next_done].ca = 0;
drivers/net/ethernet/korina.c
992
dma_addr_t ca;
drivers/net/ethernet/korina.c
999
lp->td_ring[i].ca = 0;
drivers/net/ethernet/mellanox/mlxsw/reg.h
3074
MLXSW_ITEM32(reg, pefa, ca, 0x04, 24, 1);
drivers/net/ethernet/mellanox/mlxsw/reg.h
3085
static inline void mlxsw_reg_pefa_pack(char *payload, u32 index, bool ca,
drivers/net/ethernet/mellanox/mlxsw/reg.h
3090
mlxsw_reg_pefa_ca_set(payload, ca);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_flex_actions.c
26
mlxsw_reg_pefa_pack(pefa_pl, kvdl_index, ca, enc_actions);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_flex_actions.c
9
char *enc_actions, bool is_first, bool ca)
drivers/pcmcia/cistpl.c
1025
u_int len, ca, ha;
drivers/pcmcia/cistpl.c
1038
len = ca = ha = 0;
drivers/pcmcia/cistpl.c
1047
ca += *p << (j*8);
drivers/pcmcia/cistpl.c
1056
mem->win[i].card_addr = ca << 8;
drivers/ras/cec.c
142
static void do_spring_cleaning(struct ce_array *ca)
drivers/ras/cec.c
146
for (i = 0; i < ca->n; i++) {
drivers/ras/cec.c
147
u8 decay = DECAY(ca->array[i]);
drivers/ras/cec.c
154
ca->array[i] &= ~(DECAY_MASK << COUNT_BITS);
drivers/ras/cec.c
155
ca->array[i] |= (decay << COUNT_BITS);
drivers/ras/cec.c
157
ca->decay_count = 0;
drivers/ras/cec.c
158
ca->decays_done++;
drivers/ras/cec.c
186
static int __find_elem(struct ce_array *ca, u64 pfn, unsigned int *to)
drivers/ras/cec.c
188
int min = 0, max = ca->n - 1;
drivers/ras/cec.c
194
this_pfn = PFN(ca->array[i]);
drivers/ras/cec.c
223
static int find_elem(struct ce_array *ca, u64 pfn, unsigned int *to)
drivers/ras/cec.c
227
if (!ca->n) {
drivers/ras/cec.c
231
return __find_elem(ca, pfn, to);
drivers/ras/cec.c
234
static void del_elem(struct ce_array *ca, int idx)
drivers/ras/cec.c
237
if (ca->n - (idx + 1))
drivers/ras/cec.c
238
memmove((void *)&ca->array[idx],
drivers/ras/cec.c
239
(void *)&ca->array[idx + 1],
drivers/ras/cec.c
240
(ca->n - (idx + 1)) * sizeof(u64));
drivers/ras/cec.c
242
ca->n--;
drivers/ras/cec.c
245
static u64 del_lru_elem_unlocked(struct ce_array *ca)
drivers/ras/cec.c
250
for (i = 0; i < ca->n; i++) {
drivers/ras/cec.c
251
unsigned int this = FULL_COUNT(ca->array[i]);
drivers/ras/cec.c
259
del_elem(ca, min_idx);
drivers/ras/cec.c
261
return PFN(ca->array[min_idx]);
drivers/ras/cec.c
270
struct ce_array *ca = &ce_arr;
drivers/ras/cec.c
273
if (!ca->n)
drivers/ras/cec.c
277
pfn = del_lru_elem_unlocked(ca);
drivers/ras/cec.c
283
static bool sanity_check(struct ce_array *ca)
drivers/ras/cec.c
289
for (i = 0; i < ca->n; i++) {
drivers/ras/cec.c
290
u64 this = PFN(ca->array[i]);
drivers/ras/cec.c
301
pr_info("Sanity check dump:\n{ n: %d\n", ca->n);
drivers/ras/cec.c
302
for (i = 0; i < ca->n; i++) {
drivers/ras/cec.c
303
u64 this = PFN(ca->array[i]);
drivers/ras/cec.c
305
pr_info(" %03d: [%016llx|%03llx]\n", i, this, FULL_COUNT(ca->array[i]));
drivers/ras/cec.c
323
struct ce_array *ca = &ce_arr;
drivers/ras/cec.c
336
ca->ces_entered++;
drivers/ras/cec.c
339
if (ca->n == MAX_ELEMS)
drivers/ras/cec.c
340
WARN_ON(!del_lru_elem_unlocked(ca));
drivers/ras/cec.c
342
err = find_elem(ca, pfn, &to);
drivers/ras/cec.c
347
memmove((void *)&ca->array[to + 1],
drivers/ras/cec.c
348
(void *)&ca->array[to],
drivers/ras/cec.c
349
(ca->n - to) * sizeof(u64));
drivers/ras/cec.c
351
ca->array[to] = pfn << PAGE_SHIFT;
drivers/ras/cec.c
352
ca->n++;
drivers/ras/cec.c
356
ca->array[to] |= DECAY_MASK << COUNT_BITS;
drivers/ras/cec.c
357
ca->array[to]++;
drivers/ras/cec.c
360
count = COUNT(ca->array[to]);
drivers/ras/cec.c
362
u64 pfn = ca->array[to] >> PAGE_SHIFT;
drivers/ras/cec.c
370
ca->pfns_poisoned++;
drivers/ras/cec.c
373
del_elem(ca, to);
drivers/ras/cec.c
384
ca->decay_count++;
drivers/ras/cec.c
386
if (ca->decay_count >= CLEAN_ELEMS)
drivers/ras/cec.c
387
do_spring_cleaning(ca);
drivers/ras/cec.c
389
WARN_ON_ONCE(sanity_check(ca));
drivers/ras/cec.c
449
struct ce_array *ca = &ce_arr;
drivers/ras/cec.c
454
seq_printf(m, "{ n: %d\n", ca->n);
drivers/ras/cec.c
455
for (i = 0; i < ca->n; i++) {
drivers/ras/cec.c
456
u64 this = PFN(ca->array[i]);
drivers/ras/cec.c
459
i, this, bins[DECAY(ca->array[i])], COUNT(ca->array[i]));
drivers/ras/cec.c
465
ca->ces_entered, ca->pfns_poisoned);
drivers/ras/cec.c
467
seq_printf(m, "Flags: 0x%x\n", ca->flags);
drivers/ras/cec.c
470
seq_printf(m, "Decays: %lld\n", ca->decays_done);
drivers/sbus/char/oradax.c
166
void *ca; /* Completion Address */
drivers/sbus/char/oradax.c
225
static int dax_ccb_info(u64 ca, struct ccb_info_result *info);
drivers/sbus/char/oradax.c
226
static int dax_ccb_kill(u64 ca, u16 *kill_res);
drivers/sbus/char/oradax.c
566
unsigned long ca;
drivers/sbus/char/oradax.c
588
ca = ctx->ca_buf_ra + hdr.ca_offset;
drivers/sbus/char/oradax.c
598
ret = dax_ccb_kill(ca, &ctx->result.kill.action);
drivers/sbus/char/oradax.c
618
ret = dax_ccb_info(ca, &ctx->result.info);
drivers/sbus/char/oradax.c
706
static int dax_ccb_kill(u64 ca, u16 *kill_res)
drivers/sbus/char/oradax.c
713
dax_dbg("attempting kill on ca_ra 0x%llx", ca);
drivers/sbus/char/oradax.c
714
hv_ret = sun4v_ccb_kill(ca, kill_res);
drivers/sbus/char/oradax.c
717
dax_info_dbg("HV_EOK (ca_ra 0x%llx): %d", ca,
drivers/sbus/char/oradax.c
721
dax_dbg("%s (ca_ra 0x%llx)", err_str, ca);
drivers/sbus/char/oradax.c
733
static int dax_ccb_info(u64 ca, struct ccb_info_result *info)
drivers/sbus/char/oradax.c
739
dax_dbg("attempting info on ca_ra 0x%llx", ca);
drivers/sbus/char/oradax.c
740
hv_ret = sun4v_ccb_info(ca, info);
drivers/sbus/char/oradax.c
743
dax_info_dbg("HV_EOK (ca_ra 0x%llx): %d", ca, info->state);
drivers/sbus/char/oradax.c
750
dax_dbg("%s (ca_ra 0x%llx)", err_str, ca);
drivers/sbus/char/oradax.c
834
ccbp->ca = (void *)ctx->ca_buf_ra + ca_offset;
drivers/tty/vt/vt.c
325
static void con_putc(struct vc_data *vc, u16 ca, unsigned int y, unsigned int x)
drivers/tty/vt/vt.c
328
vc->vc_sw->con_putc(vc, ca, y, x);
drivers/tty/vt/vt.c
330
vc->vc_sw->con_putcs(vc, &ca, 1, y, x);
drivers/video/fbdev/tridentfb.c
669
const struct fb_copyarea *ca)
drivers/video/fbdev/tridentfb.c
674
cfb_copyarea(info, ca);
drivers/video/fbdev/tridentfb.c
678
par->copy_rect(par, ca->sx, ca->sy, ca->dx, ca->dy,
drivers/video/fbdev/tridentfb.c
679
ca->width, ca->height);
fs/nfs/dns_resolve.c
162
static int nfs_dns_match(struct cache_head *ca,
fs/nfs/dns_resolve.c
168
a = container_of(ca, struct nfs_dns_ent, h);
fs/nfsd/nfs4idmap.c
148
idtoname_match(struct cache_head *ca, struct cache_head *cb)
fs/nfsd/nfs4idmap.c
150
struct ent *a = container_of(ca, struct ent, h);
fs/nfsd/nfs4idmap.c
326
nametoid_match(struct cache_head *ca, struct cache_head *cb)
fs/nfsd/nfs4idmap.c
328
struct ent *a = container_of(ca, struct ent, h);
fs/nfsd/nfs4state.c
4011
static __be32 check_forechannel_attrs(struct nfsd4_channel_attrs *ca, struct nfsd_net *nn)
fs/nfsd/nfs4state.c
4015
if (ca->maxreq_sz < NFSD_MIN_REQ_HDR_SEQ_SZ)
fs/nfsd/nfs4state.c
4017
if (ca->maxresp_sz < NFSD_MIN_RESP_HDR_SEQ_SZ)
fs/nfsd/nfs4state.c
4019
ca->headerpadsz = 0;
fs/nfsd/nfs4state.c
4020
ca->maxreq_sz = min_t(u32, ca->maxreq_sz, maxrpc);
fs/nfsd/nfs4state.c
4021
ca->maxresp_sz = min_t(u32, ca->maxresp_sz, maxrpc);
fs/nfsd/nfs4state.c
4022
ca->maxops = min_t(u32, ca->maxops, NFSD_MAX_OPS_PER_COMPOUND);
fs/nfsd/nfs4state.c
4023
ca->maxresp_cached = min_t(u32, ca->maxresp_cached,
fs/nfsd/nfs4state.c
4025
ca->maxreqs = min_t(u32, ca->maxreqs, NFSD_MAX_SLOTS_PER_SESSION);
fs/nfsd/nfs4state.c
4046
static __be32 check_backchannel_attrs(struct nfsd4_channel_attrs *ca)
fs/nfsd/nfs4state.c
4048
ca->headerpadsz = 0;
fs/nfsd/nfs4state.c
4050
if (ca->maxreq_sz < NFSD_CB_MAX_REQ_SZ)
fs/nfsd/nfs4state.c
4052
if (ca->maxresp_sz < NFSD_CB_MAX_RESP_SZ)
fs/nfsd/nfs4state.c
4054
ca->maxresp_cached = 0;
fs/nfsd/nfs4state.c
4055
if (ca->maxops < 2)
fs/nfsd/nfs4xdr.c
1801
struct nfsd4_channel_attrs *ca)
fs/nfsd/nfs4xdr.c
1811
ca->maxreq_sz = be32_to_cpup(p++);
fs/nfsd/nfs4xdr.c
1812
ca->maxresp_sz = be32_to_cpup(p++);
fs/nfsd/nfs4xdr.c
1813
ca->maxresp_cached = be32_to_cpup(p++);
fs/nfsd/nfs4xdr.c
1814
ca->maxops = be32_to_cpup(p++);
fs/nfsd/nfs4xdr.c
1815
ca->maxreqs = be32_to_cpup(p++);
fs/nfsd/nfs4xdr.c
1816
ca->nr_rdma_attrs = be32_to_cpup(p);
fs/nfsd/nfs4xdr.c
1817
switch (ca->nr_rdma_attrs) {
fs/nfsd/nfs4xdr.c
1821
if (xdr_stream_decode_u32(argp->xdr, &ca->rdma_attrs) < 0)
fs/ntfs/logfile.c
248
struct log_client_record *ca, *cr;
fs/ntfs/logfile.c
254
ca = (struct log_client_record *)((u8 *)ra +
fs/ntfs/logfile.c
273
cr = ca + idx;
fs/ntfs3/fslog.c
3851
struct CLIENT_REC *ca, *cr;
fs/ntfs3/fslog.c
412
static inline void oldest_client_lsn(const struct CLIENT_REC *ca,
fs/ntfs3/fslog.c
416
const struct CLIENT_REC *cr = ca + le16_to_cpu(next_client);
fs/ntfs3/fslog.c
4174
ca = Add2Ptr(ra, le16_to_cpu(ra->client_off));
fs/ntfs3/fslog.c
4186
cr = ca + t16;
fs/ntfs3/fslog.c
4188
remove_client(ca, cr, &ra->client_idx[0]);
fs/ntfs3/fslog.c
4198
add_client(ca, t16, &ra->client_idx[1]);
fs/ntfs3/fslog.c
4202
cr = ca + le16_to_cpu(client);
fs/ntfs3/fslog.c
537
const struct CLIENT_REC *ca;
fs/ntfs3/fslog.c
544
ca = Add2Ptr(ra, le16_to_cpu(ra->client_off));
fs/ntfs3/fslog.c
564
cr = ca + client_idx;
fs/ntfs3/fslog.c
584
static inline void remove_client(struct CLIENT_REC *ca,
fs/ntfs3/fslog.c
590
ca[le16_to_cpu(cr->prev_client)].next_client = cr->next_client;
fs/ntfs3/fslog.c
593
ca[le16_to_cpu(cr->next_client)].prev_client = cr->prev_client;
fs/ntfs3/fslog.c
599
static inline void add_client(struct CLIENT_REC *ca, u16 index, __le16 *head)
fs/ntfs3/fslog.c
601
struct CLIENT_REC *cr = ca + index;
fs/ntfs3/fslog.c
607
ca[le16_to_cpu(*head)].prev_client = cpu_to_le16(index);
fs/xfs/scrub/alloc.c
118
struct xchk_alloc *ca,
fs/xfs/scrub/alloc.c
124
if (ca->prev.ar_blockcount > 0 &&
fs/xfs/scrub/alloc.c
125
ca->prev.ar_startblock + ca->prev.ar_blockcount == irec->ar_startblock &&
fs/xfs/scrub/alloc.c
126
ca->prev.ar_blockcount + irec->ar_blockcount < (uint32_t)~0U)
fs/xfs/scrub/alloc.c
129
memcpy(&ca->prev, irec, sizeof(*irec));
fs/xfs/scrub/alloc.c
139
struct xchk_alloc *ca = bs->private;
fs/xfs/scrub/alloc.c
147
xchk_allocbt_mergeable(bs, ca, &irec);
fs/xfs/scrub/alloc.c
158
struct xchk_alloc ca = { };
fs/xfs/scrub/alloc.c
173
return xchk_btree(sc, cur, xchk_allocbt_rec, &XFS_RMAP_OINFO_AG, &ca);
include/drm/bridge/dw_hdmi.h
199
void dw_hdmi_set_channel_allocation(struct dw_hdmi *hdmi, unsigned int ca);
include/linux/console.h
90
void (*con_putc)(struct vc_data *vc, u16 ca, unsigned int y,
include/media/dvb_ca_en50221.h
115
void dvb_ca_en50221_frda_irq(struct dvb_ca_en50221 *ca, int slot);
include/media/dvb_ca_en50221.h
132
struct dvb_ca_en50221 *ca, int flags,
include/media/dvb_ca_en50221.h
140
void dvb_ca_en50221_release(struct dvb_ca_en50221 *ca);
include/media/dvb_ca_en50221.h
61
int (*read_attribute_mem)(struct dvb_ca_en50221 *ca,
include/media/dvb_ca_en50221.h
63
int (*write_attribute_mem)(struct dvb_ca_en50221 *ca,
include/media/dvb_ca_en50221.h
66
int (*read_cam_control)(struct dvb_ca_en50221 *ca,
include/media/dvb_ca_en50221.h
68
int (*write_cam_control)(struct dvb_ca_en50221 *ca,
include/media/dvb_ca_en50221.h
71
int (*read_data)(struct dvb_ca_en50221 *ca,
include/media/dvb_ca_en50221.h
73
int (*write_data)(struct dvb_ca_en50221 *ca,
include/media/dvb_ca_en50221.h
76
int (*slot_reset)(struct dvb_ca_en50221 *ca, int slot);
include/media/dvb_ca_en50221.h
77
int (*slot_shutdown)(struct dvb_ca_en50221 *ca, int slot);
include/media/dvb_ca_en50221.h
78
int (*slot_ts_enable)(struct dvb_ca_en50221 *ca, int slot);
include/media/dvb_ca_en50221.h
80
int (*poll_slot_status)(struct dvb_ca_en50221 *ca, int slot, int open);
include/net/tcp.h
1393
int tcp_validate_congestion_control(struct tcp_congestion_ops *ca);
include/sound/hda_chmap.h
37
int (*chmap_validate)(struct hdac_chmap *hchmap, int ca,
include/sound/hda_chmap.h
68
int snd_hdac_get_active_channels(int ca);
include/sound/hda_chmap.h
70
hda_nid_t pin_nid, bool non_pcm, int ca,
include/sound/hda_chmap.h
74
struct hdac_cea_channel_speaker_allocation *snd_hdac_get_ch_alloc_from_ca(int ca);
include/trace/events/bcache.h
429
TP_PROTO(struct cache *ca, size_t bucket),
include/trace/events/bcache.h
430
TP_ARGS(ca, bucket),
include/trace/events/bcache.h
439
__entry->dev = ca->bdev->bd_dev;
include/trace/events/bcache.h
440
__entry->offset = bucket << ca->set->bucket_bits;
include/trace/events/bcache.h
441
__entry->sectors = GC_SECTORS_USED(&ca->buckets[bucket]);
include/trace/events/bcache.h
450
TP_PROTO(struct cache *ca, size_t bucket),
include/trace/events/bcache.h
451
TP_ARGS(ca, bucket),
include/trace/events/bcache.h
459
__entry->dev = ca->bdev->bd_dev;
include/trace/events/bcache.h
460
__entry->offset = bucket << ca->set->bucket_bits;
include/trace/events/bcache.h
468
TP_PROTO(struct cache *ca, unsigned reserve),
include/trace/events/bcache.h
469
TP_ARGS(ca, reserve),
include/trace/events/bcache.h
479
__entry->dev = ca->bdev->bd_dev;
include/trace/events/bcache.h
480
__entry->free = fifo_used(&ca->free[reserve]);
include/trace/events/bcache.h
481
__entry->free_inc = fifo_used(&ca->free_inc);
include/trace/events/bcache.h
482
__entry->blocked = atomic_read(&ca->set->prio_blocked);
kernel/bpf/helpers.c
4000
char cs, ca;
kernel/bpf/helpers.c
4014
__get_kernel_nofault(&ca, accept__ign + j, char, err_out);
kernel/bpf/helpers.c
4015
if (cs == ca || ca == '\0')
kernel/bpf/helpers.c
4020
if (ca == '\0')
kernel/power/snapshot.c
2505
struct chain_allocator *ca)
kernel/power/snapshot.c
2522
pbe = chain_alloc(ca, sizeof(struct highmem_pbe));
kernel/power/snapshot.c
2539
kaddr = __get_safe_page(ca->gfp_mask);
kernel/power/snapshot.c
2588
struct chain_allocator *ca)
kernel/power/snapshot.c
2715
static void *get_buffer(struct memory_bitmap *bm, struct chain_allocator *ca)
kernel/power/snapshot.c
2726
return get_highmem_page_buffer(page, ca);
kernel/power/snapshot.c
2739
pbe = chain_alloc(ca, sizeof(struct pbe));
kernel/power/snapshot.c
2745
pbe->address = __get_safe_page(ca->gfp_mask);
kernel/power/snapshot.c
2771
static struct chain_allocator ca;
kernel/power/snapshot.c
2816
chain_init(&ca, GFP_ATOMIC, PG_SAFE);
kernel/power/snapshot.c
2820
handle->buffer = get_buffer(&orig_bm, &ca);
kernel/power/snapshot.c
2829
handle->buffer = get_buffer(&orig_bm, &ca);
kernel/power/snapshot.c
301
static void chain_init(struct chain_allocator *ca, gfp_t gfp_mask,
kernel/power/snapshot.c
304
ca->chain = NULL;
kernel/power/snapshot.c
305
ca->used_space = LINKED_PAGE_DATA_SIZE;
kernel/power/snapshot.c
306
ca->gfp_mask = gfp_mask;
kernel/power/snapshot.c
307
ca->safe_needed = safe_needed;
kernel/power/snapshot.c
310
static void *chain_alloc(struct chain_allocator *ca, unsigned int size)
kernel/power/snapshot.c
314
if (LINKED_PAGE_DATA_SIZE - ca->used_space < size) {
kernel/power/snapshot.c
317
lp = ca->safe_needed ? __get_safe_page(ca->gfp_mask) :
kernel/power/snapshot.c
318
get_image_page(ca->gfp_mask, PG_ANY);
kernel/power/snapshot.c
322
lp->next = ca->chain;
kernel/power/snapshot.c
323
ca->chain = lp;
kernel/power/snapshot.c
324
ca->used_space = 0;
kernel/power/snapshot.c
326
ret = ca->chain->data + ca->used_space;
kernel/power/snapshot.c
327
ca->used_space += size;
kernel/power/snapshot.c
443
struct chain_allocator *ca,
kernel/power/snapshot.c
448
node = chain_alloc(ca, sizeof(struct rtree_node));
kernel/power/snapshot.c
469
int safe_needed, struct chain_allocator *ca)
kernel/power/snapshot.c
486
node = alloc_rtree_node(gfp_mask, safe_needed, ca,
kernel/power/snapshot.c
497
block = alloc_rtree_node(gfp_mask, safe_needed, ca, &zone->leaves);
kernel/power/snapshot.c
509
node = alloc_rtree_node(gfp_mask, safe_needed, ca,
kernel/power/snapshot.c
540
struct chain_allocator *ca,
kernel/power/snapshot.c
549
zone = chain_alloc(ca, sizeof(struct mem_zone_bm_rtree));
kernel/power/snapshot.c
560
if (add_rtree_block(zone, gfp_mask, safe_needed, ca)) {
kernel/power/snapshot.c
687
struct chain_allocator ca;
kernel/power/snapshot.c
692
chain_init(&ca, gfp_mask, safe_needed);
kernel/power/snapshot.c
702
zone = create_zone_bm_rtree(gfp_mask, safe_needed, &ca,
kernel/power/snapshot.c
711
bm->p_list = ca.chain;
kernel/power/snapshot.c
718
bm->p_list = ca.chain;
kernel/sched/cpuacct.c
100
u64 *cpustat = per_cpu_ptr(ca->cpustat, cpu)->cpustat;
kernel/sched/cpuacct.c
137
static void cpuacct_cpuusage_write(struct cpuacct *ca, int cpu)
kernel/sched/cpuacct.c
139
u64 *cpuusage = per_cpu_ptr(ca->cpuusage, cpu);
kernel/sched/cpuacct.c
140
u64 *cpustat = per_cpu_ptr(ca->cpustat, cpu)->cpustat;
kernel/sched/cpuacct.c
143
if (ca == &root_cpuacct)
kernel/sched/cpuacct.c
166
struct cpuacct *ca = css_ca(css);
kernel/sched/cpuacct.c
171
totalcpuusage += cpuacct_cpuusage_read(ca, i, index);
kernel/sched/cpuacct.c
196
struct cpuacct *ca = css_ca(css);
kernel/sched/cpuacct.c
206
cpuacct_cpuusage_write(ca, cpu);
kernel/sched/cpuacct.c
214
struct cpuacct *ca = css_ca(seq_css(m));
kernel/sched/cpuacct.c
219
percpu = cpuacct_cpuusage_read(ca, i, index);
kernel/sched/cpuacct.c
243
struct cpuacct *ca = css_ca(seq_css(m));
kernel/sched/cpuacct.c
256
cpuacct_cpuusage_read(ca, cpu, index));
kernel/sched/cpuacct.c
264
struct cpuacct *ca = css_ca(seq_css(sf));
kernel/sched/cpuacct.c
272
u64 *cpustat = per_cpu_ptr(ca->cpustat, cpu)->cpustat;
kernel/sched/cpuacct.c
280
cputime.sum_exec_runtime += *per_cpu_ptr(ca->cpuusage, cpu);
kernel/sched/cpuacct.c
339
struct cpuacct *ca;
kernel/sched/cpuacct.c
343
for (ca = task_ca(tsk); ca; ca = parent_ca(ca))
kernel/sched/cpuacct.c
344
*per_cpu_ptr(ca->cpuusage, cpu) += cputime;
kernel/sched/cpuacct.c
354
struct cpuacct *ca;
kernel/sched/cpuacct.c
356
for (ca = task_ca(tsk); ca != &root_cpuacct; ca = parent_ca(ca))
kernel/sched/cpuacct.c
357
__this_cpu_add(ca->cpustat->cpustat[index], val);
kernel/sched/cpuacct.c
44
static inline struct cpuacct *parent_ca(struct cpuacct *ca)
kernel/sched/cpuacct.c
46
return css_ca(ca->css.parent);
kernel/sched/cpuacct.c
59
struct cpuacct *ca;
kernel/sched/cpuacct.c
64
ca = kzalloc_obj(*ca);
kernel/sched/cpuacct.c
65
if (!ca)
kernel/sched/cpuacct.c
68
ca->cpuusage = alloc_percpu(u64);
kernel/sched/cpuacct.c
69
if (!ca->cpuusage)
kernel/sched/cpuacct.c
72
ca->cpustat = alloc_percpu(struct kernel_cpustat);
kernel/sched/cpuacct.c
73
if (!ca->cpustat)
kernel/sched/cpuacct.c
76
return &ca->css;
kernel/sched/cpuacct.c
79
free_percpu(ca->cpuusage);
kernel/sched/cpuacct.c
81
kfree(ca);
kernel/sched/cpuacct.c
89
struct cpuacct *ca = css_ca(css);
kernel/sched/cpuacct.c
91
free_percpu(ca->cpustat);
kernel/sched/cpuacct.c
92
free_percpu(ca->cpuusage);
kernel/sched/cpuacct.c
93
kfree(ca);
kernel/sched/cpuacct.c
96
static u64 cpuacct_cpuusage_read(struct cpuacct *ca, int cpu,
kernel/sched/cpuacct.c
99
u64 *cpuusage = per_cpu_ptr(ca->cpuusage, cpu);
net/bluetooth/bnep/sock.c
53
struct bnep_connadd_req ca;
net/bluetooth/bnep/sock.c
67
if (copy_from_user(&ca, argp, sizeof(ca)))
net/bluetooth/bnep/sock.c
70
nsock = sockfd_lookup(ca.sock, &err);
net/bluetooth/bnep/sock.c
78
ca.device[sizeof(ca.device)-1] = 0;
net/bluetooth/bnep/sock.c
80
err = bnep_add_connection(&ca, nsock);
net/bluetooth/bnep/sock.c
82
if (copy_to_user(argp, &ca, sizeof(ca)))
net/bluetooth/hidp/sock.c
171
struct hidp_connadd_req ca;
net/bluetooth/hidp/sock.c
181
ca.ctrl_sock = ca32.ctrl_sock;
net/bluetooth/hidp/sock.c
182
ca.intr_sock = ca32.intr_sock;
net/bluetooth/hidp/sock.c
183
ca.parser = ca32.parser;
net/bluetooth/hidp/sock.c
184
ca.rd_size = ca32.rd_size;
net/bluetooth/hidp/sock.c
185
ca.rd_data = compat_ptr(ca32.rd_data);
net/bluetooth/hidp/sock.c
186
ca.country = ca32.country;
net/bluetooth/hidp/sock.c
187
ca.subclass = ca32.subclass;
net/bluetooth/hidp/sock.c
188
ca.vendor = ca32.vendor;
net/bluetooth/hidp/sock.c
189
ca.product = ca32.product;
net/bluetooth/hidp/sock.c
190
ca.version = ca32.version;
net/bluetooth/hidp/sock.c
191
ca.flags = ca32.flags;
net/bluetooth/hidp/sock.c
192
ca.idle_to = ca32.idle_to;
net/bluetooth/hidp/sock.c
194
memcpy(ca.name, ca32.name, 128);
net/bluetooth/hidp/sock.c
196
csock = sockfd_lookup(ca.ctrl_sock, &err);
net/bluetooth/hidp/sock.c
200
isock = sockfd_lookup(ca.intr_sock, &err);
net/bluetooth/hidp/sock.c
206
err = hidp_connection_add(&ca, csock, isock);
net/bluetooth/hidp/sock.c
49
struct hidp_connadd_req ca;
net/bluetooth/hidp/sock.c
64
if (copy_from_user(&ca, argp, sizeof(ca)))
net/bluetooth/hidp/sock.c
67
csock = sockfd_lookup(ca.ctrl_sock, &err);
net/bluetooth/hidp/sock.c
71
isock = sockfd_lookup(ca.intr_sock, &err);
net/bluetooth/hidp/sock.c
76
ca.name[sizeof(ca.name)-1] = 0;
net/bluetooth/hidp/sock.c
78
err = hidp_connection_add(&ca, csock, isock);
net/bluetooth/hidp/sock.c
79
if (!err && copy_to_user(argp, &ca, sizeof(ca)))
net/ipv4/tcp_bic.c
102
if (cwnd < ca->last_max_cwnd) {
net/ipv4/tcp_bic.c
103
__u32 dist = (ca->last_max_cwnd - cwnd)
net/ipv4/tcp_bic.c
108
ca->cnt = cwnd / max_increment;
net/ipv4/tcp_bic.c
111
ca->cnt = (cwnd * smooth_part) / BICTCP_B;
net/ipv4/tcp_bic.c
114
ca->cnt = cwnd / dist;
net/ipv4/tcp_bic.c
117
if (cwnd < ca->last_max_cwnd + BICTCP_B)
net/ipv4/tcp_bic.c
119
ca->cnt = (cwnd * smooth_part) / BICTCP_B;
net/ipv4/tcp_bic.c
120
else if (cwnd < ca->last_max_cwnd + max_increment*(BICTCP_B-1))
net/ipv4/tcp_bic.c
122
ca->cnt = (cwnd * (BICTCP_B-1))
net/ipv4/tcp_bic.c
123
/ (cwnd - ca->last_max_cwnd);
net/ipv4/tcp_bic.c
126
ca->cnt = cwnd / max_increment;
net/ipv4/tcp_bic.c
130
if (ca->last_max_cwnd == 0) {
net/ipv4/tcp_bic.c
131
if (ca->cnt > 20) /* increase cwnd 5% per RTT */
net/ipv4/tcp_bic.c
132
ca->cnt = 20;
net/ipv4/tcp_bic.c
135
ca->cnt = (ca->cnt << ACK_RATIO_SHIFT) / ca->delayed_ack;
net/ipv4/tcp_bic.c
136
if (ca->cnt == 0) /* cannot be zero */
net/ipv4/tcp_bic.c
137
ca->cnt = 1;
net/ipv4/tcp_bic.c
143
struct bictcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_bic.c
153
bictcp_update(ca, tcp_snd_cwnd(tp));
net/ipv4/tcp_bic.c
154
tcp_cong_avoid_ai(tp, ca->cnt, acked);
net/ipv4/tcp_bic.c
164
struct bictcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_bic.c
166
ca->epoch_start = 0; /* end of epoch */
net/ipv4/tcp_bic.c
169
if (tcp_snd_cwnd(tp) < ca->last_max_cwnd && fast_convergence)
net/ipv4/tcp_bic.c
170
ca->last_max_cwnd = (tcp_snd_cwnd(tp) * (BICTCP_BETA_SCALE + beta))
net/ipv4/tcp_bic.c
173
ca->last_max_cwnd = tcp_snd_cwnd(tp);
net/ipv4/tcp_bic.c
195
struct bictcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_bic.c
197
ca->delayed_ack += sample->pkts_acked -
net/ipv4/tcp_bic.c
198
(ca->delayed_ack >> ACK_RATIO_SHIFT);
net/ipv4/tcp_bic.c
60
static inline void bictcp_reset(struct bictcp *ca)
net/ipv4/tcp_bic.c
62
ca->cnt = 0;
net/ipv4/tcp_bic.c
63
ca->last_max_cwnd = 0;
net/ipv4/tcp_bic.c
64
ca->last_cwnd = 0;
net/ipv4/tcp_bic.c
65
ca->last_time = 0;
net/ipv4/tcp_bic.c
66
ca->epoch_start = 0;
net/ipv4/tcp_bic.c
67
ca->delayed_ack = 2 << ACK_RATIO_SHIFT;
net/ipv4/tcp_bic.c
72
struct bictcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_bic.c
74
bictcp_reset(ca);
net/ipv4/tcp_bic.c
83
static inline void bictcp_update(struct bictcp *ca, u32 cwnd)
net/ipv4/tcp_bic.c
85
if (ca->last_cwnd == cwnd &&
net/ipv4/tcp_bic.c
86
(s32)(tcp_jiffies32 - ca->last_time) <= HZ / 32)
net/ipv4/tcp_bic.c
89
ca->last_cwnd = cwnd;
net/ipv4/tcp_bic.c
90
ca->last_time = tcp_jiffies32;
net/ipv4/tcp_bic.c
92
if (ca->epoch_start == 0) /* record the beginning of an epoch */
net/ipv4/tcp_bic.c
93
ca->epoch_start = tcp_jiffies32;
net/ipv4/tcp_bic.c
97
ca->cnt = cwnd;
net/ipv4/tcp_cdg.c
142
struct cdg *ca = inet_csk_ca(sk);
net/ipv4/tcp_cdg.c
145
ca->delay_min = min_not_zero(ca->delay_min, ca->rtt.min);
net/ipv4/tcp_cdg.c
146
if (ca->delay_min == 0)
net/ipv4/tcp_cdg.c
152
if (ca->last_ack == 0 || !tcp_is_cwnd_limited(sk)) {
net/ipv4/tcp_cdg.c
153
ca->last_ack = now_us;
net/ipv4/tcp_cdg.c
154
ca->round_start = now_us;
net/ipv4/tcp_cdg.c
155
} else if (before(now_us, ca->last_ack + 3000)) {
net/ipv4/tcp_cdg.c
156
u32 base_owd = max(ca->delay_min / 2U, 125U);
net/ipv4/tcp_cdg.c
158
ca->last_ack = now_us;
net/ipv4/tcp_cdg.c
159
if (after(now_us, ca->round_start + base_owd)) {
net/ipv4/tcp_cdg.c
172
if (ca->sample_cnt < 8) {
net/ipv4/tcp_cdg.c
173
ca->sample_cnt++;
net/ipv4/tcp_cdg.c
175
s32 thresh = max(ca->delay_min + ca->delay_min / 8U,
net/ipv4/tcp_cdg.c
178
if (ca->rtt.min > thresh) {
net/ipv4/tcp_cdg.c
190
static s32 tcp_cdg_grad(struct cdg *ca)
net/ipv4/tcp_cdg.c
192
s32 gmin = ca->rtt.min - ca->rtt_prev.min;
net/ipv4/tcp_cdg.c
193
s32 gmax = ca->rtt.max - ca->rtt_prev.max;
net/ipv4/tcp_cdg.c
196
if (ca->gradients) {
net/ipv4/tcp_cdg.c
197
ca->gsum.min += gmin - ca->gradients[ca->tail].min;
net/ipv4/tcp_cdg.c
198
ca->gsum.max += gmax - ca->gradients[ca->tail].max;
net/ipv4/tcp_cdg.c
199
ca->gradients[ca->tail].min = gmin;
net/ipv4/tcp_cdg.c
200
ca->gradients[ca->tail].max = gmax;
net/ipv4/tcp_cdg.c
201
ca->tail = (ca->tail + 1) & (window - 1);
net/ipv4/tcp_cdg.c
202
gmin = ca->gsum.min;
net/ipv4/tcp_cdg.c
203
gmax = ca->gsum.max;
net/ipv4/tcp_cdg.c
215
if (!ca->gfilled) {
net/ipv4/tcp_cdg.c
216
if (!ca->gradients && window > 1)
net/ipv4/tcp_cdg.c
218
else if (ca->tail == 0)
net/ipv4/tcp_cdg.c
219
ca->gfilled = true;
net/ipv4/tcp_cdg.c
221
grad = (grad * window) / (int)ca->tail;
net/ipv4/tcp_cdg.c
226
ca->backoff_cnt = 0;
net/ipv4/tcp_cdg.c
234
ca->state = CDG_FULL;
net/ipv4/tcp_cdg.c
236
ca->state = CDG_NONFULL;
net/ipv4/tcp_cdg.c
243
struct cdg *ca = inet_csk_ca(sk);
net/ipv4/tcp_cdg.c
250
ca->backoff_cnt++;
net/ipv4/tcp_cdg.c
251
if (ca->backoff_cnt > use_ineff)
net/ipv4/tcp_cdg.c
255
ca->shadow_wnd = max(ca->shadow_wnd, tcp_snd_cwnd(tp));
net/ipv4/tcp_cdg.c
256
ca->state = CDG_BACKOFF;
net/ipv4/tcp_cdg.c
264
struct cdg *ca = inet_csk_ca(sk);
net/ipv4/tcp_cdg.c
272
if (after(ack, ca->rtt_seq) && ca->rtt.v64) {
net/ipv4/tcp_cdg.c
275
if (ca->rtt_prev.v64)
net/ipv4/tcp_cdg.c
276
grad = tcp_cdg_grad(ca);
net/ipv4/tcp_cdg.c
277
ca->rtt_seq = tp->snd_nxt;
net/ipv4/tcp_cdg.c
278
ca->rtt_prev = ca->rtt;
net/ipv4/tcp_cdg.c
279
ca->rtt.v64 = 0;
net/ipv4/tcp_cdg.c
280
ca->last_ack = 0;
net/ipv4/tcp_cdg.c
281
ca->sample_cnt = 0;
net/ipv4/tcp_cdg.c
288
ca->shadow_wnd = min(ca->shadow_wnd, tcp_snd_cwnd(tp));
net/ipv4/tcp_cdg.c
296
ca->shadow_wnd = max(ca->shadow_wnd, ca->shadow_wnd + incr);
net/ipv4/tcp_cdg.c
301
struct cdg *ca = inet_csk_ca(sk);
net/ipv4/tcp_cdg.c
312
if (sample->pkts_acked == 1 && ca->delack) {
net/ipv4/tcp_cdg.c
316
ca->rtt.min = min(ca->rtt.min, sample->rtt_us);
net/ipv4/tcp_cdg.c
317
ca->delack--;
net/ipv4/tcp_cdg.c
319
} else if (sample->pkts_acked > 1 && ca->delack < 5) {
net/ipv4/tcp_cdg.c
320
ca->delack++;
net/ipv4/tcp_cdg.c
324
ca->rtt.min = min_not_zero(ca->rtt.min, sample->rtt_us);
net/ipv4/tcp_cdg.c
325
ca->rtt.max = max(ca->rtt.max, sample->rtt_us);
net/ipv4/tcp_cdg.c
330
struct cdg *ca = inet_csk_ca(sk);
net/ipv4/tcp_cdg.c
333
if (ca->state == CDG_BACKOFF)
net/ipv4/tcp_cdg.c
336
if (ca->state == CDG_NONFULL && use_tolerance)
net/ipv4/tcp_cdg.c
339
ca->shadow_wnd = min(ca->shadow_wnd >> 1, tcp_snd_cwnd(tp));
net/ipv4/tcp_cdg.c
341
return max3(2U, ca->shadow_wnd, tcp_snd_cwnd(tp) >> 1);
net/ipv4/tcp_cdg.c
347
struct cdg *ca = inet_csk_ca(sk);
net/ipv4/tcp_cdg.c
353
gradients = ca->gradients;
net/ipv4/tcp_cdg.c
356
memset(ca, 0, sizeof(*ca));
net/ipv4/tcp_cdg.c
358
ca->gradients = gradients;
net/ipv4/tcp_cdg.c
359
ca->rtt_seq = tp->snd_nxt;
net/ipv4/tcp_cdg.c
360
ca->shadow_wnd = tcp_snd_cwnd(tp);
net/ipv4/tcp_cdg.c
363
ca->state = CDG_UNKNOWN;
net/ipv4/tcp_cdg.c
364
ca->rtt_seq = tp->snd_nxt;
net/ipv4/tcp_cdg.c
365
ca->rtt_prev = ca->rtt;
net/ipv4/tcp_cdg.c
366
ca->rtt.v64 = 0;
net/ipv4/tcp_cdg.c
375
struct cdg *ca = inet_csk_ca(sk);
net/ipv4/tcp_cdg.c
378
ca->gradients = NULL;
net/ipv4/tcp_cdg.c
381
ca->gradients = kzalloc_objs(ca->gradients[0], window,
net/ipv4/tcp_cdg.c
383
ca->rtt_seq = tp->snd_nxt;
net/ipv4/tcp_cdg.c
384
ca->shadow_wnd = tcp_snd_cwnd(tp);
net/ipv4/tcp_cdg.c
389
struct cdg *ca = inet_csk_ca(sk);
net/ipv4/tcp_cdg.c
391
kfree(ca->gradients);
net/ipv4/tcp_cdg.c
392
ca->gradients = NULL;
net/ipv4/tcp_cong.c
101
ca->key = jhash(ca->name, sizeof(ca->name), strlen(ca->name));
net/ipv4/tcp_cong.c
104
if (ca->key == TCP_CA_UNSPEC || tcp_ca_find_key(ca->key)) {
net/ipv4/tcp_cong.c
106
ca->name);
net/ipv4/tcp_cong.c
109
list_add_tail_rcu(&ca->list, &tcp_cong_list);
net/ipv4/tcp_cong.c
110
pr_debug("%s registered\n", ca->name);
net/ipv4/tcp_cong.c
124
void tcp_unregister_congestion_control(struct tcp_congestion_ops *ca)
net/ipv4/tcp_cong.c
127
list_del_rcu(&ca->list);
net/ipv4/tcp_cong.c
146
int tcp_update_congestion_control(struct tcp_congestion_ops *ca, struct tcp_congestion_ops *old_ca)
net/ipv4/tcp_cong.c
151
ca->key = jhash(ca->name, sizeof(ca->name), strlen(ca->name));
net/ipv4/tcp_cong.c
155
if (ca->key == TCP_CA_UNSPEC || !existing || strcmp(existing->name, ca->name)) {
net/ipv4/tcp_cong.c
157
ca->name);
net/ipv4/tcp_cong.c
166
list_add_tail_rcu(&ca->list, &tcp_cong_list);
net/ipv4/tcp_cong.c
168
pr_debug("%s updated\n", ca->name);
net/ipv4/tcp_cong.c
183
const struct tcp_congestion_ops *ca;
net/ipv4/tcp_cong.c
189
ca = tcp_ca_find_autoload(name);
net/ipv4/tcp_cong.c
190
if (ca) {
net/ipv4/tcp_cong.c
191
key = ca->key;
net/ipv4/tcp_cong.c
192
*ecn_ca = ca->flags & TCP_CONG_NEEDS_ECN;
net/ipv4/tcp_cong.c
201
const struct tcp_congestion_ops *ca;
net/ipv4/tcp_cong.c
205
ca = tcp_ca_find_key(key);
net/ipv4/tcp_cong.c
206
if (ca) {
net/ipv4/tcp_cong.c
207
strscpy(buffer, ca->name, TCP_CA_NAME_MAX);
net/ipv4/tcp_cong.c
220
const struct tcp_congestion_ops *ca;
net/ipv4/tcp_cong.c
223
ca = rcu_dereference(net->ipv4.tcp_congestion_control);
net/ipv4/tcp_cong.c
224
if (unlikely(!bpf_try_module_get(ca, ca->owner)))
net/ipv4/tcp_cong.c
225
ca = &tcp_reno;
net/ipv4/tcp_cong.c
226
icsk->icsk_ca_ops = ca;
net/ipv4/tcp_cong.c
230
if (ca->flags & TCP_CONG_NEEDS_ECN)
net/ipv4/tcp_cong.c
251
const struct tcp_congestion_ops *ca)
net/ipv4/tcp_cong.c
256
icsk->icsk_ca_ops = ca;
net/ipv4/tcp_cong.c
260
if (ca->flags & TCP_CONG_NEEDS_ECN)
net/ipv4/tcp_cong.c
283
struct tcp_congestion_ops *ca;
net/ipv4/tcp_cong.c
288
ca = tcp_ca_find_autoload(name);
net/ipv4/tcp_cong.c
289
if (!ca) {
net/ipv4/tcp_cong.c
291
} else if (!bpf_try_module_get(ca, ca->owner)) {
net/ipv4/tcp_cong.c
294
!(ca->flags & TCP_CONG_NON_RESTRICTED)) {
net/ipv4/tcp_cong.c
298
prev = xchg(&net->ipv4.tcp_congestion_control, ca);
net/ipv4/tcp_cong.c
302
ca->flags |= TCP_CONG_NON_RESTRICTED;
net/ipv4/tcp_cong.c
321
struct tcp_congestion_ops *ca;
net/ipv4/tcp_cong.c
325
list_for_each_entry_rcu(ca, &tcp_cong_list, list) {
net/ipv4/tcp_cong.c
328
offs == 0 ? "" : " ", ca->name);
net/ipv4/tcp_cong.c
339
const struct tcp_congestion_ops *ca;
net/ipv4/tcp_cong.c
342
ca = rcu_dereference(net->ipv4.tcp_congestion_control);
net/ipv4/tcp_cong.c
343
strscpy(name, ca->name, TCP_CA_NAME_MAX);
net/ipv4/tcp_cong.c
350
struct tcp_congestion_ops *ca;
net/ipv4/tcp_cong.c
355
list_for_each_entry_rcu(ca, &tcp_cong_list, list) {
net/ipv4/tcp_cong.c
356
if (!(ca->flags & TCP_CONG_NON_RESTRICTED))
net/ipv4/tcp_cong.c
360
offs == 0 ? "" : " ", ca->name);
net/ipv4/tcp_cong.c
371
struct tcp_congestion_ops *ca;
net/ipv4/tcp_cong.c
382
ca = tcp_ca_find(name);
net/ipv4/tcp_cong.c
383
if (!ca) {
net/ipv4/tcp_cong.c
390
list_for_each_entry_rcu(ca, &tcp_cong_list, list)
net/ipv4/tcp_cong.c
391
ca->flags &= ~TCP_CONG_NON_RESTRICTED;
net/ipv4/tcp_cong.c
395
ca = tcp_ca_find(name);
net/ipv4/tcp_cong.c
396
WARN_ON(!ca);
net/ipv4/tcp_cong.c
397
if (ca)
net/ipv4/tcp_cong.c
398
ca->flags |= TCP_CONG_NON_RESTRICTED;
net/ipv4/tcp_cong.c
416
const struct tcp_congestion_ops *ca;
net/ipv4/tcp_cong.c
424
ca = tcp_ca_find(name);
net/ipv4/tcp_cong.c
426
ca = tcp_ca_find_autoload(name);
net/ipv4/tcp_cong.c
429
if (ca == icsk->icsk_ca_ops) {
net/ipv4/tcp_cong.c
434
if (!ca)
net/ipv4/tcp_cong.c
436
else if (!((ca->flags & TCP_CONG_NON_RESTRICTED) || cap_net_admin))
net/ipv4/tcp_cong.c
438
else if (!bpf_try_module_get(ca, ca->owner))
net/ipv4/tcp_cong.c
441
tcp_reinit_congestion_control(sk, ca);
net/ipv4/tcp_cong.c
52
struct tcp_congestion_ops *ca = tcp_ca_find(name);
net/ipv4/tcp_cong.c
55
if (!ca && capable(CAP_NET_ADMIN)) {
net/ipv4/tcp_cong.c
59
ca = tcp_ca_find(name);
net/ipv4/tcp_cong.c
62
return ca;
net/ipv4/tcp_cong.c
78
int tcp_validate_congestion_control(struct tcp_congestion_ops *ca)
net/ipv4/tcp_cong.c
81
if (!ca->ssthresh || !ca->undo_cwnd ||
net/ipv4/tcp_cong.c
82
!(ca->cong_avoid || ca->cong_control)) {
net/ipv4/tcp_cong.c
83
pr_err("%s does not implement required ops\n", ca->name);
net/ipv4/tcp_cong.c
93
int tcp_register_congestion_control(struct tcp_congestion_ops *ca)
net/ipv4/tcp_cong.c
97
ret = tcp_validate_congestion_control(ca);
net/ipv4/tcp_cubic.c
107
static inline void bictcp_reset(struct bictcp *ca)
net/ipv4/tcp_cubic.c
109
memset(ca, 0, offsetof(struct bictcp, unused));
net/ipv4/tcp_cubic.c
110
ca->found = 0;
net/ipv4/tcp_cubic.c
121
struct bictcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_cubic.c
123
ca->round_start = ca->last_ack = bictcp_clock_us(sk);
net/ipv4/tcp_cubic.c
124
ca->end_seq = tp->snd_nxt;
net/ipv4/tcp_cubic.c
125
ca->curr_rtt = ~0U;
net/ipv4/tcp_cubic.c
126
ca->sample_cnt = 0;
net/ipv4/tcp_cubic.c
131
struct bictcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_cubic.c
133
bictcp_reset(ca);
net/ipv4/tcp_cubic.c
144
struct bictcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_cubic.c
153
if (ca->epoch_start && delta > 0) {
net/ipv4/tcp_cubic.c
154
ca->epoch_start += delta;
net/ipv4/tcp_cubic.c
155
if (after(ca->epoch_start, now))
net/ipv4/tcp_cubic.c
156
ca->epoch_start = now;
net/ipv4/tcp_cubic.c
211
static inline void bictcp_update(struct bictcp *ca, u32 cwnd, u32 acked)
net/ipv4/tcp_cubic.c
216
ca->ack_cnt += acked; /* count the number of ACKed packets */
net/ipv4/tcp_cubic.c
218
if (ca->last_cwnd == cwnd &&
net/ipv4/tcp_cubic.c
219
(s32)(tcp_jiffies32 - ca->last_time) <= HZ / 32)
net/ipv4/tcp_cubic.c
226
if (ca->epoch_start && tcp_jiffies32 == ca->last_time)
net/ipv4/tcp_cubic.c
229
ca->last_cwnd = cwnd;
net/ipv4/tcp_cubic.c
230
ca->last_time = tcp_jiffies32;
net/ipv4/tcp_cubic.c
232
if (ca->epoch_start == 0) {
net/ipv4/tcp_cubic.c
233
ca->epoch_start = tcp_jiffies32; /* record beginning */
net/ipv4/tcp_cubic.c
234
ca->ack_cnt = acked; /* start counting */
net/ipv4/tcp_cubic.c
235
ca->tcp_cwnd = cwnd; /* syn with cubic */
net/ipv4/tcp_cubic.c
237
if (ca->last_max_cwnd <= cwnd) {
net/ipv4/tcp_cubic.c
238
ca->bic_K = 0;
net/ipv4/tcp_cubic.c
239
ca->bic_origin_point = cwnd;
net/ipv4/tcp_cubic.c
244
ca->bic_K = cubic_root(cube_factor
net/ipv4/tcp_cubic.c
245
* (ca->last_max_cwnd - cwnd));
net/ipv4/tcp_cubic.c
246
ca->bic_origin_point = ca->last_max_cwnd;
net/ipv4/tcp_cubic.c
264
t = (s32)(tcp_jiffies32 - ca->epoch_start);
net/ipv4/tcp_cubic.c
265
t += usecs_to_jiffies(ca->delay_min);
net/ipv4/tcp_cubic.c
270
if (t < ca->bic_K) /* t - K */
net/ipv4/tcp_cubic.c
271
offs = ca->bic_K - t;
net/ipv4/tcp_cubic.c
273
offs = t - ca->bic_K;
net/ipv4/tcp_cubic.c
277
if (t < ca->bic_K) /* below origin*/
net/ipv4/tcp_cubic.c
278
bic_target = ca->bic_origin_point - delta;
net/ipv4/tcp_cubic.c
280
bic_target = ca->bic_origin_point + delta;
net/ipv4/tcp_cubic.c
284
ca->cnt = cwnd / (bic_target - cwnd);
net/ipv4/tcp_cubic.c
286
ca->cnt = 100 * cwnd; /* very small increment*/
net/ipv4/tcp_cubic.c
293
if (ca->last_max_cwnd == 0 && ca->cnt > 20)
net/ipv4/tcp_cubic.c
294
ca->cnt = 20; /* increase cwnd 5% per RTT */
net/ipv4/tcp_cubic.c
302
while (ca->ack_cnt > delta) { /* update tcp cwnd */
net/ipv4/tcp_cubic.c
303
ca->ack_cnt -= delta;
net/ipv4/tcp_cubic.c
304
ca->tcp_cwnd++;
net/ipv4/tcp_cubic.c
307
if (ca->tcp_cwnd > cwnd) { /* if bic is slower than tcp */
net/ipv4/tcp_cubic.c
308
delta = ca->tcp_cwnd - cwnd;
net/ipv4/tcp_cubic.c
310
if (ca->cnt > max_cnt)
net/ipv4/tcp_cubic.c
311
ca->cnt = max_cnt;
net/ipv4/tcp_cubic.c
318
ca->cnt = max(ca->cnt, 2U);
net/ipv4/tcp_cubic.c
324
struct bictcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_cubic.c
334
bictcp_update(ca, tcp_snd_cwnd(tp), acked);
net/ipv4/tcp_cubic.c
335
tcp_cong_avoid_ai(tp, ca->cnt, acked);
net/ipv4/tcp_cubic.c
341
struct bictcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_cubic.c
343
ca->epoch_start = 0; /* end of epoch */
net/ipv4/tcp_cubic.c
346
if (tcp_snd_cwnd(tp) < ca->last_max_cwnd && fast_convergence)
net/ipv4/tcp_cubic.c
347
ca->last_max_cwnd = (tcp_snd_cwnd(tp) * (BICTCP_BETA_SCALE + beta))
net/ipv4/tcp_cubic.c
350
ca->last_max_cwnd = tcp_snd_cwnd(tp);
net/ipv4/tcp_cubic.c
386
struct bictcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_cubic.c
389
if (after(tp->snd_una, ca->end_seq))
net/ipv4/tcp_cubic.c
400
if ((s32)(now - ca->last_ack) <= hystart_ack_delta_us) {
net/ipv4/tcp_cubic.c
401
ca->last_ack = now;
net/ipv4/tcp_cubic.c
403
threshold = ca->delay_min + hystart_ack_delay(sk);
net/ipv4/tcp_cubic.c
413
if ((s32)(now - ca->round_start) > threshold) {
net/ipv4/tcp_cubic.c
414
ca->found = 1;
net/ipv4/tcp_cubic.c
416
now - ca->round_start, threshold,
net/ipv4/tcp_cubic.c
417
ca->delay_min, hystart_ack_delay(sk), tcp_snd_cwnd(tp));
net/ipv4/tcp_cubic.c
430
if (ca->curr_rtt > delay)
net/ipv4/tcp_cubic.c
431
ca->curr_rtt = delay;
net/ipv4/tcp_cubic.c
432
if (ca->sample_cnt < HYSTART_MIN_SAMPLES) {
net/ipv4/tcp_cubic.c
433
ca->sample_cnt++;
net/ipv4/tcp_cubic.c
435
if (ca->curr_rtt > ca->delay_min +
net/ipv4/tcp_cubic.c
436
HYSTART_DELAY_THRESH(ca->delay_min >> 3)) {
net/ipv4/tcp_cubic.c
437
ca->found = 1;
net/ipv4/tcp_cubic.c
452
struct bictcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_cubic.c
460
if (ca->epoch_start && (s32)(tcp_jiffies32 - ca->epoch_start) < HZ)
net/ipv4/tcp_cubic.c
468
if (ca->delay_min == 0 || ca->delay_min > delay)
net/ipv4/tcp_cubic.c
469
ca->delay_min = delay;
net/ipv4/tcp_cubic.c
471
if (!ca->found && tcp_in_slow_start(tp) && hystart)
net/ipv4/tcp_dctcp.c
100
ca->dctcp_alpha = min(dctcp_alpha_on_init, DCTCP_MAX_ALPHA);
net/ipv4/tcp_dctcp.c
102
ca->loss_cwnd = 0;
net/ipv4/tcp_dctcp.c
103
ca->ce_state = 0;
net/ipv4/tcp_dctcp.c
105
dctcp_reset(tp, ca);
net/ipv4/tcp_dctcp.c
106
tcp_plb_init(sk, &ca->plb);
net/ipv4/tcp_dctcp.c
120
struct dctcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_dctcp.c
123
ca->loss_cwnd = tcp_snd_cwnd(tp);
net/ipv4/tcp_dctcp.c
124
return max(tcp_snd_cwnd(tp) - ((tcp_snd_cwnd(tp) * ca->dctcp_alpha) >> 11U), 2U);
net/ipv4/tcp_dctcp.c
130
struct dctcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_dctcp.c
133
if (!before(tp->snd_una, ca->next_seq)) {
net/ipv4/tcp_dctcp.c
134
u32 delivered = tp->delivered - ca->old_delivered;
net/ipv4/tcp_dctcp.c
135
u32 delivered_ce = tp->delivered_ce - ca->old_delivered_ce;
net/ipv4/tcp_dctcp.c
136
u32 alpha = ca->dctcp_alpha;
net/ipv4/tcp_dctcp.c
148
tcp_plb_update_state(sk, &ca->plb, (int)ce_ratio);
net/ipv4/tcp_dctcp.c
149
tcp_plb_check_rehash(sk, &ca->plb);
net/ipv4/tcp_dctcp.c
169
WRITE_ONCE(ca->dctcp_alpha, alpha);
net/ipv4/tcp_dctcp.c
170
dctcp_reset(tp, ca);
net/ipv4/tcp_dctcp.c
176
struct dctcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_dctcp.c
179
ca->loss_cwnd = tcp_snd_cwnd(tp);
net/ipv4/tcp_dctcp.c
195
struct dctcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_dctcp.c
200
dctcp_ece_ack_update(sk, ev, &ca->prior_rcv_nxt, &ca->ce_state);
net/ipv4/tcp_dctcp.c
203
tcp_plb_update_state_upon_rto(sk, &ca->plb);
net/ipv4/tcp_dctcp.c
214
struct dctcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_dctcp.c
216
tcp_plb_check_rehash(sk, &ca->plb); /* Maybe rehash when inflight is 0 */
net/ipv4/tcp_dctcp.c
222
const struct dctcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_dctcp.c
233
info->dctcp.dctcp_ce_state = (u16) ca->ce_state;
net/ipv4/tcp_dctcp.c
234
info->dctcp.dctcp_alpha = ca->dctcp_alpha;
net/ipv4/tcp_dctcp.c
236
(tp->delivered_ce - ca->old_delivered_ce);
net/ipv4/tcp_dctcp.c
238
(tp->delivered - ca->old_delivered);
net/ipv4/tcp_dctcp.c
249
const struct dctcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_dctcp.c
252
return max(tcp_snd_cwnd(tp), ca->loss_cwnd);
net/ipv4/tcp_dctcp.c
81
static void dctcp_reset(const struct tcp_sock *tp, struct dctcp *ca)
net/ipv4/tcp_dctcp.c
83
ca->next_seq = tp->snd_nxt;
net/ipv4/tcp_dctcp.c
85
ca->old_delivered = tp->delivered;
net/ipv4/tcp_dctcp.c
86
ca->old_delivered_ce = tp->delivered_ce;
net/ipv4/tcp_dctcp.c
96
struct dctcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_dctcp.c
98
ca->prior_rcv_nxt = tp->rcv_nxt;
net/ipv4/tcp_highspeed.c
103
struct hstcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_highspeed.c
105
ca->ai = 0;
net/ipv4/tcp_highspeed.c
115
struct hstcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_highspeed.c
130
if (tcp_snd_cwnd(tp) > hstcp_aimd_vals[ca->ai].cwnd) {
net/ipv4/tcp_highspeed.c
131
while (tcp_snd_cwnd(tp) > hstcp_aimd_vals[ca->ai].cwnd &&
net/ipv4/tcp_highspeed.c
132
ca->ai < HSTCP_AIMD_MAX - 1)
net/ipv4/tcp_highspeed.c
133
ca->ai++;
net/ipv4/tcp_highspeed.c
134
} else if (ca->ai && tcp_snd_cwnd(tp) <= hstcp_aimd_vals[ca->ai-1].cwnd) {
net/ipv4/tcp_highspeed.c
135
while (ca->ai && tcp_snd_cwnd(tp) <= hstcp_aimd_vals[ca->ai-1].cwnd)
net/ipv4/tcp_highspeed.c
136
ca->ai--;
net/ipv4/tcp_highspeed.c
142
tp->snd_cwnd_cnt += ca->ai + 1;
net/ipv4/tcp_highspeed.c
154
struct hstcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_highspeed.c
157
return max(tcp_snd_cwnd(tp) - ((tcp_snd_cwnd(tp) * hstcp_aimd_vals[ca->ai].md) >> 8), 2U);
net/ipv4/tcp_htcp.c
106
struct htcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_htcp.c
110
ca->pkts_acked = sample->pkts_acked;
net/ipv4/tcp_htcp.c
120
ca->packetcount = 0;
net/ipv4/tcp_htcp.c
121
ca->lasttime = now;
net/ipv4/tcp_htcp.c
125
ca->packetcount += sample->pkts_acked;
net/ipv4/tcp_htcp.c
127
if (ca->packetcount >= tcp_snd_cwnd(tp) - (ca->alpha >> 7 ? : 1) &&
net/ipv4/tcp_htcp.c
128
now - ca->lasttime >= ca->minRTT &&
net/ipv4/tcp_htcp.c
129
ca->minRTT > 0) {
net/ipv4/tcp_htcp.c
130
__u32 cur_Bi = ca->packetcount * HZ / (now - ca->lasttime);
net/ipv4/tcp_htcp.c
132
if (htcp_ccount(ca) <= 3) {
net/ipv4/tcp_htcp.c
134
ca->minB = ca->maxB = ca->Bi = cur_Bi;
net/ipv4/tcp_htcp.c
136
ca->Bi = (3 * ca->Bi + cur_Bi) / 4;
net/ipv4/tcp_htcp.c
137
if (ca->Bi > ca->maxB)
net/ipv4/tcp_htcp.c
138
ca->maxB = ca->Bi;
net/ipv4/tcp_htcp.c
139
if (ca->minB > ca->maxB)
net/ipv4/tcp_htcp.c
140
ca->minB = ca->maxB;
net/ipv4/tcp_htcp.c
142
ca->packetcount = 0;
net/ipv4/tcp_htcp.c
143
ca->lasttime = now;
net/ipv4/tcp_htcp.c
147
static inline void htcp_beta_update(struct htcp *ca, u32 minRTT, u32 maxRTT)
net/ipv4/tcp_htcp.c
150
u32 maxB = ca->maxB;
net/ipv4/tcp_htcp.c
151
u32 old_maxB = ca->old_maxB;
net/ipv4/tcp_htcp.c
153
ca->old_maxB = ca->maxB;
net/ipv4/tcp_htcp.c
155
ca->beta = BETA_MIN;
net/ipv4/tcp_htcp.c
156
ca->modeswitch = 0;
net/ipv4/tcp_htcp.c
161
if (ca->modeswitch && minRTT > msecs_to_jiffies(10) && maxRTT) {
net/ipv4/tcp_htcp.c
162
ca->beta = (minRTT << 7) / maxRTT;
net/ipv4/tcp_htcp.c
163
if (ca->beta < BETA_MIN)
net/ipv4/tcp_htcp.c
164
ca->beta = BETA_MIN;
net/ipv4/tcp_htcp.c
165
else if (ca->beta > BETA_MAX)
net/ipv4/tcp_htcp.c
166
ca->beta = BETA_MAX;
net/ipv4/tcp_htcp.c
168
ca->beta = BETA_MIN;
net/ipv4/tcp_htcp.c
169
ca->modeswitch = 1;
net/ipv4/tcp_htcp.c
173
static inline void htcp_alpha_update(struct htcp *ca)
net/ipv4/tcp_htcp.c
175
u32 minRTT = ca->minRTT;
net/ipv4/tcp_htcp.c
177
u32 diff = htcp_cong_time(ca);
net/ipv4/tcp_htcp.c
194
ca->alpha = 2 * factor * ((1 << 7) - ca->beta);
net/ipv4/tcp_htcp.c
195
if (!ca->alpha)
net/ipv4/tcp_htcp.c
196
ca->alpha = ALPHA_BASE;
net/ipv4/tcp_htcp.c
210
struct htcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_htcp.c
211
u32 minRTT = ca->minRTT;
net/ipv4/tcp_htcp.c
212
u32 maxRTT = ca->maxRTT;
net/ipv4/tcp_htcp.c
214
htcp_beta_update(ca, minRTT, maxRTT);
net/ipv4/tcp_htcp.c
215
htcp_alpha_update(ca);
net/ipv4/tcp_htcp.c
219
ca->maxRTT = minRTT + ((maxRTT - minRTT) * 95) / 100;
net/ipv4/tcp_htcp.c
225
const struct htcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_htcp.c
228
return max((tcp_snd_cwnd(tp) * ca->beta) >> 7, 2U);
net/ipv4/tcp_htcp.c
234
struct htcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_htcp.c
245
if ((tp->snd_cwnd_cnt * ca->alpha)>>7 >= tcp_snd_cwnd(tp)) {
net/ipv4/tcp_htcp.c
249
htcp_alpha_update(ca);
net/ipv4/tcp_htcp.c
251
tp->snd_cwnd_cnt += ca->pkts_acked;
net/ipv4/tcp_htcp.c
253
ca->pkts_acked = 1;
net/ipv4/tcp_htcp.c
259
struct htcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_htcp.c
261
memset(ca, 0, sizeof(struct htcp));
net/ipv4/tcp_htcp.c
262
ca->alpha = ALPHA_BASE;
net/ipv4/tcp_htcp.c
263
ca->beta = BETA_MIN;
net/ipv4/tcp_htcp.c
264
ca->pkts_acked = 1;
net/ipv4/tcp_htcp.c
265
ca->last_cong = jiffies;
net/ipv4/tcp_htcp.c
273
struct htcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_htcp.c
275
if (ca->undo_last_cong) {
net/ipv4/tcp_htcp.c
276
ca->last_cong = jiffies;
net/ipv4/tcp_htcp.c
277
ca->undo_last_cong = 0;
net/ipv4/tcp_htcp.c
49
static inline u32 htcp_cong_time(const struct htcp *ca)
net/ipv4/tcp_htcp.c
51
return jiffies - ca->last_cong;
net/ipv4/tcp_htcp.c
54
static inline u32 htcp_ccount(const struct htcp *ca)
net/ipv4/tcp_htcp.c
56
return htcp_cong_time(ca) / ca->minRTT;
net/ipv4/tcp_htcp.c
59
static inline void htcp_reset(struct htcp *ca)
net/ipv4/tcp_htcp.c
61
ca->undo_last_cong = ca->last_cong;
net/ipv4/tcp_htcp.c
62
ca->undo_maxRTT = ca->maxRTT;
net/ipv4/tcp_htcp.c
63
ca->undo_old_maxB = ca->old_maxB;
net/ipv4/tcp_htcp.c
65
ca->last_cong = jiffies;
net/ipv4/tcp_htcp.c
70
struct htcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_htcp.c
72
if (ca->undo_last_cong) {
net/ipv4/tcp_htcp.c
73
ca->last_cong = ca->undo_last_cong;
net/ipv4/tcp_htcp.c
74
ca->maxRTT = ca->undo_maxRTT;
net/ipv4/tcp_htcp.c
75
ca->old_maxB = ca->undo_old_maxB;
net/ipv4/tcp_htcp.c
76
ca->undo_last_cong = 0;
net/ipv4/tcp_htcp.c
85
struct htcp *ca = inet_csk_ca(sk);
net/ipv4/tcp_htcp.c
88
if (ca->minRTT > srtt || !ca->minRTT)
net/ipv4/tcp_htcp.c
89
ca->minRTT = srtt;
net/ipv4/tcp_htcp.c
93
if (ca->maxRTT < ca->minRTT)
net/ipv4/tcp_htcp.c
94
ca->maxRTT = ca->minRTT;
net/ipv4/tcp_htcp.c
95
if (ca->maxRTT < srtt &&
net/ipv4/tcp_htcp.c
96
srtt <= ca->maxRTT + msecs_to_jiffies(20))
net/ipv4/tcp_htcp.c
97
ca->maxRTT = srtt;
net/ipv4/tcp_hybla.c
100
ca->minrtt_us = tp->srtt_us;
net/ipv4/tcp_hybla.c
106
if (!ca->hybla_en) {
net/ipv4/tcp_hybla.c
111
if (ca->rho == 0)
net/ipv4/tcp_hybla.c
114
rho_fractions = ca->rho_3ls - (ca->rho << 3);
net/ipv4/tcp_hybla.c
131
increment = ((1 << min(ca->rho, 16U)) *
net/ipv4/tcp_hybla.c
140
increment = ca->rho2_7ls / tcp_snd_cwnd(tp);
net/ipv4/tcp_hybla.c
147
ca->snd_cwnd_cents += odd;
net/ipv4/tcp_hybla.c
150
while (ca->snd_cwnd_cents >= 128) {
net/ipv4/tcp_hybla.c
152
ca->snd_cwnd_cents -= 128;
net/ipv4/tcp_hybla.c
36
struct hybla *ca = inet_csk_ca(sk);
net/ipv4/tcp_hybla.c
38
ca->rho_3ls = max_t(u32,
net/ipv4/tcp_hybla.c
41
ca->rho = ca->rho_3ls >> 3;
net/ipv4/tcp_hybla.c
42
ca->rho2_7ls = (ca->rho_3ls * ca->rho_3ls) << 1;
net/ipv4/tcp_hybla.c
43
ca->rho2 = ca->rho2_7ls >> 7;
net/ipv4/tcp_hybla.c
49
struct hybla *ca = inet_csk_ca(sk);
net/ipv4/tcp_hybla.c
51
ca->rho = 0;
net/ipv4/tcp_hybla.c
52
ca->rho2 = 0;
net/ipv4/tcp_hybla.c
53
ca->rho_3ls = 0;
net/ipv4/tcp_hybla.c
54
ca->rho2_7ls = 0;
net/ipv4/tcp_hybla.c
55
ca->snd_cwnd_cents = 0;
net/ipv4/tcp_hybla.c
56
ca->hybla_en = true;
net/ipv4/tcp_hybla.c
64
ca->minrtt_us = tp->srtt_us;
net/ipv4/tcp_hybla.c
65
tcp_snd_cwnd_set(tp, ca->rho);
net/ipv4/tcp_hybla.c
70
struct hybla *ca = inet_csk_ca(sk);
net/ipv4/tcp_hybla.c
72
ca->hybla_en = (ca_state == TCP_CA_Open);
net/ipv4/tcp_hybla.c
93
struct hybla *ca = inet_csk_ca(sk);
net/ipv4/tcp_hybla.c
98
if (tp->srtt_us < ca->minrtt_us) {
net/ipv4/tcp_illinois.c
102
if (ca->base_rtt > rtt_us)
net/ipv4/tcp_illinois.c
103
ca->base_rtt = rtt_us;
net/ipv4/tcp_illinois.c
106
if (ca->max_rtt < rtt_us)
net/ipv4/tcp_illinois.c
107
ca->max_rtt = rtt_us;
net/ipv4/tcp_illinois.c
109
++ca->cnt_rtt;
net/ipv4/tcp_illinois.c
110
ca->sum_rtt += rtt_us;
net/ipv4/tcp_illinois.c
114
static inline u32 max_delay(const struct illinois *ca)
net/ipv4/tcp_illinois.c
116
return ca->max_rtt - ca->base_rtt;
net/ipv4/tcp_illinois.c
120
static inline u32 avg_delay(const struct illinois *ca)
net/ipv4/tcp_illinois.c
122
u64 t = ca->sum_rtt;
net/ipv4/tcp_illinois.c
124
do_div(t, ca->cnt_rtt);
net/ipv4/tcp_illinois.c
125
return t - ca->base_rtt;
net/ipv4/tcp_illinois.c
140
static u32 alpha(struct illinois *ca, u32 da, u32 dm)
net/ipv4/tcp_illinois.c
146
if (!ca->rtt_above)
net/ipv4/tcp_illinois.c
152
if (++ca->rtt_low < theta)
net/ipv4/tcp_illinois.c
153
return ca->alpha;
net/ipv4/tcp_illinois.c
155
ca->rtt_low = 0;
net/ipv4/tcp_illinois.c
156
ca->rtt_above = 0;
net/ipv4/tcp_illinois.c
160
ca->rtt_above = 1;
net/ipv4/tcp_illinois.c
225
struct illinois *ca = inet_csk_ca(sk);
net/ipv4/tcp_illinois.c
228
ca->alpha = ALPHA_BASE;
net/ipv4/tcp_illinois.c
229
ca->beta = BETA_BASE;
net/ipv4/tcp_illinois.c
230
} else if (ca->cnt_rtt > 0) {
net/ipv4/tcp_illinois.c
231
u32 dm = max_delay(ca);
net/ipv4/tcp_illinois.c
232
u32 da = avg_delay(ca);
net/ipv4/tcp_illinois.c
234
ca->alpha = alpha(ca, da, dm);
net/ipv4/tcp_illinois.c
235
ca->beta = beta(da, dm);
net/ipv4/tcp_illinois.c
246
struct illinois *ca = inet_csk_ca(sk);
net/ipv4/tcp_illinois.c
249
ca->alpha = ALPHA_BASE;
net/ipv4/tcp_illinois.c
250
ca->beta = BETA_BASE;
net/ipv4/tcp_illinois.c
251
ca->rtt_low = 0;
net/ipv4/tcp_illinois.c
252
ca->rtt_above = 0;
net/ipv4/tcp_illinois.c
263
struct illinois *ca = inet_csk_ca(sk);
net/ipv4/tcp_illinois.c
265
if (after(ack, ca->end_seq))
net/ipv4/tcp_illinois.c
280
tp->snd_cwnd_cnt += ca->acked;
net/ipv4/tcp_illinois.c
281
ca->acked = 1;
net/ipv4/tcp_illinois.c
286
delta = (tp->snd_cwnd_cnt * ca->alpha) >> ALPHA_SHIFT;
net/ipv4/tcp_illinois.c
298
struct illinois *ca = inet_csk_ca(sk);
net/ipv4/tcp_illinois.c
302
decr = (tcp_snd_cwnd(tp) * ca->beta) >> BETA_SHIFT;
net/ipv4/tcp_illinois.c
310
const struct illinois *ca = inet_csk_ca(sk);
net/ipv4/tcp_illinois.c
314
info->vegas.tcpv_rttcnt = ca->cnt_rtt;
net/ipv4/tcp_illinois.c
315
info->vegas.tcpv_minrtt = ca->base_rtt;
net/ipv4/tcp_illinois.c
319
u64 t = ca->sum_rtt;
net/ipv4/tcp_illinois.c
60
struct illinois *ca = inet_csk_ca(sk);
net/ipv4/tcp_illinois.c
62
ca->end_seq = tp->snd_nxt;
net/ipv4/tcp_illinois.c
63
ca->cnt_rtt = 0;
net/ipv4/tcp_illinois.c
64
ca->sum_rtt = 0;
net/ipv4/tcp_illinois.c
71
struct illinois *ca = inet_csk_ca(sk);
net/ipv4/tcp_illinois.c
73
ca->alpha = ALPHA_MAX;
net/ipv4/tcp_illinois.c
74
ca->beta = BETA_BASE;
net/ipv4/tcp_illinois.c
75
ca->base_rtt = 0x7fffffff;
net/ipv4/tcp_illinois.c
76
ca->max_rtt = 0;
net/ipv4/tcp_illinois.c
78
ca->acked = 0;
net/ipv4/tcp_illinois.c
79
ca->rtt_low = 0;
net/ipv4/tcp_illinois.c
80
ca->rtt_above = 0;
net/ipv4/tcp_illinois.c
88
struct illinois *ca = inet_csk_ca(sk);
net/ipv4/tcp_illinois.c
91
ca->acked = sample->pkts_acked;
net/ipv4/tcp_minisocks.c
504
const struct tcp_congestion_ops *ca;
net/ipv4/tcp_minisocks.c
507
ca = tcp_ca_find_key(ca_key);
net/ipv4/tcp_minisocks.c
508
if (likely(ca && bpf_try_module_get(ca, ca->owner))) {
net/ipv4/tcp_minisocks.c
510
icsk->icsk_ca_ops = ca;
net/ipv4/tcp_nv.c
123
static inline void tcpnv_reset(struct tcpnv *ca, struct sock *sk)
net/ipv4/tcp_nv.c
127
ca->nv_reset = 0;
net/ipv4/tcp_nv.c
128
ca->nv_no_cong_cnt = 0;
net/ipv4/tcp_nv.c
129
ca->nv_rtt_cnt = 0;
net/ipv4/tcp_nv.c
130
ca->nv_last_rtt = 0;
net/ipv4/tcp_nv.c
131
ca->nv_rtt_max_rate = 0;
net/ipv4/tcp_nv.c
132
ca->nv_rtt_start_seq = tp->snd_una;
net/ipv4/tcp_nv.c
133
ca->nv_eval_call_cnt = 0;
net/ipv4/tcp_nv.c
134
ca->nv_last_snd_una = tp->snd_una;
net/ipv4/tcp_nv.c
139
struct tcpnv *ca = inet_csk_ca(sk);
net/ipv4/tcp_nv.c
142
tcpnv_reset(ca, sk);
net/ipv4/tcp_nv.c
151
ca->nv_base_rtt = base_rtt;
net/ipv4/tcp_nv.c
152
ca->nv_lower_bound_rtt = (base_rtt * 205) >> 8; /* 80% */
net/ipv4/tcp_nv.c
154
ca->nv_base_rtt = 0;
net/ipv4/tcp_nv.c
155
ca->nv_lower_bound_rtt = 0;
net/ipv4/tcp_nv.c
158
ca->nv_allow_cwnd_growth = 1;
net/ipv4/tcp_nv.c
159
ca->nv_min_rtt_reset_jiffies = jiffies + 2 * HZ;
net/ipv4/tcp_nv.c
160
ca->nv_min_rtt = NV_INIT_RTT;
net/ipv4/tcp_nv.c
161
ca->nv_min_rtt_new = NV_INIT_RTT;
net/ipv4/tcp_nv.c
162
ca->nv_min_cwnd = NV_MIN_CWND;
net/ipv4/tcp_nv.c
163
ca->nv_catchup = 0;
net/ipv4/tcp_nv.c
164
ca->cwnd_growth_factor = 0;
net/ipv4/tcp_nv.c
170
inline u32 nv_get_bounded_rtt(struct tcpnv *ca, u32 val)
net/ipv4/tcp_nv.c
172
if (ca->nv_lower_bound_rtt > 0 && val < ca->nv_lower_bound_rtt)
net/ipv4/tcp_nv.c
173
return ca->nv_lower_bound_rtt;
net/ipv4/tcp_nv.c
174
else if (ca->nv_base_rtt > 0 && val > ca->nv_base_rtt)
net/ipv4/tcp_nv.c
175
return ca->nv_base_rtt;
net/ipv4/tcp_nv.c
183
struct tcpnv *ca = inet_csk_ca(sk);
net/ipv4/tcp_nv.c
190
if (!ca->nv_allow_cwnd_growth)
net/ipv4/tcp_nv.c
199
if (ca->cwnd_growth_factor < 0) {
net/ipv4/tcp_nv.c
200
cnt = tcp_snd_cwnd(tp) << -ca->cwnd_growth_factor;
net/ipv4/tcp_nv.c
203
cnt = max(4U, tcp_snd_cwnd(tp) >> ca->cwnd_growth_factor);
net/ipv4/tcp_nv.c
217
struct tcpnv *ca = inet_csk_ca(sk);
net/ipv4/tcp_nv.c
219
if (new_state == TCP_CA_Open && ca->nv_reset) {
net/ipv4/tcp_nv.c
220
tcpnv_reset(ca, sk);
net/ipv4/tcp_nv.c
223
ca->nv_reset = 1;
net/ipv4/tcp_nv.c
224
ca->nv_allow_cwnd_growth = 0;
net/ipv4/tcp_nv.c
227
if (ca->cwnd_growth_factor > 0)
net/ipv4/tcp_nv.c
228
ca->cwnd_growth_factor = 0;
net/ipv4/tcp_nv.c
231
ca->cwnd_growth_factor > -8)
net/ipv4/tcp_nv.c
232
ca->cwnd_growth_factor--;
net/ipv4/tcp_nv.c
243
struct tcpnv *ca = inet_csk_ca(sk);
net/ipv4/tcp_nv.c
260
if (ca->nv_catchup && tcp_snd_cwnd(tp) >= nv_min_cwnd) {
net/ipv4/tcp_nv.c
261
ca->nv_catchup = 0;
net/ipv4/tcp_nv.c
262
ca->nv_allow_cwnd_growth = 0;
net/ipv4/tcp_nv.c
265
bytes_acked = tp->snd_una - ca->nv_last_snd_una;
net/ipv4/tcp_nv.c
266
ca->nv_last_snd_una = tp->snd_una;
net/ipv4/tcp_nv.c
273
if (ca->nv_last_rtt > 0) {
net/ipv4/tcp_nv.c
275
((u64)ca->nv_last_rtt)
net/ipv4/tcp_nv.c
279
ca->nv_min_rtt = avg_rtt << 1;
net/ipv4/tcp_nv.c
281
ca->nv_last_rtt = avg_rtt;
net/ipv4/tcp_nv.c
295
if (ca->nv_rtt_max_rate < rate)
net/ipv4/tcp_nv.c
296
ca->nv_rtt_max_rate = rate;
net/ipv4/tcp_nv.c
299
if (ca->nv_eval_call_cnt < 255)
net/ipv4/tcp_nv.c
300
ca->nv_eval_call_cnt++;
net/ipv4/tcp_nv.c
303
avg_rtt = nv_get_bounded_rtt(ca, avg_rtt);
net/ipv4/tcp_nv.c
306
if (avg_rtt < ca->nv_min_rtt)
net/ipv4/tcp_nv.c
307
ca->nv_min_rtt = avg_rtt;
net/ipv4/tcp_nv.c
310
if (avg_rtt < ca->nv_min_rtt_new)
net/ipv4/tcp_nv.c
311
ca->nv_min_rtt_new = avg_rtt;
net/ipv4/tcp_nv.c
322
if (time_after_eq(now, ca->nv_min_rtt_reset_jiffies)) {
net/ipv4/tcp_nv.c
325
ca->nv_min_rtt = ca->nv_min_rtt_new;
net/ipv4/tcp_nv.c
326
ca->nv_min_rtt_new = NV_INIT_RTT;
net/ipv4/tcp_nv.c
328
ca->nv_min_rtt_reset_jiffies =
net/ipv4/tcp_nv.c
333
ca->nv_min_cwnd = max(ca->nv_min_cwnd / 2, NV_MIN_CWND);
net/ipv4/tcp_nv.c
337
if (before(ca->nv_rtt_start_seq, tp->snd_una)) {
net/ipv4/tcp_nv.c
338
ca->nv_rtt_start_seq = tp->snd_nxt;
net/ipv4/tcp_nv.c
339
if (ca->nv_rtt_cnt < 0xff)
net/ipv4/tcp_nv.c
341
ca->nv_rtt_cnt++;
net/ipv4/tcp_nv.c
348
if (ca->nv_eval_call_cnt == 1 &&
net/ipv4/tcp_nv.c
349
bytes_acked >= (ca->nv_min_cwnd - 1) * tp->mss_cache &&
net/ipv4/tcp_nv.c
350
ca->nv_min_cwnd < (NV_TSO_CWND_BOUND + 1)) {
net/ipv4/tcp_nv.c
351
ca->nv_min_cwnd = min(ca->nv_min_cwnd
net/ipv4/tcp_nv.c
354
ca->nv_rtt_start_seq = tp->snd_nxt +
net/ipv4/tcp_nv.c
355
ca->nv_min_cwnd * tp->mss_cache;
net/ipv4/tcp_nv.c
356
ca->nv_eval_call_cnt = 0;
net/ipv4/tcp_nv.c
357
ca->nv_allow_cwnd_growth = 1;
net/ipv4/tcp_nv.c
366
div64_u64(((u64)ca->nv_rtt_max_rate) * ca->nv_min_rtt,
net/ipv4/tcp_nv.c
382
if (ca->nv_rtt_cnt < nv_rtt_min_cnt) {
net/ipv4/tcp_nv.c
385
if (ca->nv_eval_call_cnt <
net/ipv4/tcp_nv.c
389
} else if (ca->nv_eval_call_cnt <
net/ipv4/tcp_nv.c
391
if (ca->nv_allow_cwnd_growth &&
net/ipv4/tcp_nv.c
392
ca->nv_rtt_cnt > nv_stop_rtt_cnt)
net/ipv4/tcp_nv.c
393
ca->nv_allow_cwnd_growth = 0;
net/ipv4/tcp_nv.c
398
ca->nv_allow_cwnd_growth = 0;
net/ipv4/tcp_nv.c
411
if (ca->cwnd_growth_factor > 0)
net/ipv4/tcp_nv.c
412
ca->cwnd_growth_factor = 0;
net/ipv4/tcp_nv.c
413
ca->nv_no_cong_cnt = 0;
net/ipv4/tcp_nv.c
416
if (ca->nv_eval_call_cnt < nv_inc_eval_min_calls)
net/ipv4/tcp_nv.c
419
ca->nv_allow_cwnd_growth = 1;
net/ipv4/tcp_nv.c
420
ca->nv_no_cong_cnt++;
net/ipv4/tcp_nv.c
421
if (ca->cwnd_growth_factor < 0 &&
net/ipv4/tcp_nv.c
423
ca->nv_no_cong_cnt > nv_cwnd_growth_rate_neg) {
net/ipv4/tcp_nv.c
424
ca->cwnd_growth_factor++;
net/ipv4/tcp_nv.c
425
ca->nv_no_cong_cnt = 0;
net/ipv4/tcp_nv.c
426
} else if (ca->cwnd_growth_factor >= 0 &&
net/ipv4/tcp_nv.c
428
ca->nv_no_cong_cnt >
net/ipv4/tcp_nv.c
430
ca->cwnd_growth_factor++;
net/ipv4/tcp_nv.c
431
ca->nv_no_cong_cnt = 0;
net/ipv4/tcp_nv.c
439
ca->nv_eval_call_cnt = 0;
net/ipv4/tcp_nv.c
440
ca->nv_rtt_cnt = 0;
net/ipv4/tcp_nv.c
441
ca->nv_rtt_max_rate = 0;
net/ipv4/tcp_nv.c
456
const struct tcpnv *ca = inet_csk_ca(sk);
net/ipv4/tcp_nv.c
460
info->vegas.tcpv_rttcnt = ca->nv_rtt_cnt;
net/ipv4/tcp_nv.c
461
info->vegas.tcpv_rtt = ca->nv_last_rtt;
net/ipv4/tcp_nv.c
462
info->vegas.tcpv_minrtt = ca->nv_min_rtt;
net/ipv4/tcp_output.c
4084
const struct tcp_congestion_ops *ca;
net/ipv4/tcp_output.c
4091
ca = tcp_ca_find_key(ca_key);
net/ipv4/tcp_output.c
4092
if (likely(ca && bpf_try_module_get(ca, ca->owner))) {
net/ipv4/tcp_output.c
4095
icsk->icsk_ca_ops = ca;
net/ipv4/tcp_vegas.c
300
const struct vegas *ca = inet_csk_ca(sk);
net/ipv4/tcp_vegas.c
303
info->vegas.tcpv_enabled = ca->doing_vegas_now;
net/ipv4/tcp_vegas.c
304
info->vegas.tcpv_rttcnt = ca->cntRTT;
net/ipv4/tcp_vegas.c
305
info->vegas.tcpv_rtt = ca->baseRTT;
net/ipv4/tcp_vegas.c
306
info->vegas.tcpv_minrtt = ca->minRTT;
net/ipv4/tcp_westwood.c
265
const struct westwood *ca = inet_csk_ca(sk);
net/ipv4/tcp_westwood.c
270
info->vegas.tcpv_rtt = jiffies_to_usecs(ca->rtt);
net/ipv4/tcp_westwood.c
271
info->vegas.tcpv_minrtt = jiffies_to_usecs(ca->rtt_min);
net/ipv6/sit.c
311
unsigned int cmax, c = 0, ca, len;
net/ipv6/sit.c
330
ca = min(t->prl_count, cmax);
net/ipv6/sit.c
338
kp = kzalloc_objs(*kp, ca,
net/sched/act_connmark.c
38
struct tcf_connmark_info *ca = to_connmark(a);
net/sched/act_connmark.c
44
tcf_lastuse_update(&ca->tcf_tm);
net/sched/act_connmark.c
45
tcf_action_update_bstats(&ca->common, skb);
net/sched/act_connmark.c
47
parms = rcu_dereference_bh(ca->parms);
net/sched/act_connmark.c
89
tcf_action_inc_overlimit_qstats(&ca->common);
net/sched/act_ctinfo.c
135
tcf_ctinfo_dscp_set(ct, ca, cp, skb, wlen, proto);
net/sched/act_ctinfo.c
138
tcf_ctinfo_cpmark_set(ct, ca, cp, skb);
net/sched/act_ctinfo.c
31
static void tcf_ctinfo_dscp_set(struct nf_conn *ct, struct tcf_ctinfo *ca,
net/sched/act_ctinfo.c
48
atomic64_inc(&ca->stats_dscp_set);
net/sched/act_ctinfo.c
50
atomic64_inc(&ca->stats_dscp_error);
net/sched/act_ctinfo.c
61
atomic64_inc(&ca->stats_dscp_set);
net/sched/act_ctinfo.c
63
atomic64_inc(&ca->stats_dscp_error);
net/sched/act_ctinfo.c
72
static void tcf_ctinfo_cpmark_set(struct nf_conn *ct, struct tcf_ctinfo *ca,
net/sched/act_ctinfo.c
76
atomic64_inc(&ca->stats_cpmark_set);
net/sched/act_ctinfo.c
85
struct tcf_ctinfo *ca = to_ctinfo(a);
net/sched/act_ctinfo.c
93
cp = rcu_dereference_bh(ca->params);
net/sched/act_ctinfo.c
95
tcf_lastuse_update(&ca->tcf_tm);
net/sched/act_ctinfo.c
96
tcf_action_update_bstats(&ca->common, skb);
sound/hda/codecs/hdmi/atihdmi.c
240
hda_nid_t pin_nid, int dev_id, int ca,
sound/hda/codecs/hdmi/atihdmi.c
244
snd_hda_codec_write(codec, pin_nid, 0, ATI_VERB_SET_CHANNEL_ALLOCATION, ca);
sound/hda/codecs/hdmi/atihdmi.c
263
int ca, int chs, unsigned char *map)
sound/hda/codecs/hdmi/atihdmi.c
270
cap = snd_hdac_get_ch_alloc_from_ca(ca);
sound/hda/codecs/hdmi/hdmi.c
473
int ca, int active_channels,
sound/hda/codecs/hdmi/hdmi.c
495
hdmi_ai->CA = ca;
sound/hda/codecs/hdmi/hdmi.c
504
dp_ai->CA = ca;
sound/hda/codecs/hdmi/hdmi.c
520
__func__, pin_nid, active_channels, ca);
sound/hda/codecs/hdmi/hdmi.c
539
int ca;
sound/hda/codecs/hdmi/hdmi.c
554
ca = snd_hdac_channel_allocation(&codec->core,
sound/hda/codecs/hdmi/hdmi.c
558
active_channels = snd_hdac_get_active_channels(ca);
sound/hda/codecs/hdmi/hdmi.c
568
pin_nid, non_pcm, ca, channels,
sound/hda/codecs/hdmi/hdmi.c
572
ca, active_channels, eld->info.conn_type);
sound/hda/codecs/hdmi/hdmi_local.h
67
int ca, int active_channels, int conn_type);
sound/hda/codecs/hdmi/nvhdmi.c
41
int ca, int chs, unsigned char *map)
sound/hda/codecs/hdmi/nvhdmi.c
43
if (ca == 0x00 && (map[0] != SNDRV_CHMAP_FL || map[1] != SNDRV_CHMAP_FR))
sound/hda/codecs/hdmi/tegrahdmi.c
222
int ca, int chs, unsigned char *map)
sound/hda/codecs/hdmi/tegrahdmi.c
224
if (ca == 0x00 && (map[0] != SNDRV_CHMAP_FL || map[1] != SNDRV_CHMAP_FR))
sound/hda/core/hdmi_chmap.c
236
static int get_channel_allocation_order(int ca)
sound/hda/core/hdmi_chmap.c
241
if (channel_allocations[i].ca_index == ca)
sound/hda/core/hdmi_chmap.c
272
int ca = 0;
sound/hda/core/hdmi_chmap.c
298
ca = channel_allocations[i].ca_index;
sound/hda/core/hdmi_chmap.c
303
if (!ca) {
sound/hda/core/hdmi_chmap.c
310
ca = channel_allocations[i].ca_index;
sound/hda/core/hdmi_chmap.c
318
ca, channels, buf);
sound/hda/core/hdmi_chmap.c
320
return ca;
sound/hda/core/hdmi_chmap.c
342
int ca)
sound/hda/core/hdmi_chmap.c
350
order = get_channel_allocation_order(ca);
sound/hda/core/hdmi_chmap.c
353
if (hdmi_channel_mapping[ca][1] == 0) {
sound/hda/core/hdmi_chmap.c
363
hdmi_channel_mapping[ca][i] = (i << 4) | hdmi_slot++;
sound/hda/core/hdmi_chmap.c
369
hdmi_channel_mapping[ca][i++] = (0xf << 4) | hdmi_slot;
sound/hda/core/hdmi_chmap.c
380
int slotsetup = non_pcm ? non_pcm_mapping[i] : hdmi_channel_mapping[ca][i];
sound/hda/core/hdmi_chmap.c
511
int ca)
sound/hda/core/hdmi_chmap.c
513
int ordered_ca = get_channel_allocation_order(ca);
sound/hda/core/hdmi_chmap.c
539
static void hdmi_setup_fake_chmap(unsigned char *map, int ca)
sound/hda/core/hdmi_chmap.c
542
int ordered_ca = get_channel_allocation_order(ca);
sound/hda/core/hdmi_chmap.c
547
map[i] = from_cea_slot(ordered_ca, hdmi_channel_mapping[ca][i] & 0x0f);
sound/hda/core/hdmi_chmap.c
554
hda_nid_t pin_nid, bool non_pcm, int ca,
sound/hda/core/hdmi_chmap.c
560
channels, map, ca);
sound/hda/core/hdmi_chmap.c
562
hdmi_std_setup_channel_mapping(chmap, pin_nid, non_pcm, ca);
sound/hda/core/hdmi_chmap.c
563
hdmi_setup_fake_chmap(map, ca);
sound/hda/core/hdmi_chmap.c
570
int snd_hdac_get_active_channels(int ca)
sound/hda/core/hdmi_chmap.c
572
int ordered_ca = get_channel_allocation_order(ca);
sound/hda/core/hdmi_chmap.c
584
struct hdac_cea_channel_speaker_allocation *snd_hdac_get_ch_alloc_from_ca(int ca)
sound/hda/core/hdmi_chmap.c
586
return &channel_allocations[get_channel_allocation_order(ca)];
sound/hda/core/hdmi_chmap.c
593
int ca;
sound/hda/core/hdmi_chmap.c
596
ca = hdmi_manual_channel_allocation(channels, map);
sound/hda/core/hdmi_chmap.c
598
ca = hdmi_channel_allocation_spk_alloc_blk(hdac,
sound/hda/core/hdmi_chmap.c
601
if (ca < 0)
sound/hda/core/hdmi_chmap.c
602
ca = 0;
sound/hda/core/hdmi_chmap.c
604
return ca;
sound/hda/core/hdmi_chmap.c
782
int i, err, ca, prepared = 0;
sound/hda/core/hdmi_chmap.c
815
ca = hdmi_manual_channel_allocation(ARRAY_SIZE(chmap), chmap);
sound/hda/core/hdmi_chmap.c
816
if (ca < 0)
sound/hda/core/hdmi_chmap.c
819
err = hchmap->ops.chmap_validate(hchmap, ca,
sound/pci/ctxfi/cthardware.h
103
int (*src_set_ca)(void *blk, unsigned int ca);
sound/pci/ctxfi/cthw20k1.c
293
static int src_set_ca(void *blk, unsigned int ca)
sound/pci/ctxfi/cthw20k1.c
297
set_field(&ctl->ca, SRCCA_CA, ca);
sound/pci/ctxfi/cthw20k1.c
298
ctl->dirty.bf.ca = 1;
sound/pci/ctxfi/cthw20k1.c
396
if (ctl->dirty.bf.ca) {
sound/pci/ctxfi/cthw20k1.c
397
hw_write_20kx(hw, SRCCA+idx*0x100, ctl->ca);
sound/pci/ctxfi/cthw20k1.c
398
ctl->dirty.bf.ca = 0;
sound/pci/ctxfi/cthw20k1.c
420
ctl->ca = hw_read_20kx(hw, SRCCA+idx*0x100);
sound/pci/ctxfi/cthw20k1.c
421
ctl->dirty.bf.ca = 0;
sound/pci/ctxfi/cthw20k1.c
423
return get_field(ctl->ca, SRCCA_CA);
sound/pci/ctxfi/cthw20k1.c
86
u16 ca:1;
sound/pci/ctxfi/cthw20k1.c
97
unsigned int ca;
sound/pci/ctxfi/cthw20k2.c
293
static int src_set_ca(void *blk, unsigned int ca)
sound/pci/ctxfi/cthw20k2.c
297
set_field(&ctl->ca, SRCCA_CA, ca);
sound/pci/ctxfi/cthw20k2.c
298
ctl->dirty.bf.ca = 1;
sound/pci/ctxfi/cthw20k2.c
396
if (ctl->dirty.bf.ca) {
sound/pci/ctxfi/cthw20k2.c
397
hw_write_20kx(hw, SRC_CA+idx*0x100, ctl->ca);
sound/pci/ctxfi/cthw20k2.c
398
ctl->dirty.bf.ca = 0;
sound/pci/ctxfi/cthw20k2.c
420
ctl->ca = hw_read_20kx(hw, SRC_CA+idx*0x100);
sound/pci/ctxfi/cthw20k2.c
421
ctl->dirty.bf.ca = 0;
sound/pci/ctxfi/cthw20k2.c
423
return get_field(ctl->ca, SRCCA_CA);
sound/pci/ctxfi/cthw20k2.c
86
u16 ca:1;
sound/pci/ctxfi/cthw20k2.c
97
unsigned int ca;
sound/pci/ctxfi/ctsrc.c
124
static int src_set_ca(struct src *src, unsigned int ca)
sound/pci/ctxfi/ctsrc.c
129
hw->src_set_ca(src->rsc.ctrl_blk, ca);
sound/pci/ctxfi/ctsrc.h
63
int (*set_ca)(struct src *src, unsigned int ca);
sound/soc/codecs/hdac_hdmi.c
369
int channels, ca;
sound/soc/codecs/hdac_hdmi.c
371
ca = snd_hdac_channel_allocation(hdev, port->eld.info.spk_alloc,
sound/soc/codecs/hdac_hdmi.c
374
channels = snd_hdac_get_active_channels(ca);
sound/soc/codecs/hdac_hdmi.c
377
snd_hdac_setup_channel_mapping(&hdmi->chmap, pin->nid, false, ca,
sound/soc/codecs/hdac_hdmi.c
388
frame.channel_allocation = ca;
sound/soc/codecs/hdac_hdmi.c
402
dp_ai.CA = ca;
sound/x86/intel_hdmi_audio.c
419
int ca = 0;
sound/x86/intel_hdmi_audio.c
445
ca = channel_allocations[i].ca_index;
sound/x86/intel_hdmi_audio.c
450
dev_dbg(intelhaddata->dev, "select CA 0x%x for %d\n", ca, channels);
sound/x86/intel_hdmi_audio.c
452
return ca;
sound/x86/intel_hdmi_audio.c
595
int ca;
sound/x86/intel_hdmi_audio.c
601
ca = had_channel_allocation(intelhaddata, channels);
sound/x86/intel_hdmi_audio.c
604
frame2.regval = (substream->runtime->channels - 1) | (ca << 24);
sound/x86/intel_hdmi_audio.c
608
frame3.regx.chnl_alloc = ca;
tools/testing/selftests/bpf/progs/bpf_cubic.c
100
ca->last_cwnd = 0;
tools/testing/selftests/bpf/progs/bpf_cubic.c
101
ca->last_time = 0;
tools/testing/selftests/bpf/progs/bpf_cubic.c
102
ca->bic_origin_point = 0;
tools/testing/selftests/bpf/progs/bpf_cubic.c
103
ca->bic_K = 0;
tools/testing/selftests/bpf/progs/bpf_cubic.c
104
ca->delay_min = 0;
tools/testing/selftests/bpf/progs/bpf_cubic.c
105
ca->epoch_start = 0;
tools/testing/selftests/bpf/progs/bpf_cubic.c
106
ca->ack_cnt = 0;
tools/testing/selftests/bpf/progs/bpf_cubic.c
107
ca->tcp_cwnd = 0;
tools/testing/selftests/bpf/progs/bpf_cubic.c
108
ca->found = 0;
tools/testing/selftests/bpf/progs/bpf_cubic.c
166
struct bpf_bictcp *ca = inet_csk_ca(sk);
tools/testing/selftests/bpf/progs/bpf_cubic.c
168
ca->round_start = ca->last_ack = bictcp_clock_us(sk);
tools/testing/selftests/bpf/progs/bpf_cubic.c
169
ca->end_seq = tp->snd_nxt;
tools/testing/selftests/bpf/progs/bpf_cubic.c
170
ca->curr_rtt = ~0U;
tools/testing/selftests/bpf/progs/bpf_cubic.c
171
ca->sample_cnt = 0;
tools/testing/selftests/bpf/progs/bpf_cubic.c
180
struct bpf_bictcp *ca = inet_csk_ca(sk);
tools/testing/selftests/bpf/progs/bpf_cubic.c
187
bictcp_reset(ca);
tools/testing/selftests/bpf/progs/bpf_cubic.c
199
struct bpf_bictcp *ca = inet_csk_ca(sk);
tools/testing/selftests/bpf/progs/bpf_cubic.c
213
if (ca->epoch_start && delta > 0) {
tools/testing/selftests/bpf/progs/bpf_cubic.c
214
ca->epoch_start += delta;
tools/testing/selftests/bpf/progs/bpf_cubic.c
215
if (after(ca->epoch_start, now))
tools/testing/selftests/bpf/progs/bpf_cubic.c
216
ca->epoch_start = now;
tools/testing/selftests/bpf/progs/bpf_cubic.c
276
static void bictcp_update(struct bpf_bictcp *ca, __u32 cwnd, __u32 acked)
tools/testing/selftests/bpf/progs/bpf_cubic.c
281
ca->ack_cnt += acked; /* count the number of ACKed packets */
tools/testing/selftests/bpf/progs/bpf_cubic.c
283
if (ca->last_cwnd == cwnd &&
tools/testing/selftests/bpf/progs/bpf_cubic.c
284
(__s32)(tcp_jiffies32 - ca->last_time) <= HZ / 32)
tools/testing/selftests/bpf/progs/bpf_cubic.c
291
if (ca->epoch_start && tcp_jiffies32 == ca->last_time)
tools/testing/selftests/bpf/progs/bpf_cubic.c
294
ca->last_cwnd = cwnd;
tools/testing/selftests/bpf/progs/bpf_cubic.c
295
ca->last_time = tcp_jiffies32;
tools/testing/selftests/bpf/progs/bpf_cubic.c
297
if (ca->epoch_start == 0) {
tools/testing/selftests/bpf/progs/bpf_cubic.c
298
ca->epoch_start = tcp_jiffies32; /* record beginning */
tools/testing/selftests/bpf/progs/bpf_cubic.c
299
ca->ack_cnt = acked; /* start counting */
tools/testing/selftests/bpf/progs/bpf_cubic.c
300
ca->tcp_cwnd = cwnd; /* syn with cubic */
tools/testing/selftests/bpf/progs/bpf_cubic.c
302
if (ca->last_max_cwnd <= cwnd) {
tools/testing/selftests/bpf/progs/bpf_cubic.c
303
ca->bic_K = 0;
tools/testing/selftests/bpf/progs/bpf_cubic.c
304
ca->bic_origin_point = cwnd;
tools/testing/selftests/bpf/progs/bpf_cubic.c
309
ca->bic_K = cubic_root(cube_factor
tools/testing/selftests/bpf/progs/bpf_cubic.c
310
* (ca->last_max_cwnd - cwnd));
tools/testing/selftests/bpf/progs/bpf_cubic.c
311
ca->bic_origin_point = ca->last_max_cwnd;
tools/testing/selftests/bpf/progs/bpf_cubic.c
329
t = (__s32)(tcp_jiffies32 - ca->epoch_start) * USEC_PER_JIFFY;
tools/testing/selftests/bpf/progs/bpf_cubic.c
330
t += ca->delay_min;
tools/testing/selftests/bpf/progs/bpf_cubic.c
335
if (t < ca->bic_K) /* t - K */
tools/testing/selftests/bpf/progs/bpf_cubic.c
336
offs = ca->bic_K - t;
tools/testing/selftests/bpf/progs/bpf_cubic.c
338
offs = t - ca->bic_K;
tools/testing/selftests/bpf/progs/bpf_cubic.c
342
if (t < ca->bic_K) /* below origin*/
tools/testing/selftests/bpf/progs/bpf_cubic.c
343
bic_target = ca->bic_origin_point - delta;
tools/testing/selftests/bpf/progs/bpf_cubic.c
345
bic_target = ca->bic_origin_point + delta;
tools/testing/selftests/bpf/progs/bpf_cubic.c
349
ca->cnt = cwnd / (bic_target - cwnd);
tools/testing/selftests/bpf/progs/bpf_cubic.c
351
ca->cnt = 100 * cwnd; /* very small increment*/
tools/testing/selftests/bpf/progs/bpf_cubic.c
358
if (ca->last_max_cwnd == 0 && ca->cnt > 20)
tools/testing/selftests/bpf/progs/bpf_cubic.c
359
ca->cnt = 20; /* increase cwnd 5% per RTT */
tools/testing/selftests/bpf/progs/bpf_cubic.c
369
if (ca->ack_cnt > delta && delta) {
tools/testing/selftests/bpf/progs/bpf_cubic.c
370
n = ca->ack_cnt / delta;
tools/testing/selftests/bpf/progs/bpf_cubic.c
371
ca->ack_cnt -= n * delta;
tools/testing/selftests/bpf/progs/bpf_cubic.c
372
ca->tcp_cwnd += n;
tools/testing/selftests/bpf/progs/bpf_cubic.c
375
if (ca->tcp_cwnd > cwnd) { /* if bic is slower than tcp */
tools/testing/selftests/bpf/progs/bpf_cubic.c
376
delta = ca->tcp_cwnd - cwnd;
tools/testing/selftests/bpf/progs/bpf_cubic.c
378
if (ca->cnt > max_cnt)
tools/testing/selftests/bpf/progs/bpf_cubic.c
379
ca->cnt = max_cnt;
tools/testing/selftests/bpf/progs/bpf_cubic.c
386
ca->cnt = max(ca->cnt, 2U);
tools/testing/selftests/bpf/progs/bpf_cubic.c
393
struct bpf_bictcp *ca = inet_csk_ca(sk);
tools/testing/selftests/bpf/progs/bpf_cubic.c
399
if (hystart && after(ack, ca->end_seq))
tools/testing/selftests/bpf/progs/bpf_cubic.c
405
bictcp_update(ca, tp->snd_cwnd, acked);
tools/testing/selftests/bpf/progs/bpf_cubic.c
406
tcp_cong_avoid_ai(tp, ca->cnt, acked);
tools/testing/selftests/bpf/progs/bpf_cubic.c
413
struct bpf_bictcp *ca = inet_csk_ca(sk);
tools/testing/selftests/bpf/progs/bpf_cubic.c
415
ca->epoch_start = 0; /* end of epoch */
tools/testing/selftests/bpf/progs/bpf_cubic.c
418
if (tp->snd_cwnd < ca->last_max_cwnd && fast_convergence)
tools/testing/selftests/bpf/progs/bpf_cubic.c
419
ca->last_max_cwnd = (tp->snd_cwnd * (BICTCP_BETA_SCALE + beta))
tools/testing/selftests/bpf/progs/bpf_cubic.c
422
ca->last_max_cwnd = tp->snd_cwnd;
tools/testing/selftests/bpf/progs/bpf_cubic.c
461
struct bpf_bictcp *ca = inet_csk_ca(sk);
tools/testing/selftests/bpf/progs/bpf_cubic.c
468
if ((__s32)(now - ca->last_ack) <= hystart_ack_delta_us) {
tools/testing/selftests/bpf/progs/bpf_cubic.c
469
ca->last_ack = now;
tools/testing/selftests/bpf/progs/bpf_cubic.c
471
threshold = ca->delay_min + hystart_ack_delay(sk);
tools/testing/selftests/bpf/progs/bpf_cubic.c
481
if ((__s32)(now - ca->round_start) > threshold) {
tools/testing/selftests/bpf/progs/bpf_cubic.c
482
ca->found = 1;
tools/testing/selftests/bpf/progs/bpf_cubic.c
490
if (ca->curr_rtt > delay)
tools/testing/selftests/bpf/progs/bpf_cubic.c
491
ca->curr_rtt = delay;
tools/testing/selftests/bpf/progs/bpf_cubic.c
492
if (ca->sample_cnt < HYSTART_MIN_SAMPLES) {
tools/testing/selftests/bpf/progs/bpf_cubic.c
493
ca->sample_cnt++;
tools/testing/selftests/bpf/progs/bpf_cubic.c
495
if (ca->curr_rtt > ca->delay_min +
tools/testing/selftests/bpf/progs/bpf_cubic.c
496
HYSTART_DELAY_THRESH(ca->delay_min >> 3)) {
tools/testing/selftests/bpf/progs/bpf_cubic.c
497
ca->found = 1;
tools/testing/selftests/bpf/progs/bpf_cubic.c
510
struct bpf_bictcp *ca = inet_csk_ca(sk);
tools/testing/selftests/bpf/progs/bpf_cubic.c
519
if (ca->epoch_start && (__s32)(tcp_jiffies32 - ca->epoch_start) < HZ)
tools/testing/selftests/bpf/progs/bpf_cubic.c
527
if (ca->delay_min == 0 || ca->delay_min > delay)
tools/testing/selftests/bpf/progs/bpf_cubic.c
528
ca->delay_min = delay;
tools/testing/selftests/bpf/progs/bpf_cubic.c
531
if (!ca->found && tcp_in_slow_start(tp) && hystart &&
tools/testing/selftests/bpf/progs/bpf_cubic.c
96
static void bictcp_reset(struct bpf_bictcp *ca)
tools/testing/selftests/bpf/progs/bpf_cubic.c
98
ca->cnt = 0;
tools/testing/selftests/bpf/progs/bpf_cubic.c
99
ca->last_max_cwnd = 0;
tools/testing/selftests/bpf/progs/bpf_dctcp.c
105
dctcp_reset(tp, ca);
tools/testing/selftests/bpf/progs/bpf_dctcp.c
111
struct bpf_dctcp *ca = inet_csk_ca(sk);
tools/testing/selftests/bpf/progs/bpf_dctcp.c
114
ca->loss_cwnd = tp->snd_cwnd;
tools/testing/selftests/bpf/progs/bpf_dctcp.c
115
return max(tp->snd_cwnd - ((tp->snd_cwnd * ca->dctcp_alpha) >> 11U), 2U);
tools/testing/selftests/bpf/progs/bpf_dctcp.c
122
struct bpf_dctcp *ca = inet_csk_ca(sk);
tools/testing/selftests/bpf/progs/bpf_dctcp.c
125
if (!before(tp->snd_una, ca->next_seq)) {
tools/testing/selftests/bpf/progs/bpf_dctcp.c
126
__u32 delivered_ce = tp->delivered_ce - ca->old_delivered_ce;
tools/testing/selftests/bpf/progs/bpf_dctcp.c
127
__u32 alpha = ca->dctcp_alpha;
tools/testing/selftests/bpf/progs/bpf_dctcp.c
133
__u32 delivered = tp->delivered - ca->old_delivered;
tools/testing/selftests/bpf/progs/bpf_dctcp.c
143
ca->dctcp_alpha = alpha;
tools/testing/selftests/bpf/progs/bpf_dctcp.c
144
dctcp_reset(tp, ca);
tools/testing/selftests/bpf/progs/bpf_dctcp.c
150
struct bpf_dctcp *ca = inet_csk_ca(sk);
tools/testing/selftests/bpf/progs/bpf_dctcp.c
153
ca->loss_cwnd = tp->snd_cwnd;
tools/testing/selftests/bpf/progs/bpf_dctcp.c
207
struct bpf_dctcp *ca = inet_csk_ca(sk);
tools/testing/selftests/bpf/progs/bpf_dctcp.c
212
dctcp_ece_ack_update(sk, ev, &ca->prior_rcv_nxt, &ca->ce_state);
tools/testing/selftests/bpf/progs/bpf_dctcp.c
226
const struct bpf_dctcp *ca = inet_csk_ca(sk);
tools/testing/selftests/bpf/progs/bpf_dctcp.c
228
return max(tcp_sk(sk)->snd_cwnd, ca->loss_cwnd);
tools/testing/selftests/bpf/progs/bpf_dctcp.c
53
static void dctcp_reset(const struct tcp_sock *tp, struct bpf_dctcp *ca)
tools/testing/selftests/bpf/progs/bpf_dctcp.c
55
ca->next_seq = tp->snd_nxt;
tools/testing/selftests/bpf/progs/bpf_dctcp.c
57
ca->old_delivered = tp->delivered;
tools/testing/selftests/bpf/progs/bpf_dctcp.c
58
ca->old_delivered_ce = tp->delivered_ce;
tools/testing/selftests/bpf/progs/bpf_dctcp.c
65
struct bpf_dctcp *ca = inet_csk_ca(sk);
tools/testing/selftests/bpf/progs/bpf_dctcp.c
95
ca->prior_rcv_nxt = tp->rcv_nxt;
tools/testing/selftests/bpf/progs/bpf_dctcp.c
96
ca->dctcp_alpha = min(dctcp_alpha_on_init, DCTCP_MAX_ALPHA);
tools/testing/selftests/bpf/progs/bpf_dctcp.c
97
ca->loss_cwnd = 0;
tools/testing/selftests/bpf/progs/bpf_dctcp.c
98
ca->ce_state = 0;
tools/testing/selftests/filesystems/nsfs/pidns.c
45
struct cr_clone_arg ca;
tools/testing/selftests/filesystems/nsfs/pidns.c
50
pid = clone(child, ca.stack_ptr, CLONE_NEWUSER | CLONE_NEWPID | SIGCHLD, NULL);
tools/testing/selftests/move_mount_set_group/move_mount_set_group_test.c
311
struct child_args *ca = (struct child_args *)data;
tools/testing/selftests/move_mount_set_group/move_mount_set_group_test.c
318
if (ca->shared) {
tools/testing/selftests/move_mount_set_group/move_mount_set_group_test.c
327
ca->unsfd = ret;
tools/testing/selftests/move_mount_set_group/move_mount_set_group_test.c
332
ca->mntnsfd = ret;
tools/testing/selftests/move_mount_set_group/move_mount_set_group_test.c
337
ca->mntfd = ret;
tools/testing/selftests/sched/cs_prctl_test.c
154
struct child_args *ca = (struct child_args *)arg;
tools/testing/selftests/sched/cs_prctl_test.c
157
close(ca->pfd[0]);
tools/testing/selftests/sched/cs_prctl_test.c
159
create_threads(ca->num_threads, ca->thr_tids);
tools/testing/selftests/sched/cs_prctl_test.c
161
ret = write(ca->pfd[1], &ca->thr_tids, sizeof(int) * ca->num_threads);
tools/testing/selftests/sched/cs_prctl_test.c
164
ca->pfd[1], strerror(errno));
tools/testing/selftests/sched/cs_prctl_test.c
166
close(ca->pfd[1]);