i2c_set_clientdata

来源:互联网 发布:ubuntu交叉编译环境 编辑:程序博客网 时间:2024/04/28 05:52

分析ak4951_amb.c驱动程序,在probe函数中遇到i2c_set_clientdata函数,一开始我只是根据函数名去

理解该函数的意义,即设置i2c客户端的私有数据。其实从函数名这么理解我至少认为是理解正确的,我现在

在这里深入研究一下,是否根据函数名理解的该函数正确?还有就是搞清楚函数内部是怎样实现的

static inline void i2c_set_clientdata(struct i2c_client *dev, void *data)
{
dev_set_drvdata(&dev->dev, data);
}


int dev_set_drvdata(struct device *dev, void *data)
{
。。。。

。。。

。。


dev->p->driver_data = data;
return 0;
}

int device_private_init(struct device *dev)
{
dev->p = kzalloc(sizeof(*dev->p), GFP_KERNEL);
if (!dev->p)
return -ENOMEM;
dev->p->device = dev;
。。。

。。


return 0;
}

0 0
原创粉丝点击