| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- #include <uapi/linux/ethtool.h>
- #include "netlink.h"
- /**
- * struct ethnl_module_fw_flash_ntf_params - module firmware flashing
- * notifications parameters
- * @portid: Netlink portid of sender.
- * @seq: Sequence number of sender.
- * @closed_sock: Indicates whether the socket was closed from user space.
- */
- struct ethnl_module_fw_flash_ntf_params {
- u32 portid;
- u32 seq;
- bool closed_sock;
- };
- /**
- * struct ethtool_module_fw_flash_params - module firmware flashing parameters
- * @password: Module password. Only valid when @pass_valid is set.
- * @password_valid: Whether the module password is valid or not.
- */
- struct ethtool_module_fw_flash_params {
- __be32 password;
- u8 password_valid:1;
- };
- /**
- * struct ethtool_cmis_fw_update_params - CMIS firmware update specific
- * parameters
- * @dev: Pointer to the net_device to be flashed.
- * @params: Module firmware flashing parameters.
- * @ntf_params: Module firmware flashing notification parameters.
- * @fw: Firmware to flash.
- */
- struct ethtool_cmis_fw_update_params {
- struct net_device *dev;
- struct ethtool_module_fw_flash_params params;
- struct ethnl_module_fw_flash_ntf_params ntf_params;
- const struct firmware *fw;
- };
- /**
- * struct ethtool_module_fw_flash - module firmware flashing
- * @list: List node for &module_fw_flash_work_list.
- * @dev_tracker: Refcount tracker for @dev.
- * @work: The flashing firmware work.
- * @fw_update: CMIS firmware update specific parameters.
- */
- struct ethtool_module_fw_flash {
- struct list_head list;
- netdevice_tracker dev_tracker;
- struct work_struct work;
- struct ethtool_cmis_fw_update_params fw_update;
- };
- void ethnl_module_fw_flash_sock_destroy(struct ethnl_sock_priv *sk_priv);
- void
- ethnl_module_fw_flash_ntf_err(struct net_device *dev,
- struct ethnl_module_fw_flash_ntf_params *params,
- char *err_msg, char *sub_err_msg);
- void
- ethnl_module_fw_flash_ntf_start(struct net_device *dev,
- struct ethnl_module_fw_flash_ntf_params *params);
- void
- ethnl_module_fw_flash_ntf_complete(struct net_device *dev,
- struct ethnl_module_fw_flash_ntf_params *params);
- void
- ethnl_module_fw_flash_ntf_in_progress(struct net_device *dev,
- struct ethnl_module_fw_flash_ntf_params *params,
- u64 done, u64 total);
- void ethtool_cmis_fw_update(struct ethtool_cmis_fw_update_params *params);
|