#include <linux/device.h>
#include <linux/firmware.h>
#include <linux/i2c.h>
#include "goodix.h"
#define GOODIX_FW_HEADER_LENGTH …
#define GOODIX_FW_SECTION_LENGTH …
#define GOODIX_FW_DSP_LENGTH …
#define GOODIX_FW_UPLOAD_ADDRESS …
#define GOODIX_CFG_LOC_HAVE_KEY …
#define GOODIX_CFG_LOC_DRVA_NUM …
#define GOODIX_CFG_LOC_DRVB_NUM …
#define GOODIX_CFG_LOC_SENS_NUM …
struct goodix_fw_header { … } __packed;
static u16 goodix_firmware_checksum(const u8 *data, int size)
{ … }
static int goodix_firmware_verify(struct device *dev, const struct firmware *fw)
{ … }
static int goodix_enter_upload_mode(struct i2c_client *client)
{ … }
static int goodix_start_firmware(struct i2c_client *client)
{ … }
static int goodix_firmware_upload(struct goodix_ts_data *ts)
{ … }
static int goodix_prepare_bak_ref(struct goodix_ts_data *ts)
{ … }
static int goodix_send_main_clock(struct goodix_ts_data *ts)
{ … }
int goodix_firmware_check(struct goodix_ts_data *ts)
{ … }
bool goodix_handle_fw_request(struct goodix_ts_data *ts)
{ … }
void goodix_save_bak_ref(struct goodix_ts_data *ts)
{ … }