Path: blob/master/drivers/base/firmware_loader/sysfs_upload.h
26428 views
/* SPDX-License-Identifier: GPL-2.0 */1#ifndef __SYSFS_UPLOAD_H2#define __SYSFS_UPLOAD_H34#include <linux/device.h>56#include "sysfs.h"78/**9* enum fw_upload_prog - firmware upload progress codes10* @FW_UPLOAD_PROG_IDLE: there is no firmware upload in progress11* @FW_UPLOAD_PROG_RECEIVING: worker thread is receiving firmware data12* @FW_UPLOAD_PROG_PREPARING: target device is preparing for firmware upload13* @FW_UPLOAD_PROG_TRANSFERRING: data is being copied to the device14* @FW_UPLOAD_PROG_PROGRAMMING: device is performing the firmware update15* @FW_UPLOAD_PROG_MAX: Maximum progress code marker16*/17enum fw_upload_prog {18FW_UPLOAD_PROG_IDLE,19FW_UPLOAD_PROG_RECEIVING,20FW_UPLOAD_PROG_PREPARING,21FW_UPLOAD_PROG_TRANSFERRING,22FW_UPLOAD_PROG_PROGRAMMING,23FW_UPLOAD_PROG_MAX24};2526struct fw_upload_priv {27struct fw_upload *fw_upload;28struct module *module;29const char *name;30const struct fw_upload_ops *ops;31struct mutex lock; /* protect data structure contents */32struct work_struct work;33const u8 *data; /* pointer to update data */34u32 remaining_size; /* size remaining to transfer */35enum fw_upload_prog progress;36enum fw_upload_prog err_progress; /* progress at time of failure */37enum fw_upload_err err_code; /* security manager error code */38};3940#endif /* __SYSFS_UPLOAD_H */414243