This reverts commit 006f4571a15fae3a0575f2a0f9e9b63b3d1012f8: This patch moves platform_data from struct device into struct platform_device, based on the two ideas: 1. Now all platform_driver is registered by platform_driver_register, which makes probe()/release()/... of platform_driver passed parameter of platform_device *, so platform driver can get platform_data from platform_device; 2. Other kind of devices do not need to use platform_data, we can decrease size of device if moving it to platform_device. Taking into consideration of thousands of files to be fixed and they can't be finished in one night(maybe it will take a long time), so we keep platform_data in device to allow two kind of cases coexist until all platform devices pass its platfrom data from platform_device->platform_data. All patches to do this kind of conversion are welcome. As we don't really want to do it, it was a bad idea.
Showing the changes to include/linux (2 of 3 files). Show all
Unified · Split
| @@ -384,13 +384,8 @@ struct device { · 383 unmodified lines | ||
| 384 | 384 | struct device_driver *driver; /* which driver has allocated this |
| 385 | 385 | device */ |
| 386 | 386 | void *driver_data; /* data private to the driver */ |
| 387 | − | |
| 388 | − void *platform_data; /* We will remove platform_data | |
| 389 | − field if all platform devices | |
| 390 | − pass its platform specific data | |
| 391 | − from platform_device->platform_data, | |
| 392 | − other kind of devices should not | |
| 393 | − use platform_data. */ | |
| 387 | + void *platform_data; /* Platform specific data, device | |
| 388 | + core doesn't touch it */ | |
| 394 | 389 | struct dev_pm_info power; |
| 395 | 390 | |
| 396 | 391 | #ifdef CONFIG_NUMA |
| @@ -20,7 +20,6 @@ struct platform_device { · 19 unmodified lines | ||
| 20 | 20 | struct device dev; |
| 21 | 21 | u32 num_resources; |
| 22 | 22 | struct resource * resource; |
| 23 | − void *platform_data; | |
| 24 | 23 | |
| 25 | 24 | struct platform_device_id *id_entry; |
| 26 | 25 | }; |