aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/platform
diff options
context:
space:
mode:
authorMathias Krause <minipli@googlemail.com>2014-07-16 13:43:04 -0400
committerMatthew Garrett <matthew.garrett@nebula.com>2014-08-16 04:23:52 -0400
commit76d51dd9a07abcfaf1e3fe67a9656238a89b771f (patch)
tree1761d5831576141ed8d4acaa897303ac7de776a0 /drivers/platform
parent55d1e9d83dd7ba3a6f28241dfac90f07af10d4f4 (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.c41
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
295static struct quirk_entry *quirks; 295static struct quirk_entry *quirks;
296 296
297static void set_quirks(void) 297static 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
309static int dmi_matched(const struct dmi_system_id *dmi) 309static 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 */
340static struct dmi_system_id acer_blacklist[] = { 340static 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
358static struct dmi_system_id acer_quirks[] = { 358static 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
533static int video_set_backlight_video_vendor(const struct dmi_system_id *d) 533static int __init
534video_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
540static const struct dmi_system_id video_vendor_dmi_table[] = { 541static 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 */
585static void find_quirks(void) 586static 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
752static acpi_status AMW0_find_mailled(void) 753static 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
784static int AMW0_set_cap_acpi_check_device_found; 785static int AMW0_set_cap_acpi_check_device_found __initdata;
785 786
786static acpi_status AMW0_set_cap_acpi_check_device_cb(acpi_handle handle, 787static 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
793static const struct acpi_device_id norfkill_ids[] = { 794static 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
801static int AMW0_set_cap_acpi_check_device(void) 802static 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
811static acpi_status AMW0_set_capabilities(void) 812static 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
1187static void type_aa_dmi_decode(const struct dmi_header *header, void *dummy) 1188static 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
1212static acpi_status WMID_set_capabilities(void) 1213static 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
1780static acpi_status 1781static acpi_status __init
1781wmid3_set_lm_mode(struct lm_input_params *params, 1782wmid3_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
1814static int acer_wmi_enable_ec_raw(void) 1815static 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
1837static int acer_wmi_enable_lm(void) 1838static 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
2128static int create_sysfs(void) 2129static 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
2157static int create_debugfs(void) 2158static 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) {