having trouble getting device from kobject
Christopher Harvey
chris at basementcode.com
Thu Oct 25 11:22:31 EDT 2012
I added an entry to a sysfs device (drivers/mtd/nand/omap2.c) like
this:
static int __devinit omap_nand_probe(struct platform_device *pdev)
{
...
...
ret = sysfs_create_group(&pdev->dev.kobj, &ef_group);
if (ret) {
err = -ENOMEM;
goto out_free_info;
}
...
...
}
that works, I get the following files:
/sys/devices/platform/omap2-nand.0/0xEF/set
/sys/devices/platform/omap2-nand.0/0xEF/unset
(I added the 0xEF directory and the set and unset files)
then in the store function of one of the attributes I do this, in an
attempt to get the original pdev back:
static ssize_t EF_set_store(struct kobject *kobj, struct kobj_attribute
*attr,
const char *buf, size_t count)
{
struct kobject *nand_kobj = kobj->parent;
struct device *dev = container_of(nand_kobj, struct device, kobj);
struct platform_device *pdev = container_of(dev, struct
platform_device, dev);
printk(KERN_ALERT "pdev is 0x%x\n", (unsigned int)pdev);
return count;
}
but I'm not getting the same address back. Not sure why.
thanks,
Chris
More information about the Kernelnewbies
mailing list