1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __SYSFS_UPLOAD_H
3 #define __SYSFS_UPLOAD_H
5 #include <linux/device.h>
10 * enum fw_upload_prog - firmware upload progress codes
11 * @FW_UPLOAD_PROG_IDLE: there is no firmware upload in progress
12 * @FW_UPLOAD_PROG_RECEIVING: worker thread is receiving firmware data
13 * @FW_UPLOAD_PROG_PREPARING: target device is preparing for firmware upload
14 * @FW_UPLOAD_PROG_TRANSFERRING: data is being copied to the device
15 * @FW_UPLOAD_PROG_PROGRAMMING: device is performing the firmware update
16 * @FW_UPLOAD_PROG_MAX: Maximum progress code marker
20 FW_UPLOAD_PROG_RECEIVING,
21 FW_UPLOAD_PROG_PREPARING,
22 FW_UPLOAD_PROG_TRANSFERRING,
23 FW_UPLOAD_PROG_PROGRAMMING,
27 struct fw_upload_priv {
28 struct fw_upload *fw_upload;
29 struct module *module;
31 const struct fw_upload_ops *ops;
32 struct mutex lock; /* protect data structure contents */
33 struct work_struct work;
34 const u8 *data; /* pointer to update data */
35 u32 remaining_size; /* size remaining to transfer */
36 enum fw_upload_prog progress;
37 enum fw_upload_prog err_progress; /* progress at time of failure */
38 enum fw_upload_err err_code; /* security manager error code */
41 #endif /* __SYSFS_UPLOAD_H */