Re: [PATCH] PM / OPP: predictable fail results for opp_find* functions

From: MyungJoo Ham
Date: Wed Oct 17 2012 - 22:30:04 EST


> Currently the opp_find* functions return -ENODEV when:
> a) it cant find a device (e.g. request for an OPP search on device
> which was not registered)
> b) When it cant find a match for the search strategy used
>
> This makes life a little in-efficient for users such as devfreq
> to make reasonable judgement before switching search strategies.
>
> So, standardize the return results as following:
> -EINVAL for bad pointer parameters
> -ENODEV when device cannot be found
> -ERANGE when search fails
>
> This has the following benefit for devfreq implementation:
>
> Current code:
> opp = opp_find_freq_floor(dev, freq);
> /* Following search triggers even for un-registered device */
> if (opp == ERR_PTR(-ENODEV))
> opp = opp_find_freq_ceil(dev, freq);
>
> Vs (after this change):
> opp = opp_find_freq_floor(dev, freq);
> /* Will only be triggered if search logic fails: intended usage */
> if (opp == ERR_PTR(-ERANGE))
> opp = opp_find_freq_ceil(dev, freq);
>
> Cc: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
> Cc: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>
> Cc: "Rafael J. Wysocki" <rjw@xxxxxxx>
> Cc: Kevin Hilman <khilman@xxxxxx>
> Cc: linux-pm@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
>
> Signed-off-by: Nishanth Menon <nm@xxxxxx>

Thanks.


Acked-by: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>


>
翁{.n+돴윯돪+%듚lzwm낂b앸㎠咽rzX㎉w{ay뉅숇,j?f"h뗠zwⅱ ◁j:+v돣wjm묎zZ+껠듶j"얎!iO뺞zv^m操 n듺Y&