diff options
author | Mathias Krause <minipli@googlemail.com> | 2014-07-16 13:43:04 -0400 |
---|---|---|
committer | Matthew Garrett <matthew.garrett@nebula.com> | 2014-08-16 04:23:52 -0400 |
commit | 76d51dd9a07abcfaf1e3fe67a9656238a89b771f (patch) | |
tree | 1761d5831576141ed8d4acaa897303ac7de776a0 /drivers/platform | |
parent | 55d1e9d83dd7ba3a6f28241dfac90f07af10d4f4 (diff) |
acer-wmi: Mark init data and code as such
Quite a lot of code and data of acer-wmi.c is only ever used during
initialization. Mark those accordingly -- and constify, where
appropriate -- so the memory can be released afterwards.
All in all those changes move ~10 kB of code and data to the .init
sections, marking them for release after initialization has finished.
Signed-off-by: Mathias Krause <minipli@googlemail.com>
Cc: "Lee, Chun-Yi" <jlee@suse.com>
Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
Diffstat (limited to 'drivers/platform')
-rw-r--r-- | drivers/platform/x86/acer-wmi.c | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index 0eecf9245d8c..0d18c23d669c 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c | |||
@@ -294,7 +294,7 @@ struct quirk_entry { | |||
294 | 294 | ||
295 | static struct quirk_entry *quirks; | 295 | static struct quirk_entry *quirks; |
296 | 296 | ||
297 | static void set_quirks(void) | 297 | static void __init set_quirks(void) |
298 | { | 298 | { |
299 | if (!interface) | 299 | if (!interface) |
300 | return; | 300 | return; |
@@ -306,7 +306,7 @@ static void set_quirks(void) | |||
306 | interface->capability |= ACER_CAP_BRIGHTNESS; | 306 | interface->capability |= ACER_CAP_BRIGHTNESS; |
307 | } | 307 | } |
308 | 308 | ||
309 | static int dmi_matched(const struct dmi_system_id *dmi) | 309 | static int __init dmi_matched(const struct dmi_system_id *dmi) |
310 | { | 310 | { |
311 | quirks = dmi->driver_data; | 311 | quirks = dmi->driver_data; |
312 | return 1; | 312 | return 1; |
@@ -337,7 +337,7 @@ static struct quirk_entry quirk_lenovo_ideapad_s205 = { | |||
337 | }; | 337 | }; |
338 | 338 | ||
339 | /* The Aspire One has a dummy ACPI-WMI interface - disable it */ | 339 | /* The Aspire One has a dummy ACPI-WMI interface - disable it */ |
340 | static struct dmi_system_id acer_blacklist[] = { | 340 | static const struct dmi_system_id acer_blacklist[] __initconst = { |
341 | { | 341 | { |
342 | .ident = "Acer Aspire One (SSD)", | 342 | .ident = "Acer Aspire One (SSD)", |
343 | .matches = { | 343 | .matches = { |
@@ -355,7 +355,7 @@ static struct dmi_system_id acer_blacklist[] = { | |||
355 | {} | 355 | {} |
356 | }; | 356 | }; |
357 | 357 | ||
358 | static struct dmi_system_id acer_quirks[] = { | 358 | static const struct dmi_system_id acer_quirks[] __initconst = { |
359 | { | 359 | { |
360 | .callback = dmi_matched, | 360 | .callback = dmi_matched, |
361 | .ident = "Acer Aspire 1360", | 361 | .ident = "Acer Aspire 1360", |
@@ -530,14 +530,15 @@ static struct dmi_system_id acer_quirks[] = { | |||
530 | {} | 530 | {} |
531 | }; | 531 | }; |
532 | 532 | ||
533 | static int video_set_backlight_video_vendor(const struct dmi_system_id *d) | 533 | static int __init |
534 | video_set_backlight_video_vendor(const struct dmi_system_id *d) | ||
534 | { | 535 | { |
535 | interface->capability &= ~ACER_CAP_BRIGHTNESS; | 536 | interface->capability &= ~ACER_CAP_BRIGHTNESS; |
536 | pr_info("Brightness must be controlled by generic video driver\n"); | 537 | pr_info("Brightness must be controlled by generic video driver\n"); |
537 | return 0; | 538 | return 0; |
538 | } | 539 | } |
539 | 540 | ||
540 | static const struct dmi_system_id video_vendor_dmi_table[] = { | 541 | static const struct dmi_system_id video_vendor_dmi_table[] __initconst = { |
541 | { | 542 | { |
542 | .callback = video_set_backlight_video_vendor, | 543 | .callback = video_set_backlight_video_vendor, |
543 | .ident = "Acer TravelMate 4750", | 544 | .ident = "Acer TravelMate 4750", |
@@ -582,7 +583,7 @@ static const struct dmi_system_id video_vendor_dmi_table[] = { | |||
582 | }; | 583 | }; |
583 | 584 | ||
584 | /* Find which quirks are needed for a particular vendor/ model pair */ | 585 | /* Find which quirks are needed for a particular vendor/ model pair */ |
585 | static void find_quirks(void) | 586 | static void __init find_quirks(void) |
586 | { | 587 | { |
587 | if (!force_series) { | 588 | if (!force_series) { |
588 | dmi_check_system(acer_quirks); | 589 | dmi_check_system(acer_quirks); |
@@ -749,7 +750,7 @@ static acpi_status AMW0_set_u32(u32 value, u32 cap) | |||
749 | return wmab_execute(&args, NULL); | 750 | return wmab_execute(&args, NULL); |
750 | } | 751 | } |
751 | 752 | ||
752 | static acpi_status AMW0_find_mailled(void) | 753 | static acpi_status __init AMW0_find_mailled(void) |
753 | { | 754 | { |
754 | struct wmab_args args; | 755 | struct wmab_args args; |
755 | struct wmab_ret ret; | 756 | struct wmab_ret ret; |
@@ -781,16 +782,16 @@ static acpi_status AMW0_find_mailled(void) | |||
781 | return AE_OK; | 782 | return AE_OK; |
782 | } | 783 | } |
783 | 784 | ||
784 | static int AMW0_set_cap_acpi_check_device_found; | 785 | static int AMW0_set_cap_acpi_check_device_found __initdata; |
785 | 786 | ||
786 | static acpi_status AMW0_set_cap_acpi_check_device_cb(acpi_handle handle, | 787 | static acpi_status __init AMW0_set_cap_acpi_check_device_cb(acpi_handle handle, |
787 | u32 level, void *context, void **retval) | 788 | u32 level, void *context, void **retval) |
788 | { | 789 | { |
789 | AMW0_set_cap_acpi_check_device_found = 1; | 790 | AMW0_set_cap_acpi_check_device_found = 1; |
790 | return AE_OK; | 791 | return AE_OK; |
791 | } | 792 | } |
792 | 793 | ||
793 | static const struct acpi_device_id norfkill_ids[] = { | 794 | static const struct acpi_device_id norfkill_ids[] __initconst = { |
794 | { "VPC2004", 0}, | 795 | { "VPC2004", 0}, |
795 | { "IBM0068", 0}, | 796 | { "IBM0068", 0}, |
796 | { "LEN0068", 0}, | 797 | { "LEN0068", 0}, |
@@ -798,7 +799,7 @@ static const struct acpi_device_id norfkill_ids[] = { | |||
798 | { "", 0}, | 799 | { "", 0}, |
799 | }; | 800 | }; |
800 | 801 | ||
801 | static int AMW0_set_cap_acpi_check_device(void) | 802 | static int __init AMW0_set_cap_acpi_check_device(void) |
802 | { | 803 | { |
803 | const struct acpi_device_id *id; | 804 | const struct acpi_device_id *id; |
804 | 805 | ||
@@ -808,7 +809,7 @@ static int AMW0_set_cap_acpi_check_device(void) | |||
808 | return AMW0_set_cap_acpi_check_device_found; | 809 | return AMW0_set_cap_acpi_check_device_found; |
809 | } | 810 | } |
810 | 811 | ||
811 | static acpi_status AMW0_set_capabilities(void) | 812 | static acpi_status __init AMW0_set_capabilities(void) |
812 | { | 813 | { |
813 | struct wmab_args args; | 814 | struct wmab_args args; |
814 | struct wmab_ret ret; | 815 | struct wmab_ret ret; |
@@ -1184,7 +1185,7 @@ static acpi_status wmid_v2_set_u32(u32 value, u32 cap) | |||
1184 | return wmid3_set_device_status(value, device); | 1185 | return wmid3_set_device_status(value, device); |
1185 | } | 1186 | } |
1186 | 1187 | ||
1187 | static void type_aa_dmi_decode(const struct dmi_header *header, void *dummy) | 1188 | static void __init type_aa_dmi_decode(const struct dmi_header *header, void *d) |
1188 | { | 1189 | { |
1189 | struct hotkey_function_type_aa *type_aa; | 1190 | struct hotkey_function_type_aa *type_aa; |
1190 | 1191 | ||
@@ -1209,7 +1210,7 @@ static void type_aa_dmi_decode(const struct dmi_header *header, void *dummy) | |||
1209 | commun_fn_key_number = type_aa->commun_fn_key_number; | 1210 | commun_fn_key_number = type_aa->commun_fn_key_number; |
1210 | } | 1211 | } |
1211 | 1212 | ||
1212 | static acpi_status WMID_set_capabilities(void) | 1213 | static acpi_status __init WMID_set_capabilities(void) |
1213 | { | 1214 | { |
1214 | struct acpi_buffer out = {ACPI_ALLOCATE_BUFFER, NULL}; | 1215 | struct acpi_buffer out = {ACPI_ALLOCATE_BUFFER, NULL}; |
1215 | union acpi_object *obj; | 1216 | union acpi_object *obj; |
@@ -1777,7 +1778,7 @@ static void acer_wmi_notify(u32 value, void *context) | |||
1777 | } | 1778 | } |
1778 | } | 1779 | } |
1779 | 1780 | ||
1780 | static acpi_status | 1781 | static acpi_status __init |
1781 | wmid3_set_lm_mode(struct lm_input_params *params, | 1782 | wmid3_set_lm_mode(struct lm_input_params *params, |
1782 | struct lm_return_value *return_value) | 1783 | struct lm_return_value *return_value) |
1783 | { | 1784 | { |
@@ -1811,7 +1812,7 @@ wmid3_set_lm_mode(struct lm_input_params *params, | |||
1811 | return status; | 1812 | return status; |
1812 | } | 1813 | } |
1813 | 1814 | ||
1814 | static int acer_wmi_enable_ec_raw(void) | 1815 | static int __init acer_wmi_enable_ec_raw(void) |
1815 | { | 1816 | { |
1816 | struct lm_return_value return_value; | 1817 | struct lm_return_value return_value; |
1817 | acpi_status status; | 1818 | acpi_status status; |
@@ -1834,7 +1835,7 @@ static int acer_wmi_enable_ec_raw(void) | |||
1834 | return status; | 1835 | return status; |
1835 | } | 1836 | } |
1836 | 1837 | ||
1837 | static int acer_wmi_enable_lm(void) | 1838 | static int __init acer_wmi_enable_lm(void) |
1838 | { | 1839 | { |
1839 | struct lm_return_value return_value; | 1840 | struct lm_return_value return_value; |
1840 | acpi_status status; | 1841 | acpi_status status; |
@@ -2125,7 +2126,7 @@ static int remove_sysfs(struct platform_device *device) | |||
2125 | return 0; | 2126 | return 0; |
2126 | } | 2127 | } |
2127 | 2128 | ||
2128 | static int create_sysfs(void) | 2129 | static int __init create_sysfs(void) |
2129 | { | 2130 | { |
2130 | int retval = -ENOMEM; | 2131 | int retval = -ENOMEM; |
2131 | 2132 | ||
@@ -2154,7 +2155,7 @@ static void remove_debugfs(void) | |||
2154 | debugfs_remove(interface->debug.root); | 2155 | debugfs_remove(interface->debug.root); |
2155 | } | 2156 | } |
2156 | 2157 | ||
2157 | static int create_debugfs(void) | 2158 | static int __init create_debugfs(void) |
2158 | { | 2159 | { |
2159 | interface->debug.root = debugfs_create_dir("acer-wmi", NULL); | 2160 | interface->debug.root = debugfs_create_dir("acer-wmi", NULL); |
2160 | if (!interface->debug.root) { | 2161 | if (!interface->debug.root) { |