diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2022-01-12 10:43:08 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2022-01-12 10:43:08 -0800 |
commit | 2ab9c9675fe892e7fe9fa8c0a6125e2b40d2889d (patch) | |
tree | 63c612009afaf5f4431374cf4b83648c43ae77e4 /drivers/media | |
parent | 49008f0cc1ef0b86ccfa0d1d99e67741d46bd35b (diff) | |
parent | 8d4ff8187bb2b0c9025269f0da42ed16c878cb18 (diff) |
Merge tag 'media/v5.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media fixes from Mauro Carvalho Chehab:
- some fixes at si2157 tuning logic
- a warning fix on atomisp when used with clang
* tag 'media/v5.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
media: si2157: add support for DVB-C Annex C
media: si2157: fix bandwidth stored in dev
media: si2157: fix 6MHz & 6.1MHz bandwidth setting
media: atomisp: Do not define input_system_cfg2400_t twice
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/tuners/si2157.c | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c index 481c5c3b577d..47029746b89e 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,18 +459,22 @@ static int si2157_set_params(struct dvb_frontend *fe) goto err; } - if (SUPPORTS_1700KHz(dev) && c->bandwidth_hz <= 1700000) - bandwidth = 0x09; - if (c->bandwidth_hz <= 6000000) - bandwidth = 0x06; - if (SUPPORTS_1700KHz(dev) && c->bandwidth_hz <= 6100000) - bandwidth = 0x10; - else if (c->bandwidth_hz <= 7000000) - bandwidth = 0x07; - else if (c->bandwidth_hz <= 8000000) - bandwidth = 0x08; - else - bandwidth = 0x0f; + 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: @@ -485,6 +490,7 @@ static int si2157_set_params(struct dvb_frontend *fe) delivery_system = 0x20; break; case SYS_DVBC_ANNEX_A: + case SYS_DVBC_ANNEX_C: delivery_system = 0x30; break; case SYS_ISDBT: @@ -499,7 +505,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; |