Commit 29e28d1d authored by Kory Maincent (Dent Project)'s avatar Kory Maincent (Dent Project) Committed by Jakub Kicinski

net: pse-pd: Add support for setup_pi_matrix callback

Implement setup_pi_matrix callback to configure the PSE PI matrix. This
functionality is invoked before registering the PSE and following the core
parsing of the pse_pis devicetree subnode.
Signed-off-by: default avatarKory Maincent <kory.maincent@bootlin.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20240417-feature_poe-v9-9-242293fd1900@bootlin.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent b17181a8
...@@ -223,6 +223,12 @@ int pse_controller_register(struct pse_controller_dev *pcdev) ...@@ -223,6 +223,12 @@ int pse_controller_register(struct pse_controller_dev *pcdev)
if (ret) if (ret)
return ret; return ret;
if (pcdev->ops->setup_pi_matrix) {
ret = pcdev->ops->setup_pi_matrix(pcdev);
if (ret)
return ret;
}
mutex_lock(&pse_list_mutex); mutex_lock(&pse_list_mutex);
list_add(&pcdev->list, &pse_controller_list); list_add(&pcdev->list, &pse_controller_list);
mutex_unlock(&pse_list_mutex); mutex_unlock(&pse_list_mutex);
......
...@@ -49,6 +49,7 @@ struct pse_control_status { ...@@ -49,6 +49,7 @@ struct pse_control_status {
* *
* @ethtool_get_status: get PSE control status for ethtool interface * @ethtool_get_status: get PSE control status for ethtool interface
* @ethtool_set_config: set PSE control configuration over ethtool interface * @ethtool_set_config: set PSE control configuration over ethtool interface
* @setup_pi_matrix: setup PI matrix of the PSE controller
*/ */
struct pse_controller_ops { struct pse_controller_ops {
int (*ethtool_get_status)(struct pse_controller_dev *pcdev, int (*ethtool_get_status)(struct pse_controller_dev *pcdev,
...@@ -57,6 +58,7 @@ struct pse_controller_ops { ...@@ -57,6 +58,7 @@ struct pse_controller_ops {
int (*ethtool_set_config)(struct pse_controller_dev *pcdev, int (*ethtool_set_config)(struct pse_controller_dev *pcdev,
unsigned long id, struct netlink_ext_ack *extack, unsigned long id, struct netlink_ext_ack *extack,
const struct pse_control_config *config); const struct pse_control_config *config);
int (*setup_pi_matrix)(struct pse_controller_dev *pcdev);
}; };
struct module; struct module;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment