/linux/kernel/power/ |
H A D | qos.c | 3 * Power Management Quality of Service (PM QoS) support base. 11 * Provided here is an interface for specifying PM QoS dependencies. It allows 12 * entities depending on QoS constraints to register their requests which are 18 * global CPU latency QoS requests and frequency QoS requests are provided. 51 * @c: List of PM QoS constraint requests. 71 WARN(1, "Unknown PM QoS type in %s\n", __func__); in pm_qos_get_value() 82 * pm_qos_update_target - Update a list of PM QoS constraint requests. 83 * @c: List of PM QoS requests. 88 * Update the given list of PM QoS constraint requests, @c, by carrying an 149 * pm_qos_flags_remove_req - Remove device PM QoS flags request. [all …]
|
/linux/drivers/base/power/ |
H A D | qos-test.c | 11 struct freq_constraints qos; in freq_qos_test_min() local 15 freq_constraints_init(&qos); in freq_qos_test_min() 19 ret = freq_qos_add_request(&qos, &req1, FREQ_QOS_MIN, 1000); in freq_qos_test_min() 21 ret = freq_qos_add_request(&qos, &req2, FREQ_QOS_MIN, 2000); in freq_qos_test_min() 24 KUNIT_EXPECT_EQ(test, freq_qos_read_value(&qos, FREQ_QOS_MIN), 2000); in freq_qos_test_min() 28 KUNIT_EXPECT_EQ(test, freq_qos_read_value(&qos, FREQ_QOS_MIN), 1000); in freq_qos_test_min() 32 KUNIT_EXPECT_EQ(test, freq_qos_read_value(&qos, FREQ_QOS_MIN), in freq_qos_test_min() 39 struct freq_constraints qos; in freq_qos_test_maxdef() local 43 freq_constraints_init(&qos); in freq_qos_test_maxdef() 46 KUNIT_EXPECT_EQ(test, freq_qos_read_value(&qos, FREQ_QOS_MAX), in freq_qos_test_maxdef() [all …]
|
/linux/Documentation/power/ |
H A D | pm_qos_interface.rst | 9 Two different PM QoS frameworks are available: 10 * CPU latency QoS. 11 * The per-device PM QoS framework provides the API to manage the 12 per-device latency constraints and PM QoS flags. 14 The latency unit used in the PM QoS framework is the microsecond (usec). 17 1. PM QoS framework 20 A global list of CPU latency QoS requests is maintained along with an aggregated 22 to the request list or elements of the list. For CPU latency QoS, the 32 Will insert an element into the CPU latency QoS list with the target value. 35 Clients of PM QoS need to save the returned handle for future use in other [all …]
|
/linux/net/atm/ |
H A D | common.c | 104 return (vcc->qos.txtp.max_sdu + in vcc_writable() 159 vcc->qos.txtp.max_sdu = 1 << 16; /* for meta VCs */ in vcc_create() 324 walk->vci == vci && ((walk->qos.txtp.traffic_class != in check_ci() 325 ATM_NONE && vcc->qos.txtp.traffic_class != ATM_NONE) || in check_ci() 326 (walk->qos.rxtp.traffic_class != ATM_NONE && in check_ci() 327 vcc->qos.rxtp.traffic_class != ATM_NONE))) in check_ci() 408 switch (vcc->qos.aal) { in __vcc_connect() 419 vcc->qos.aal = ATM_AAL5; in __vcc_connect() 429 error = adjust_tp(&vcc->qos.txtp, vcc->qos.aal); in __vcc_connect() 431 error = adjust_tp(&vcc->qos.rxtp, vcc->qos.aal); in __vcc_connect() [all …]
|
H A D | mpc.c | 171 * Functions for managing QoS list 177 struct atm_mpoa_qos *atm_mpoa_add_qos(__be32 dst_ip, struct atm_qos *qos) in atm_mpoa_add_qos() argument 183 entry->qos = *qos; in atm_mpoa_add_qos() 194 entry->qos = *qos; in atm_mpoa_add_qos() 204 struct atm_mpoa_qos *qos; in atm_mpoa_search_qos() local 206 qos = qos_head; in atm_mpoa_search_qos() 207 while (qos) { in atm_mpoa_search_qos() 208 if (qos->ipaddr == dst_ip) in atm_mpoa_search_qos() 210 qos = qos->next; in atm_mpoa_search_qos() 213 return qos; in atm_mpoa_search_qos() [all …]
|
H A D | mpoa_proc.c | 250 struct atm_qos qos; in parse_qos() local 252 memset(&qos, 0, sizeof(struct atm_qos)); in parse_qos() 269 qos.txtp.traffic_class = ATM_CBR; in parse_qos() 270 qos.txtp.max_pcr = tx_pcr; in parse_qos() 271 qos.txtp.max_sdu = tx_sdu; in parse_qos() 272 qos.rxtp.traffic_class = ATM_CBR; in parse_qos() 273 qos.rxtp.max_pcr = rx_pcr; in parse_qos() 274 qos.rxtp.max_sdu = rx_sdu; in parse_qos() 275 qos.aal = ATM_AAL5; in parse_qos() 276 dprintk("parse_qos(): setting qos parameters to tx=%d,%d rx=%d,%d\n", in parse_qos() [all …]
|
H A D | mpoa_caches.c | 135 struct atm_mpoa_qos *qos; in cache_hit() local 147 qos = atm_mpoa_search_qos(entry->ctrl_info.in_dst_ip); in cache_hit() 148 if (qos != NULL) in cache_hit() 149 msg.qos = qos->qos; in cache_hit() 170 qos = atm_mpoa_search_qos(entry->ctrl_info.in_dst_ip); in cache_hit() 171 if (qos != NULL) in cache_hit() 172 msg.qos = qos->qos; in cache_hit() 252 struct atm_mpoa_qos *qos; in check_resolving_entries() local 286 qos = atm_mpoa_search_qos(entry->ctrl_info.in_dst_ip); in check_resolving_entries() 287 if (qos != NULL) in check_resolving_entries() [all …]
|
/linux/drivers/interconnect/qcom/ |
H A D | icc-rpm.c | 19 /* QNOC QoS */ 26 /* BIMC QoS */ 39 /* NoC QoS */ 58 struct qcom_icc_qos *qos = &qn->qos; in qcom_icc_set_qnoc_qos() local 62 qp->qos_offset + QNOC_QOS_MCTL_LOWn_ADDR(qos->qos_port), in qcom_icc_set_qnoc_qos() 64 qos->areq_prio << QNOC_QOS_MCTL_DFLT_PRIO_SHIFT); in qcom_icc_set_qnoc_qos() 69 qp->qos_offset + QNOC_QOS_MCTL_LOWn_ADDR(qos->qos_port), in qcom_icc_set_qnoc_qos() 71 !!qos->urg_fwd_en << QNOC_QOS_MCTL_URGFWD_EN_SHIFT); in qcom_icc_set_qnoc_qos() 75 struct qcom_icc_qos *qos, in qcom_icc_bimc_set_qos_health() argument 81 val = qos->prio_level; in qcom_icc_bimc_set_qos_health() [all …]
|
H A D | icc-rpmh.c | 20 /* QNOC QoS */ 27 * qcom_icc_set_qos - initialize static QoS configurations 34 const struct qcom_icc_qosbox *qos = node->qosbox; in qcom_icc_set_qos() local 37 for (port = 0; port < qos->num_ports; port++) { in qcom_icc_set_qos() 38 regmap_update_bits(qp->regmap, QOSGEN_MAINCTL_LO(qos, port), in qcom_icc_set_qos() 40 FIELD_PREP(QOS_DISABLE_MASK, qos->prio_fwd_disable)); in qcom_icc_set_qos() 42 regmap_update_bits(qp->regmap, QOSGEN_MAINCTL_LO(qos, port), in qcom_icc_set_qos() 44 FIELD_PREP(QOS_DFLT_PRIO_MASK, qos->prio)); in qcom_icc_set_qos() 46 regmap_update_bits(qp->regmap, QOSGEN_MAINCTL_LO(qos, port), in qcom_icc_set_qos() 48 FIELD_PREP(QOS_SLV_URG_MSG_EN_MASK, qos->urg_fwd)); in qcom_icc_set_qos() [all …]
|
H A D | icc-rpm.h | 45 * @regmap: regmap for QoS registers read/write access 46 * @qos_offset: offset to QoS registers 73 * struct qcom_icc_qos - Qualcomm specific interconnect QoS parameters 78 * @qos_mode: default qos mode for this node 79 * @qos_port: qos port number for finding qos registers of this node 105 * @qos: NoC QoS setting parameters 122 struct qcom_icc_qos qos; member
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/esw/ |
H A D | qos.c | 6 #include "esw/qos.h" 16 /* Serializes access to all qos changes in the qos domain. */ 24 mutex_lock(&esw->qos.domain->lock); in esw_qos_lock() 29 mutex_unlock(&esw->qos.domain->lock); in esw_qos_unlock() 34 lockdep_assert_held(&esw->qos.domain->lock); in esw_assert_qos_lock_held() 53 esw->qos.domain = esw_qos_domain_alloc(); in esw_qos_domain_init() 55 return esw->qos.domain ? 0 : -ENOMEM; in esw_qos_domain_init() 60 kfree(esw->qos.domain); in esw_qos_domain_release() 61 esw->qos.domain = NULL; in esw_qos_domain_release() 114 list_add_tail(&node->entry, &node->esw->qos.domain->nodes); in esw_qos_node_attach_to_parent() [all …]
|
/linux/drivers/infiniband/hw/irdma/ |
H A D | ws.c | 46 node->traffic_class = vsi->qos[user_pri].traffic_class; in irdma_alloc_node() 48 node->rel_bw = vsi->qos[user_pri].rel_bw; in irdma_alloc_node() 52 node->lan_qs_handle = vsi->qos[user_pri].lan_qos_handle; in irdma_alloc_node() 113 vsi->qos[node->user_pri].qs_handle = node_info.qs_handle; in irdma_ws_cqp_cmd() 160 mutex_lock(&vsi->qos[user_pri].qos_mutex); in irdma_tc_in_use() 161 if (!list_empty(&vsi->qos[user_pri].qplist)) { in irdma_tc_in_use() 162 mutex_unlock(&vsi->qos[user_pri].qos_mutex); in irdma_tc_in_use() 170 if (vsi->qos[i].traffic_class == vsi->qos[user_pri].traffic_class && in irdma_tc_in_use() 171 !list_empty(&vsi->qos[i].qplist)) { in irdma_tc_in_use() 172 mutex_unlock(&vsi->qos[user_pri].qos_mutex); in irdma_tc_in_use() [all …]
|
/linux/drivers/net/ethernet/ti/ |
H A D | am65-cpsw-qos.c | 2 /* Texas Instruments K3 AM65 Ethernet QoS submodule 18 #include "am65-cpsw-qos.h" 54 struct am65_cpsw_mqprio *p_mqprio = &port->qos.mqprio; in am65_cpsw_tx_pn_shaper_apply() 63 if (p_mqprio->max_rate_total > port->qos.link_speed) in am65_cpsw_tx_pn_shaper_apply() 106 struct am65_cpsw_mqprio *p_mqprio = &port->qos.mqprio; in am65_cpsw_mqprio_verify_shaper() 189 struct am65_cpsw_mqprio *p_mqprio = &port->qos.mqprio; in am65_cpsw_reset_tc_mqprio() 206 struct am65_cpsw_mqprio *p_mqprio = &port->qos.mqprio; in am65_cpsw_setup_mqprio() 273 int verify_time_ms = port->qos.iet.verify_time_ms; in am65_cpsw_iet_set_verify_timeout_count() 312 msleep(port->qos.iet.verify_time_ms); in am65_cpsw_iet_verify_wait() 388 if (port->qos.link_speed == SPEED_UNKNOWN) in am65_cpsw_iet_commit_preemptible_tcs() [all …]
|
/linux/net/bluetooth/ |
H A D | hci_conn.c | 1475 static int qos_set_big(struct hci_dev *hdev, struct bt_iso_qos *qos) in qos_set_big() argument 1481 if (qos->bcast.big == BT_ISO_QOS_BIG_UNSET) { in qos_set_big() 1493 qos->bcast.big = big; in qos_set_big() 1499 static int qos_set_bis(struct hci_dev *hdev, struct bt_iso_qos *qos) in qos_set_bis() argument 1505 if (qos->bcast.bis == BT_ISO_QOS_BIS_UNSET) { in qos_set_bis() 1506 if (qos->bcast.big != BT_ISO_QOS_BIG_UNSET) { in qos_set_bis() 1507 conn = hci_conn_hash_lookup_big(hdev, qos->bcast.big); in qos_set_bis() 1513 qos->bcast.bis = conn->iso_qos.bcast.bis; in qos_set_bis() 1533 qos->bcast.bis = bis; in qos_set_bis() 1541 __u8 sid, struct bt_iso_qos *qos, in hci_add_bis() argument [all …]
|
H A D | iso.c | 71 struct bt_iso_qos qos; member 80 static bool check_ucast_qos(struct bt_iso_qos *qos); 81 static bool check_bcast_qos(struct bt_iso_qos *qos); 355 /* Fail if user set invalid QoS */ in iso_connect_bis() 356 if (iso_pi(sk)->qos_user_set && !check_bcast_qos(&iso_pi(sk)->qos)) { in iso_connect_bis() 357 iso_pi(sk)->qos = default_qos; in iso_connect_bis() 363 if (!iso_pi(sk)->qos.bcast.out.phy) { in iso_connect_bis() 371 &iso_pi(sk)->qos, iso_pi(sk)->base_len, in iso_connect_bis() 381 iso_pi(sk)->bc_sid, &iso_pi(sk)->qos, in iso_connect_bis() 452 /* Fail if user set invalid QoS */ in iso_connect_cis() 529 struct bt_iso_qos *qos = iso_sock_get_qos(sk); iso_send_frame() local 1559 check_io_qos(struct bt_iso_io_qos * qos) check_io_qos() argument 1577 check_ucast_qos(struct bt_iso_qos * qos) check_ucast_qos() argument 1603 check_bcast_qos(struct bt_iso_qos * qos) check_bcast_qos() argument 1655 struct bt_iso_qos qos = default_qos; iso_sock_setsockopt() local 1754 struct bt_iso_qos *qos; iso_sock_getsockopt() local [all...] |
/linux/Documentation/devicetree/bindings/power/ |
H A D | rockchip,power-controller.yaml | 145 A number of phandles to qos blocks which need to be saved and restored 167 qos_hdcp: qos@ffa90000 { 168 compatible = "rockchip,rk3399-qos", "syscon"; 172 qos_iep: qos@ffa98000 { 173 compatible = "rockchip,rk3399-qos", "syscon"; 177 qos_rga_r: qos@ffab0000 { 178 compatible = "rockchip,rk3399-qos", "syscon"; 182 qos_rga_w: qos@ffab0080 { 183 compatible = "rockchip,rk3399-qos", "syscon"; 187 qos_video_m0: qos@ffab8000 { [all …]
|
/linux/arch/arm64/boot/dts/rockchip/ |
H A D | rk3562.dtsi | 386 qos_dma2ddr: qos@fee03800 { 387 compatible = "rockchip,rk3562-qos", "syscon"; 391 qos_mcu: qos@fee10000 { 392 compatible = "rockchip,rk3562-qos", "syscon"; 396 qos_dft_apb: qos@fee10100 { 397 compatible = "rockchip,rk3562-qos", "syscon"; 401 qos_gmac: qos@fee10200 { 402 compatible = "rockchip,rk3562-qos", "syscon"; 406 qos_mac100: qos@fee10300 { 407 compatible = "rockchip,rk3562-qos", "syscon"; [all …]
|
/linux/drivers/net/ethernet/microchip/lan966x/ |
H A D | lan966x_dcb.c | 52 struct lan966x_port_qos qos = {0}; in lan966x_dcb_app_update() local 58 for (int i = 0; i < ARRAY_SIZE(qos.pcp.map); i++) { in lan966x_dcb_app_update() 61 qos.pcp.map[i] = dcb_getapp(dev, &app_itr); in lan966x_dcb_app_update() 65 for (int i = 0; i < ARRAY_SIZE(qos.dscp.map); i++) { in lan966x_dcb_app_update() 68 qos.dscp.map[i] = dcb_getapp(dev, &app_itr); in lan966x_dcb_app_update() 72 qos.default_prio = dcb_ieee_getapp_default_prio_mask(dev); in lan966x_dcb_app_update() 73 if (qos.default_prio) in lan966x_dcb_app_update() 74 qos.default_prio = fls(qos.default_prio) - 1; in lan966x_dcb_app_update() 83 qos.pcp_rewr.map[i] = fls(pcp_rewr_map.map[i]) - 1; in lan966x_dcb_app_update() 93 qos.dscp_rewr.map[i] = fls64(dscp_rewr_map.map[i]) - 1; in lan966x_dcb_app_update() [all …]
|
/linux/Documentation/devicetree/bindings/net/ |
H A D | snps,dwc-qos-ethernet.txt | 1 * Synopsys DWC Ethernet QoS IP version 4.10 driver (GMAC) 6 This binding supports the Synopsys Designware Ethernet QoS (Quality Of Service) 14 - "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10" 16 - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10" 18 - "snps,dwc-qos-ethernet-4.10" 20 "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10". It is supported to be 72 - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10": 78 - "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10": 83 - "snps,dwc-qos-ethernet-4.10" (deprecated): 97 - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10": [all …]
|
/linux/Documentation/trace/ |
H A D | events-power.rst | 72 4. PM QoS events 74 The PM QoS events are used for QoS add/update/remove request and for 81 The first parameter gives the QoS action name (e.g. "ADD_REQ"). 82 The second parameter is the previous QoS value. 83 The third parameter is the current QoS value to update. 85 There are also events used for device PM QoS add/update/remove request. 93 QoS requests. 97 And, there are events used for CPU latency QoS add/update/remove request.
|
/linux/drivers/net/ethernet/marvell/octeontx2/nic/ |
H A D | qos.c | 14 #include "qos.h" 31 qos_txqs = bitmap_weight(pfvf->qos.qos_sq_bmap, in otx2_qos_update_tx_netdev_queues() 160 if (level == pfvf->qos.link_cfg_lvl) { in __otx2_qos_txschq_cfg() 174 if (level == pfvf->qos.link_cfg_lvl) { in __otx2_qos_txschq_cfg() 262 mutex_lock(&pfvf->qos.qos_lock); in otx2_qos_free_hw_cfg() 271 mutex_unlock(&pfvf->qos.qos_lock); in otx2_qos_free_hw_cfg() 280 __clear_bit(node->qid, pfvf->qos.qos_sq_bmap); in otx2_qos_sw_node_delete() 314 mutex_lock(&pfvf->qos.qos_lock); in otx2_qos_free_sw_node() 320 mutex_unlock(&pfvf->qos.qos_lock); in otx2_qos_free_sw_node() 360 mutex_lock(&pfvf->qos.qos_lock); in otx2_qos_prepare_txschq_cfg() [all …]
|
/linux/include/linux/ |
H A D | pm_qos.h | 3 * Definitions related to Power Management Quality of Service (PM QoS). 63 struct pm_qos_constraints *qos; member 95 struct freq_constraints *qos; member 197 return dev->power.qos->resume_latency_req->data.pnode.prio; in dev_pm_qos_requested_resume_latency() 202 return dev->power.qos->flags_req->data.flr.flags; in dev_pm_qos_requested_flags() 207 return IS_ERR_OR_NULL(dev->power.qos) ? in dev_pm_qos_raw_resume_latency() 209 pm_qos_read_value(&dev->power.qos->resume_latency); in dev_pm_qos_raw_resume_latency() 296 return !IS_ERR_OR_NULL(req->qos); in freq_qos_request_active() 299 void freq_constraints_init(struct freq_constraints *qos); 301 s32 freq_qos_read_value(struct freq_constraints *qos, [all …]
|
/linux/arch/mips/include/asm/octeon/ |
H A D | cvmx-pip.h | 267 uint64_t qos:3; member 306 * Configure the global QoS packet watchers. Each watcher is 308 * QoS queue for scheduling. 314 * @qos: QoS queue for packets matching this watcher 318 uint64_t match_value, uint64_t qos) 325 watcher_config.s.qos = qos; 331 * Configure the VLAN priority to QoS queue mapping. 335 * @qos: QoS queue for packets matching this watcher 338 uint64_t qos) in cvmx_pip_config_vlan_qos() argument 342 pip_qos_vlanx.s.qos = qos; in cvmx_pip_config_vlan_qos() [all …]
|
/linux/tools/testing/selftests/drivers/net/ocelot/ |
H A D | basic_qos.sh | 55 egress-qos-map 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7 \ 56 ingress-qos-map 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7 74 egress-qos-map 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7 \ 75 ingress-qos-map 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7 208 run_test "Port-default QoS classification" ${h1} 5 0 217 run_test "Trusted VLAN PCP QoS classification" ${h1}.100 3 0 228 run_test "Trusted DSCP QoS classification" ${h1} 4 ${tos} 232 run_test "Untrusted DSCP QoS classification follows VLAN PCP" \ 236 run_test "Untrusted DSCP QoS classification follows port default" \
|
/linux/drivers/net/ethernet/microchip/sparx5/ |
H A D | sparx5_port.c | 1227 struct sparx5_port_qos *qos) in sparx5_port_qos_set() argument 1229 sparx5_port_qos_dscp_set(port, &qos->dscp); in sparx5_port_qos_set() 1230 sparx5_port_qos_pcp_set(port, &qos->pcp); in sparx5_port_qos_set() 1231 sparx5_port_qos_pcp_rewr_set(port, &qos->pcp_rewr); in sparx5_port_qos_set() 1232 sparx5_port_qos_dscp_rewr_set(port, &qos->dscp_rewr); in sparx5_port_qos_set() 1233 sparx5_port_qos_default_set(port, qos); in sparx5_port_qos_set() 1239 struct sparx5_port_qos_pcp_rewr *qos) in sparx5_port_qos_pcp_rewr_set() argument 1245 /* Use mapping table, with classified QoS as index, to map QoS and DP in sparx5_port_qos_pcp_rewr_set() 1249 if (qos->enable) in sparx5_port_qos_pcp_rewr_set() 1257 for (i = 0; i < ARRAY_SIZE(qos->map.map); i++) { in sparx5_port_qos_pcp_rewr_set() [all …]
|