Re: [PATCH v3 01/34] clk_ops: change round_rate() to return unsigned long
From: Mauro Carvalho Chehab
Date: Wed Jan 03 2018 - 05:08:04 EST
Em Mon, 1 Jan 2018 19:42:40 +0000
Bryan O'Donoghue <pure.logic@xxxxxxxxxxxxxxxxx> escreveu:
> Right now it is not possible to return a value larger than LONG_MAX on 32
> bit systems. You can pass a rate of ULONG_MAX but can't return anything
> past LONG_MAX due to the fact both the rounded_rate and negative error
> codes are represented in the return value of round_rate().
>
> Most implementations either return zero on error or don't return error
> codes at all. A minority of implementations do return a negative number -
> typically -EINVAL or -ENODEV.
>
> At the higher level then callers of round_rate() typically and rightly
> check for a value of <= 0.
>
> It is possible then to convert round_rate() to an unsigned long return
> value and change error code indication for the minority from -ERRORCODE to
> a simple 0.
>
> This patch is the first step in making it possible to scale round_rate past
> LONG_MAX, later patches will change the previously mentioned minority of
> round_rate() implementations to return zero only on error if those
> implementations currently return a negative error number. Implementations
> that do not return an error code of < 0 will be left as-is.
>
> drivers/media/platform/omap3isp/isp.c | 4 ++--
Acked-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx>
Thanks,
Mauro