]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
media: si2157: Add option for not downloading firmware.
authorGon Solo <gonsolo@gmail.com>
Thu, 10 Oct 2019 09:51:01 +0000 (06:51 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 10 Oct 2019 10:07:14 +0000 (07:07 -0300)
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>
drivers/media/tuners/si2157.c
drivers/media/tuners/si2157.h
drivers/media/tuners/si2157_priv.h

index e87040d6eca779bae835436b4218f86c23466d68..898e0f9f8b70d1b305bf2bed1af9c2bc178f6d48 100644 (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 */
index c22ca784f43f64686d81b5997856f704f2285ffa..ffdece3c2eaab8aaf339f00afb5aaf72942e6dfe 100644 (file)
 #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;
 };
 
index 2bda903358dadb8334ae8d8d8203101814e030af..778f81b399965cb5c010436656727c9a7fe37c29 100644 (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;