ACPI / OSI: Add OEM _OSI string to enable NVidia HDMI audio
diff mbox

Message ID 1531939615-17301-1-git-send-email-alex.hung@canonical.com
State Accepted, archived
Delegated to: Rafael Wysocki
Headers show

Commit Message

Alex Hung July 18, 2018, 6:46 p.m. UTC
Some ThinkPad systems have a power-saving feature that turns off HDMI
audio device in Windows, but NVidia Linux driver does not support this
feature. As a result, HDMI audio will not work on Linux.

A BIOS workaround is added with an OEM_OSI string
"Linux-Lenovo-NV-HDMI-Audio" to power on NVidia HDMI audio when booting.

The form of the OEM _OSI strings is defined by each OEMs and is
discussed in Documentation/acpi/osi.txt.

Signed-off-by: Alex Hung <alex.hung@canonical.com>
---
 drivers/acpi/osi.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Rafael J. Wysocki July 23, 2018, 11:43 a.m. UTC | #1
On Wednesday, July 18, 2018 8:46:55 PM CEST Alex Hung wrote:
> Some ThinkPad systems have a power-saving feature that turns off HDMI
> audio device in Windows, but NVidia Linux driver does not support this
> feature. As a result, HDMI audio will not work on Linux.
> 
> A BIOS workaround is added with an OEM_OSI string
> "Linux-Lenovo-NV-HDMI-Audio" to power on NVidia HDMI audio when booting.
> 
> The form of the OEM _OSI strings is defined by each OEMs and is
> discussed in Documentation/acpi/osi.txt.
> 
> Signed-off-by: Alex Hung <alex.hung@canonical.com>
> ---
>  drivers/acpi/osi.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/acpi/osi.c b/drivers/acpi/osi.c
> index 8a8f435..b2a16ed 100644
> --- a/drivers/acpi/osi.c
> +++ b/drivers/acpi/osi.c
> @@ -66,6 +66,14 @@ osi_setup_entries[OSI_STRING_ENTRIES_MAX] __initdata = {
>  	 * be removed if both new and old graphics cards are supported.
>  	 */
>  	{"Linux-Dell-Video", true},
> +	/*
> +	 * Linux-Lenovo-NV-HDMI-Audio is used by BIOS to power on NVidia's HDMI
> +	 * audio device which is turned off for power-saving in Windows OS.
> +	 * This power management feature observed on some Lenovo Thinkpad
> +	 * systems which will not be able to output audio via HDMI without
> +	 * a BIOS workaround.
> +	 */
> +	{"Linux-Lenovo-NV-HDMI-Audio", true},
>  };
>  
>  static u32 acpi_osi_handler(acpi_string interface, u32 supported)
> 

Applied, thanks!


--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/drivers/acpi/osi.c b/drivers/acpi/osi.c
index 8a8f435..b2a16ed 100644
--- a/drivers/acpi/osi.c
+++ b/drivers/acpi/osi.c
@@ -66,6 +66,14 @@  osi_setup_entries[OSI_STRING_ENTRIES_MAX] __initdata = {
 	 * be removed if both new and old graphics cards are supported.
 	 */
 	{"Linux-Dell-Video", true},
+	/*
+	 * Linux-Lenovo-NV-HDMI-Audio is used by BIOS to power on NVidia's HDMI
+	 * audio device which is turned off for power-saving in Windows OS.
+	 * This power management feature observed on some Lenovo Thinkpad
+	 * systems which will not be able to output audio via HDMI without
+	 * a BIOS workaround.
+	 */
+	{"Linux-Lenovo-NV-HDMI-Audio", true},
 };
 
 static u32 acpi_osi_handler(acpi_string interface, u32 supported)