Ohad Ben-Cohen | 61ee700 | 2010-09-16 01:31:12 +0200 | [diff] [blame] | 1 | #include <linux/module.h> |
| 2 | #include <linux/err.h> |
| 3 | #include <linux/wl12xx.h> |
| 4 | |
| 5 | static const struct wl12xx_platform_data *platform_data; |
| 6 | |
| 7 | int __init wl12xx_set_platform_data(const struct wl12xx_platform_data *data) |
| 8 | { |
| 9 | if (platform_data) |
| 10 | return -EBUSY; |
| 11 | if (!data) |
| 12 | return -EINVAL; |
| 13 | |
| 14 | platform_data = kmemdup(data, sizeof(*data), GFP_KERNEL); |
| 15 | if (!platform_data) |
| 16 | return -ENOMEM; |
| 17 | |
| 18 | return 0; |
| 19 | } |
| 20 | |
| 21 | const struct wl12xx_platform_data *wl12xx_get_platform_data(void) |
| 22 | { |
| 23 | if (!platform_data) |
| 24 | return ERR_PTR(-ENODEV); |
| 25 | |
| 26 | return platform_data; |
| 27 | } |
| 28 | EXPORT_SYMBOL(wl12xx_get_platform_data); |