From patchwork Mon Mar 20 09:32:18 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: 9634055 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 2187B6020B for ; Mon, 20 Mar 2017 12:47:43 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 151F827C05 for ; Mon, 20 Mar 2017 12:47:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 09D2F27DC2; Mon, 20 Mar 2017 12:47:43 +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=ham 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 A4A7927C05 for ; Mon, 20 Mar 2017 12:47:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755050AbdCTMrm (ORCPT ); Mon, 20 Mar 2017 08:47:42 -0400 Received: from mail-lf0-f68.google.com ([209.85.215.68]:33233 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753301AbdCTJcb (ORCPT ); Mon, 20 Mar 2017 05:32:31 -0400 Received: by mail-lf0-f68.google.com with SMTP id r36so9627096lfi.0 for ; Mon, 20 Mar 2017 02:32:29 -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=3lsJBh5UVNiqWTO679bM5SzMph1xmdfLdPfO4B1qv2w=; b=UxBUKLR2BiPrxSnlxrROuesCkiJ8xOpzoaX+qNsljmC1XM6cZmOft1KR69+52SH2ca 28bNW5NeOEVKhhjyOrcpCG4Lsvuricx+M5Hw2rKwSJCxJULIJH1yqvbwGZ0YQL79BMIX StV36mMAjuDuu4JwdxMcKn/zfMNFuD4oRuqiU= 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=3lsJBh5UVNiqWTO679bM5SzMph1xmdfLdPfO4B1qv2w=; b=g/BkOVkMo2Gk7aPtk5mVDYud+Ha3k8L3ukL7rybR/CHrlDqq5294tTyaGYJi78sEo+ dO5CoIpcwyIi4lzq4rBlEKXINpZ/u8p+d61PPD+0/VJVXFr7+eOjQ4FGxDimemaUVckp pDUUed+lEKvQoQrHZbGOBM9pgIRO0TzHcmXrKycwkRWEhdtmCWjwVTEFmk36d4BztC9i OM3W9GbqdFokNpB7Rru3QfVSe7Tph7lF/Svt+E/S7G4GLB9LFCJy0WvLv4aDoqUKjWt/ qp6URGgws9LP/sVpvxDXLwINuF/tfXZXV1hdPDoRLy1ENr2fr7fsUZ3dvUcgvADcsdqF ZA2Q== X-Gm-Message-State: AFeK/H0J4Wfkiz4/M63TbZ3DGgyuEZo/WIfm6XcKsz/3onnc2nuxScmudn8BAQeMiI4G4w== X-Received: by 10.25.80.82 with SMTP id z18mr6612714lfj.99.1490002348441; Mon, 20 Mar 2017 02:32:28 -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.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Mar 2017 02:32:27 -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 2/8] platform/x86: fujitsu-laptop: switch to a managed backlight input device Date: Mon, 20 Mar 2017 10:32:18 +0100 Message-Id: <20170320093224.18541-3-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 brightness 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 | 47 +++++++++++------------------------ 1 file changed, 14 insertions(+), 33 deletions(-) diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c index 2b0dcf989e2a..68e338c6a876 100644 --- a/drivers/platform/x86/fujitsu-laptop.c +++ b/drivers/platform/x86/fujitsu-laptop.c @@ -593,36 +593,24 @@ static const struct dmi_system_id fujitsu_dmi_table[] __initconst = { static int acpi_fujitsu_bl_input_setup(struct acpi_device *device) { struct fujitsu_bl *fujitsu_bl = acpi_driver_data(device); - struct input_dev *input; - int error; - fujitsu_bl->input = input = input_allocate_device(); - if (!input) + fujitsu_bl->input = devm_input_allocate_device(&device->dev); + if (!fujitsu_bl->input) return -ENOMEM; snprintf(fujitsu_bl->phys, sizeof(fujitsu_bl->phys), "%s/video/input0", acpi_device_hid(device)); - input->name = acpi_device_name(device); - input->phys = fujitsu_bl->phys; - input->id.bustype = BUS_HOST; - input->id.product = 0x06; - input->dev.parent = &device->dev; - input->evbit[0] = BIT(EV_KEY); - set_bit(KEY_BRIGHTNESSUP, input->keybit); - set_bit(KEY_BRIGHTNESSDOWN, 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); + fujitsu_bl->input->name = acpi_device_name(device); + fujitsu_bl->input->phys = fujitsu_bl->phys; + fujitsu_bl->input->id.bustype = BUS_HOST; + fujitsu_bl->input->id.product = 0x06; + fujitsu_bl->input->evbit[0] = BIT(EV_KEY); + set_bit(KEY_BRIGHTNESSUP, fujitsu_bl->input->keybit); + set_bit(KEY_BRIGHTNESSDOWN, fujitsu_bl->input->keybit); + set_bit(KEY_UNKNOWN, fujitsu_bl->input->keybit); - return error; + return input_register_device(fujitsu_bl->input); } static int fujitsu_backlight_register(void) @@ -659,12 +647,12 @@ static int acpi_fujitsu_bl_add(struct acpi_device *device) error = acpi_fujitsu_bl_input_setup(device); if (error) - goto err_stop; + return error; error = acpi_bus_update_power(fujitsu_bl->acpi_handle, &state); if (error) { pr_err("Error reading power state\n"); - goto err_unregister_input_dev; + return error; } pr_info("ACPI: %s [%s] (%s)\n", @@ -704,24 +692,17 @@ static int acpi_fujitsu_bl_add(struct acpi_device *device) if (acpi_video_get_backlight_type() == acpi_backlight_vendor) { error = fujitsu_backlight_register(); if (error) - goto err_unregister_input_dev; + return error; } return 0; - -err_unregister_input_dev: - input_unregister_device(fujitsu_bl->input); -err_stop: - return error; } static int acpi_fujitsu_bl_remove(struct acpi_device *device) { struct fujitsu_bl *fujitsu_bl = acpi_driver_data(device); - struct input_dev *input = fujitsu_bl->input; backlight_device_unregister(fujitsu_bl->bl_device); - input_unregister_device(input); fujitsu_bl->acpi_handle = NULL;