summaryrefslogtreecommitdiffstats
path: root/drivers/platform/x86/panasonic-laptop.c
diff options
context:
space:
mode:
authorMichał Kępień <kernel@kempniu.pl>2017-03-09 13:11:47 +0100
committerDarren Hart <dvhart@infradead.org>2017-03-14 22:58:09 -0700
commitb09b9195b3722928918a5e612f7aec5719a061bb (patch)
tree6284c156232181362e251cfb268d47796a4aabe6 /drivers/platform/x86/panasonic-laptop.c
parent0788e3375ae33c5a175ba3d394b995d4fdc823b5 (diff)
downloadlinux-stable-b09b9195b3722928918a5e612f7aec5719a061bb.tar.gz
linux-stable-b09b9195b3722928918a5e612f7aec5719a061bb.tar.bz2
linux-stable-b09b9195b3722928918a5e612f7aec5719a061bb.zip
platform/x86: panasonic-laptop: remove sparse_keymap_free() calls
As sparse_keymap_setup() now uses a managed memory allocation for the keymap copy it creates, the latter is freed automatically. Remove all calls to sparse_keymap_free(). As this reduces acpi_pcc_destroy_input() to one line, replace all calls to that function with direct calls to input_unregister_device(). Signed-off-by: Michał Kępień <kernel@kempniu.pl> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Diffstat (limited to 'drivers/platform/x86/panasonic-laptop.c')
-rw-r--r--drivers/platform/x86/panasonic-laptop.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c
index 59b8eb626dcc..975f4e100dbd 100644
--- a/drivers/platform/x86/panasonic-laptop.c
+++ b/drivers/platform/x86/panasonic-laptop.c
@@ -520,29 +520,17 @@ static int acpi_pcc_init_input(struct pcc_acpi *pcc)
if (error) {
ACPI_DEBUG_PRINT((ACPI_DB_ERROR,
"Unable to register input device\n"));
- goto err_free_keymap;
+ goto err_free_dev;
}
pcc->input_dev = input_dev;
return 0;
- err_free_keymap:
- sparse_keymap_free(input_dev);
err_free_dev:
input_free_device(input_dev);
return error;
}
-static void acpi_pcc_destroy_input(struct pcc_acpi *pcc)
-{
- sparse_keymap_free(pcc->input_dev);
- input_unregister_device(pcc->input_dev);
- /*
- * No need to input_free_device() since core input API refcounts
- * and free()s the device.
- */
-}
-
/* kernel module interface */
#ifdef CONFIG_PM_SLEEP
@@ -640,7 +628,7 @@ static int acpi_pcc_hotkey_add(struct acpi_device *device)
out_backlight:
backlight_device_unregister(pcc->backlight);
out_input:
- acpi_pcc_destroy_input(pcc);
+ input_unregister_device(pcc->input_dev);
out_sinf:
kfree(pcc->sinf);
out_hotkey:
@@ -660,7 +648,7 @@ static int acpi_pcc_hotkey_remove(struct acpi_device *device)
backlight_device_unregister(pcc->backlight);
- acpi_pcc_destroy_input(pcc);
+ input_unregister_device(pcc->input_dev);
kfree(pcc->sinf);
kfree(pcc);