Received: by 10.223.185.116 with SMTP id b49csp5434657wrg; Tue, 27 Feb 2018 13:18:47 -0800 (PST) X-Google-Smtp-Source: AH8x227TZ3TrIsVOWj6YqLoJG37kbjDf37SOaE0G5Lyes8F3mdQ/n8iaKXcHMujcoFFIj+PLcKs5 X-Received: by 10.99.95.15 with SMTP id t15mr12107286pgb.183.1519766327148; Tue, 27 Feb 2018 13:18:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519766327; cv=none; d=google.com; s=arc-20160816; b=PxamkUXYtGUEFib4qQRLbTzQfKzqanh6QoAhl4HOqURfp4Cht6UdHzkghj5PkeNmho TXUDtmVv4TaISuh3AHPm13n5EGeUNeUGSIGANsVfiEHvGR3o7p22w+M54QGGKBd1yV5b n8yHoEd5S5dhYMkXMi+rCdtEE6eo/a2G60p6+3yO+Axns7mSJLC4Blr8MDIAuYxIPvZq IVIDexUIJkzrmy3JBSgafGMJyoqJkW1nE0+7h9sjR1VdhhdBGRxBxN+gmrGDIrRCp6/F n4MEkV7Lg75vdgttfz71/Xz0jO7ANylp1mZdyKzFf61ZhxrfOhbOtue1DRuGC7rM6lcc aW2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=aRvAtUZNa44pXQ9rn3gqKvQ2bT/YoN7rdd+0Z9MyZOA=; b=IR8NrucuLlavEm8uO9hfsipXEk4EE0Ep4++EfxNGQbdo+d4qLJrt0juKSOZcxMPZxx kOG25FeWhuuWPYOLEoFz94VOEmQGGCDEFzzifLGKIp3FkunfT7wjRhSXRsRZ/37BEj9f Uta9ulWOeWoVn4elXaH8x8P7zYdiu/GiqO323PAiDxQ8QgxDTWldF+NJVaJgEOue59Lg UOJe0bXTCeXeUfKQvjlZmvpzVVw1PC3F24AniG836IsWOqyYawkot6peiAtg9Q70C+in VVs3oaCPeMEd0UP76EQvVkb1//p6hIqKbk21rAOk2l8hWLoSa9aRiEu9BWoRRWtpojPi 2/Yw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kempniu.pl header.s=google header.b=LlSwXtxr; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=kempniu.pl Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a188si51855pgc.183.2018.02.27.13.18.32; Tue, 27 Feb 2018 13:18:47 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kempniu.pl header.s=google header.b=LlSwXtxr; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=kempniu.pl Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752138AbeB0VRZ (ORCPT + 99 others); Tue, 27 Feb 2018 16:17:25 -0500 Received: from mail-lf0-f68.google.com ([209.85.215.68]:36192 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751663AbeB0VPw (ORCPT ); Tue, 27 Feb 2018 16:15:52 -0500 Received: by mail-lf0-f68.google.com with SMTP id g72so381408lfg.3 for ; Tue, 27 Feb 2018 13:15:51 -0800 (PST) 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=aRvAtUZNa44pXQ9rn3gqKvQ2bT/YoN7rdd+0Z9MyZOA=; b=LlSwXtxrA7hqPDUCF5M7vZlt+vn7fKxgmRBvbzr4rvD9uo9vxafkN92RTWCBBBvGQb aTOu5DxHvZLU/gRz5DSNXJDmwkJinuWWjKwOtqUA6jT9O5wFdmTz9QLe/CRyHT4nEDMA jj97nYdznH4X45n51TvaTDnKiOBckuGQ04Zwc= 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=aRvAtUZNa44pXQ9rn3gqKvQ2bT/YoN7rdd+0Z9MyZOA=; b=M0hovaM3MOE0FX7dI8ko4vzglviYBCN6tgfOQPQJy4XFuvPQY8+BpHo0mmKsA1h0Fm qlluwpBWXt0ieUH94Brns8TdqtOXUP84eH1ZhU5B49fanISUcEtSPHiIpKElvv2yIBlE zcFWda1u12v5p4W63kj1oYoZuKUnByoQEAsBBfiNGE2ktds3toKDqe5AcAnvRd5XpgKW sI9RP8qbNLxM4O/LsZH++4inVQjuxK1/kV9OhyiVHhzA0CCwZIcyX8qYil7KbTzbaLG5 QFsl/nIwQLXm3+ha1QQjTTYbcrTVAjD6uoateI57RPFpt5b6xn3nJUsIozpCxpKlpanA bG9w== X-Gm-Message-State: APf1xPBRPysdEvbj0pWKdqMcXMiEre5G9JlsY5aoRbm80/iEK4XraANd 1oFslh1sb3HewNyd+UIXcX6PAw== X-Received: by 10.25.105.18 with SMTP id e18mr9302110lfc.52.1519766150146; Tue, 27 Feb 2018 13:15:50 -0800 (PST) Received: from kmp-mobile.hq.kempniu.pl (kmp-mobile.hq.kempniu.pl. [2001:470:64df:111::d0d7]) by smtp.googlemail.com with ESMTPSA id l5sm16288lje.58.2018.02.27.13.15.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Feb 2018 13:15:49 -0800 (PST) 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 3/7] platform/x86: fujitsu-laptop: Define constants for FUNC feature states Date: Tue, 27 Feb 2018 22:15:35 +0100 Message-Id: <20180227211539.5708-4-kernel@kempniu.pl> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180227211539.5708-1-kernel@kempniu.pl> References: <20180227211539.5708-1-kernel@kempniu.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Various functions exposed by the firmware through the FUNC interface allow read/write access to the state of certain features. Make sure these states are referred to by consistently named constants instead of integers in order to better convey the intent of each call_fext_func() invocation. Signed-off-by: Michał Kępień --- drivers/platform/x86/fujitsu-laptop.c | 50 +++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c index 087b5d1f2f4a..3e824e961260 100644 --- a/drivers/platform/x86/fujitsu-laptop.c +++ b/drivers/platform/x86/fujitsu-laptop.c @@ -101,22 +101,23 @@ #define FLAG_DOCK BIT(9) /* FUNC interface - LED control */ -#define FUNC_LED_OFF BIT(0) -#define FUNC_LED_ON (BIT(0) | BIT(16) | BIT(17)) +#define STATE_LED_OFF BIT(0) +#define STATE_LED_ON (BIT(0) | BIT(16) | BIT(17)) #define FEAT_LOGOLAMP_POWERON BIT(13) #define FEAT_LOGOLAMP_ALWAYS BIT(14) #define FEAT_KEYBOARD_LAMPS BIT(8) #define FEAT_RADIO_LED BIT(5) -#define RADIO_LED_ON BIT(5) +#define STATE_RADIO_LED_OFF 0 +#define STATE_RADIO_LED_ON BIT(5) #define FEAT_ECO_LED BIT(16) -#define ECO_LED_ON BIT(19) +#define STATE_ECO_LED_ON BIT(19) /* FUNC interface - backlight power control */ #define FEAT_BACKLIGHT_POWER BIT(2) -#define BACKLIGHT_OFF (BIT(0) | BIT(1)) -#define BACKLIGHT_ON 0 +#define STATE_BACKLIGHT_OFF (BIT(0) | BIT(1)) +#define STATE_BACKLIGHT_ON 0 /* Scancodes read from the GIRB register */ #define KEY1_CODE 0x410 @@ -276,10 +277,12 @@ static int bl_update_status(struct backlight_device *b) if (fext) { if (b->props.power == FB_BLANK_POWERDOWN) call_fext_func(fext, FUNC_BACKLIGHT, OP_SET, - FEAT_BACKLIGHT_POWER, BACKLIGHT_OFF); + FEAT_BACKLIGHT_POWER, + STATE_BACKLIGHT_OFF); else call_fext_func(fext, FUNC_BACKLIGHT, OP_SET, - FEAT_BACKLIGHT_POWER, BACKLIGHT_ON); + FEAT_BACKLIGHT_POWER, + STATE_BACKLIGHT_ON); } return set_lcd_level(device, b->props.brightness); @@ -599,14 +602,14 @@ static int logolamp_set(struct led_classdev *cdev, enum led_brightness brightness) { struct acpi_device *device = to_acpi_device(cdev->dev->parent); - int poweron = FUNC_LED_ON, always = FUNC_LED_ON; + int poweron = STATE_LED_ON, always = STATE_LED_ON; int ret; if (brightness < LED_HALF) - poweron = FUNC_LED_OFF; + poweron = STATE_LED_OFF; if (brightness < LED_FULL) - always = FUNC_LED_OFF; + always = STATE_LED_OFF; ret = call_fext_func(device, FUNC_LEDS, OP_SET, FEAT_LOGOLAMP_POWERON, poweron); @@ -624,12 +627,12 @@ static enum led_brightness logolamp_get(struct led_classdev *cdev) ret = call_fext_func(device, FUNC_LEDS, OP_GET, FEAT_LOGOLAMP_ALWAYS, 0x0); - if (ret == FUNC_LED_ON) + if (ret == STATE_LED_ON) return LED_FULL; ret = call_fext_func(device, FUNC_LEDS, OP_GET, FEAT_LOGOLAMP_POWERON, 0x0); - if (ret == FUNC_LED_ON) + if (ret == STATE_LED_ON) return LED_HALF; return LED_OFF; @@ -642,10 +645,10 @@ static int kblamps_set(struct led_classdev *cdev, if (brightness >= LED_FULL) return call_fext_func(device, FUNC_LEDS, OP_SET, - FEAT_KEYBOARD_LAMPS, FUNC_LED_ON); + FEAT_KEYBOARD_LAMPS, STATE_LED_ON); else return call_fext_func(device, FUNC_LEDS, OP_SET, - FEAT_KEYBOARD_LAMPS, FUNC_LED_OFF); + FEAT_KEYBOARD_LAMPS, STATE_LED_OFF); } static enum led_brightness kblamps_get(struct led_classdev *cdev) @@ -654,7 +657,7 @@ static enum led_brightness kblamps_get(struct led_classdev *cdev) enum led_brightness brightness = LED_OFF; if (call_fext_func(device, FUNC_LEDS, OP_GET, - FEAT_KEYBOARD_LAMPS, 0x0) == FUNC_LED_ON) + FEAT_KEYBOARD_LAMPS, 0x0) == STATE_LED_ON) brightness = LED_FULL; return brightness; @@ -667,10 +670,10 @@ static int radio_led_set(struct led_classdev *cdev, if (brightness >= LED_FULL) return call_fext_func(device, FUNC_FLAGS, OP_SET_EXT, - FEAT_RADIO_LED, RADIO_LED_ON); + FEAT_RADIO_LED, STATE_RADIO_LED_ON); else return call_fext_func(device, FUNC_FLAGS, OP_SET_EXT, - FEAT_RADIO_LED, 0x0); + FEAT_RADIO_LED, STATE_RADIO_LED_OFF); } static enum led_brightness radio_led_get(struct led_classdev *cdev) @@ -679,7 +682,7 @@ static enum led_brightness radio_led_get(struct led_classdev *cdev) enum led_brightness brightness = LED_OFF; if (call_fext_func(device, FUNC_FLAGS, OP_GET_EXT, - 0x0, 0x0) & RADIO_LED_ON) + 0x0, 0x0) & STATE_RADIO_LED_ON) brightness = LED_FULL; return brightness; @@ -694,10 +697,10 @@ static int eco_led_set(struct led_classdev *cdev, curr = call_fext_func(device, FUNC_LEDS, OP_GET, FEAT_ECO_LED, 0x0); if (brightness >= LED_FULL) return call_fext_func(device, FUNC_LEDS, OP_SET, - FEAT_ECO_LED, curr | ECO_LED_ON); + FEAT_ECO_LED, curr | STATE_ECO_LED_ON); else return call_fext_func(device, FUNC_LEDS, OP_SET, - FEAT_ECO_LED, curr & ~ECO_LED_ON); + FEAT_ECO_LED, curr & ~STATE_ECO_LED_ON); } static enum led_brightness eco_led_get(struct led_classdev *cdev) @@ -706,7 +709,7 @@ static enum led_brightness eco_led_get(struct led_classdev *cdev) enum led_brightness brightness = LED_OFF; if (call_fext_func(device, FUNC_LEDS, OP_GET, - FEAT_ECO_LED, 0x0) & ECO_LED_ON) + FEAT_ECO_LED, 0x0) & STATE_ECO_LED_ON) brightness = LED_FULL; return brightness; @@ -849,7 +852,8 @@ static int acpi_fujitsu_laptop_add(struct acpi_device *device) if (fujitsu_bl && fujitsu_bl->bl_device && acpi_video_get_backlight_type() == acpi_backlight_vendor) { if (call_fext_func(fext, FUNC_BACKLIGHT, OP_GET, - FEAT_BACKLIGHT_POWER, 0x0) == BACKLIGHT_OFF) + FEAT_BACKLIGHT_POWER, + 0x0) == STATE_BACKLIGHT_OFF) fujitsu_bl->bl_device->props.power = FB_BLANK_POWERDOWN; else fujitsu_bl->bl_device->props.power = FB_BLANK_UNBLANK; -- 2.16.2