[U-Boot] [PATCH 07/16] timer: Support tracing fully

Simon Glass sjg at chromium.org
Tue Feb 23 07:37:50 CET 2016


Hi Bin,

On 16 February 2016 at 02:21, Bin Meng <bmeng.cn at gmail.com> wrote:
> Hi Simon,
>
> On Mon, Feb 15, 2016 at 9:36 AM, Simon Glass <sjg at chromium.org> wrote:
>> A few of the functions in the timer uclass are not marked with 'notrace'. Fix
>> this so that tracing can be used with CONFIG_TRACE.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> ---
>>
>>  drivers/timer/timer-uclass.c | 6 +++---
>>  1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/timer/timer-uclass.c b/drivers/timer/timer-uclass.c
>> index 83d1a35..382c0f2 100644
>> --- a/drivers/timer/timer-uclass.c
>> +++ b/drivers/timer/timer-uclass.c
>> @@ -22,7 +22,7 @@ DECLARE_GLOBAL_DATA_PTR;
>>   * tick, and no timer interrupt.
>>   */
>>
>> -int timer_get_count(struct udevice *dev, u64 *count)
>> +int notrace timer_get_count(struct udevice *dev, u64 *count)
>>  {
>>         const struct timer_ops *ops = device_get_ops(dev);
>>
>> @@ -32,9 +32,9 @@ int timer_get_count(struct udevice *dev, u64 *count)
>>         return ops->get_count(dev, count);
>
> Besides making timer_get_count() and timer_get_rate() APIs notrace,
> does it help to make the timer uclass ops notrace as well?

I don't think so. From what I can this needs to be done in each driver.

>
>>  }
>>
>> -unsigned long timer_get_rate(struct udevice *dev)
>> +unsigned long notrace timer_get_rate(struct udevice *dev)
>>  {
>> -       struct timer_dev_priv *uc_priv = dev_get_uclass_priv(dev);
>> +       struct timer_dev_priv *uc_priv = dev->uclass_priv;
>
> Why is this change needed?

To avoid a function call, and the notrace problem.

>
>>
>>         return uc_priv->clock_rate;
>>  }
>> --
>
> Regards,
> Bin

Regards,
Simon


More information about the U-Boot mailing list