#include <linux/firmware.h>
#include <linux/jiffies.h>
#include <linux/mutex.h>
#include <linux/workqueue.h>
#include <linux/greybus.h>
#include "firmware.h"
#define NEXT_REQ_TIMEOUT_MS …
#define MODE_SWITCH_TIMEOUT_MS …
enum next_request_type { … };
struct gb_bootrom { … };
static void free_firmware(struct gb_bootrom *bootrom)
{ … }
static void gb_bootrom_timedout(struct work_struct *work)
{ … }
static void gb_bootrom_set_timeout(struct gb_bootrom *bootrom,
enum next_request_type next,
unsigned long timeout)
{ … }
static void gb_bootrom_cancel_timeout(struct gb_bootrom *bootrom)
{ … }
static void bootrom_es2_fixup_vid_pid(struct gb_bootrom *bootrom)
{ … }
static int find_firmware(struct gb_bootrom *bootrom, u8 stage)
{ … }
static int gb_bootrom_firmware_size_request(struct gb_operation *op)
{ … }
static int gb_bootrom_get_firmware(struct gb_operation *op)
{ … }
static int gb_bootrom_ready_to_boot(struct gb_operation *op)
{ … }
static int gb_bootrom_request_handler(struct gb_operation *op)
{ … }
static int gb_bootrom_get_version(struct gb_bootrom *bootrom)
{ … }
static int gb_bootrom_probe(struct gb_bundle *bundle,
const struct greybus_bundle_id *id)
{ … }
static void gb_bootrom_disconnect(struct gb_bundle *bundle)
{ … }
static const struct greybus_bundle_id gb_bootrom_id_table[] = …;
static struct greybus_driver gb_bootrom_driver = …;
module_greybus_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;