summarylogtreecommitdiffstats
path: root/catalyst-workaround.patch
diff options
context:
space:
mode:
Diffstat (limited to 'catalyst-workaround.patch')
-rw-r--r--catalyst-workaround.patch72
1 files changed, 61 insertions, 11 deletions
diff --git a/catalyst-workaround.patch b/catalyst-workaround.patch
index c63ac1bc53f3..8c7b2d7bbc04 100644
--- a/catalyst-workaround.patch
+++ b/catalyst-workaround.patch
@@ -1,9 +1,6 @@
-@@ -, +, @@
- src/backends/x11/meta-monitor-manager-xrandr.c | 47 ++++++++++++++++++++++++--
- 1 file changed, 44 insertions(+), 3 deletions(-)
---- a/src/backends/x11/meta-monitor-manager-xrandr.c
-+++ a/src/backends/x11/meta-monitor-manager-xrandr.c
-@@ -1017,6 +1017,41 @@ output_set_underscanning_xrandr (MetaMonitorManagerXrandr *manager_xrandr,
+--- mutter/src/backends/x11/meta-monitor-manager-xrandr.c.orig 2017-04-24 21:56:35.531470289 +0200
++++ mutter/src/backends/x11/meta-monitor-manager-xrandr.c 2017-04-30 01:50:55.593135688 +0200
+@@ -1060,6 +1060,41 @@
}
}
@@ -43,9 +40,9 @@
+}
+
static void
- meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager,
- MetaCRTCInfo **crtcs,
-@@ -1193,6 +1228,8 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager,
+ apply_crtc_assignments (MetaMonitorManager *manager,
+ MetaCrtcInfo **crtcs,
+@@ -1235,6 +1270,8 @@
}
}
@@ -54,7 +51,7 @@
for (i = 0; i < n_outputs; i++)
{
MetaOutputInfo *output_info = outputs[i];
-@@ -1205,9 +1242,13 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager,
+@@ -1247,14 +1284,21 @@
(XID)output_info->output->winsys_id);
}
@@ -70,4 +67,57 @@
+ }
if (output_get_supports_underscanning_xrandr (manager_xrandr, output_info->output))
- output_set_underscanning_xrandr (manager_xrandr,
+- output_set_underscanning_xrandr (manager_xrandr,
+- output_info->output,
+- output_info->is_underscanning);
++ if (fglrx_kernel_module_loaded != 1)
++ {
++ output_set_underscanning_xrandr (manager_xrandr,
++ output_info->output,
++ output_info->is_underscanning);
++ }
+
+ output->is_primary = output_info->is_primary;
+ output->is_presentation = output_info->is_presentation;
+@@ -1335,22 +1379,26 @@
+ MetaOutput *output,
+ gint value)
+ {
+- MetaMonitorManagerXrandr *manager_xrandr = META_MONITOR_MANAGER_XRANDR (manager);
+- Atom atom;
+- int hw_value;
+-
+- hw_value = round ((double)value / 100.0 * output->backlight_max + output->backlight_min);
+-
+- atom = XInternAtom (manager_xrandr->xdisplay, "Backlight", False);
+-
+- xcb_randr_change_output_property (XGetXCBConnection (manager_xrandr->xdisplay),
+- (XID)output->winsys_id,
+- atom, XCB_ATOM_INTEGER, 32,
+- XCB_PROP_MODE_REPLACE,
+- 1, &hw_value);
++ int fglrx_kernel_module_loaded = output_get_fglrx_kernel_module_loaded();
++ if (fglrx_kernel_module_loaded != 1)
++ {
++ MetaMonitorManagerXrandr *manager_xrandr = META_MONITOR_MANAGER_XRANDR (manager);
++ Atom atom;
++ int hw_value;
++
++ hw_value = round ((double)value / 100.0 * output->backlight_max + output->backlight_min);
++
++ atom = XInternAtom (manager_xrandr->xdisplay, "Backlight", False);
++
++ xcb_randr_change_output_property (XGetXCBConnection (manager_xrandr->xdisplay),
++ (XID)output->winsys_id,
++ atom, XCB_ATOM_INTEGER, 32,
++ XCB_PROP_MODE_REPLACE,
++ 1, &hw_value);
+
+- /* We're not selecting for property notifies, so update the value immediately */
+- output->backlight = normalize_backlight (output, hw_value);
++ /* We're not selecting for property notifies, so update the value immediately */
++ output->backlight = normalize_backlight (output, hw_value);
++ }
+ }
+
+ static void