[PATCH 1/4] Framework for exporting System-on-Chip information via sysfs
Lee Jones
lee.jones at linaro.org
Wed Aug 24 10:08:42 EDT 2011
Hi Jamie,
Thanks for reviewing this for me.
Most of your comments I've adhered to, but I do have a question inline.
>> + return ret;
>> +}
>> +
>> +int __init soc_device_register(struct device *soc_parent,
>> + struct soc_device *soc_dev)
>> +{
>> + int ret;
>> +
>> + spin_lock_irq(®ister_lock);
>> +
>> + if (!soc_count) {
>> + /* Register top-level SoC device '/sys/devices/soc' */
>> + ret = device_register(&soc_grandparent);
>> + if (ret)
>> + {
>> + spin_unlock_irq(®ister_lock);
>> + return ret;
>> + }
>> + }
>> +
>> + soc_count++;
>> + soc_parent->parent = &soc_grandparent;
>> + dev_set_name(soc_parent, "%i", soc_count);
>> + soc_parent->platform_data = soc_dev;
>
> I don't think platform_data is the right place for this.
I agree with you, but I was unsure how else to get the data back.
> It's not clear
> what soc_parent and soc_dev do here as soc_dev never gets registered.
>
> Should this be:
>
> soc_dev->parent = &soc_grandparent;
> dev_set_name(soc_dev, "%i", soc_count);
> device_register(soc_dev);
AFAIK soc_dev can't be registered. It's just a container which holds
each SoW's information to be exported in the way of const char *'s.
struct soc_device {
struct device dev;
const char *machine;
const char *family;
const char *soc_id;
const char *revision;
};
I don't believe that the "struct device dev;" is required either, but
this is something I was advised to put in.
Can you think of a better way to store these values other than in
platform_data then?
> and drop soc_parent and add the files to soc_device? In soc_info_get(),
> you could then do:
>
> struct soc_device *soc = container_of(dev, struct soc_device, dev);
>
>> + spin_unlock_irq(®ister_lock);
>> +
>> + ret = device_register(soc_parent);
>> + if (ret)
>> + return ret;
>> +
>> + soc_device_create_files(soc_parent);
>> +
>> + return ret;
>> +}
Kind regards,
Lee
More information about the linux-arm-kernel
mailing list