Commit 9bed6670 authored by Maximilian Luz's avatar Maximilian Luz Committed by Hans de Goede
Browse files

platform/surface: aggregator_tabletsw: Add support for book mode in KIP subsystem



Devices with a type-cover have an additional "book" mode, deactivating
type-cover input and turning off its backlight. This is currently
unsupported, leading to the warning

  surface_aggregator_tablet_mode_switch 01:0e:01:00:01: unknown KIP cover state: 6

Therefore, add support for this state and map it to enable tablet-mode.

Fixes: 9f794056 ("platform/surface: Add KIP/POS tablet-mode switch driver")
Signed-off-by: default avatarMaximilian Luz <luzmaximilian@gmail.com>
Link: https://lore.kernel.org/r/20230525213218.2797480-2-luzmaximilian@gmail.com


Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
parent 539e0a7f
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -210,6 +210,7 @@ enum ssam_kip_cover_state {
	SSAM_KIP_COVER_STATE_LAPTOP        = 0x03,
	SSAM_KIP_COVER_STATE_FOLDED_CANVAS = 0x04,
	SSAM_KIP_COVER_STATE_FOLDED_BACK   = 0x05,
	SSAM_KIP_COVER_STATE_BOOK          = 0x06,
};

static const char *ssam_kip_cover_state_name(struct ssam_tablet_sw *sw,
@@ -231,6 +232,9 @@ static const char *ssam_kip_cover_state_name(struct ssam_tablet_sw *sw,
	case SSAM_KIP_COVER_STATE_FOLDED_BACK:
		return "folded-back";

	case SSAM_KIP_COVER_STATE_BOOK:
		return "book";

	default:
		dev_warn(&sw->sdev->dev, "unknown KIP cover state: %u\n", state->state);
		return "<unknown>";
@@ -244,6 +248,7 @@ static bool ssam_kip_cover_state_is_tablet_mode(struct ssam_tablet_sw *sw,
	case SSAM_KIP_COVER_STATE_DISCONNECTED:
	case SSAM_KIP_COVER_STATE_FOLDED_CANVAS:
	case SSAM_KIP_COVER_STATE_FOLDED_BACK:
	case SSAM_KIP_COVER_STATE_BOOK:
		return true;

	case SSAM_KIP_COVER_STATE_CLOSED: