firmware_loader: Move definitions from sysfs_upload.h to sysfs.h
[linux-2.6-microblaze.git] / drivers / base / firmware_loader / sysfs_upload.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __SYSFS_UPLOAD_H
3 #define __SYSFS_UPLOAD_H
4
5 #include <linux/device.h>
6
7 #include "sysfs.h"
8
9 /**
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
17  */
18 enum fw_upload_prog {
19         FW_UPLOAD_PROG_IDLE,
20         FW_UPLOAD_PROG_RECEIVING,
21         FW_UPLOAD_PROG_PREPARING,
22         FW_UPLOAD_PROG_TRANSFERRING,
23         FW_UPLOAD_PROG_PROGRAMMING,
24         FW_UPLOAD_PROG_MAX
25 };
26
27 struct fw_upload_priv {
28         struct fw_upload *fw_upload;
29         struct module *module;
30         const char *name;
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 */
39 };
40
41 #endif /* __SYSFS_UPLOAD_H */