From nobody Tue Apr 7 06:31:30 2026 Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 72B3537B02B for ; Sun, 15 Mar 2026 21:53:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773611599; cv=none; b=ubsZFlNSUADJXlTyjIyvzroPfITy/Vh4sgQdWIm1Cf8jwLiAs//s83s+sy1x1cAfltNwziQ19Ey7olpcAXxJxxsn6i7+BtSFvPkiKh++WLDeJDqiRPEbVAaTwPNuiqHgQWFOtcUAu+SgEKXFbENVPFl/DpNpiotr//kJOYUqfiA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773611599; c=relaxed/simple; bh=d4jChEeUUc0f0rEMKPi4UAZuovkMFjwzj0INK1YLEaU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dX1hEIWl4mnApqGQyE20bnzfynxa30hzTlD4slQVIGcfPPSI6wgu7yIPPBhUU0/TCNqb8srM8dRGdhEvOWhgtkaCb7JI+I4IZjn9G2Mf1yvaOgAp9SUmShmPmSZru5fpSeneEXj1WJDZcvt9Q6dJZ6lFmWdym61HLL7VKMOg+Hk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PnRfJkl5; arc=none smtp.client-ip=209.85.216.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PnRfJkl5" Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-35b95a7444bso423127a91.1 for ; Sun, 15 Mar 2026 14:53:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773611598; x=1774216398; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=R6JQWklIlJSZA3P4ZxqqueLAj4IsTzAWLg/HK7yKGJM=; b=PnRfJkl5cG6QDT2F+yTcDk3/uBzdacQUw4nTbBHCnjSV0dmzIGTusuRWBYIUcSbgt4 BNdTsh+ae2VLCuu/BYCOQDXzS/rfvHXCr2l6jQmOg7pbhIRio9rmI4WGJJBnEP4L1W3R xRZRL5mOeYx7rD//CQZVlLOSITfbBW4D9maC0KVv/S7d8ITEeuzpMRetj/xjy0VeKFLO FzlQwYjhACGsMSFFbY66fIs0WpOW853QbtgbFU9q62fE8M1/axNDaRjp6aa3jDQNO/T2 YBQHGhVIYfBZS5WFJkWY+hphMWrjIEBEP3RO+OlJZVtD0UqoPWRWuXofkeDEcj42bNov CNjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773611598; x=1774216398; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=R6JQWklIlJSZA3P4ZxqqueLAj4IsTzAWLg/HK7yKGJM=; b=ZDoJ/hUlKJNqq9y+GKBgSkxZhQ9/feHGRaiAR3qOwRFka/vRVjxnzmJKBS4o39A49n iE/xABaHIqIaNBTV6aJpTmgDKyGeqgzesGSgyOrXTqXsqUUEsxjBHDAKs88tkFaSrZ2n HfpP1frbi83S1XEJJu7EGedMHlYCKTqt1Ll6/CGK4BMy/xIEhdTgX9VMIFR1s7j0/kGh qeij+osAkZ1X2DDFLdqPCIuwa70TMArK4so1flmcuk12XPujh7P1Mlxyqn0fj1hyi1KL awvDkbveT+ypAEePKvHyUQPctjp3SKHzBsgFORk6PQHQw3kGlxB+RmRa4nYXNB7zxNFf R5zA== X-Forwarded-Encrypted: i=1; AJvYcCVdPbu3f3Ufo89IvixuSjK484YSmBDYojUfD/+QH2TmXsDF5UiRMxCXlsQNDxWXgs5bv/orgvfQ/CrKChI=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+i2M8CuTs7MRYGbina28a2D1JIkfdi3CC4BmK7H19FYVyrPDw 2GGsZD71XpOHs/LReXJc6fsGvX/3TJ7DPluP8+PAI0DyJqB2woAWzF8= X-Gm-Gg: ATEYQzwRug2RsKZJdcQCrGacoowHEvqzAj+CcdCknLHJFbNpCPogUg+FTZT5N6yPaLk cjQeb5odQ9nY2BeUVPqmY+v5gikPQcYuOcYYKG/91kG2Zx4+u1+c/9Lq4ivmg1xKmdmfqvOPl9k hfRQONc4c711arwKRHjeijNJBS8mo46Pb+a+KpNxK7WHkP3hgFmQ2zJmYqLmaDrUGlMIgOpZGL+ UnOjE/6AE+VUru+yfEJc+yExYHjIqvgeT6iPyls+l2Og6Y0zMA/V0MRj2sbZq4YEwOk7S3YoQrS 4V1K/3MMRLWvmfGOwJmsqwszcn/FKgkkz7QwElj9qCZdILl97bhlgkxC1tljZI0gZbfmJH/GnF0 OWhBRItsl7ZEx7sMm2oXVTHS+II3H23FVrsNXg2QpNJwtJ3tCS8ONmP/1yDUG4CHqysLN6PT8BX LfwCL2kemJ0DSOOx4F9DOJ68w7zV/u4QcGo+eeggWDyrSrb72H0HgHx21tcS9z7io= X-Received: by 2002:a17:90b:28cc:b0:359:fc88:fa99 with SMTP id 98e67ed59e1d1-35a22055572mr8857270a91.26.1773611597857; Sun, 15 Mar 2026 14:53:17 -0700 (PDT) Received: from at-Standard-PC-Q35-ICH9-2009.. ([171.61.163.197]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35b9303eb9bsm3074980a91.8.2026.03.15.14.53.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2026 14:53:17 -0700 (PDT) From: Atharva Tiwari To: Cc: Atharva Tiwari , Lukas Wunner , Ard Biesheuvel , Hans de Goede , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org, platform-driver-x86@vger.kernel.org Subject: [PATCH v2 1/2] efi: Save Brightness using EFI on Macs Date: Mon, 16 Mar 2026 03:22:41 +0530 Message-ID: <20260315215302.24087-2-atharvatiwarilinuxdev@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260315215302.24087-1-atharvatiwarilinuxdev@gmail.com> References: <20260315215302.24087-1-atharvatiwarilinuxdev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Currently when a Mac reboots, the brightness is not the same as the previous boot instead its the same as the last time the Mac booted macOS. We can fix this issue by saving the brightness level to the efivar backlight-level. (tested on iMac20,1) Suggested-by: Lukas Wunner Signed-off-by: Atharva Tiwari --- drivers/firmware/efi/Kconfig | 10 +++ drivers/firmware/efi/Makefile | 1 + drivers/firmware/efi/apple-brightness.c | 67 +++++++++++++++++++ .../linux/platform_data/apple-brightness.h | 20 ++++++ 4 files changed, 98 insertions(+) create mode 100644 drivers/firmware/efi/apple-brightness.c create mode 100644 include/linux/platform_data/apple-brightness.h diff --git a/drivers/firmware/efi/Kconfig b/drivers/firmware/efi/Kconfig index 29e0729299f5..dd0a9c9a772a 100644 --- a/drivers/firmware/efi/Kconfig +++ b/drivers/firmware/efi/Kconfig @@ -167,6 +167,16 @@ config APPLE_PROPERTIES =20 If unsure, say Y if you have a Mac. Otherwise N. =20 +config APPLE_BRIGHTNESS + bool "Apple Backlight control for EFI" + depends on X86 + help + This will save the brightness level to EFI, so brightness + level is preserved across reboots and shutdows. allowing + for improved support of Apple hardware. + + If unsure, say Y if you have a Mac, Otherwise N. + config RESET_ATTACK_MITIGATION bool "Reset memory attack mitigation" depends on EFI_STUB diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile index 8efbcf699e4f..1f5705cc87a2 100644 --- a/drivers/firmware/efi/Makefile +++ b/drivers/firmware/efi/Makefile @@ -26,6 +26,7 @@ obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) +=3D efibc.o obj-$(CONFIG_EFI_TEST) +=3D test/ obj-$(CONFIG_EFI_DEV_PATH_PARSER) +=3D dev-path-parser.o obj-$(CONFIG_APPLE_PROPERTIES) +=3D apple-properties.o +obj-$(CONFIG_APPLE_BRIGHTNESS) +=3D apple-brightness.o obj-$(CONFIG_EFI_RCI2_TABLE) +=3D rci2-table.o obj-$(CONFIG_EFI_EMBEDDED_FIRMWARE) +=3D embedded-firmware.o obj-$(CONFIG_LOAD_UEFI_KEYS) +=3D mokvar-table.o diff --git a/drivers/firmware/efi/apple-brightness.c b/drivers/firmware/efi= /apple-brightness.c new file mode 100644 index 000000000000..b060861b0795 --- /dev/null +++ b/drivers/firmware/efi/apple-brightness.c @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: GPL-2.0-only OR MIT +/* + * apple-brightness.c - EFI brightness saver on Macs + * Copyright (C) 2026 Atharva Tiwari + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include + +static u32 efi_attr; +static u16 last_saved_level; + +static int (*get_brightness)(struct backlight_device *bl); +static struct backlight_device *bl_dev; + +void apple_brightness_shutdown(void) +{ + u16 level; + efi_status_t status; + + level =3D (u16)get_brightness(bl_dev); + + if (level =3D=3D last_saved_level) + return; + + status =3D efivar_set_variable(APPLE_BRIGHTNESS_NAME, &APPLE_BRIGHTNESS_G= UID, + efi_attr, sizeof(level), &level); + if (status !=3D EFI_SUCCESS) + pr_debug("Unable to set brightness: 0x%lx\n", status); +} +EXPORT_SYMBOL(apple_brightness_shutdown); + +int apple_brightness_probe(struct backlight_device *bl, + int (*get_brightnessfn)(struct backlight_device *bl)) +{ + efi_status_t status; + unsigned long size =3D sizeof(last_saved_level); + int ret; + + bl_dev =3D bl; + get_brightness =3D get_brightnessfn; + + if (!efi_rt_services_supported(EFI_RT_SUPPORTED_SET_VARIABLE)) + return -ENODEV; + + ret =3D efivar_lock(); + if (ret) + return ret; + + status =3D efivar_get_variable(APPLE_BRIGHTNESS_NAME, &APPLE_BRIGHTNESS_G= UID, + &efi_attr, &size, &last_saved_level); + + efivar_unlock(); + + if (status !=3D EFI_SUCCESS) + return -ENODEV; + + return 0; +} +EXPORT_SYMBOL(apple_brightness_probe); + +MODULE_AUTHOR("Atharva Tiwari "); +MODULE_DESCRIPTION("EFI Brightness saver for Macs"); +MODULE_LICENSE("Dual MIT/GPL"); diff --git a/include/linux/platform_data/apple-brightness.h b/include/linux= /platform_data/apple-brightness.h new file mode 100644 index 000000000000..54e3f3f8aa1c --- /dev/null +++ b/include/linux/platform_data/apple-brightness.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: GPL-2.0-only OR MIT */ +/* + * apple-brightness.h - EFI brightness saver for Macs + * Copyright (C) 2026 Atharva Tiwari + */ + +#ifndef _APPLE_BL_H_ +#define _APPLE_BL_H_ + +#include +#include + +#define APPLE_BRIGHTNESS_NAME L"backlight-level" +#define APPLE_BRIGHTNESS_GUID EFI_GUID(0x7c436110, 0xab2a, 0x4bb= b, 0xa8, 0x80, 0xfe, 0x41, 0x99, 0x5c, 0x9f, 0x82) + +int apple_brightness_probe(struct backlight_device *bl, + int (*get_brightnessfn)(struct backlight_device *bl)); + +void apple_brightness_shutdown(void); +#endif /* _APPLE_BL_H */ --=20 2.43.0 From nobody Tue Apr 7 06:31:30 2026 Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C155A37C10D for ; Sun, 15 Mar 2026 21:53:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773611607; cv=none; b=qWz7DJ4oTFxkmLsoMG3zq2ui2F63D6W/zbsj1jarpAzRq7RB2jdy/ZIOIMJi8SZcGcY8EqRkq5/ZwB/jjKq8QfPCJDIdUkOD+cdpdTbkPzm6+52qkLLXwBRmubuHmUcGi+73wGmHS++RJkUgXV8tVjCjAor+gzQcxXrEdDet+dY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773611607; c=relaxed/simple; bh=IBDYUK+3O1y5VL1z6GzT5aRoM2+wTLMn0ghXsNI6iG0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NwZ1S5f5unHPfDospRYMowOQ9KR9C2C8JKWEBnsH3SNunYGVprVvv4S0dVSCHkWxiNKn9dw0lWUqRijlcrJhc5pLiyFfPNkRW0qf4YSF8+PTBX+9G/Ja32WXBph/61omPQUixqOFp5RXiOS5ARDRDbKj6lRZeICxQnPeD+59U7k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=BP1DUyCy; arc=none smtp.client-ip=209.85.216.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BP1DUyCy" Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-35a04d6aeb0so2350019a91.0 for ; Sun, 15 Mar 2026 14:53:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773611606; x=1774216406; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cXUioPAqGCi/G7aJUPOn/95wAygcdDsF9zmaY+F6+Nc=; b=BP1DUyCy6qjgkEJ3qgba6JOxkZFgdWn3EWp3cyU3eZEMWKES+ljoamOpMNjrcOvTBL sHq03gDDtFj3OCdBVJXwNVEqLSigHsWzc45VW+jJb1czsNFvdgkD7x9PsHWG+IJ3JUfD iXGsfb4CK72PEZv/syyqg1TFlbOyHw5USbX1qBklhg96V4h7gTupbaO8imu9ej9y0ER9 YP5zaNvoUN9oVT9WDqCrEKdyhjKspE5wjh67oN6zvOM9Gixb4PBh1lny8duW6pVy0a4L zBP6fLU5PasQBdHB2HTxQXKQgAXCsPX4v2yvU3opqMOWumA86yssLCbRzCB27bcP8MUd IGSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773611606; x=1774216406; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=cXUioPAqGCi/G7aJUPOn/95wAygcdDsF9zmaY+F6+Nc=; b=I3rz8ULDdiJc1rKQq/xkT+vc7hPshcQLr4nlPMuvs/9KAmsBx8x5UlkKvgtPttBoCP Sq1an+VxaN7byTyKU87WD9eR19ObkQRl+21TTQD6bKRiVa1wiKZUPkns5ADBhXf6pOPX IHEfgXlix1H8HbK7CEKNUEQTD3lsv1FC1d/F6piT6tneh3nCxmeMM+Cpg57qA4e8G3pE EfswFuBZolzoAjnY42LspnNfFdd/md7yCzT2n3HVkqJoyWta1OtTpzd3ofajApvQwNHN xCGRqtdq1lYa0GO5ibRigh+VqhYKaaD3BH9h01NDOodOXrqs/40ytx+V2Altar3nV9kv qccg== X-Forwarded-Encrypted: i=1; AJvYcCVUw+gY8n4w1QD9aazdD4gRt2TCsrb83mV7IYwySBAkjqsZcL2RgN+Gqk1PlybSiHOsfwvJY8mvnrJCjHI=@vger.kernel.org X-Gm-Message-State: AOJu0YwG4nHzS9Incig429/E3zZtjidBiyZjv0EFnEIV7mB5wrMokFjM 4EYt0LMsp2G62m+3Z/bK/VAPuySp8DkGBK8QwvztJaUG/HI/+8AClns= X-Gm-Gg: ATEYQzyBx9SLNPiiPl8Hf7DgeUEgGingq3m+xQeYjrRQysPvQWwEtOD5BcaBkffTR19 /rn5GiVSx/mDsYPmmr4IoHswnOsp4Ky4/e1nQV8PapuYOpoBZZi8/IPnAM9/Hya57pYWr8e4yLw PaPGXHOORjy/iOed9/fWDU7Pr/XmIGjRdknZCnJyoCZt+rOmOWKnEdlQ0WXUgiQfGvfXp8sWsRC La4OHOqM+qMaxWONlMIM9wFHkJq8boBbJJdgeBTIw+Br+XJbH9E93IPpi/19iDDq4eYIbPcLgXy MNNFdYO82TgemSFHFTd1ewnIAC6SHlTfQUMKyXqx7BTVaF9hGpM7NtFXeExg5nki79NwNgCs7wc crspvD38mJl1K+1spX8hAq6rCNbZmaTrE0A4URdc53gmJiExT9speEOv0ml6SpC5en7fRgbplzO yLBbwV3UtnHsLAjCNH9HfPJ1l6mEgjZb/cSSCMPZ/A+S9dlDlP32zBBoFGeFO1ygA= X-Received: by 2002:a17:90b:1d08:b0:359:409:49bf with SMTP id 98e67ed59e1d1-35a22063fb8mr10339166a91.21.1773611606207; Sun, 15 Mar 2026 14:53:26 -0700 (PDT) Received: from at-Standard-PC-Q35-ICH9-2009.. ([171.61.163.197]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35b9303eb9bsm3074980a91.8.2026.03.15.14.53.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2026 14:53:25 -0700 (PDT) From: Atharva Tiwari To: Cc: Atharva Tiwari , Ard Biesheuvel , Hans de Goede , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org, platform-driver-x86@vger.kernel.org Subject: [PATCH v2 2/2] platform/apple-gmux: use apple_brightness to save brightness to EFI Date: Mon, 16 Mar 2026 03:22:42 +0530 Message-ID: <20260315215302.24087-3-atharvatiwarilinuxdev@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260315215302.24087-1-atharvatiwarilinuxdev@gmail.com> References: <20260315215302.24087-1-atharvatiwarilinuxdev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" use apple_brightness to save brightness to EFI. (tested on iMac20,1) Signed-off-by: Atharva Tiwari --- drivers/platform/x86/apple-gmux.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/platform/x86/apple-gmux.c b/drivers/platform/x86/apple= -gmux.c index 1417e230edbd..5a13c917c496 100644 --- a/drivers/platform/x86/apple-gmux.c +++ b/drivers/platform/x86/apple-gmux.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include =20 @@ -78,6 +79,8 @@ struct apple_gmux_data { /* debugfs data */ u8 selected_port; struct dentry *debug_dentry; + + bool save_efi; }; =20 static struct apple_gmux_data *apple_gmux_data; @@ -960,6 +963,13 @@ static int gmux_probe(struct pnp_dev *pnp, const struc= t pnp_device_id *id) } =20 gmux_init_debugfs(gmux_data); + if (IS_ENABLED(CONFIG_APPLE_BRIGHTNESS)) { + ret =3D apple_brightness_probe(gmux_data->bdev, &gmux_get_brightness); + if (ret) + pr_warn("Unable to Enable EFI brightness save: %d\n", ret); + + gmux_data->save_efi =3D true; + } return 0; =20 err_register_handler: @@ -1012,6 +1022,16 @@ static void gmux_remove(struct pnp_dev *pnp) kfree(gmux_data); } =20 +static void gmux_shutdown(struct pnp_dev *pnp) +{ + struct apple_gmux_data *gmux_data =3D pnp_get_drvdata(pnp); + + if (gmux_data->save_efi) + apple_brightness_shutdown(); + + gmux_remove(pnp); +} + static const struct pnp_device_id gmux_device_ids[] =3D { {GMUX_ACPI_HID, 0}, {"", 0} @@ -1026,6 +1046,7 @@ static struct pnp_driver gmux_pnp_driver =3D { .name =3D "apple-gmux", .probe =3D gmux_probe, .remove =3D gmux_remove, + .shutdown =3D gmux_shutdown, .id_table =3D gmux_device_ids, .driver =3D { .pm =3D &gmux_dev_pm_ops, --=20 2.43.0