Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef __SYSFS_UPLOAD_H
0003 #define __SYSFS_UPLOAD_H
0004 
0005 #include <linux/device.h>
0006 
0007 #include "sysfs.h"
0008 
0009 /**
0010  * enum fw_upload_prog - firmware upload progress codes
0011  * @FW_UPLOAD_PROG_IDLE: there is no firmware upload in progress
0012  * @FW_UPLOAD_PROG_RECEIVING: worker thread is receiving firmware data
0013  * @FW_UPLOAD_PROG_PREPARING: target device is preparing for firmware upload
0014  * @FW_UPLOAD_PROG_TRANSFERRING: data is being copied to the device
0015  * @FW_UPLOAD_PROG_PROGRAMMING: device is performing the firmware update
0016  * @FW_UPLOAD_PROG_MAX: Maximum progress code marker
0017  */
0018 enum fw_upload_prog {
0019     FW_UPLOAD_PROG_IDLE,
0020     FW_UPLOAD_PROG_RECEIVING,
0021     FW_UPLOAD_PROG_PREPARING,
0022     FW_UPLOAD_PROG_TRANSFERRING,
0023     FW_UPLOAD_PROG_PROGRAMMING,
0024     FW_UPLOAD_PROG_MAX
0025 };
0026 
0027 struct fw_upload_priv {
0028     struct fw_upload *fw_upload;
0029     struct module *module;
0030     const char *name;
0031     const struct fw_upload_ops *ops;
0032     struct mutex lock;        /* protect data structure contents */
0033     struct work_struct work;
0034     const u8 *data;           /* pointer to update data */
0035     u32 remaining_size;       /* size remaining to transfer */
0036     enum fw_upload_prog progress;
0037     enum fw_upload_prog err_progress; /* progress at time of failure */
0038     enum fw_upload_err err_code;      /* security manager error code */
0039 };
0040 
0041 #endif /* __SYSFS_UPLOAD_H */