--- linux-5.15.46/drivers/platform/x86/asus-wireless.c.orig	2022-06-09 10:23:32.000000000 +0200
+++ linux-5.15.46/drivers/platform/x86/asus-wireless.c	2022-06-19 15:26:47.390966949 +0200
@@ -74,6 +74,10 @@ static acpi_status asus_wireless_method(
 	return s;
 }
 
+static bool led_invert;
+module_param(led_invert, bool, 0);
+MODULE_PARM_DESC(led_invert, "Invert airplane LED, use as RF indicator");
+
 static enum led_brightness led_state_get(struct led_classdev *led)
 {
 	struct asus_wireless_data *data;
@@ -83,7 +87,7 @@ static enum led_brightness led_state_get
 	data = container_of(led, struct asus_wireless_data, led);
 	s = asus_wireless_method(acpi_device_handle(data->adev), "HSWC",
 				 data->hswc_params->status, &ret);
-	if (ACPI_SUCCESS(s) && ret == data->hswc_params->on)
+        if (ACPI_SUCCESS(s) && ret == (led_invert ? data->hswc_params->off : data->hswc_params->on))
 		return LED_FULL;
 	return LED_OFF;
 }
@@ -103,8 +107,9 @@ static void led_state_set(struct led_cla
 	struct asus_wireless_data *data;
 
 	data = container_of(led, struct asus_wireless_data, led);
-	data->led_state = value == LED_OFF ? data->hswc_params->off :
-					     data->hswc_params->on;
+	data->led_state = value == (led_invert ? LED_ON : LED_OFF)
+	                  ? data->hswc_params->off
+	                  : data->hswc_params->on;
 	queue_work(data->wq, &data->led_work);
 }
 
@@ -167,7 +172,7 @@ static int asus_wireless_add(struct acpi
 	data->led.brightness_get = led_state_get;
 	data->led.flags = LED_CORE_SUSPENDRESUME;
 	data->led.max_brightness = 1;
-	data->led.default_trigger = "rfkill-none";
+	data->led.default_trigger = "rfkill-any";
 	err = devm_led_classdev_register(&adev->dev, &data->led);
 	if (err)
 		destroy_workqueue(data->wq);
