Lines Matching full:devlink

8 #include "devlink.h"
15 /* context for devlink info version reporting */
25 * devlink info versions. The ctx parameter is used to provide the storage
261 * ice_devlink_info_get - .info_get devlink handler
262 * @devlink: devlink instance structure
263 * @req: the devlink info request
266 * Callback for the devlink .info_get operation. Reports information about the
271 static int ice_devlink_info_get(struct devlink *devlink, in ice_devlink_info_get() argument
275 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_info_get()
457 /* No need to take devl_lock, it's already taken by devlink API */ in ice_devlink_reinit_down()
469 * @devlink: pointer to the devlink instance to reload
476 ice_devlink_reload_down(struct devlink *devlink, bool netns_change, in ice_devlink_reload_down() argument
481 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_reload_down()
611 * @devlink: pointer to the devlink instance
618 static int ice_devlink_tx_sched_layers_get(struct devlink *devlink, u32 id, in ice_devlink_tx_sched_layers_get() argument
622 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_tx_sched_layers_get()
634 * @devlink: pointer to the devlink instance
641 static int ice_devlink_tx_sched_layers_set(struct devlink *devlink, u32 id, in ice_devlink_tx_sched_layers_set() argument
645 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_tx_sched_layers_set()
661 * @devlink: unused pointer to devlink instance
673 static int ice_devlink_tx_sched_layers_validate(struct devlink *devlink, u32 id, in ice_devlink_tx_sched_layers_validate() argument
687 * ice_tear_down_devlink_rate_tree - removes devlink-rate exported tree
694 struct devlink *devlink; in ice_tear_down_devlink_rate_tree() local
698 devlink = priv_to_devlink(pf); in ice_tear_down_devlink_rate_tree()
700 devl_lock(devlink); in ice_tear_down_devlink_rate_tree()
708 devl_rate_nodes_destroy(devlink); in ice_tear_down_devlink_rate_tree()
709 devl_unlock(devlink); in ice_tear_down_devlink_rate_tree()
745 * @devlink: devlink struct
751 * entire structure to the devlink-rate.
753 static void ice_traverse_tx_tree(struct devlink *devlink, struct ice_sched_node *node, in ice_traverse_tx_tree() argument
767 rate_node = devl_rate_node_create(devlink, node, node->name, NULL); in ice_traverse_tx_tree()
790 rate_node = devl_rate_node_create(devlink, node, node->name, in ice_traverse_tx_tree()
799 ice_traverse_tx_tree(devlink, node->children[i], tc_node, pf); in ice_traverse_tx_tree()
803 * ice_devlink_rate_init_tx_topology - export Tx scheduler tree to devlink rate
804 * @devlink: devlink struct
808 * traverses the tree and exports it's contents to devlink rate.
810 int ice_devlink_rate_init_tx_topology(struct devlink *devlink, struct ice_vsi *vsi) in ice_devlink_rate_init_tx_topology() argument
820 ice_traverse_tx_tree(devlink, tc_node->children[i], tc_node, pf); in ice_devlink_rate_init_tx_topology()
852 * @pi: devlink struct instance
878 * @pi: devlink struct instance
904 * @pi: devlink struct instance
934 * @pi: devlink struct instance
964 * @rate_node: devlink struct instance
970 struct ice_pf *pf = devlink_priv(rate_node->devlink); in ice_get_pi_from_dev_rate()
983 if (!ice_enable_custom_tx(devlink_priv(rate_node->devlink))) in ice_devlink_rate_node_new()
1009 if (!ice_enable_custom_tx(devlink_priv(rate_node->devlink))) in ice_devlink_rate_node_del()
1028 if (!ice_enable_custom_tx(devlink_priv(rate_leaf->devlink))) in ice_devlink_rate_leaf_tx_max_set()
1043 if (!ice_enable_custom_tx(devlink_priv(rate_leaf->devlink))) in ice_devlink_rate_leaf_tx_share_set()
1058 if (!ice_enable_custom_tx(devlink_priv(rate_leaf->devlink))) in ice_devlink_rate_leaf_tx_priority_set()
1073 if (!ice_enable_custom_tx(devlink_priv(rate_leaf->devlink))) in ice_devlink_rate_leaf_tx_weight_set()
1088 if (!ice_enable_custom_tx(devlink_priv(rate_node->devlink))) in ice_devlink_rate_node_tx_max_set()
1103 if (!ice_enable_custom_tx(devlink_priv(rate_node->devlink))) in ice_devlink_rate_node_tx_share_set()
1118 if (!ice_enable_custom_tx(devlink_priv(rate_node->devlink))) in ice_devlink_rate_node_tx_priority_set()
1133 if (!ice_enable_custom_tx(devlink_priv(rate_node->devlink))) in ice_devlink_rate_node_tx_weight_set()
1161 if (!ice_enable_custom_tx(devlink_priv(devlink_rate->devlink))) in ice_devlink_set_parent()
1214 struct devlink *devlink = priv_to_devlink(pf); in ice_set_min_max_msix() local
1218 err = devl_param_driverinit_value_get(devlink, in ice_set_min_max_msix()
1224 err = devl_param_driverinit_value_get(devlink, in ice_set_min_max_msix()
1271 /* No need to take devl_lock, it's already taken by devlink API */ in ice_devlink_reinit_up()
1295 * @devlink: pointer to the devlink instance reloading
1302 ice_devlink_reload_up(struct devlink *devlink, in ice_devlink_reload_up() argument
1308 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_reload_up()
1356 ice_devlink_enable_roce_get(struct devlink *devlink, u32 id, in ice_devlink_enable_roce_get() argument
1360 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_enable_roce_get()
1372 static int ice_devlink_enable_roce_set(struct devlink *devlink, u32 id, in ice_devlink_enable_roce_set() argument
1376 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_enable_roce_set()
1400 ice_devlink_enable_roce_validate(struct devlink *devlink, u32 id, in ice_devlink_enable_roce_validate() argument
1404 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_enable_roce_validate()
1423 ice_devlink_enable_iw_get(struct devlink *devlink, u32 id, in ice_devlink_enable_iw_get() argument
1427 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_enable_iw_get()
1439 static int ice_devlink_enable_iw_set(struct devlink *devlink, u32 id, in ice_devlink_enable_iw_set() argument
1443 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_enable_iw_set()
1467 ice_devlink_enable_iw_validate(struct devlink *devlink, u32 id, in ice_devlink_enable_iw_validate() argument
1471 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_enable_iw_validate()
1529 * @devlink: Pointer to the devlink instance.
1536 static int ice_devlink_local_fwd_get(struct devlink *devlink, u32 id, in ice_devlink_local_fwd_get() argument
1540 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_local_fwd_get()
1553 * @devlink: Pointer to the devlink instance.
1560 static int ice_devlink_local_fwd_set(struct devlink *devlink, u32 id, in ice_devlink_local_fwd_set() argument
1565 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_local_fwd_set()
1581 * @devlink: Unused pointer to devlink instance.
1593 static int ice_devlink_local_fwd_validate(struct devlink *devlink, u32 id, in ice_devlink_local_fwd_validate() argument
1606 ice_devlink_msix_max_pf_validate(struct devlink *devlink, u32 id, in ice_devlink_msix_max_pf_validate() argument
1610 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_msix_max_pf_validate()
1619 ice_devlink_msix_min_pf_validate(struct devlink *devlink, u32 id, in ice_devlink_msix_min_pf_validate() argument
1629 static int ice_devlink_enable_rdma_validate(struct devlink *devlink, u32 id, in ice_devlink_enable_rdma_validate() argument
1633 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_enable_rdma_validate()
1688 devlink_free((struct devlink *)devlink_ptr); in ice_devlink_free()
1692 * ice_allocate_pf - Allocate devlink and return PF structure pointer
1695 * Allocate a devlink instance for this device and return the private area as
1696 * the PF structure. The devlink memory is kept track of through devres by
1701 struct devlink *devlink; in ice_allocate_pf() local
1703 devlink = devlink_alloc(&ice_devlink_ops, sizeof(struct ice_pf), dev); in ice_allocate_pf()
1704 if (!devlink) in ice_allocate_pf()
1707 /* Add an action to teardown the devlink when unwinding the driver */ in ice_allocate_pf()
1708 if (devm_add_action_or_reset(dev, ice_devlink_free, devlink)) in ice_allocate_pf()
1711 return devlink_priv(devlink); in ice_allocate_pf()
1715 * ice_allocate_sf - Allocate devlink and return SF structure pointer
1719 * Allocate a devlink instance for SF.
1725 struct devlink *devlink; in ice_allocate_sf() local
1728 devlink = devlink_alloc(&ice_sf_devlink_ops, sizeof(struct ice_sf_priv), in ice_allocate_sf()
1730 if (!devlink) in ice_allocate_sf()
1733 err = devl_nested_devlink_set(priv_to_devlink(pf), devlink); in ice_allocate_sf()
1735 devlink_free(devlink); in ice_allocate_sf()
1739 return devlink_priv(devlink); in ice_allocate_sf()
1743 * ice_devlink_register - Register devlink interface for this PF
1744 * @pf: the PF to register the devlink for.
1746 * Register the devlink instance associated with this physical function.
1752 struct devlink *devlink = priv_to_devlink(pf); in ice_devlink_register() local
1754 devl_register(devlink); in ice_devlink_register()
1758 * ice_devlink_unregister - Unregister devlink resources for this PF.
1761 * Releases resources used by devlink and cleans up associated memory.
1770 struct devlink *devlink = priv_to_devlink(pf); in ice_devlink_register_params() local
1775 status = devl_params_register(devlink, ice_dvl_rdma_params, in ice_devlink_register_params()
1780 status = devl_params_register(devlink, ice_dvl_msix_params, in ice_devlink_register_params()
1786 status = devl_params_register(devlink, ice_dvl_sched_params, in ice_devlink_register_params()
1792 devl_param_driverinit_value_set(devlink, in ice_devlink_register_params()
1796 devl_param_driverinit_value_set(devlink, in ice_devlink_register_params()
1801 devl_param_driverinit_value_set(devlink, in ice_devlink_register_params()
1808 devl_params_unregister(devlink, ice_dvl_msix_params, in ice_devlink_register_params()
1811 devl_params_unregister(devlink, ice_dvl_rdma_params, in ice_devlink_register_params()
1818 struct devlink *devlink = priv_to_devlink(pf); in ice_devlink_unregister_params() local
1821 devl_params_unregister(devlink, ice_dvl_rdma_params, in ice_devlink_unregister_params()
1823 devl_params_unregister(devlink, ice_dvl_msix_params, in ice_devlink_unregister_params()
1827 devl_params_unregister(devlink, ice_dvl_sched_params, in ice_devlink_unregister_params()
1838 * @devlink: the devlink instance
1839 * @ops: the devlink region to snapshot
1853 static int ice_devlink_nvm_snapshot(struct devlink *devlink, in ice_devlink_nvm_snapshot() argument
1857 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_nvm_snapshot()
1917 * @devlink: the devlink instance
1918 * @ops: the devlink region to snapshot
1932 static int ice_devlink_nvm_read(struct devlink *devlink, in ice_devlink_nvm_read() argument
1938 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_nvm_read()
1975 * @devlink: the devlink instance
1976 * @ops: the devlink region being snapshotted
1981 * the device-caps devlink region. It captures a snapshot of the device
1988 ice_devlink_devcaps_snapshot(struct devlink *devlink, in ice_devlink_devcaps_snapshot() argument
1992 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_devcaps_snapshot()
2038 * ice_devlink_init_regions - Initialize devlink regions
2041 * Create devlink regions used to enable access to dump the contents of the
2046 struct devlink *devlink = priv_to_devlink(pf); in ice_devlink_init_regions() local
2051 pf->nvm_region = devl_region_create(devlink, &ice_nvm_region_ops, 1, in ice_devlink_init_regions()
2054 dev_err(dev, "failed to create NVM devlink region, err %ld\n", in ice_devlink_init_regions()
2060 pf->sram_region = devl_region_create(devlink, &ice_sram_region_ops, in ice_devlink_init_regions()
2063 dev_err(dev, "failed to create shadow-ram devlink region, err %ld\n", in ice_devlink_init_regions()
2068 pf->devcaps_region = devl_region_create(devlink, in ice_devlink_init_regions()
2072 dev_err(dev, "failed to create device-caps devlink region, err %ld\n", in ice_devlink_init_regions()
2079 * ice_devlink_destroy_regions - Destroy devlink regions