All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali.rohar@gmail.com>
To: Matthew Garrett <mjg59@srcf.ucam.org>,
	Darren Hart <dvhart@infradead.org>,
	Andy Shevchenko <andy@infradead.org>,
	"Gabriel M. Elder" <gabriel@tekgnowsys.com>,
	Gabriele Mazzotta <gabriele.mzt@gmail.com>,
	Mario.Limonciello@dell.com
Cc: platform-driver-x86@vger.kernel.org,
	linux-kernel@vger.kernel.org, "Pali Rohár" <pali.rohar@gmail.com>
Subject: [PATCH v2] dell-laptop: Fix keyboard led max_brightness property for Dell Latitude E6410
Date: Wed, 18 Oct 2017 20:06:01 +0200	[thread overview]
Message-ID: <1508349961-15051-1-git-send-email-pali.rohar@gmail.com> (raw)
In-Reply-To: <1508083394-22823-1-git-send-email-pali.rohar@gmail.com>

This machine reports number of keyboard backlight led levels, instead of
value of the last led level index. Therefore max_brightness properly needs
to be subtracted by 1 to match led max_brightness API.

Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Reported-by: Gabriel M. Elder <gabriel@tekgnowsys.com>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=196913
---
Changes since v1:
* Update kbd_info.levels at initialization time based on quirk
---
 drivers/platform/x86/dell-laptop.c |   17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
index f42159f..3f9be8a 100644
--- a/drivers/platform/x86/dell-laptop.c
+++ b/drivers/platform/x86/dell-laptop.c
@@ -49,6 +49,7 @@
 
 struct quirk_entry {
 	u8 touchpad_led;
+	u8 kbd_led_num_of_levels_instead_of_last_index;
 
 	int needs_kbd_timeouts;
 	/*
@@ -79,6 +80,10 @@ static int __init dmi_matched(const struct dmi_system_id *dmi)
 	.kbd_timeouts = { 0, 5, 15, 60, 5 * 60, 15 * 60, -1 },
 };
 
+static struct quirk_entry quirk_dell_latitude_e6410 = {
+	.kbd_led_num_of_levels_instead_of_last_index = 1,
+};
+
 static struct platform_driver platform_driver = {
 	.driver = {
 		.name = "dell-laptop",
@@ -280,6 +285,15 @@ static int __init dmi_matched(const struct dmi_system_id *dmi)
 		},
 		.driver_data = &quirk_dell_xps13_9333,
 	},
+	{
+		.callback = dmi_matched,
+		.ident = "Dell Latitude E6410",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6410"),
+		},
+		.driver_data = &quirk_dell_latitude_e6410,
+	},
 	{ }
 };
 
@@ -1200,6 +1214,9 @@ static int kbd_get_info(struct kbd_info *info)
 	units = (buffer->output[2] >> 8) & 0xFF;
 	info->levels = (buffer->output[2] >> 16) & 0xFF;
 
+	if (quirks && quirks->kbd_led_num_of_levels_instead_of_last_index && info->levels)
+		info->levels--;
+
 	if (units & BIT(0))
 		info->seconds = (buffer->output[3] >> 0) & 0xFF;
 	if (units & BIT(1))
-- 
1.7.9.5

  parent reply	other threads:[~2017-10-18 18:06 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-15 16:03 [PATCH] dell-laptop: Fix keyboard led max_brightness property for Dell Latitude E6410 Pali Rohár
2017-10-16 21:48 ` Darren Hart
2017-10-18 18:02   ` Pali Rohár
2017-10-18 18:06 ` Pali Rohár [this message]
2017-10-18 19:09   ` [PATCH v2] " Andy Shevchenko
2017-10-18 19:14     ` Pali Rohár
2017-10-18 20:00   ` Darren Hart
2017-11-02 20:25   ` [PATCH v3] " Pali Rohár
2017-11-03  1:18     ` Darren Hart
2017-11-11 22:12       ` Pali Rohár
2017-12-08 21:41     ` Darren Hart
2017-10-19 18:20 [PATCH v2] " Gabriel M. Elder
2017-10-19 18:31 ` Pali Rohár
2017-10-21 17:55 Gabriel M. Elder

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1508349961-15051-1-git-send-email-pali.rohar@gmail.com \
    --to=pali.rohar@gmail.com \
    --cc=Mario.Limonciello@dell.com \
    --cc=andy@infradead.org \
    --cc=dvhart@infradead.org \
    --cc=gabriel@tekgnowsys.com \
    --cc=gabriele.mzt@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=platform-driver-x86@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.