All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] m88ts2022: fix high symbol rate transponders missing on 32bit platform.
@ 2014-08-16  6:12 nibble.max
  2014-08-16 12:38 ` Mauro Carvalho Chehab
  2014-08-16 13:31 ` Re: [PATCH] m88ts2022: fix high symbol rate transponders missing on32bit platform Max Xiang
  0 siblings, 2 replies; 6+ messages in thread
From: nibble.max @ 2014-08-16  6:12 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: linux-media, olli.salonen

The current m88ts2022 driver will miss the following high symbol rate transponders on Telstar 18 138.0.
12385 H 43200, 
12690 H 43200,
12538 V 41250...
the code for f_3db_hz will overflow for the high symbol rate.
for example, symbol rate=41250 KS/s
symbol_rate * 135UL = 5568750000(1 4BEC 61B0), the value is larger than unsigned int on 32bit platform. 
that makes the wrong result.
Exchanging the div and mul position fixs it.

Signed-off-by: Nibble Max <nibble.max@gmail.com>
---
 drivers/media/tuners/m88ts2022.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/tuners/m88ts2022.c b/drivers/media/tuners/m88ts2022.c
index 40c42de..65c8acc 100644
--- a/drivers/media/tuners/m88ts2022.c
+++ b/drivers/media/tuners/m88ts2022.c
@@ -314,7 +314,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	div_min = gdiv28 * 78 / 100;
 	div_max = clamp_val(div_max, 0U, 63U);
 
-	f_3db_hz = c->symbol_rate * 135UL / 200UL;
+	f_3db_hz = (c->symbol_rate / 200UL) * 135UL;
 	f_3db_hz +=  2000000U + (frequency_offset_khz * 1000U);
 	f_3db_hz = clamp(f_3db_hz, 7000000U, 40000000U);

-- 
1.9.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [PATCH] m88ts2022: fix high symbol rate transponders missing on 32bit platform.
@ 2014-08-16  6:26 nibble.max
  0 siblings, 0 replies; 6+ messages in thread
From: nibble.max @ 2014-08-16  6:26 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: linux-media, olli.salonen

The current m88ts2022 driver will miss the following high symbol rate transponders on Telstar 18 138.0.
12385 H 43200, 
12690 H 43200,
12538 V 41250...
the code for f_3db_hz will overflow for the high symbol rate.
for example, symbol rate=41250 KS/s
symbol_rate * 135UL = 5568750000(1 4BEC 61B0), the value is larger than unsigned int on 32bit platform. 
that makes the wrong result.
Exchanging the div and mul position fixs it.

Signed-off-by: Nibble Max <nibble.max@gmail.com>
---
 drivers/media/tuners/m88ts2022.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/tuners/m88ts2022.c b/drivers/media/tuners/m88ts2022.c
index 40c42de..65c8acc 100644
--- a/drivers/media/tuners/m88ts2022.c
+++ b/drivers/media/tuners/m88ts2022.c
@@ -314,7 +314,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	div_min = gdiv28 * 78 / 100;
 	div_max = clamp_val(div_max, 0U, 63U);
 
-	f_3db_hz = c->symbol_rate * 135UL / 200UL;
+	f_3db_hz = (c->symbol_rate / 200UL) * 135UL;
 	f_3db_hz +=  2000000U + (frequency_offset_khz * 1000U);
 	f_3db_hz = clamp(f_3db_hz, 7000000U, 40000000U);

-- 
1.9.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-08-16 19:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-16  6:12 [PATCH] m88ts2022: fix high symbol rate transponders missing on 32bit platform nibble.max
2014-08-16 12:38 ` Mauro Carvalho Chehab
2014-08-16 12:53   ` Antti Palosaari
2014-08-16 19:26     ` Matthias Schwarzott
2014-08-16 13:31 ` Re: [PATCH] m88ts2022: fix high symbol rate transponders missing on32bit platform Max Xiang
  -- strict thread matches above, loose matches on Subject: below --
2014-08-16  6:26 [PATCH] m88ts2022: fix high symbol rate transponders missing on 32bit platform nibble.max

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.