[U-Boot] [PATCH v3 1/6] dm: cpu: Add a new get_count method to cpu uclass

Bin Meng bmeng.cn at gmail.com
Tue Jun 16 02:19:19 CEST 2015


Hi Simon,

On Tue, Jun 16, 2015 at 4:45 AM, Simon Glass <sjg at chromium.org> wrote:
> Hi Bin,
>
> On 13 June 2015 at 04:11, Bin Meng <bmeng.cn at gmail.com> wrote:
>>
>> Introduce a new method 'get_count' in the UCLASS_CPU ops to get
>> the number of CPUs in the system.
>>
>> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
>>
>> ---
>>
>> Changes in v3:
>> - Drop patches already applied and rebase on u-boot-x86/master
>> - New patch to add a new get_count method to cpu uclass
>>
>> Changes in v2: None
>>
>>  drivers/cpu/cpu-uclass.c | 10 ++++++++++
>>  include/cpu.h            | 18 ++++++++++++++++++
>>  2 files changed, 28 insertions(+)
>>
>> diff --git a/drivers/cpu/cpu-uclass.c b/drivers/cpu/cpu-uclass.c
>> index d6be9d4..8efb17c 100644
>> --- a/drivers/cpu/cpu-uclass.c
>> +++ b/drivers/cpu/cpu-uclass.c
>> @@ -32,6 +32,16 @@ int cpu_get_info(struct udevice *dev, struct cpu_info *info)
>>         return ops->get_info(dev, info);
>>  }
>>
>> +int cpu_get_count(struct udevice *dev, int *count)
>
> Can we please return count and avoid the 'count' parameter? We can use
> -ve for errors.
>

Yes, but I was wondering that if it looks inconsistent to other two
cpu ops? (or maybe other dm driver ops?)

>> +{
>> +       struct cpu_ops *ops = cpu_get_ops(dev);
>> +
>> +       if (!ops->get_count)
>> +               return -ENOSYS;
>> +
>> +       return ops->get_count(dev, count);
>> +}
>> +
>>  U_BOOT_DRIVER(cpu_bus) = {
>>         .name   = "cpu_bus",
>>         .id     = UCLASS_SIMPLE_BUS,
>> diff --git a/include/cpu.h b/include/cpu.h
>> index 34c60bc..6fd735d 100644
>> --- a/include/cpu.h
>> +++ b/include/cpu.h
>> @@ -58,6 +58,15 @@ struct cpu_ops {
>>          * @return 0 if OK, -ve on error
>>          */
>>         int (*get_info)(struct udevice *dev, struct cpu_info *info);
>> +
>> +       /**
>> +        * get_count() - Get number of CPUs
>> +        *
>> +        * @dev:        Device to check (UCLASS_CPU)
>> +        * @count:      Returns CPU count
>> +        * @return 0 if OK, -ve on error
>> +        */
>> +       int (*get_count)(struct udevice *dev, int *count);
>>  };
>>
>>  #define cpu_get_ops(dev)        ((struct cpu_ops *)(dev)->driver->ops)
>> @@ -81,4 +90,13 @@ int cpu_get_desc(struct udevice *dev, char *buf, int size);
>>   */
>>  int cpu_get_info(struct udevice *dev, struct cpu_info *info);
>>
>> +/**
>> + * cpu_get_count() - Get number of CPUs
>> + *
>> + * @dev:       Device to check (UCLASS_CPU)
>> + * @count:     Returns CPU count
>> + * @return 0 if OK, -ve on error
>> + */
>> +int cpu_get_count(struct udevice *dev, int *count);
>> +
>>  #endif
>> --

Regards,
Bin


More information about the U-Boot mailing list