Re: [PATCH v5 1/6] media: dvb-frontends: tda10048: Make the range of z explicit.

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

 



hi Ricardo, according to the datasheet the recommended sampling
frequency is 55 MHz (BTW, if you look at the definitions in the source
code and make the calculations that is exactly the sampling frequency
all currently supported in Linux devices are using as well).

also, I spent few minutes time to make the calculations based on the
restrains of the PLL build-in tda10048 and in theory the maximum is 69
MHz. so, if you make next revision of this patch, feel free to update
the comment accordingly, in short - recommended sampling frequency of
55 MHz, theoretical maximum of 69 MHz.

in any case, your assumption is correct and in reality is away less
than the maximum value you assumed.

Reviewed-by: Kosta Stefanov <costa.stephanoff@xxxxxxxxx>

--Kosta


On Tue, Jan 7, 2025 at 12:54 PM Ricardo Ribalda <ribalda@xxxxxxxxxxxx> wrote:
>
> We have not been able to find the relevant datahsheet, but it seems rare
> that the device will have a sampling frequency over 613MHz.
>
> Nonetheless, this patch does not introduce any change in behaviour, it
> just adds a comment to make explicit the current limit: div by 32 bits.
>
> Found by cocci:
> drivers/media/dvb-frontends/tda10048.c:345:1-7: WARNING: do_div() does a 64-by-32 division, please consider using div64_u64 instead.
>
> Signed-off-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx>
> ---
>  drivers/media/dvb-frontends/tda10048.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/dvb-frontends/tda10048.c b/drivers/media/dvb-frontends/tda10048.c
> index 3e725cdcc66b..1886f733dbbf 100644
> --- a/drivers/media/dvb-frontends/tda10048.c
> +++ b/drivers/media/dvb-frontends/tda10048.c
> @@ -328,7 +328,8 @@ static int tda10048_set_wref(struct dvb_frontend *fe, u32 sample_freq_hz,
>                              u32 bw)
>  {
>         struct tda10048_state *state = fe->demodulator_priv;
> -       u64 t, z;
> +       u32 z;
> +       u64 t;
>
>         dprintk(1, "%s()\n", __func__);
>
> @@ -341,6 +342,7 @@ static int tda10048_set_wref(struct dvb_frontend *fe, u32 sample_freq_hz,
>         /* t *= 2147483648 on 32bit platforms */
>         t *= (2048 * 1024);
>         t *= 1024;
> +       /* Sample frequency is under 613MHz */
>         z = 7 * sample_freq_hz;
>         do_div(t, z);
>         t += 5;
>
> --
> 2.47.1.613.gc27f4b7a9f-goog
>
>





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux