diff mbox

[2/3] thinkpad_acpi: Don't repeat ourselves in hotkey_init_tablet_mode()

Message ID 1478538633-11450-2-git-send-email-lyude@redhat.com (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Lyude Paul Nov. 7, 2016, 5:10 p.m. UTC
There's no need to have multiple copies of the logic we use for checking
whether or not we're in tablet mode, so just use
hotkey_get_tablet_mode() when checking the initial state in
hotkey_init_tablet_mode().

Cc: Daniel Martin <consume.noise@gmail.com>
Signed-off-by: Lyude <lyude@redhat.com>
---
 drivers/platform/x86/thinkpad_acpi.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Henrique de Moraes Holschuh Nov. 8, 2016, 11:08 a.m. UTC | #1
On Mon, 07 Nov 2016, Lyude wrote:
> There's no need to have multiple copies of the logic we use for checking
> whether or not we're in tablet mode, so just use
> hotkey_get_tablet_mode() when checking the initial state in
> hotkey_init_tablet_mode().

...

> @@ -3130,13 +3130,16 @@ hotkey_init_tablet_mode(void)
>  	/* For X41t, X60t, X61t Tablets... */
>  	if (acpi_evalf(hkey_handle, &res, "MHKG", "qd")) {
>  		tp_features.hotkey_tablet = TP_HOTKEY_TABLET_USES_MHKG;
> -		in_tablet_mode = !!(res & TP_HOTKEY_TABLET_MASK);
>  		type = "MHKG";
>  	}
>  
>  	if (!tp_features.hotkey_tablet)
>  		return 0;
>  
> +	res = hotkey_get_tablet_mode(&in_tablet_mode);
> +	if (res)
> +		return res;
> +

Won't this way of doing things cause the ACPI methods to be called
twice in a row?

The hotkey_init_tablet_mode() code does mode detection, and thus
hotkey_get_tablet_mode() must be kept in sync with it *anyway* (and not
the opposite), so it doesn't look like a very relevant maintenance
burden...
diff mbox

Patch

diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index dfa1af8..ad93c41 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -3130,13 +3130,16 @@  hotkey_init_tablet_mode(void)
 	/* For X41t, X60t, X61t Tablets... */
 	if (acpi_evalf(hkey_handle, &res, "MHKG", "qd")) {
 		tp_features.hotkey_tablet = TP_HOTKEY_TABLET_USES_MHKG;
-		in_tablet_mode = !!(res & TP_HOTKEY_TABLET_MASK);
 		type = "MHKG";
 	}
 
 	if (!tp_features.hotkey_tablet)
 		return 0;
 
+	res = hotkey_get_tablet_mode(&in_tablet_mode);
+	if (res)
+		return res;
+
 	pr_info("Tablet mode switch found (type: %s), currently in %s mode\n",
 		type, in_tablet_mode ? "tablet" : "laptop");