[U-Boot] [PATCH] video, ipu: make ldb clock frequenz overwriteable through board code

Eric Nelson eric.nelson at boundarydevices.com
Fri Apr 17 17:53:10 CEST 2015


Hi Heiko,

On 04/17/2015 12:53 AM, Heiko Schocher wrote:

>>> +int ipu_set_ldb_clock(int rate);
>>>   #endif
>>> diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c
>>> index 1a209d4..dc054bc 100644
>>> --- a/drivers/video/ipu_common.c
>>> +++ b/drivers/video/ipu_common.c
>>> @@ -1198,3 +1198,14 @@ ipu_color_space_t
>>> format_to_colorspace(uint32_t fmt)
>>>       }
>>>       return RGB;
>>>   }
>>> +
>>> +/* should removed when clk framework is availiable */
>>> +int ipu_set_ldb_clock(int rate)
>>> +{
>>
>> This forces a tight dependency on when this is called that
>> using ldb_clk directly would prevent.
> 
> Sorry, did not understand you here ...
> 

The variable g_ldb is initialized in ipu_probe(), so this routine
must be called at a very particular time.

You must have noticed it, since you put in a check for NULL.

>>> +    if (g_ldb_clk == NULL)
>>> +        return -ENOENT;
>>> +

If you replace this with ldb_clk.rate, the dependency goes
away.

>>> +    g_ldb_clk->rate = rate;
>>> +
>>> +    return 0;
>>> +}
>>>

Separately, I don't see any reason not to have g_ldb_clk
statically initialized... i.e.

struct clk *g_ldb_clk = &ldb_clk;




More information about the U-Boot mailing list