linux/drivers/media/i2c/cx25840/cx25840-firmware.c

// SPDX-License-Identifier: GPL-2.0-or-later
/* cx25840 firmware functions
 */

#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/firmware.h>
#include <media/v4l2-common.h>
#include <media/drv-intf/cx25840.h>

#include "cx25840-core.h"

/*
 * Mike Isely <[email protected]> - The FWSEND parameter controls the
 * size of the firmware chunks sent down the I2C bus to the chip.
 * Previously this had been set to 1024 but unfortunately some I2C
 * implementations can't transfer data in such big gulps.
 * Specifically, the pvrusb2 driver has a hard limit of around 60
 * bytes, due to the encapsulation there of I2C traffic into USB
 * messages.  So we have to significantly reduce this parameter.
 */
#define FWSEND

#define FWDEV(x)

static char *firmware =;

module_param(firmware, charp, 0444);

MODULE_PARM_DESC();

static void start_fw_load(struct i2c_client *client)
{}

static void end_fw_load(struct i2c_client *client)
{}

#define CX2388x_FIRMWARE
#define CX231xx_FIRMWARE
#define CX25840_FIRMWARE

static const char *get_fw_name(struct i2c_client *client)
{}

static int check_fw_load(struct i2c_client *client, int size)
{}

static int fw_write(struct i2c_client *client, const u8 *data, int size)
{}

int cx25840_loadfw(struct i2c_client *client)
{}

MODULE_FIRMWARE();
MODULE_FIRMWARE();
MODULE_FIRMWARE();