Re: [PATCH] e4000: fix PLL calc error in 32-bit arch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks! Works like a charm here with TerraTec Cinergy T Stick RC (Rev. 3). And you're right, I'm running 32-bit.

Regards,
jan.


Am 02.09.2013 18:26, schrieb Antti Palosaari:
Testers?

Here is tree:
http://git.linuxtv.org/anttip/media_tree.git/shortlog/refs/heads/e4000_fix_3.11


I assume all of you have been running 32-bit arch as that bug is related
to 32-bit overflow.

regards
Antti


On 09/02/2013 07:17 PM, Antti Palosaari wrote:
Fix long-lasting error that causes tuning failure to some frequencies
on 32-bit arch.

Special thanks goes to Damien CABROL who finally find root of the bug.
Also big thanks to Jacek Konieczny for donating non-working device.

Reported-by: Jacek Konieczny <jajcus@xxxxxxxxxx>
Reported-by: Torsten Seyffarth <t.seyffarth@xxxxxx>
Reported-by: Jan Taegert <jantaegert@xxxxxxx>
Reported-by: Damien CABROL <cabrol.damien@xxxxxxx>
Tested-by: Damien CABROL <cabrol.damien@xxxxxxx>
Signed-off-by: Antti Palosaari <crope@xxxxxx>
---
  drivers/media/tuners/e4000.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/tuners/e4000.c b/drivers/media/tuners/e4000.c
index 1b33ed3..a88f757 100644
--- a/drivers/media/tuners/e4000.c
+++ b/drivers/media/tuners/e4000.c
@@ -232,7 +232,7 @@ static int e4000_set_params(struct dvb_frontend *fe)
       * or more.
       */
      f_VCO = c->frequency * e4000_pll_lut[i].mul;
-    sigma_delta = 0x10000UL * (f_VCO % priv->cfg->clock) /
priv->cfg->clock;
+    sigma_delta = div_u64(0x10000ULL * (f_VCO % priv->cfg->clock),
priv->cfg->clock);
      buf[0] = f_VCO / priv->cfg->clock;
      buf[1] = (sigma_delta >> 0) & 0xff;
      buf[2] = (sigma_delta >> 8) & 0xff;




--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux