linux-kexecboot_git: upgrade to 2.6.39-rc2 and add spitz defconfig
[openembedded.git] / recipes / xorg-xserver / xserver-xorg-1.9.99.1 / randr-support.patch
blobabc7db41ebaeb0710fcb2a6e6d126f190c165a3b
1 diff -uNr xorg-server-1.9.0.orig//hw/xfree86/common/xf86Xinput.c xorg-server-1.9.0/hw/xfree86/common/xf86Xinput.c
2 --- xorg-server-1.9.0.orig//hw/xfree86/common/xf86Xinput.c 2010-08-13 07:53:48.000000000 +0200
3 +++ xorg-server-1.9.0/hw/xfree86/common/xf86Xinput.c 2010-08-28 21:31:10.000000000 +0200
4 @@ -106,6 +106,8 @@
6 #include "os.h"
8 +#define RR_Rotate_All (RR_Rotate_0|RR_Rotate_90|RR_Rotate_180|RR_Rotate_270)
10 EventListPtr xf86Events = NULL;
12 /**
13 @@ -1359,4 +1361,73 @@
14 EnableDevice(dev, TRUE);
17 +/* Taken from evdev-properties.h. */
18 +#define EVDEV_PROP_SWAP_AXES "Evdev Axes Swap"
19 +#define EVDEV_PROP_INVERT_AXES "Evdev Axis Inversion"
21 +/* This is a hack until we get device -> CRTC association. */
22 +void
23 +xf86InputRotationNotify(Rotation rotation)
25 + DeviceIntPtr dev;
26 + LocalDevicePtr local;
27 + int ret;
28 + int swap_axes = 0;
29 + CARD8 invert[2] = { 0, 0 };
30 + static Atom prop_swap = 0, prop_invert = 0;
31 + static int atom_generation = -1;
33 + if (atom_generation != serverGeneration) {
34 + prop_swap = 0;
35 + prop_invert = 0;
36 + }
38 + switch (rotation & RR_Rotate_All) {
39 + case RR_Rotate_0:
40 + swap_axes = 1;
41 + invert[0] = 0;
42 + invert[1] = 0;
43 + break;
44 + case RR_Rotate_90:
45 + swap_axes = 0;
46 + invert[0] = 0;
47 + invert[1] = 1;
48 + break;
49 + case RR_Rotate_180:
50 + swap_axes = 1;
51 + invert[0] = 0;
52 + invert[1] = 0;
53 + break;
54 + case RR_Rotate_270:
55 + swap_axes = 0;
56 + invert[0] = 0;
57 + invert[1] = 1;
58 + break;
59 + }
61 + if (!prop_swap)
62 + prop_swap = MakeAtom(EVDEV_PROP_SWAP_AXES,
63 + strlen(EVDEV_PROP_SWAP_AXES), TRUE);
64 + if (!prop_invert)
65 + prop_invert = MakeAtom(EVDEV_PROP_INVERT_AXES,
66 + strlen(EVDEV_PROP_INVERT_AXES), TRUE);
68 + for (dev = inputInfo.devices; dev; dev = dev->next) {
69 + local = dev->public.devicePrivate;
70 + ret = XIChangeDeviceProperty(dev, prop_swap, XA_INTEGER, 8,
71 + PropModeReplace, 1, &swap_axes, FALSE);
72 + if (ret != Success) {
73 + xf86Msg(X_ERROR, "Changing swap_xy property failed!\n");
74 + continue;
75 + }
76 + ret = XIChangeDeviceProperty(dev, prop_invert, XA_INTEGER, 8,
77 + PropModeReplace, 2, invert, FALSE);
78 + if (ret != Success) {
79 + xf86Msg(X_ERROR, "Changing invert property failed!\n");
80 + continue;
81 + }
82 + }
86 /* end of xf86Xinput.c */
87 diff -uNr xorg-server-1.9.0.orig//hw/xfree86/modes/xf86Crtc.c xorg-server-1.9.0/hw/xfree86/modes/xf86Crtc.c
88 --- xorg-server-1.9.0.orig//hw/xfree86/modes/xf86Crtc.c 2010-07-20 05:24:12.000000000 +0200
89 +++ xorg-server-1.9.0/hw/xfree86/modes/xf86Crtc.c 2010-08-28 21:28:48.000000000 +0200
90 @@ -387,6 +387,12 @@
91 if (didLock)
92 crtc->funcs->unlock (crtc);
94 + /*
95 + * Rotate Touchscreen
96 + */
97 + xf86InputRotationNotify(crtc->rotation);
100 return ret;