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.
Unified · Split
| @@ -217,7 +217,6 @@ int platform_device_add_data(struct platform_device *pdev, const void *data, · 216 unmodified lines | ||
| 217 | 217 | if (d) { |
| 218 | 218 | memcpy(d, data, size); |
| 219 | 219 | pdev->dev.platform_data = d; |
| 220 | − pdev->platform_data = d; | |
| 221 | 220 | } |
| 222 | 221 | return d ? 0 : -ENOMEM; |
| 223 | 222 | } |
| @@ -247,8 +246,6 @@ int platform_device_add(struct platform_device *pdev) · 23 unmodified lines | ||
| 247 | 246 | else |
| 248 | 247 | dev_set_name(&pdev->dev, pdev->name); |
| 249 | 248 | |
| 250 | − pdev->platform_data = pdev->dev.platform_data; | |
| 251 | − | |
| 252 | 249 | for (i = 0; i < pdev->num_resources; i++) { |
| 253 | 250 | struct resource *p, *r = &pdev->resource[i]; |
| 254 | 251 | |
| @@ -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 | }; |