Loading...
Note: File does not exist in v6.8.
1/* SPDX-License-Identifier: GPL-2.0-only */
2
3#include <uapi/linux/ethtool.h>
4#include "netlink.h"
5
6/**
7 * struct ethnl_module_fw_flash_ntf_params - module firmware flashing
8 * notifications parameters
9 * @portid: Netlink portid of sender.
10 * @seq: Sequence number of sender.
11 * @closed_sock: Indicates whether the socket was closed from user space.
12 */
13struct ethnl_module_fw_flash_ntf_params {
14 u32 portid;
15 u32 seq;
16 bool closed_sock;
17};
18
19/**
20 * struct ethtool_module_fw_flash_params - module firmware flashing parameters
21 * @password: Module password. Only valid when @pass_valid is set.
22 * @password_valid: Whether the module password is valid or not.
23 */
24struct ethtool_module_fw_flash_params {
25 __be32 password;
26 u8 password_valid:1;
27};
28
29/**
30 * struct ethtool_cmis_fw_update_params - CMIS firmware update specific
31 * parameters
32 * @dev: Pointer to the net_device to be flashed.
33 * @params: Module firmware flashing parameters.
34 * @ntf_params: Module firmware flashing notification parameters.
35 * @fw: Firmware to flash.
36 */
37struct ethtool_cmis_fw_update_params {
38 struct net_device *dev;
39 struct ethtool_module_fw_flash_params params;
40 struct ethnl_module_fw_flash_ntf_params ntf_params;
41 const struct firmware *fw;
42};
43
44/**
45 * struct ethtool_module_fw_flash - module firmware flashing
46 * @list: List node for &module_fw_flash_work_list.
47 * @dev_tracker: Refcount tracker for @dev.
48 * @work: The flashing firmware work.
49 * @fw_update: CMIS firmware update specific parameters.
50 */
51struct ethtool_module_fw_flash {
52 struct list_head list;
53 netdevice_tracker dev_tracker;
54 struct work_struct work;
55 struct ethtool_cmis_fw_update_params fw_update;
56};
57
58void ethnl_module_fw_flash_sock_destroy(struct ethnl_sock_priv *sk_priv);
59
60void
61ethnl_module_fw_flash_ntf_err(struct net_device *dev,
62 struct ethnl_module_fw_flash_ntf_params *params,
63 char *err_msg, char *sub_err_msg);
64void
65ethnl_module_fw_flash_ntf_start(struct net_device *dev,
66 struct ethnl_module_fw_flash_ntf_params *params);
67void
68ethnl_module_fw_flash_ntf_complete(struct net_device *dev,
69 struct ethnl_module_fw_flash_ntf_params *params);
70void
71ethnl_module_fw_flash_ntf_in_progress(struct net_device *dev,
72 struct ethnl_module_fw_flash_ntf_params *params,
73 u64 done, u64 total);
74
75void ethtool_cmis_fw_update(struct ethtool_cmis_fw_update_params *params);