/Linux-v5.10/drivers/gpu/drm/sun4i/ |
D | sun4i_tcon.c | 83 static void sun4i_tcon_channel_set_status(struct sun4i_tcon *tcon, int channel, in sun4i_tcon_channel_set_status() argument 90 WARN_ON(!tcon->quirks->has_channel_0); in sun4i_tcon_channel_set_status() 91 regmap_update_bits(tcon->regs, SUN4I_TCON0_CTL_REG, in sun4i_tcon_channel_set_status() 94 clk = tcon->dclk; in sun4i_tcon_channel_set_status() 97 WARN_ON(!tcon->quirks->has_channel_1); in sun4i_tcon_channel_set_status() 98 regmap_update_bits(tcon->regs, SUN4I_TCON1_CTL_REG, in sun4i_tcon_channel_set_status() 101 clk = tcon->sclk1; in sun4i_tcon_channel_set_status() 117 static void sun4i_tcon_setup_lvds_phy(struct sun4i_tcon *tcon, in sun4i_tcon_setup_lvds_phy() argument 120 regmap_write(tcon->regs, SUN4I_TCON0_LVDS_ANA0_REG, in sun4i_tcon_setup_lvds_phy() 129 regmap_update_bits(tcon->regs, SUN4I_TCON0_LVDS_ANA1_REG, in sun4i_tcon_setup_lvds_phy() [all …]
|
D | sun8i_tcon_top.c | 14 #include <dt-bindings/clock/sun8i-tcon-top.h> 28 int sun8i_tcon_top_set_hdmi_src(struct device *dev, int tcon) in sun8i_tcon_top_set_hdmi_src() argument 35 dev_err(dev, "Device is not TCON TOP!\n"); in sun8i_tcon_top_set_hdmi_src() 39 if (tcon < 2 || tcon > 3) { in sun8i_tcon_top_set_hdmi_src() 40 dev_err(dev, "TCON index must be 2 or 3!\n"); in sun8i_tcon_top_set_hdmi_src() 48 val |= FIELD_PREP(TCON_TOP_HDMI_SRC_MSK, tcon - 1); in sun8i_tcon_top_set_hdmi_src() 57 int sun8i_tcon_top_de_config(struct device *dev, int mixer, int tcon) in sun8i_tcon_top_de_config() argument 64 dev_err(dev, "Device is not TCON TOP!\n"); in sun8i_tcon_top_de_config() 73 if (tcon > 3) { in sun8i_tcon_top_de_config() 74 dev_err(dev, "TCON index is too high!\n"); in sun8i_tcon_top_de_config() [all …]
|
D | sun4i_dotclock.c | 18 struct sun4i_tcon *tcon; member 74 struct sun4i_tcon *tcon = dclk->tcon; in sun4i_dclk_round_rate() local 79 for (i = tcon->dclk_min_div; i <= tcon->dclk_max_div; i++) { in sun4i_dclk_round_rate() 165 int sun4i_dclk_create(struct device *dev, struct sun4i_tcon *tcon) in sun4i_dclk_create() argument 172 parent_name = __clk_get_name(tcon->sclk0); in sun4i_dclk_create() 182 dclk->tcon = tcon; in sun4i_dclk_create() 190 dclk->regmap = tcon->regs; in sun4i_dclk_create() 193 tcon->dclk = clk_register(dev, &dclk->hw); in sun4i_dclk_create() 194 if (IS_ERR(tcon->dclk)) in sun4i_dclk_create() 195 return PTR_ERR(tcon->dclk); in sun4i_dclk_create() [all …]
|
D | sun4i_rgb.c | 27 struct sun4i_tcon *tcon; member 66 struct sun4i_tcon *tcon = rgb->tcon; in sun4i_rgb_mode_valid() local 121 tcon->dclk_min_div = 6; in sun4i_rgb_mode_valid() 122 tcon->dclk_max_div = 127; in sun4i_rgb_mode_valid() 123 rounded_rate = clk_round_rate(tcon->dclk, rate); in sun4i_rgb_mode_valid() 189 int sun4i_rgb_init(struct drm_device *drm, struct sun4i_tcon *tcon) in sun4i_rgb_init() argument 198 rgb->tcon = tcon; in sun4i_rgb_init() 201 ret = drm_of_find_panel_or_bridge(tcon->dev->of_node, 1, 0, in sun4i_rgb_init() 217 /* The RGB encoder can only work with the TCON channel 0 */ in sun4i_rgb_init() 218 rgb->encoder.possible_crtcs = drm_crtc_mask(&tcon->crtc->crtc); in sun4i_rgb_init()
|
/Linux-v5.10/Documentation/devicetree/bindings/display/ |
D | allwinner,sun4i-a10-tcon.yaml | 4 $id: http://devicetree.org/schemas/display/allwinner,sun4i-a10-tcon.yaml# 7 title: Allwinner A10 Timings Controller (TCON) Device Tree Bindings 14 The TCON acts as a timing controller for RGB, LVDS and TV 23 - const: allwinner,sun4i-a10-tcon 24 - const: allwinner,sun5i-a13-tcon 25 - const: allwinner,sun6i-a31-tcon 26 - const: allwinner,sun6i-a31s-tcon 27 - const: allwinner,sun7i-a20-tcon 28 - const: allwinner,sun8i-a23-tcon 29 - const: allwinner,sun8i-a33-tcon [all …]
|
D | allwinner,sun8i-r40-tcon-top.yaml | 4 $id: http://devicetree.org/schemas/display/allwinner,sun8i-r40-tcon-top.yaml# 7 title: Allwinner R40 TCON TOP Device Tree Bindings 14 TCON TOPs main purpose is to configure whole display pipeline. It 16 TCON for HDMI, muxes LCD and TV encoder GPIO output, selects TV 17 encoder clock source and contains additional TV TCON and DSI gates. 22 / [0] TCON-LCD0 25 \ / [1] TCON-LCD1 - LCD1/LVDS1 26 TCON-TOP 27 / \ [2] TCON-TV0 [0] - TVE0/RGB 29 | TCON-TOP - HDMI [all …]
|
/Linux-v5.10/drivers/gpu/drm/fsl-dcu/ |
D | fsl_tcon.c | 7 * Freescale TCON device driver 19 void fsl_tcon_bypass_disable(struct fsl_tcon *tcon) in fsl_tcon_bypass_disable() argument 21 regmap_update_bits(tcon->regs, FSL_TCON_CTRL1, in fsl_tcon_bypass_disable() 25 void fsl_tcon_bypass_enable(struct fsl_tcon *tcon) in fsl_tcon_bypass_enable() argument 27 regmap_update_bits(tcon->regs, FSL_TCON_CTRL1, in fsl_tcon_bypass_enable() 37 .name = "tcon", 41 struct fsl_tcon *tcon, in fsl_tcon_init_regmap() argument 54 tcon->regs = devm_regmap_init_mmio(dev, regs, in fsl_tcon_init_regmap() 56 return PTR_ERR_OR_ZERO(tcon->regs); in fsl_tcon_init_regmap() 61 struct fsl_tcon *tcon; in fsl_tcon_init() local [all …]
|
/Linux-v5.10/fs/cifs/ |
D | ioctl.c | 43 struct cifs_tcon *tcon = cifs_sb_master_tcon(cifs_sb); in cifs_ioctl_query_info() local 66 if (tcon->ses->server->ops->ioctl_query_info) in cifs_ioctl_query_info() 67 rc = tcon->ses->server->ops->ioctl_query_info( in cifs_ioctl_query_info() 68 xid, tcon, cifs_sb, utf16_path, in cifs_ioctl_query_info() 129 static long smb_mnt_get_fsinfo(unsigned int xid, struct cifs_tcon *tcon, in smb_mnt_get_fsinfo() argument 140 fsinf->protocol_id = tcon->ses->server->vals->protocol_id; in smb_mnt_get_fsinfo() 142 le32_to_cpu(tcon->fsDevInfo.DeviceCharacteristics); in smb_mnt_get_fsinfo() 143 fsinf->device_type = le32_to_cpu(tcon->fsDevInfo.DeviceType); in smb_mnt_get_fsinfo() 144 fsinf->fs_attributes = le32_to_cpu(tcon->fsAttrInfo.Attributes); in smb_mnt_get_fsinfo() 146 le32_to_cpu(tcon->fsAttrInfo.MaxPathNameComponentLength); in smb_mnt_get_fsinfo() [all …]
|
D | smb2inode.c | 63 smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon, in smb2_compound_op() argument 76 struct cifs_ses *ses = tcon->ses; in smb2_compound_op() 95 if (smb3_encryption_required(tcon)) in smb2_compound_op() 111 vars->oparms.tcon = tcon; in smb2_compound_op() 122 rc = SMB2_open_init(tcon, server, in smb2_compound_op() 129 smb2_set_next_command(tcon, &rqst[num_rqst]); in smb2_compound_op() 141 rc = SMB2_query_info_init(tcon, server, in smb2_compound_op() 150 rc = SMB2_query_info_init(tcon, server, in smb2_compound_op() 159 smb2_set_next_command(tcon, &rqst[num_rqst]); in smb2_compound_op() 167 trace_smb3_query_info_compound_enter(xid, ses->Suid, tcon->tid, in smb2_compound_op() [all …]
|
D | smb1ops.c | 431 cifs_negotiate_wsize(struct cifs_tcon *tcon, struct smb_vol *volume_info) in cifs_negotiate_wsize() argument 433 __u64 unix_cap = le64_to_cpu(tcon->fsUnixInfo.Capability); in cifs_negotiate_wsize() 434 struct TCP_Server_Info *server = tcon->ses->server; in cifs_negotiate_wsize() 440 else if (tcon->unix_ext && (unix_cap & CIFS_UNIX_LARGE_WRITE_CAP)) in cifs_negotiate_wsize() 446 if (!tcon->unix_ext || !(unix_cap & CIFS_UNIX_LARGE_WRITE_CAP)) in cifs_negotiate_wsize() 466 cifs_negotiate_rsize(struct cifs_tcon *tcon, struct smb_vol *volume_info) in cifs_negotiate_rsize() argument 468 __u64 unix_cap = le64_to_cpu(tcon->fsUnixInfo.Capability); in cifs_negotiate_rsize() 469 struct TCP_Server_Info *server = tcon->ses->server; in cifs_negotiate_rsize() 484 if (tcon->unix_ext && (unix_cap & CIFS_UNIX_LARGE_READ_CAP)) in cifs_negotiate_rsize() 507 cifs_qfs_tcon(const unsigned int xid, struct cifs_tcon *tcon, in cifs_qfs_tcon() argument [all …]
|
D | smb2proto.h | 72 extern int open_shroot(unsigned int xid, struct cifs_tcon *tcon, 80 extern int smb2_query_reparse_tag(const unsigned int xid, struct cifs_tcon *tcon, 83 extern int smb2_query_path_info(const unsigned int xid, struct cifs_tcon *tcon, 87 extern int smb2_set_path_size(const unsigned int xid, struct cifs_tcon *tcon, 93 umode_t mode, struct cifs_tcon *tcon, 97 umode_t mode, struct cifs_tcon *tcon, 101 struct cifs_tcon *tcon, const unsigned int xid); 102 extern int smb2_rmdir(const unsigned int xid, struct cifs_tcon *tcon, 104 extern int smb2_unlink(const unsigned int xid, struct cifs_tcon *tcon, 106 extern int smb2_rename_path(const unsigned int xid, struct cifs_tcon *tcon, [all …]
|
D | cifsproto.h | 77 struct cifs_tcon *tcon, 145 extern int cifs_get_writable_path(struct cifs_tcon *tcon, const char *name, 149 extern int cifs_get_readable_path(struct cifs_tcon *tcon, const char *name, 245 extern void cifs_mark_open_files_invalid(struct cifs_tcon *tcon); 246 extern void cifs_reopen_persistent_handles(struct cifs_tcon *tcon); 262 extern void cifs_put_tcon(struct cifs_tcon *tcon); 277 extern int cifs_tree_connect(const unsigned int xid, struct cifs_tcon *tcon, 288 const char *tree, struct cifs_tcon *tcon, 291 extern int CIFSFindFirst(const unsigned int xid, struct cifs_tcon *tcon, 297 extern int CIFSFindNext(const unsigned int xid, struct cifs_tcon *tcon, [all …]
|
D | smb2pdu.c | 86 int smb3_encryption_required(const struct cifs_tcon *tcon) in smb3_encryption_required() argument 88 if (!tcon || !tcon->ses) in smb3_encryption_required() 90 if ((tcon->ses->session_flags & SMB2_SESSION_FLAG_ENCRYPT_DATA) || in smb3_encryption_required() 91 (tcon->share_flags & SHI1005_FLAGS_ENCRYPT_DATA)) in smb3_encryption_required() 93 if (tcon->seal && in smb3_encryption_required() 94 (tcon->ses->server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION)) in smb3_encryption_required() 101 const struct cifs_tcon *tcon, in smb2_hdr_assemble() argument 122 if (!tcon) in smb2_hdr_assemble() 131 shdr->TreeId = tcon->tid; in smb2_hdr_assemble() 133 if (tcon->ses) in smb2_hdr_assemble() [all …]
|
D | link.c | 182 create_mf_symlink(const unsigned int xid, struct cifs_tcon *tcon, in create_mf_symlink() argument 198 if (tcon->ses->server->ops->create_mf_symlink) in create_mf_symlink() 199 rc = tcon->ses->server->ops->create_mf_symlink(xid, tcon, in create_mf_symlink() 215 query_mf_symlink(const unsigned int xid, struct cifs_tcon *tcon, in query_mf_symlink() argument 228 if (tcon->ses->server->ops->query_mf_symlink) in query_mf_symlink() 229 rc = tcon->ses->server->ops->query_mf_symlink(xid, tcon, in query_mf_symlink() 249 check_mf_symlink(unsigned int xid, struct cifs_tcon *tcon, in check_mf_symlink() argument 266 if (tcon->ses->server->ops->query_mf_symlink) in check_mf_symlink() 267 rc = tcon->ses->server->ops->query_mf_symlink(xid, tcon, in check_mf_symlink() 303 cifs_query_mf_symlink(unsigned int xid, struct cifs_tcon *tcon, in cifs_query_mf_symlink() argument [all …]
|
D | smb2ops.c | 342 smb2_negotiate_wsize(struct cifs_tcon *tcon, struct smb_vol *volume_info) in smb2_negotiate_wsize() argument 344 struct TCP_Server_Info *server = tcon->ses->server; in smb2_negotiate_wsize() 357 smb3_negotiate_wsize(struct cifs_tcon *tcon, struct smb_vol *volume_info) in smb3_negotiate_wsize() argument 359 struct TCP_Server_Info *server = tcon->ses->server; in smb3_negotiate_wsize() 389 smb2_negotiate_rsize(struct cifs_tcon *tcon, struct smb_vol *volume_info) in smb2_negotiate_rsize() argument 391 struct TCP_Server_Info *server = tcon->ses->server; in smb2_negotiate_rsize() 405 smb3_negotiate_rsize(struct cifs_tcon *tcon, struct smb_vol *volume_info) in smb3_negotiate_rsize() argument 407 struct TCP_Server_Info *server = tcon->ses->server; in smb3_negotiate_rsize() 579 SMB3_request_interfaces(const unsigned int xid, struct cifs_tcon *tcon) in SMB3_request_interfaces() argument 586 struct cifs_ses *ses = tcon->ses; in SMB3_request_interfaces() [all …]
|
D | smb2misc.c | 531 smb2_tcon_has_lease(struct cifs_tcon *tcon, struct smb2_lease_break *rsp) in smb2_tcon_has_lease() argument 542 list_for_each(tmp, &tcon->openFileList) { in smb2_tcon_has_lease() 572 smb2_tcon_find_pending_open_lease(struct cifs_tcon *tcon, in smb2_tcon_find_pending_open_lease() argument 581 list_for_each_entry(open, &tcon->pending_opens, olist) { in smb2_tcon_find_pending_open_lease() 607 struct cifs_tcon *tcon; in smb2_is_valid_lease_break() local 612 /* look up tcon based on tid & uid */ in smb2_is_valid_lease_break() 621 tcon = list_entry(tmp2, struct cifs_tcon, in smb2_is_valid_lease_break() 623 spin_lock(&tcon->open_file_lock); in smb2_is_valid_lease_break() 625 &tcon->stats.cifs_stats.num_oplock_brks); in smb2_is_valid_lease_break() 626 if (smb2_tcon_has_lease(tcon, rsp)) { in smb2_is_valid_lease_break() [all …]
|
D | fscache.c | 95 void cifs_fscache_get_super_cookie(struct cifs_tcon *tcon) in cifs_fscache_get_super_cookie() argument 97 struct TCP_Server_Info *server = tcon->ses->server; in cifs_fscache_get_super_cookie() 101 sharename = extract_sharename(tcon->treeName); in cifs_fscache_get_super_cookie() 104 tcon->fscache = NULL; in cifs_fscache_get_super_cookie() 109 auxdata.resource_id = tcon->resource_id; in cifs_fscache_get_super_cookie() 110 auxdata.vol_create_time = tcon->vol_create_time; in cifs_fscache_get_super_cookie() 111 auxdata.vol_serial_number = tcon->vol_serial_number; in cifs_fscache_get_super_cookie() 113 tcon->fscache = in cifs_fscache_get_super_cookie() 118 tcon, 0, true); in cifs_fscache_get_super_cookie() 121 __func__, server->fscache, tcon->fscache); in cifs_fscache_get_super_cookie() [all …]
|
D | dir.c | 50 struct cifs_tcon *tcon, int add_treename) in cifs_build_path_to_root() argument 63 dfsplen = strnlen(tcon->treeName, MAX_TREE_SIZE + 1); in cifs_build_path_to_root() 72 memcpy(full_path, tcon->treeName, dfsplen); in cifs_build_path_to_root() 84 struct cifs_tcon *tcon = cifs_sb_master_tcon(cifs_sb); in build_path_from_dentry() local 85 bool prefix = tcon->Flags & SMB_SHARE_IS_IN_DFS; in build_path_from_dentry() 101 struct cifs_tcon *tcon = cifs_sb_master_tcon(cifs_sb); in build_path_from_dentry_optional_prefix() local 106 dfsplen = strnlen(tcon->treeName, MAX_TREE_SIZE + 1); in build_path_from_dentry_optional_prefix() 183 strncpy(full_path, tcon->treeName, dfsplen); in build_path_from_dentry_optional_prefix() 201 check_name(struct dentry *direntry, struct cifs_tcon *tcon) in check_name() argument 206 if (unlikely(tcon->fsAttrInfo.MaxPathNameComponentLength && in check_name() [all …]
|
D | inode.c | 354 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); local 357 rc = CIFSSMBUnixQFileInfo(xid, tcon, cfile->fid.netfid, &find_data); 377 struct cifs_tcon *tcon; local 386 tcon = tlink_tcon(tlink); 389 rc = CIFSSMBUnixQPathInfo(xid, tcon, full_path, &find_data, 404 int tmprc = check_mf_symlink(xid, tcon, cifs_sb, &fattr, 449 struct cifs_tcon *tcon; local 475 tcon = tlink_tcon(tlink); 477 oparms.tcon = tcon; 486 if (tcon->ses->server->oplocks) [all …]
|
D | cifsfs.c | 163 struct cifs_tcon *tcon; in cifs_read_super() local 168 tcon = cifs_sb_master_tcon(cifs_sb); in cifs_read_super() 173 if (tcon->snapshot_time) in cifs_read_super() 176 if (tcon->ses->capabilities & tcon->ses->server->vals->cap_large_files) in cifs_read_super() 188 if ((tcon->ses->server->vals->protocol_id == SMB10_PROT_ID) && in cifs_read_super() 189 ((tcon->ses->capabilities & in cifs_read_super() 190 tcon->ses->server->vals->cap_nt_find) == 0) && in cifs_read_super() 191 !tcon->unix_ext) { in cifs_read_super() 228 if (tcon->nocase) in cifs_read_super() 265 struct cifs_tcon *tcon = cifs_sb_master_tcon(cifs_sb); in cifs_statfs() local [all …]
|
D | connect.c | 395 struct cifs_tcon *tcon; in cifs_reconnect() local 460 tcon = list_entry(tmp2, struct cifs_tcon, tcon_list); in cifs_reconnect() 461 tcon->need_reconnect = true; in cifs_reconnect() 2704 * cifs_setup_ipc - helper to setup the IPC tcon for the session 2707 * tcon_ipc. The IPC tcon has the same lifetime as the session. 2713 struct cifs_tcon *tcon; in cifs_setup_ipc() local 2733 tcon = tconInfoAlloc(); in cifs_setup_ipc() 2734 if (tcon == NULL) in cifs_setup_ipc() 2743 tcon->ses = ses; in cifs_setup_ipc() 2744 tcon->ipc = true; in cifs_setup_ipc() [all …]
|
D | cifssmb.c | 99 cifs_mark_open_files_invalid(struct cifs_tcon *tcon) in cifs_mark_open_files_invalid() argument 106 spin_lock(&tcon->open_file_lock); in cifs_mark_open_files_invalid() 107 list_for_each_safe(tmp, tmp1, &tcon->openFileList) { in cifs_mark_open_files_invalid() 112 spin_unlock(&tcon->open_file_lock); in cifs_mark_open_files_invalid() 114 mutex_lock(&tcon->crfid.fid_mutex); in cifs_mark_open_files_invalid() 115 tcon->crfid.is_valid = false; in cifs_mark_open_files_invalid() 117 close_shroot_lease_locked(&tcon->crfid); in cifs_mark_open_files_invalid() 118 memset(tcon->crfid.fid, 0, sizeof(struct cifs_fid)); in cifs_mark_open_files_invalid() 119 mutex_unlock(&tcon->crfid.fid_mutex); in cifs_mark_open_files_invalid() 123 * to this tcon. in cifs_mark_open_files_invalid() [all …]
|
D | cifs_debug.c | 87 static void cifs_debug_tcon(struct seq_file *m, struct cifs_tcon *tcon) in cifs_debug_tcon() argument 89 __u32 dev_type = le32_to_cpu(tcon->fsDevInfo.DeviceType); in cifs_debug_tcon() 91 seq_printf(m, "%s Mounts: %d ", tcon->treeName, tcon->tc_count); in cifs_debug_tcon() 92 if (tcon->nativeFileSystem) in cifs_debug_tcon() 93 seq_printf(m, "Type: %s ", tcon->nativeFileSystem); in cifs_debug_tcon() 95 le32_to_cpu(tcon->fsDevInfo.DeviceCharacteristics), in cifs_debug_tcon() 96 le32_to_cpu(tcon->fsAttrInfo.Attributes), in cifs_debug_tcon() 97 le32_to_cpu(tcon->fsAttrInfo.MaxPathNameComponentLength), in cifs_debug_tcon() 98 tcon->tidStatus); in cifs_debug_tcon() 106 seq_printf(m, "Serial Number: 0x%x", tcon->vol_serial_number); in cifs_debug_tcon() [all …]
|
/Linux-v5.10/Documentation/devicetree/bindings/clock/ |
D | allwinner,sun4i-a10-tcon-ch0-clk.yaml | 4 $id: http://devicetree.org/schemas/clock/allwinner,sun4i-a10-tcon-ch0-clk.yaml# 7 title: Allwinner A10 TCON Channel 0 Clock Device Tree Bindings 24 - allwinner,sun4i-a10-tcon-ch0-clk 25 - allwinner,sun4i-a10-tcon-ch1-clk 49 const: allwinner,sun4i-a10-tcon-ch0-clk 62 compatible = "allwinner,sun4i-a10-tcon-ch0-clk"; 65 clock-output-names = "tcon-ch0-sclk"; 71 compatible = "allwinner,sun4i-a10-tcon-ch1-clk"; 74 clock-output-names = "tcon-ch1-sclk";
|
/Linux-v5.10/drivers/pwm/ |
D | pwm-samsung.c | 43 * Each channel occupies 4 bits in TCON register, but there is a gap of 4 45 * when accessing TCON register. See to_tcon_channel() function. 47 * In addition, the location of autoreload bit for channel 4 (TCON channel 5) 116 /* TCON register has a gap of 4 bits (1 channel) after channel 0 */ in to_tcon_channel() 245 u32 tcon; in pwm_samsung_enable() local 249 tcon = readl(our_chip->base + REG_TCON); in pwm_samsung_enable() 251 tcon &= ~TCON_START(tcon_chan); in pwm_samsung_enable() 252 tcon |= TCON_MANUALUPDATE(tcon_chan); in pwm_samsung_enable() 253 writel(tcon, our_chip->base + REG_TCON); in pwm_samsung_enable() 255 tcon &= ~TCON_MANUALUPDATE(tcon_chan); in pwm_samsung_enable() [all …]
|