Overlay/x11-drivers/nvidia-drivers/files/optimus-334.16.patch

88 lines
2.7 KiB
Diff

diff -rupN kernel/nv-acpi.c kernel/nv-acpi.c
--- kernel/nv-acpi.c 2014-01-25 09:39:47.126966926 +0100
+++ kernel/nv-acpi.c 2014-01-26 09:59:45.853427603 +0100
@@ -1076,10 +1079,17 @@ RM_STATUS NV_API_CALL nv_acpi_dsm_method
NvU8 argument3[4]; /* For all DSM sub functions, input size is 4 */
NvU32 data_size;
acpi_handle dev_handle = NULL;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
#ifdef DEVICE_ACPI_HANDLE
nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
dev_handle = DEVICE_ACPI_HANDLE(&nvl->dev->dev);
#endif
+#else
+#ifdef ACPI_HANDLE
+ nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
+ dev_handle = ACPI_HANDLE(&nvl->dev->dev);
+#endif
+#endif
if (!dev_handle)
return RM_ERR_NOT_SUPPORTED;
@@ -1179,12 +1189,21 @@ RM_STATUS NV_API_CALL nv_acpi_ddc_method
NvU32 i;
acpi_handle dev_handle = NULL;
acpi_handle lcd_dev_handle = NULL;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
#ifdef DEVICE_ACPI_HANDLE
nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
dev_handle = DEVICE_ACPI_HANDLE(&nvl->dev->dev);
#else
return RM_ERR_NOT_SUPPORTED;
#endif
+#else
+#ifdef ACPI_HANDLE
+ nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
+ dev_handle = ACPI_HANDLE(&nvl->dev->dev);
+#else
+ return RM_ERR_NOT_SUPPORTED;
+#endif
+#endif
if (!dev_handle)
return RM_ERR_INVALID_ARGUMENT;
@@ -1294,12 +1313,21 @@ RM_STATUS NV_API_CALL nv_acpi_rom_method
struct acpi_object_list input = { 2, rom_arg };
acpi_handle dev_handle = NULL;
uint32_t offset, length;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
#ifdef DEVICE_ACPI_HANDLE
nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
dev_handle = DEVICE_ACPI_HANDLE(&nvl->dev->dev);
#else
return RM_ERR_NOT_SUPPORTED;
#endif
+#else
+#ifdef ACPI_HANDLE
+ nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
+ dev_handle = ACPI_HANDLE(&nvl->dev->dev);
+#else
+ return RM_ERR_NOT_SUPPORTED;
+#endif
+#endif
if (!dev_handle)
return RM_ERR_INVALID_ARGUMENT;
@@ -1364,12 +1392,21 @@ RM_STATUS NV_API_CALL nv_acpi_dod_method
union acpi_object *dod;
acpi_handle dev_handle = NULL;
NvU32 i, count = (*pSize / sizeof(NvU32));
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
#ifdef DEVICE_ACPI_HANDLE
nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
dev_handle = DEVICE_ACPI_HANDLE(&nvl->dev->dev);
#else
return RM_ERR_NOT_SUPPORTED;
#endif
+#else
+#ifdef ACPI_HANDLE
+ nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
+ dev_handle = ACPI_HANDLE(&nvl->dev->dev);
+#else
+ return RM_ERR_NOT_SUPPORTED;
+#endif
+#endif
if (!dev_handle)
return RM_ERR_INVALID_ARGUMENT;