/linux/drivers/gpu/drm/amd/display/dc/core/ |
H A D | dc_link_exports.c | 66 const struct dc_link *link, in dc_get_edp_link_panel_inst() argument 73 if (link->connector_signal != SIGNAL_TYPE_EDP) in dc_get_edp_link_panel_inst() 77 if (link == edp_links[i]) in dc_get_edp_link_panel_inst() 84 bool dc_link_detect(struct dc_link *link, enum dc_detect_reason reason) in dc_link_detect() argument 86 return link->dc->link_srv->detect_link(link, reason); in dc_link_detect() 89 bool dc_link_detect_connection_type(struct dc_link *link, in dc_link_detect_connection_type() argument 92 return link->dc->link_srv->detect_connection_type(link, type); in dc_link_detect_connection_type() 95 const struct dc_link_status *dc_link_get_status(const struct dc_link *link) in dc_link_get_status() argument 97 return link->dc->link_srv->get_status(link); in dc_link_get_status() 101 bool dc_link_is_hdcp14(struct dc_link *link, enum signal_type signal) in dc_link_is_hdcp14() argument [all …]
|
/linux/drivers/gpu/drm/amd/display/dc/link/protocols/ |
H A D | link_dp_capability.c | 57 link->ctx->logger 107 bool is_dp_active_dongle(const struct dc_link *link) in is_dp_active_dongle() argument 109 return (link->dpcd_caps.dongle_type >= DISPLAY_DONGLE_DP_VGA_CONVERTER) && in is_dp_active_dongle() 110 (link->dpcd_caps.dongle_type <= DISPLAY_DONGLE_DP_HDMI_CONVERTER); in is_dp_active_dongle() 113 bool is_dp_branch_device(const struct dc_link *link) in is_dp_branch_device() argument 115 return link->dpcd_caps.is_branch_dev; in is_dp_branch_device() 272 static enum clock_source_id get_clock_source_id(struct dc_link *link) in get_clock_source_id() argument 275 struct clock_source *dp_cs = link->dc->res_pool->dp_clock_source; in get_clock_source_id() 290 static void dp_wa_power_up_0010FA(struct dc_link *link, uint8_t *dpcd_data, in dp_wa_power_up_0010FA() argument 295 if (!link->dpcd_caps.dpcd_rev.raw) { in dp_wa_power_up_0010FA() [all …]
|
H A D | link_dp_dpia_bw.c | 34 link->ctx->logger 54 static void reset_bw_alloc_struct(struct dc_link *link) in reset_bw_alloc_struct() argument 56 link->dpia_bw_alloc_config.bw_alloc_enabled = false; in reset_bw_alloc_struct() 57 link->dpia_bw_alloc_config.link_verified_bw = 0; in reset_bw_alloc_struct() 58 link->dpia_bw_alloc_config.link_max_bw = 0; in reset_bw_alloc_struct() 59 link->dpia_bw_alloc_config.allocated_bw = 0; in reset_bw_alloc_struct() 60 link->dpia_bw_alloc_config.estimated_bw = 0; in reset_bw_alloc_struct() 61 link->dpia_bw_alloc_config.bw_granularity = 0; in reset_bw_alloc_struct() 62 link->dpia_bw_alloc_config.dp_overhead = 0; in reset_bw_alloc_struct() 63 link->dpia_bw_alloc_config.response_ready = false; in reset_bw_alloc_struct() [all …]
|
H A D | link_edp_panel_control.c | 43 link->ctx->logger 53 void dp_set_panel_mode(struct dc_link *link, enum dp_panel_mode panel_mode) in dp_set_panel_mode() argument 73 link, in dp_set_panel_mode() 85 link, in dp_set_panel_mode() 93 link->panel_mode = panel_mode; in dp_set_panel_mode() 96 link->link_index, in dp_set_panel_mode() 97 link->dpcd_caps.panel_mode_edp, in dp_set_panel_mode() 101 enum dp_panel_mode dp_get_panel_mode(struct dc_link *link) in dp_get_panel_mode() argument 107 if (link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT) { in dp_get_panel_mode() 109 switch (link->dpcd_caps.branch_dev_id) { in dp_get_panel_mode() [all …]
|
H A D | link_dp_irq_handler.c | 42 link->ctx->logger 46 struct dc_link *link, in dp_parse_link_loss_status() argument 59 if (link->cur_link_settings.lane_count == 0) in dp_parse_link_loss_status() 65 for (lane = 0; lane < link->cur_link_settings.lane_count; lane++) { in dp_parse_link_loss_status() 87 if (link_dp_get_encoding_format(&link->cur_link_settings) == DP_128b_132b_ENCODING && in dp_parse_link_loss_status() 104 dpcd_result = core_link_read_dpcd(link, in dp_parse_link_loss_status() 121 static bool handle_hpd_irq_psr_sink(struct dc_link *link) in handle_hpd_irq_psr_sink() argument 125 if (!link->psr_settings.psr_feature_enabled) in handle_hpd_irq_psr_sink() 129 link->ctx, in handle_hpd_irq_psr_sink() 130 link, in handle_hpd_irq_psr_sink() [all …]
|
H A D | link_dp_phy.c | 42 link->ctx->logger 44 void dpcd_write_rx_power_ctrl(struct dc_link *link, bool on) in dpcd_write_rx_power_ctrl() argument 50 if (link->sync_lt_in_progress) in dpcd_write_rx_power_ctrl() 53 core_link_write_dpcd(link, DP_SET_POWER, &state, in dpcd_write_rx_power_ctrl() 59 struct dc_link *link, in dp_enable_link_phy() argument 65 link->cur_link_settings = *link_settings; in dp_enable_link_phy() 66 link->dc->hwss.enable_dp_link_output(link, link_res, signal, in dp_enable_link_phy() 68 dpcd_write_rx_power_ctrl(link, true); in dp_enable_link_phy() 71 void dp_disable_link_phy(struct dc_link *link, in dp_disable_link_phy() argument 75 struct dc *dc = link->ctx->dc; in dp_disable_link_phy() [all …]
|
H A D | link_edp_panel_control.h | 30 enum dp_panel_mode dp_get_panel_mode(struct dc_link *link); 31 void dp_set_panel_mode(struct dc_link *link, enum dp_panel_mode panel_mode); 32 bool set_default_brightness_aux(struct dc_link *link); 33 void edp_panel_backlight_power_on(struct dc_link *link, bool wait_for_hpd); 34 int edp_get_backlight_level(const struct dc_link *link); 35 bool edp_get_backlight_level_nits(struct dc_link *link, 38 bool edp_set_backlight_level(const struct dc_link *link, 40 bool edp_set_backlight_level_nits(struct dc_link *link, 44 int edp_get_target_backlight_pwm(const struct dc_link *link); 45 bool edp_get_psr_state(const struct dc_link *link, enum dc_psr_state *state); [all …]
|
H A D | link_dp_training_dpia.c | 44 link->ctx->logger 98 struct dc_link *link, in dpia_configure_link() argument 108 link->link_id.enum_id - ENUM_ID_1, in dpia_configure_link() 112 link, in dpia_configure_link() 116 dp_get_lttpr_mode_override(link, <_settings->lttpr_mode); in dpia_configure_link() 118 status = dpcd_configure_channel_coding(link, lt_settings); in dpia_configure_link() 119 if (status != DC_OK && link->is_hpd_pending) in dpia_configure_link() 123 status = dpcd_configure_lttpr_mode(link, lt_settings); in dpia_configure_link() 124 if (status != DC_OK && link->is_hpd_pending) in dpia_configure_link() 128 status = dpcd_set_link_settings(link, lt_settings); in dpia_configure_link() [all …]
|
/linux/drivers/gpu/drm/amd/display/dc/link/ |
H A D | link_detection.c | 55 link->ctx->logger 170 static enum signal_type link_detect_sink_signal_type(struct dc_link *link, in link_detect_sink_signal_type() argument 176 if (link->is_dig_mapping_flexible) in link_detect_sink_signal_type() 179 enc_id = link->link_enc->id; in link_detect_sink_signal_type() 180 result = get_basic_signal_type(enc_id, link->link_id); in link_detect_sink_signal_type() 183 if (link->ep_type != DISPLAY_ENDPOINT_PHY) in link_detect_sink_signal_type() 199 if (link->link_id.id == CONNECTOR_ID_PCIE) { in link_detect_sink_signal_type() 203 switch (link->link_id.id) { in link_detect_sink_signal_type() 209 &link->dc->res_pool->audio_support; in link_detect_sink_signal_type() 212 if (link->link_id.id == CONNECTOR_ID_HDMI_TYPE_A) in link_detect_sink_signal_type() [all …]
|
H A D | link_factory.c | 374 static void link_destruct(struct dc_link *link) in link_destruct() argument 378 if (link->hpd_gpio) { in link_destruct() 379 dal_gpio_destroy_irq(&link->hpd_gpio); in link_destruct() 380 link->hpd_gpio = NULL; in link_destruct() 383 if (link->ddc) in link_destruct() 384 link_destroy_ddc_service(&link->ddc); in link_destruct() 386 if (link->panel_cntl) in link_destruct() 387 link->panel_cntl->funcs->destroy(&link->panel_cntl); in link_destruct() 389 if (link->link_enc && !link->is_dig_mapping_flexible) { in link_destruct() 394 if (link->link_id.id != CONNECTOR_ID_VIRTUAL && link->eng_id != ENGINE_ID_UNKNOWN) { in link_destruct() [all …]
|
/linux/drivers/gpu/drm/tegra/ |
H A D | dp.c | 34 static void drm_dp_link_reset(struct drm_dp_link *link) in drm_dp_link_reset() argument 38 if (!link) in drm_dp_link_reset() 41 link->revision = 0; in drm_dp_link_reset() 42 link->max_rate = 0; in drm_dp_link_reset() 43 link->max_lanes = 0; in drm_dp_link_reset() 45 drm_dp_link_caps_reset(&link->caps); in drm_dp_link_reset() 46 link->aux_rd_interval.cr = 0; in drm_dp_link_reset() 47 link->aux_rd_interval.ce = 0; in drm_dp_link_reset() 48 link->edp = 0; in drm_dp_link_reset() 50 link->rate = 0; in drm_dp_link_reset() [all …]
|
/linux/drivers/gpu/drm/amd/display/dc/link/accessories/ |
H A D | link_dp_trace.c | 28 void dp_trace_init(struct dc_link *link) in dp_trace_init() argument 30 memset(&link->dp_trace, 0, sizeof(link->dp_trace)); in dp_trace_init() 31 link->dp_trace.is_initialized = true; in dp_trace_init() 34 void dp_trace_reset(struct dc_link *link) in dp_trace_reset() argument 36 memset(&link->dp_trace, 0, sizeof(link->dp_trace)); in dp_trace_reset() 39 bool dp_trace_is_initialized(struct dc_link *link) in dp_trace_is_initialized() argument 41 return link->dp_trace.is_initialized; in dp_trace_is_initialized() 44 void dp_trace_detect_lt_init(struct dc_link *link) in dp_trace_detect_lt_init() argument 46 memset(&link->dp_trace.detect_lt_trace, 0, sizeof(link->dp_trace.detect_lt_trace)); in dp_trace_detect_lt_init() 49 void dp_trace_commit_lt_init(struct dc_link *link) in dp_trace_commit_lt_init() argument [all …]
|
H A D | link_dp_cts.c | 39 link->ctx->logger 64 static void dp_retrain_link_dp_test(struct dc_link *link, in dp_retrain_link_dp_test() argument 69 struct dc_state *state = link->dc->current_state; in dp_retrain_link_dp_test() 70 bool was_hpo_acquired = resource_is_hpo_acquired(link->dc->current_state); in dp_retrain_link_dp_test() 77 link_get_master_pipes_with_dpms_on(link, state, &count, pipes); in dp_retrain_link_dp_test() 83 link->dc, in dp_retrain_link_dp_test() 88 if (link->dc->hwss.setup_hpo_hw_control) { in dp_retrain_link_dp_test() 91 link->dc->hwss.setup_hpo_hw_control(link->dc->hwseq, is_hpo_acquired); in dp_retrain_link_dp_test() 98 static void dp_test_send_link_training(struct dc_link *link) in dp_test_send_link_training() argument 104 link, in dp_test_send_link_training() [all …]
|
/linux/drivers/acpi/ |
H A D | pci_link.c | 87 struct acpi_pci_link *link = context; in acpi_pci_link_check_possible() local 88 acpi_handle handle = link->device->handle; in acpi_pci_link_check_possible() 112 link->irq.possible[i] = p->interrupts[i]; in acpi_pci_link_check_possible() 113 link->irq.possible_count++; in acpi_pci_link_check_possible() 115 link->irq.triggering = p->triggering; in acpi_pci_link_check_possible() 116 link->irq.polarity = p->polarity; in acpi_pci_link_check_possible() 117 link->irq.resource_type = ACPI_RESOURCE_TYPE_IRQ; in acpi_pci_link_check_possible() 138 link->irq.possible[i] = p->interrupts[i]; in acpi_pci_link_check_possible() 139 link->irq.possible_count++; in acpi_pci_link_check_possible() 141 link->irq.triggering = p->triggering; in acpi_pci_link_check_possible() [all …]
|
/linux/drivers/gpu/drm/amd/display/dc/inc/ |
H A D | link.h | 95 struct dc_link *link; member 103 void (*destroy_link)(struct dc_link **link); 107 bool (*detect_link)(struct dc_link *link, enum dc_detect_reason reason); 108 bool (*detect_connection_type)(struct dc_link *link, 111 struct dc_link *link, 115 void (*remove_remote_sink)(struct dc_link *link, struct dc_sink *sink); 116 bool (*get_hpd_state)(struct dc_link *link); 120 void (*enable_hpd)(const struct dc_link *link); 121 void (*disable_hpd)(const struct dc_link *link); 122 void (*enable_hpd_filter)(struct dc_link *link, bool enable); [all …]
|
/linux/tools/testing/selftests/drivers/net/mlxsw/ |
H A D | q_in_q_veto.sh | 28 ip link set dev $swp1 up 29 ip link set dev $swp2 up 38 ip link set dev $swp2 down 39 ip link set dev $swp1 down 49 ip link add dev br0 type bridge vlan_filtering 1 \ 51 ip link set dev br0 addrgenmode none 53 ip link set dev br0 up 54 ip link set dev $swp1 master br0 56 ip link add name br0.100 link br0 type vlan \ 60 ip link add name br0.100 link br0 type vlan \ [all …]
|
H A D | extack.sh | 22 ip link set dev $swp1 up 23 ip link set dev $swp2 up 30 ip link set dev $swp2 down 31 ip link set dev $swp1 down 38 ip link add name br1 type bridge vlan_filtering 0 mcast_snooping 0 39 ip link set dev br1 addrgenmode none 40 ip link set dev br1 up 41 ip link add name vx1 up type vxlan id 1000 \ 45 ip link set dev vx1 master br1 48 ip link set dev $swp1 master br1 [all …]
|
/linux/drivers/gpu/drm/amd/display/amdgpu_dm/ |
H A D | amdgpu_dm_psr.c | 33 static bool link_supports_psrsu(struct dc_link *link) in link_supports_psrsu() argument 35 struct dc *dc = link->ctx->dc; in link_supports_psrsu() 43 if (!is_psr_su_specific_panel(link)) in link_supports_psrsu() 46 if (!link->dpcd_caps.alpm_caps.bits.AUX_WAKE_ALPM_CAP || in link_supports_psrsu() 47 !link->dpcd_caps.psr_info.psr_dpcd_caps.bits.Y_COORDINATE_REQUIRED) in link_supports_psrsu() 50 if (link->dpcd_caps.psr_info.psr_dpcd_caps.bits.SU_GRANULARITY_REQUIRED && in link_supports_psrsu() 51 !link->dpcd_caps.psr_info.psr2_su_y_granularity_cap) in link_supports_psrsu() 66 void amdgpu_dm_set_psr_caps(struct dc_link *link) in amdgpu_dm_set_psr_caps() argument 68 if (!(link->connector_signal & SIGNAL_TYPE_EDP)) { in amdgpu_dm_set_psr_caps() 69 link->psr_settings.psr_feature_enabled = false; in amdgpu_dm_set_psr_caps() [all …]
|
/linux/drivers/gpu/drm/amd/display/dc/link/hwss/ |
H A D | link_hwss_dio_fixed_vs_pe_retimer.c | 29 uint8_t dp_dio_fixed_vs_pe_retimer_lane_cfg_to_hw_cfg(struct dc_link *link) in dp_dio_fixed_vs_pe_retimer_lane_cfg_to_hw_cfg() argument 32 if (link->cur_link_settings.lane_count == LANE_COUNT_FOUR) in dp_dio_fixed_vs_pe_retimer_lane_cfg_to_hw_cfg() 38 void dp_dio_fixed_vs_pe_retimer_exit_manual_automation(struct dc_link *link) in dp_dio_fixed_vs_pe_retimer_exit_manual_automation() argument 40 const uint8_t dp_type = dp_dio_fixed_vs_pe_retimer_lane_cfg_to_hw_cfg(link); in dp_dio_fixed_vs_pe_retimer_exit_manual_automation() 52 link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc, in dp_dio_fixed_vs_pe_retimer_exit_manual_automation() 54 link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc, in dp_dio_fixed_vs_pe_retimer_exit_manual_automation() 56 link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc, in dp_dio_fixed_vs_pe_retimer_exit_manual_automation() 58 link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc, in dp_dio_fixed_vs_pe_retimer_exit_manual_automation() 60 link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc, in dp_dio_fixed_vs_pe_retimer_exit_manual_automation() 62 link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc, in dp_dio_fixed_vs_pe_retimer_exit_manual_automation() [all …]
|
H A D | link_hwss_hpo_fixed_vs_pe_retimer_dp.c | 29 static void dp_hpo_fixed_vs_pe_retimer_set_tx_ffe(struct dc_link *link, in dp_hpo_fixed_vs_pe_retimer_set_tx_ffe() argument 54 const uint8_t dp_type = dp_dio_fixed_vs_pe_retimer_lane_cfg_to_hw_cfg(link); in dp_hpo_fixed_vs_pe_retimer_set_tx_ffe() 62 link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc, in dp_hpo_fixed_vs_pe_retimer_set_tx_ffe() 64 link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc, in dp_hpo_fixed_vs_pe_retimer_set_tx_ffe() 66 link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc, in dp_hpo_fixed_vs_pe_retimer_set_tx_ffe() 68 link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc, in dp_hpo_fixed_vs_pe_retimer_set_tx_ffe() 70 link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc, in dp_hpo_fixed_vs_pe_retimer_set_tx_ffe() 74 static void dp_hpo_fixed_vs_pe_retimer_program_override_test_pattern(struct dc_link *link, in dp_hpo_fixed_vs_pe_retimer_program_override_test_pattern() argument 92 link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc, in dp_hpo_fixed_vs_pe_retimer_program_override_test_pattern() 94 link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc, in dp_hpo_fixed_vs_pe_retimer_program_override_test_pattern() [all …]
|
/linux/drivers/ata/ |
H A D | libata-pmp.c | 38 static unsigned int sata_pmp_read(struct ata_link *link, int reg, u32 *r_val) in sata_pmp_read() argument 40 struct ata_port *ap = link->ap; in sata_pmp_read() 41 struct ata_device *pmp_dev = ap->link.device; in sata_pmp_read() 50 tf.device = link->pmp; in sata_pmp_read() 75 static unsigned int sata_pmp_write(struct ata_link *link, int reg, u32 val) in sata_pmp_write() argument 77 struct ata_port *ap = link->ap; in sata_pmp_write() 78 struct ata_device *pmp_dev = ap->link.device; in sata_pmp_write() 86 tf.device = link->pmp; in sata_pmp_write() 111 struct ata_link *link = qc->dev->link; in sata_pmp_qc_defer_cmd_switch() local 112 struct ata_port *ap = link->ap; in sata_pmp_qc_defer_cmd_switch() [all …]
|
/linux/drivers/net/wireless/ralink/rt2x00/ |
H A D | rt2x00link.c | 38 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00link_antenna_get_link_rssi() 40 if (rt2x00dev->link.qual.rx_success) in rt2x00link_antenna_get_link_rssi() 48 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00link_antenna_get_rssi_history() 58 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00link_antenna_update_rssi_history() 64 ewma_rssi_init(&rt2x00dev->link.ant.rssi_ant); in rt2x00link_antenna_reset() 69 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00lib_antenna_diversity_sample() 110 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00lib_antenna_diversity_eval() 150 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00lib_antenna_diversity() 171 } else if (rt2x00dev->link.count & 1) { in rt2x00lib_antenna_diversity() 183 struct link *link = &rt2x00dev->link; in rt2x00link_update_stats() local [all …]
|
/linux/sound/soc/intel/boards/ |
H A D | sof_board_helpers.c | 178 static int set_ssp_codec_link(struct device *dev, struct snd_soc_dai_link *link, in set_ssp_codec_link() argument 188 link->name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d-Codec", ssp_codec); in set_ssp_codec_link() 189 if (!link->name) in set_ssp_codec_link() 209 link->cpus = cpus; in set_ssp_codec_link() 210 link->num_cpus = 1; in set_ssp_codec_link() 215 link->platforms = platform_component; in set_ssp_codec_link() 216 link->num_platforms = ARRAY_SIZE(platform_component); in set_ssp_codec_link() 218 link->id = be_id; in set_ssp_codec_link() 219 link->no_pcm = 1; in set_ssp_codec_link() 224 static int set_dmic_link(struct device *dev, struct snd_soc_dai_link *link, in set_dmic_link() argument [all …]
|
/linux/net/mac80211/ |
H A D | link.c | 15 void ieee80211_link_setup(struct ieee80211_link_data *link) in ieee80211_link_setup() argument 17 if (link->sdata->vif.type == NL80211_IFTYPE_STATION) in ieee80211_link_setup() 18 ieee80211_mgd_setup_link(link); in ieee80211_link_setup() 23 struct ieee80211_link_data *link, in ieee80211_link_init() argument 32 rcu_assign_pointer(sdata->link[link_id], link); in ieee80211_link_init() 34 link->sdata = sdata; in ieee80211_link_init() 35 link->link_id = link_id; in ieee80211_link_init() 36 link->conf = link_conf; in ieee80211_link_init() 39 link->ap_power_level = IEEE80211_UNSET_POWER_LEVEL; in ieee80211_link_init() 40 link->user_power_level = sdata->local->user_power_level; in ieee80211_link_init() [all …]
|
/linux/drivers/pci/pcie/ |
H A D | aspm.c | 289 static int policy_to_aspm_state(struct pcie_link_state *link) in policy_to_aspm_state() argument 302 return link->aspm_default; in policy_to_aspm_state() 307 static int policy_to_clkpm_state(struct pcie_link_state *link) in policy_to_clkpm_state() argument 318 return link->clkpm_default; in policy_to_clkpm_state() 347 static void pcie_set_clkpm_nocheck(struct pcie_link_state *link, int enable) in pcie_set_clkpm_nocheck() argument 350 struct pci_bus *linkbus = link->pdev->subordinate; in pcie_set_clkpm_nocheck() 359 link->clkpm_enabled = !!enable; in pcie_set_clkpm_nocheck() 362 static void pcie_set_clkpm(struct pcie_link_state *link, int enable) in pcie_set_clkpm() argument 368 if (!link->clkpm_capable || link->clkpm_disable) in pcie_set_clkpm() 371 if (link->clkpm_enabled == enable) in pcie_set_clkpm() [all …]
|