media: si2157: Add option for not downloading firmware.

While at it, convert to kernel-doc format and use bits instead of bools.

Signed-off-by: Gon Solo <gonsolo@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
Gon Solo 2019-10-10 06:51:01 -03:00 committed by Mauro Carvalho Chehab
parent d7f9e85082
commit 57df53738a
3 changed files with 28 additions and 16 deletions

View File

@ -118,6 +118,11 @@ static int si2157_init(struct dvb_frontend *fe)
goto err;
}
if (dev->dont_load_firmware) {
dev_info(&client->dev, "device is buggy, skipping firmware download\n");
goto skip_fw_download;
}
/* query chip revision */
memcpy(cmd.args, "\x02", 1);
cmd.wlen = 1;
@ -440,6 +445,7 @@ static int si2157_probe(struct i2c_client *client,
i2c_set_clientdata(client, dev);
dev->fe = cfg->fe;
dev->inversion = cfg->inversion;
dev->dont_load_firmware = cfg->dont_load_firmware;
dev->if_port = cfg->if_port;
dev->chiptype = (u8)id->driver_data;
dev->if_frequency = 5000000; /* default value of property 0x0706 */

View File

@ -11,29 +11,34 @@
#include <media/media-device.h>
#include <media/dvb_frontend.h>
/*
* I2C address
* 0x60
/**
* struct si2157_config - configuration parameters for si2157
*
* @fe:
* frontend returned by driver
* @mdev:
* media device returned by driver
* @inversion:
* spectral inversion
* @dont_load_firmware:
* Instead of uploading a new firmware, use the existing one
* @if_port:
* Port selection
* Select the RF interface to use (pins 9+11 or 12+13)
*
* Note:
* The I2C address of this demod is 0x60.
*/
struct si2157_config {
/*
* frontend
*/
struct dvb_frontend *fe;
#if defined(CONFIG_MEDIA_CONTROLLER)
struct media_device *mdev;
#endif
/*
* Spectral Inversion
*/
bool inversion;
unsigned int inversion:1;
unsigned int dont_load_firmware:1;
/*
* Port selection
* Select the RF interface to use (pins 9+11 or 12+13)
*/
u8 if_port;
};

View File

@ -23,8 +23,9 @@ enum si2157_pads {
struct si2157_dev {
struct mutex i2c_mutex;
struct dvb_frontend *fe;
bool active;
bool inversion;
unsigned int active:1;
unsigned int inversion:1;
unsigned int dont_load_firmware:1;
u8 chiptype;
u8 if_port;
u32 if_frequency;