Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bb384b52 authored by Marco Chiappero's avatar Marco Chiappero Committed by Matthew Garrett
Browse files

sony-laptop: notify userspace of GFX switch position changes



Some Vaios come with both integrated and discrete graphics, plus a
switch for choosing one of the two. When the switch position is changed,
a notification is generated.

Signed-off-by: default avatarMarco Chiappero <marco@absence.it>
Signed-off-by: default avatarMattia Dongili <malattia@linux.it>
Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
parent 4069d6f8
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -1174,7 +1174,8 @@ static int sony_nc_hotkeys_decode(u32 event, unsigned int handle)
 */
enum event_types {
	HOTKEY = 1,
	KILLSWITCH
	KILLSWITCH,
	GFX_SWITCH
};
static void sony_nc_notify(struct acpi_device *device, u32 event)
{
@@ -1230,6 +1231,24 @@ static void sony_nc_notify(struct acpi_device *device, u32 event)

			break;

		case 0x0128:
		case 0x0146:
			/* Hybrid GFX switching */
			sony_call_snc_handle(handle, 0x0000, &result);
			dprintk("GFX switch event received (reason: %s)\n",
					(result & 0x01) ?
					"switch change" : "unknown");

			/* verify the switch state
			 * 1: discrete GFX
			 * 0: integrated GFX
			 */
			sony_call_snc_handle(handle, 0x0100, &result);

			ev_type = GFX_SWITCH;
			real_ev = result & 0xff;
			break;

		default:
			dprintk("Unknown event 0x%x for handle 0x%x\n",
					event, handle);