void platform_set_drvdata(struct platform_device *pdev, void *data); ``` 该函数有两个参数: - `pdev`:指向要设置私有数据的平台设备的指针。 - `data`:指向要与该平台设备关联的私有数据的指针。 调用该函数后,可以使用 `platform_get_drvdata` 函数来获取与平台设备相关联的私有数据。 例如,以下代码...
static inline void *platform_get_drvdata(const struct platform_device *pdev) { return dev_get_drvdata(&pdev->dev); }static inline void platform_set_drvdata(struct platform_device *pdev, void *data) { dev_set_drvdata(&pdev->dev, data); } static inline void dev_set_drvdata (struct...
static__devinitintwm831x_boostp_probe(struct platform_device *pdev){structwm831x*wm831x=dev_get_drvdata(pdev->dev.parent);structwm831x_pdata*pdata=wm831x->dev->platform_data;intid = pdev->id % ARRAY_SIZE(pdata->dcdc);structwm831x_dcdc*dcdc;structresource*res;intret, irq; dev...
tavarua_pdata = pdev->dev.platform_data; radio->pdata = tavarua_pdata; radio->dev = &pdev->dev; platform_set_drvdata(pdev, radio); /* video device allocation */ radio->videodev = video_device_alloc(); if (!radio->videodev) goto err_radio; /* initial configuration */ memcpy(...
就是吧data赋值给dev->driver_data,pdev是平台总线设备,对于整个驱动是可见的,所以可以通过platform_get_drvdata来获取data。 marvell sd驱动eg: chip是在probe函数中定义的局部变量,如果想在其他地方使用它怎么办呢? 这就需要把它保存起来。内核提供了这个方法,使用函数platform_set_drvdata()可以将chip保存成平台...
staticint__devinitdm9000_probe(struct platform_device*pdev) { struct dm9000_plat_data*pdata=pdev->dev.platform_data; struct board_info*db;/*Point a board information structure*/ struct net_device*ndev; constunsigned char*mac_src; intret=0; ...
/* /drivers/base/dd.c */intdev_set_drvdata(struct device*dev,void*data){int error;if(!dev->p){error=device_private_init(dev);if(error)returnerror;}dev->p->driver_data=data;return0;} /* /linux/device.h */struct device{struct device*parent;struct device_private*p;struct kobject ko...
input_unregister_device(tsdev->input); kfree(tsdev); - platform_set_drvdata(pdev, NULL); - return 0; } -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majord...@vger.kernel.org ...
- platform_set_drvdata(pdev, NULL); kfree(atmel_wm97xx); return ret; } @@ -386,7 +385,6 @@ static int __exit atmel_wm97xx_remove(struct platform_device *pdev) free_irq(atmel_wm97xx->ac97c_irq, atmel_wm97xx); del_timer_sync(&atmel_wm97xx->pen_timer); ...
如果有定义struct platform_device *pdev;那设备相关的信息会保存在pdev->dev.platform_data中。在驱动中的probe配置好的设备信息则是通过 platform_set_drvdata保存在pdev->dev->p->driver_data中,但是driver_data 已经封装在函数platform_set_drvdata和platform_get_drvdata中了。