/linux/drivers/clk/meson/ |
H A D | gxbb.h | 13 * Register offsets from the data sheet are listed in comment blocks below. 17 #define SCR 0x2C /* 0x0b offset in data sheet */ 18 #define TIMEOUT_VALUE 0x3c /* 0x0f offset in data sheet */ 20 #define HHI_GP0_PLL_CNTL 0x40 /* 0x10 offset in data sheet */ 21 #define HHI_GP0_PLL_CNTL2 0x44 /* 0x11 offset in data sheet */ 22 #define HHI_GP0_PLL_CNTL3 0x48 /* 0x12 offset in data sheet */ 23 #define HHI_GP0_PLL_CNTL4 0x4c /* 0x13 offset in data sheet */ 24 #define HHI_GP0_PLL_CNTL5 0x50 /* 0x14 offset in data sheet */ 25 #define HHI_GP0_PLL_CNTL1 0x58 /* 0x16 offset in data sheet */ 27 #define HHI_XTAL_DIVN_CNTL 0xbc /* 0x2f offset in data sheet */ [all …]
|
H A D | meson8b.h | 16 * Register offsets from the HardKernel[0] data sheet are listed in comment 22 #define HHI_GP_PLL_CNTL 0x40 /* 0x10 offset in data sheet */ 23 #define HHI_GP_PLL_CNTL2 0x44 /* 0x11 offset in data sheet */ 24 #define HHI_GP_PLL_CNTL3 0x48 /* 0x12 offset in data sheet */ 25 #define HHI_GP_PLL_CNTL4 0x4C /* 0x13 offset in data sheet */ 26 #define HHI_GP_PLL_CNTL5 0x50 /* 0x14 offset in data sheet */ 27 #define HHI_VIID_CLK_DIV 0x128 /* 0x4a offset in data sheet */ 28 #define HHI_VIID_CLK_CNTL 0x12c /* 0x4b offset in data sheet */ 29 #define HHI_GCLK_MPEG0 0x140 /* 0x50 offset in data sheet */ 30 #define HHI_GCLK_MPEG1 0x144 /* 0x51 offset in data sheet */ [all …]
|
/linux/sound/soc/meson/ |
H A D | axg-toddr.c | 141 "IN 0", "IN 1", "IN 2", "IN 3", "IN 4", "IN 5", "IN 6", "IN 7" 152 SND_SOC_DAPM_AIF_IN("IN 0", NULL, 0, SND_SOC_NOPM, 0, 0), 153 SND_SOC_DAPM_AIF_IN("IN 1", NULL, 0, SND_SOC_NOPM, 0, 0), 154 SND_SOC_DAPM_AIF_IN("IN 2", NULL, 0, SND_SOC_NOPM, 0, 0), 155 SND_SOC_DAPM_AIF_IN("IN 3", NULL, 0, SND_SOC_NOPM, 0, 0), 156 SND_SOC_DAPM_AIF_IN("IN 4", NULL, 0, SND_SOC_NOPM, 0, 0), 157 SND_SOC_DAPM_AIF_IN("IN 5", NULL, 0, SND_SOC_NOPM, 0, 0), 158 SND_SOC_DAPM_AIF_IN("IN 6", NULL, 0, SND_SOC_NOPM, 0, 0), 159 SND_SOC_DAPM_AIF_IN("IN 7", NULL, 0, SND_SOC_NOPM, 0, 0), 164 { "SRC SEL", "IN 0", "IN 0" }, [all …]
|
H A D | axg-tdmin.c | 46 "IN 0", "IN 1", "IN 2", "IN 3", "IN 4", "IN 5", "IN 6", "IN 7", 47 "IN 8", "IN 9", "IN 10", "IN 11", "IN 12", "IN 13", "IN 14", "IN 15", 95 /* Clear out reset before in reset */ in axg_tdmin_enable() 153 * The following also reset LSB_FIRST which result in the formatter in axg_tdmin_prepare() 168 SND_SOC_DAPM_AIF_IN("IN 0", NULL, 0, SND_SOC_NOPM, 0, 0), 169 SND_SOC_DAPM_AIF_IN("IN 1", NULL, 0, SND_SOC_NOPM, 0, 0), 170 SND_SOC_DAPM_AIF_IN("IN 2", NULL, 0, SND_SOC_NOPM, 0, 0), 171 SND_SOC_DAPM_AIF_IN("IN 3", NULL, 0, SND_SOC_NOPM, 0, 0), 172 SND_SOC_DAPM_AIF_IN("IN 4", NULL, 0, SND_SOC_NOPM, 0, 0), 173 SND_SOC_DAPM_AIF_IN("IN 5", NULL, 0, SND_SOC_NOPM, 0, 0), [all …]
|
/linux/drivers/infiniband/hw/mlx5/ |
H A D | srq_cmd.c | 12 static int get_pas_size(struct mlx5_srq_attr *in) in get_pas_size() argument 14 u32 log_page_size = in->log_page_size + 12; in get_pas_size() 15 u32 log_srq_size = in->log_size; in get_pas_size() 16 u32 log_rq_stride = in->wqe_shift; in get_pas_size() 17 u32 page_offset = in->page_offset; in get_pas_size() 27 static void set_wq(void *wq, struct mlx5_srq_attr *in) in set_wq() argument 29 MLX5_SET(wq, wq, wq_signature, !!(in->flags in set_wq() 31 MLX5_SET(wq, wq, log_wq_pg_sz, in->log_page_size); in set_wq() 32 MLX5_SET(wq, wq, log_wq_stride, in->wqe_shift + 4); in set_wq() 33 MLX5_SET(wq, wq, log_wq_sz, in->log_size); in set_wq() [all …]
|
H A D | cmd.c | 11 u32 in[MLX5_ST_SZ_DW(query_special_contexts_in)] = {}; in mlx5r_cmd_query_special_mkeys() local 23 MLX5_SET(query_special_contexts_in, in, opcode, in mlx5r_cmd_query_special_mkeys() 25 err = mlx5_cmd_exec_inout(dev->mdev, query_special_contexts, in, out); in mlx5r_cmd_query_special_mkeys() 48 u32 in[MLX5_ST_SZ_DW(query_cong_params_in)] = {}; in mlx5_cmd_query_cong_params() local 50 MLX5_SET(query_cong_params_in, in, opcode, in mlx5_cmd_query_cong_params() 52 MLX5_SET(query_cong_params_in, in, cong_protocol, cong_point); in mlx5_cmd_query_cong_params() 54 return mlx5_cmd_exec_inout(dev, query_cong_params, in, out); in mlx5_cmd_query_cong_params() 59 u32 in[MLX5_ST_SZ_DW(destroy_tir_in)] = {}; in mlx5_cmd_destroy_tir() local 61 MLX5_SET(destroy_tir_in, in, opcode, MLX5_CMD_OP_DESTROY_TIR); in mlx5_cmd_destroy_tir() 62 MLX5_SET(destroy_tir_in, in, tirn, tirn); in mlx5_cmd_destroy_tir() [all …]
|
H A D | qpc.c | 150 /* Need to put resource in event handler */ in rsc_event_notifier() 212 u32 in[MLX5_ST_SZ_DW(destroy_dct_in)] = {}; in _mlx5_core_destroy_dct() local 215 MLX5_SET(destroy_dct_in, in, opcode, MLX5_CMD_OP_DESTROY_DCT); in _mlx5_core_destroy_dct() 216 MLX5_SET(destroy_dct_in, in, dctn, qp->qpn); in _mlx5_core_destroy_dct() 217 MLX5_SET(destroy_dct_in, in, uid, qp->uid); in _mlx5_core_destroy_dct() 218 return mlx5_cmd_exec_in(dev->mdev, destroy_dct, in); in _mlx5_core_destroy_dct() 222 u32 *in, int inlen, u32 *out, int outlen) in mlx5_core_create_dct() argument 228 MLX5_SET(create_dct_in, in, opcode, MLX5_CMD_OP_CREATE_DCT); in mlx5_core_create_dct() 230 err = mlx5_cmd_do(dev->mdev, in, inlen, out, outlen); in mlx5_core_create_dct() 235 qp->uid = MLX5_GET(create_dct_in, in, uid); in mlx5_core_create_dct() [all …]
|
/linux/drivers/media/pci/cx18/ |
H A D | cx23418.h | 19 IN[0] - Task ID. This is one of the XPU_CMD_MASK_YYY where XPU is 27 IN[0] - Task handle. Hanlde of the task to destroy 49 IN[0] - audio parameters (same as CX18_CPU_SET_AUDIO_PARAMETERS?) 50 IN[1] - caller buffer address, or 0 55 IN[0] - encoding method to stop 65 IN[0] - Task handle. Handle of the task 66 IN[1] - Offset of the MDL_ACK from the beginning of the local DDR. 67 IN[2] - Number of CNXT_MDL_ACK structures in the array pointed to by IN[1] 72 IN[0] - A value to log 73 IN[1] - An offset of a string in the MiniMe memory; [all …]
|
/linux/tools/perf/pmu-events/arch/powerpc/power10/ |
H A D | pipeline.json | 5 …"BriefDescription": "Cycles in which the oldest instruction in the pipeline suffered a TLB miss or… 10 …"BriefDescription": "Cycles in which the next-to-complete (NTC) instruction is held at dispatch fo… 15 "BriefDescription": "LSU Finished an internal operation in LD0 port." 25 "BriefDescription": "LSU Finished an internal operation in ST0 port." 30 "BriefDescription": "LSU Finished an internal operation in ST4 port." 35 "BriefDescription": "Cycles in which an instruction reload is pending to satisfy a demand miss." 55 …"BriefDescription": "Cycles in which the oldest instruction in the pipeline was waiting for a load… 60 …riefDescription": "Cycles in which the oldest instruction in the pipeline finished at dispatch and… 75 …"BriefDescription": "Cycles in which the next-to-complete (NTC) instruction is held at dispatch be… 80 …"BriefDescription": "Cycles in which the next-to-complete (NTC) instruction is held at dispatch be… [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/ |
H A D | port.c | 7 * COPYING in the main directory of this source tree, or the 10 * Redistribution and use in source and binary forms, with or 18 * - Redistributions in binary form must reproduce the above 20 * disclaimer in the documentation and/or other materials 26 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 45 u32 *in = NULL; in mlx5_access_reg() local 48 in = kvzalloc(inlen, GFP_KERNEL); in mlx5_access_reg() [all …]
|
H A D | transobj.c | 7 * COPYING in the main directory of this source tree, or the 10 * Redistribution and use in source and binary forms, with or 18 * - Redistributions in binary form must reproduce the above 20 * disclaimer in the documentation and/or other materials 26 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 40 u32 in[MLX5_ST_SZ_DW(alloc_transport_domain_in)] = {}; in mlx5_core_alloc_transport_domain() local 43 MLX5_SET(alloc_transport_domain_in, in, opcode, in mlx5_core_alloc_transport_domain() [all …]
|
/linux/drivers/media/platform/qcom/venus/ |
H A D | hfi_cmds.c | 429 struct hfi_framerate *in = pdata, *frate = prop_data; in pkt_session_set_property_1x() local 431 frate->buffer_type = in->buffer_type; in pkt_session_set_property_1x() 432 frate->framerate = in->framerate; in pkt_session_set_property_1x() 437 struct hfi_uncompressed_format_select *in = pdata; in pkt_session_set_property_1x() local 440 hfi->buffer_type = in->buffer_type; in pkt_session_set_property_1x() 441 hfi->format = in->format; in pkt_session_set_property_1x() 446 struct hfi_framesize *in = pdata, *fsize = prop_data; in pkt_session_set_property_1x() local 448 fsize->buffer_type = in->buffer_type; in pkt_session_set_property_1x() 449 fsize->height = in->height; in pkt_session_set_property_1x() 450 fsize->width = in->width; in pkt_session_set_property_1x() [all …]
|
/linux/drivers/video/fbdev/omap2/omapfb/displays/ |
H A D | panel-dsi-cm.c | 40 struct omap_dss_device *in; member 51 * issue the next sleep in/out command 53 unsigned long hw_guard_wait; /* max guard time in jiffies */ 108 struct omap_dss_device *in = ddata->in; in dsicm_dcs_read_1() local 112 r = in->ops.dsi->dcs_read(in, ddata->channel, dcs_cmd, buf, 1); in dsicm_dcs_read_1() 124 struct omap_dss_device *in = ddata->in; in dsicm_dcs_write_0() local 125 return in->ops.dsi->dcs_write(in, ddata->channel, &dcs_cmd, 1); in dsicm_dcs_write_0() 130 struct omap_dss_device *in = ddata->in; in dsicm_dcs_write_1() local 133 return in->ops.dsi->dcs_write(in, ddata->channel, buf, 2); in dsicm_dcs_write_1() 139 struct omap_dss_device *in = ddata->in; in dsicm_sleep_in() local [all …]
|
H A D | connector-analog-tv.c | 18 struct omap_dss_device *in; member 48 struct omap_dss_device *in = ddata->in; in tvc_connect() local 55 return in->ops.atv->connect(in, dssdev); in tvc_connect() 61 struct omap_dss_device *in = ddata->in; in tvc_disconnect() local 68 in->ops.atv->disconnect(in, dssdev); in tvc_disconnect() 74 struct omap_dss_device *in = ddata->in; in tvc_enable() local 85 in->ops.atv->set_timings(in, &ddata->timings); in tvc_enable() 88 in->ops.atv->set_type(in, OMAP_DSS_VENC_TYPE_COMPOSITE); in tvc_enable() 90 in->ops.atv->invert_vid_out_polarity(in, in tvc_enable() 94 r = in->ops.atv->enable(in); in tvc_enable() [all …]
|
H A D | connector-hdmi.c | 39 struct omap_dss_device *in; member 53 struct omap_dss_device *in = ddata->in; in hdmic_connect() local 60 return in->ops.hdmi->connect(in, dssdev); in hdmic_connect() 66 struct omap_dss_device *in = ddata->in; in hdmic_disconnect() local 73 in->ops.hdmi->disconnect(in, dssdev); in hdmic_disconnect() 79 struct omap_dss_device *in = ddata->in; in hdmic_enable() local 90 in->ops.hdmi->set_timings(in, &ddata->timings); in hdmic_enable() 92 r = in->ops.hdmi->enable(in); in hdmic_enable() 104 struct omap_dss_device *in = ddata->in; in hdmic_disable() local 111 in->ops.hdmi->disable(in); in hdmic_disable() [all …]
|
/linux/arch/arm64/boot/dts/amlogic/ |
H A D | meson-sm1-s905d3-libretech-cc.dts | 19 audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", 20 "TDMOUT_A IN 1", "FRDDR_B OUT 0", 21 "TDMOUT_A IN 2", "FRDDR_C OUT 0", 23 "TDMOUT_B IN 0", "FRDDR_A OUT 1", 24 "TDMOUT_B IN 1", "FRDDR_B OUT 1", 25 "TDMOUT_B IN 2", "FRDDR_C OUT 1", 27 "TDMOUT_C IN 0", "FRDDR_A OUT 2", 28 "TDMOUT_C IN 1", "FRDDR_B OUT 2", 29 "TDMOUT_C IN 2", "FRDDR_C OUT 2", 31 "TDMIN_A IN 0", "TDM_A Capture", [all …]
|
H A D | meson-g12b-a311d-libretech-cc.dts | 31 audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", 32 "TDMOUT_A IN 1", "FRDDR_B OUT 0", 33 "TDMOUT_A IN 2", "FRDDR_C OUT 0", 35 "TDMOUT_B IN 0", "FRDDR_A OUT 1", 36 "TDMOUT_B IN 1", "FRDDR_B OUT 1", 37 "TDMOUT_B IN 2", "FRDDR_C OUT 1", 39 "TDMOUT_C IN 0", "FRDDR_A OUT 2", 40 "TDMOUT_C IN 1", "FRDDR_B OUT 2", 41 "TDMOUT_C IN 2", "FRDDR_C OUT 2", 43 "TDMIN_A IN 0", "TDM_A Capture", [all …]
|
/linux/drivers/vdpa/mlx5/core/ |
H A D | resources.c | 13 u32 in[MLX5_ST_SZ_DW(alloc_pd_in)] = {}; in alloc_pd() local 16 MLX5_SET(alloc_pd_in, in, opcode, MLX5_CMD_OP_ALLOC_PD); in alloc_pd() 17 MLX5_SET(alloc_pd_in, in, uid, uid); in alloc_pd() 19 err = mlx5_cmd_exec_inout(mdev, alloc_pd, in, out); in alloc_pd() 28 u32 in[MLX5_ST_SZ_DW(dealloc_pd_in)] = {}; in dealloc_pd() local 31 MLX5_SET(dealloc_pd_in, in, opcode, MLX5_CMD_OP_DEALLOC_PD); in dealloc_pd() 32 MLX5_SET(dealloc_pd_in, in, pd, pdn); in dealloc_pd() 33 MLX5_SET(dealloc_pd_in, in, uid, uid); in dealloc_pd() 34 return mlx5_cmd_exec_in(mdev, dealloc_pd, in); in dealloc_pd() 40 u32 in[MLX5_ST_SZ_DW(query_special_contexts_in)] = {}; in get_null_mkey() local [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/ |
H A D | port.c | 7 * COPYING in the main directory of this source tree, or the 10 * Redistribution and use in source and binary forms, with or 18 * - Redistributions in binary form must reproduce the above 20 * disclaimer in the documentation and/or other materials 26 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 56 u32 in[MLX5_ST_SZ_DW(ptys_reg)]; in mlx5_port_set_eth_ptys() local 66 memset(in, 0, sizeof(in)); in mlx5_port_set_eth_ptys() [all …]
|
/linux/drivers/platform/x86/amd/pmf/ |
H A D | spc.c | 73 void amd_pmf_dump_ta_inputs(struct amd_pmf_dev *dev, struct ta_pmf_enact_table *in) in amd_pmf_dump_ta_inputs() argument 76 dev_dbg(dev->dev, "Slider State: %s\n", ta_slider_as_str(in->ev_info.power_slider)); in amd_pmf_dump_ta_inputs() 77 dev_dbg(dev->dev, "Power Source: %s\n", amd_pmf_source_as_str(in->ev_info.power_source)); in amd_pmf_dump_ta_inputs() 78 dev_dbg(dev->dev, "Battery Percentage: %u\n", in->ev_info.bat_percentage); in amd_pmf_dump_ta_inputs() 79 dev_dbg(dev->dev, "Designed Battery Capacity: %u\n", in->ev_info.bat_design); in amd_pmf_dump_ta_inputs() 80 dev_dbg(dev->dev, "Fully Charged Capacity: %u\n", in->ev_info.full_charge_capacity); in amd_pmf_dump_ta_inputs() 81 dev_dbg(dev->dev, "Drain Rate: %d\n", in->ev_info.drain_rate); in amd_pmf_dump_ta_inputs() 82 dev_dbg(dev->dev, "Socket Power: %u\n", in->ev_info.socket_power); in amd_pmf_dump_ta_inputs() 83 dev_dbg(dev->dev, "Skin Temperature: %u\n", in->ev_info.skin_temperature); in amd_pmf_dump_ta_inputs() 84 dev_dbg(dev->dev, "Avg C0 Residency: %u\n", in->ev_info.avg_c0residency); in amd_pmf_dump_ta_inputs() [all …]
|
/linux/include/uapi/drm/ |
H A D | qaic_accel.h | 55 * struct qaic_manage_trans_hdr - Header for a transaction in a manage message. 56 * @type: In. Identifies this transaction. See QAIC_TRANS_* defines. 57 * @len: In. Length of this transaction, including this header. 66 * @hdr: In. Header to identify this transaction. 67 * @data: In. Payload of this transaction. Opaque to the driver. Userspace must 68 * encode in little endian and align/pad to 64-bit. 77 * @hdr: In. Header to identify this transaction. 78 * @tag: In. Identified this transfer in other transactions. Opaque to the 81 * @addr: In. Address of the data to DMA to the device. 82 * @size: In. Length of the data to DMA to the device. [all …]
|
/linux/tools/testing/selftests/bpf/progs/ |
H A D | test_core_autosize.c | 41 unsigned int ptr; /* can't use `void *`, it is always 8 byte in BPF target */ 89 struct test_struct___samesize *in = (void *)&input; in handle_samesize() local 92 ptr_samesized = (unsigned long long)in->ptr; in handle_samesize() 93 val1_samesized = in->val1; in handle_samesize() 94 val2_samesized = in->val2; in handle_samesize() 95 val3_samesized = in->val3; in handle_samesize() 96 val4_samesized = in->val4; in handle_samesize() 98 out->ptr = in->ptr; in handle_samesize() 99 out->val1 = in->val1; in handle_samesize() 100 out->val2 = in->val2; in handle_samesize() [all …]
|
/linux/Documentation/filesystems/ |
H A D | idmappings.rst | 16 in userspace is:: 20 ``u`` indicates the first element in the upper idmapset ``U`` and ``k`` 21 indicates the first element in the lower idmapset ``K``. The ``r`` parameter 24 we're talking about an id in the upper or lower idmapset. 26 To see what this looks like in practice, let's take the following idmapping:: 38 order isomorphic. In fact, ``U`` and ``K`` are always well-ordered subsets of 59 ``u1000`` from the upper idmapset down to ``k11000`` in the lower idmapset. 62 what id ``k11000`` corresponds to in the second or third idmapping. The 78 contain ``u1000`` in the upper idmapset ``U``. This is equivalent to not having 79 an id mapped. We can simply say that ``u1000`` is unmapped in the second and [all …]
|
/linux/arch/arm/boot/dts/st/ |
H A D | stih407-pinctrl.dtsi | 118 ir = <&pio4 0 ALT2 IN>; 124 ir = <&pio4 1 ALT2 IN>; 146 rx = <&pio3 5 ALT1 IN>; 155 rx = <&pio2 7 ALT3 IN>; 181 keyin0 = <&pio4 0 ALT6 IN>; 182 keyin1 = <&pio4 5 ALT4 IN>; 183 keyin2 = <&pio0 4 ALT2 IN>; 184 keyin3 = <&pio2 6 ALT2 IN>; 199 * by using dedicated configuration (in case of there will be a 210 txclk = <&pio0 6 ALT1 IN NICLK 0 CLK_A>; [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/fpga/ |
H A D | cmd.c | 7 * COPYING in the main directory of this source tree, or the 10 * Redistribution and use in source and binary forms, with or 18 * - Redistributions in binary form must reproduce the above 20 * disclaimer in the documentation and/or other materials 26 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 46 u32 in[MLX5_FPGA_ACCESS_REG_SZ] = {0}; in mlx5_fpga_access_reg() local 57 MLX5_SET(fpga_access_reg, in, size, size); in mlx5_fpga_access_reg() [all …]
|