From patchwork Mon Mar 20 09:32:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?TWljaGHFgiBLxJlwaWXFhA==?= X-Patchwork-Id: 9634049 X-Patchwork-Delegate: dvhart@infradead.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 4B0E86020B for ; Mon, 20 Mar 2017 12:47:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3FA4127C05 for ; Mon, 20 Mar 2017 12:47:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3359727DC2; Mon, 20 Mar 2017 12:47:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_HI,RCVD_IN_SORBS_SPAM autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D1C9F27C05 for ; Mon, 20 Mar 2017 12:47:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754731AbdCTMri (ORCPT ); Mon, 20 Mar 2017 08:47:38 -0400 Received: from mail-lf0-f66.google.com ([209.85.215.66]:33243 "EHLO mail-lf0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753348AbdCTJcd (ORCPT ); Mon, 20 Mar 2017 05:32:33 -0400 Received: by mail-lf0-f66.google.com with SMTP id r36so9627194lfi.0 for ; Mon, 20 Mar 2017 02:32:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kempniu.pl; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Fto4t8OQVAEnkFm9psa8STQRuy+6IEnx8q3hsXJLmLE=; b=ZpZvHgTgbhX/Ib9DPsc6m0zFIByvDnO55zxuI+JJCHAkjGCYr851XTYuI6wuRUgSzl N6bD7Basi6b9JiDmhQXi/Q5KwpyB7qVXoAgwqBVQdNGTLdlQy6j2cGDyDNRMNLeEVtB5 TzbinVM1n+GxEd6VV6HKPhuKwLJPURpgfeHDQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Fto4t8OQVAEnkFm9psa8STQRuy+6IEnx8q3hsXJLmLE=; b=ET1CLzek87Zj2jUNjNTf18blV/fOlCWBmadYjtkI8tS2QY++LYXoVu7zhPzPXOC1wa +3nMXVCBKL0CKnaEo77sAN2N3Qg5NAFvc+xfD0+swfjE03MVlJbrBskQGpT9iQyiPs2X TlQtbCxWHLHhRzPhS+wQCs1yNj6i+sFknPx5I1JzZKHMHIklCpaz6fppR1O1zfDPzK2w E1IoSKq1QlvKoy7mRxx++VaNu21czNJRtGIjlVUexrWuzP26viYTQxroQpyhFKXndjOO NfjLpqAb2AA++/t5tWf0kR3eH52Qn3HFeUxCcDKjbluuQTKYWyMPg86PJLYZrlVd2zYI ZEsg== X-Gm-Message-State: AFeK/H36AzZXoXe5nYFpWlshwmigKze++RalvyaLALd8mKa9wMarT7CwYxP7/iCiofNOmg== X-Received: by 10.25.35.9 with SMTP id j9mr7408865lfj.62.1490002350844; Mon, 20 Mar 2017 02:32:30 -0700 (PDT) Received: from ozzy.nask.waw.pl ([2001:a10:160:3::3]) by smtp.googlemail.com with ESMTPSA id 4sm2918755ljf.33.2017.03.20.02.32.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Mar 2017 02:32:30 -0700 (PDT) From: =?UTF-8?q?Micha=C5=82=20K=C4=99pie=C5=84?= To: Jonathan Woithe , Darren Hart , Andy Shevchenko Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/8] platform/x86: fujitsu-laptop: switch to a managed hotkey input device Date: Mon, 20 Mar 2017 10:32:21 +0100 Message-Id: <20170320093224.18541-6-kernel@kempniu.pl> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170320093224.18541-1-kernel@kempniu.pl> References: <20170320093224.18541-1-kernel@kempniu.pl> MIME-Version: 1.0 Sender: platform-driver-x86-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: platform-driver-x86@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Use a managed input device for hotkey events in order to simplify two error paths and one cleanup function while also reducing the number of local variables required. Remove double assignment to make checkpatch happy. Signed-off-by: Michał Kępień --- drivers/platform/x86/fujitsu-laptop.c | 55 ++++++++++++----------------------- 1 file changed, 19 insertions(+), 36 deletions(-) diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c index b1a08d83330b..74da588ed871 100644 --- a/drivers/platform/x86/fujitsu-laptop.c +++ b/drivers/platform/x86/fujitsu-laptop.c @@ -759,41 +759,29 @@ static void acpi_fujitsu_bl_notify(struct acpi_device *device, u32 event) static int acpi_fujitsu_laptop_input_setup(struct acpi_device *device) { struct fujitsu_laptop *fujitsu_laptop = acpi_driver_data(device); - struct input_dev *input; - int error; - fujitsu_laptop->input = input = input_allocate_device(); - if (!input) + fujitsu_laptop->input = devm_input_allocate_device(&device->dev); + if (!fujitsu_laptop->input) return -ENOMEM; snprintf(fujitsu_laptop->phys, sizeof(fujitsu_laptop->phys), "%s/video/input0", acpi_device_hid(device)); - input->name = acpi_device_name(device); - input->phys = fujitsu_laptop->phys; - input->id.bustype = BUS_HOST; - input->id.product = 0x06; - input->dev.parent = &device->dev; - - set_bit(EV_KEY, input->evbit); - set_bit(fujitsu_bl->keycode1, input->keybit); - set_bit(fujitsu_bl->keycode2, input->keybit); - set_bit(fujitsu_bl->keycode3, input->keybit); - set_bit(fujitsu_bl->keycode4, input->keybit); - set_bit(fujitsu_bl->keycode5, input->keybit); - set_bit(KEY_TOUCHPAD_TOGGLE, input->keybit); - set_bit(KEY_UNKNOWN, input->keybit); - - error = input_register_device(input); - if (error) - goto err_free_input_dev; - - return 0; - -err_free_input_dev: - input_free_device(input); - - return error; + fujitsu_laptop->input->name = acpi_device_name(device); + fujitsu_laptop->input->phys = fujitsu_laptop->phys; + fujitsu_laptop->input->id.bustype = BUS_HOST; + fujitsu_laptop->input->id.product = 0x06; + + set_bit(EV_KEY, fujitsu_laptop->input->evbit); + set_bit(fujitsu_bl->keycode1, fujitsu_laptop->input->keybit); + set_bit(fujitsu_bl->keycode2, fujitsu_laptop->input->keybit); + set_bit(fujitsu_bl->keycode3, fujitsu_laptop->input->keybit); + set_bit(fujitsu_bl->keycode4, fujitsu_laptop->input->keybit); + set_bit(fujitsu_bl->keycode5, fujitsu_laptop->input->keybit); + set_bit(KEY_TOUCHPAD_TOGGLE, fujitsu_laptop->input->keybit); + set_bit(KEY_UNKNOWN, fujitsu_laptop->input->keybit); + + return input_register_device(fujitsu_laptop->input); } static int fujitsu_laptop_platform_add(void) @@ -862,7 +850,7 @@ static int acpi_fujitsu_laptop_add(struct acpi_device *device) error = acpi_bus_update_power(fujitsu_laptop->acpi_handle, &state); if (error) { pr_err("Error reading power state\n"); - goto err_unregister_input_dev; + goto err_free_fifo; } pr_info("ACPI: %s [%s] (%s)\n", @@ -911,7 +899,7 @@ static int acpi_fujitsu_laptop_add(struct acpi_device *device) error = fujitsu_laptop_platform_add(); if (error) - goto err_unregister_input_dev; + goto err_free_fifo; #if IS_ENABLED(CONFIG_LEDS_CLASS) if (call_fext_func(FUNC_LEDS, 0x0, 0x0, 0x0) & LOGOLAMP_POWERON) { @@ -974,8 +962,6 @@ static int acpi_fujitsu_laptop_add(struct acpi_device *device) return result; -err_unregister_input_dev: - input_unregister_device(fujitsu_laptop->input); err_free_fifo: kfifo_free(&fujitsu_laptop->fifo); err_stop: @@ -985,7 +971,6 @@ static int acpi_fujitsu_laptop_add(struct acpi_device *device) static int acpi_fujitsu_laptop_remove(struct acpi_device *device) { struct fujitsu_laptop *fujitsu_laptop = acpi_driver_data(device); - struct input_dev *input = fujitsu_laptop->input; #if IS_ENABLED(CONFIG_LEDS_CLASS) if (fujitsu_laptop->logolamp_registered) @@ -1003,8 +988,6 @@ static int acpi_fujitsu_laptop_remove(struct acpi_device *device) fujitsu_laptop_platform_remove(); - input_unregister_device(input); - kfifo_free(&fujitsu_laptop->fifo); fujitsu_laptop->acpi_handle = NULL;