This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: si2157: fix bandwidth stored in dev
Author:  Robert Schlabbach <[email protected]>
Date:    Thu Jan 6 23:51:39 2022 +0100

Make digital tuning store the bandwidth in Hz in the private dev struct,
rather than the hardware-specific bandwidth property code, so that the
get_bandwidth() function returns the bandwidth in Hz, just as it already
does when using analog tuning.

Link: 
https://lore.kernel.org/linux-media/trinity-931c0e68-88af-46cc-91a1-986754798a4f-1641509499366@3c-app-gmx-bap68
Reported-by: Robert Schlabbach <[email protected]>
Signed-off-by: Robert Schlabbach <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 drivers/media/tuners/si2157.c | 31 +++++++++++++++++++------------
 1 file changed, 19 insertions(+), 12 deletions(-)

---

diff --git a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c
index 76dc10dd2518..b1e00b635dbf 100644
--- a/drivers/media/tuners/si2157.c
+++ b/drivers/media/tuners/si2157.c
@@ -446,7 +446,8 @@ static int si2157_set_params(struct dvb_frontend *fe)
        struct dtv_frontend_properties *c = &fe->dtv_property_cache;
        int ret;
        struct si2157_cmd cmd;
-       u8 bandwidth, delivery_system;
+       u8 bw, delivery_system;
+       u32 bandwidth;
        u32 if_frequency = 5000000;
 
        dev_dbg(&client->dev,
@@ -458,16 +459,22 @@ static int si2157_set_params(struct dvb_frontend *fe)
                goto err;
        }
 
-       if (SUPPORTS_1700KHz(dev) && c->bandwidth_hz <= 1700000)
-               bandwidth = 9;
-       else if (c->bandwidth_hz <= 6000000)
-               bandwidth = 6;
-       else if (SUPPORTS_1700KHz(dev) && c->bandwidth_hz <= 6100000)
-               bandwidth = 10;
-       else if (c->bandwidth_hz <= 7000000)
-               bandwidth = 7;
-       else
-               bandwidth = 8;
+       if (SUPPORTS_1700KHz(dev) && c->bandwidth_hz <= 1700000) {
+               bandwidth = 1700000;
+               bw = 9;
+       } else if (c->bandwidth_hz <= 6000000) {
+               bandwidth = 6000000;
+               bw = 6;
+       } else if (SUPPORTS_1700KHz(dev) && c->bandwidth_hz <= 6100000) {
+               bandwidth = 6100000;
+               bw = 10;
+       } else if (c->bandwidth_hz <= 7000000) {
+               bandwidth = 7000000;
+               bw = 7;
+       } else {
+               bandwidth = 8000000;
+               bw = 8;
+       }
 
        switch (c->delivery_system) {
        case SYS_ATSC:
@@ -497,7 +504,7 @@ static int si2157_set_params(struct dvb_frontend *fe)
        }
 
        memcpy(cmd.args, "\x14\x00\x03\x07\x00\x00", 6);
-       cmd.args[4] = delivery_system | bandwidth;
+       cmd.args[4] = delivery_system | bw;
        if (dev->inversion)
                cmd.args[5] = 0x01;
        cmd.wlen = 6;

_______________________________________________
linuxtv-commits mailing list
[email protected]
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to