sysfs_upload.h (1314B)
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 */ 18enum 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 27struct 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 */