diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-04 10:49:37 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-04 10:49:37 -0500 |
commit | 03a2c4d76c9e99b80d74ab8a4f344e135a5ae44b (patch) | |
tree | 7fd7940a4f87dc1ace1c1bdeb1fb0d90ac3beb13 /include/linux | |
parent | a27341cd5fcb7cf2d2d4726e9f324009f7162c00 (diff) | |
parent | d424b925f7092b9d95e0a8556872349abe79d9b6 (diff) |
Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
* 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (151 commits)
vga_switcheroo: disable default y by new rules.
drm/nouveau: fix *staging* driver build with switcheroo off.
drm/radeon: fix typo in Makefile
vga_switcheroo: fix build on platforms with no ACPI
drm/radeon: Fix printf type warning in 64bit system.
drm/radeon/kms: bump the KMS version number for square tiling support.
vga_switcheroo: initial implementation (v15)
drm/radeon/kms: do not disable audio engine twice
Revert "drm/radeon/kms: disable HDMI audio for now on rv710/rv730"
drm/radeon/kms: do not preset audio stuff and start timer when not using audio
drm/radeon: r100/r200 ums: block ability for userspace app to trash 0 page and beyond
drm/ttm: fix function prototype to match implementation
drm/radeon: use ALIGN instead of open coding it
drm/radeon/kms: initialize set_surface_reg reg for rs600 asic
drm/i915: Use a dmi quirk to skip a broken SDVO TV output.
drm/i915: enable/disable LVDS port at DPMS time
drm/i915: check for multiple write domains in pin_and_relocate
drm/i915: clean-up i915_gem_flush_gpu_write_domain
drm/i915: reuse i915_gpu_idle helper
drm/i915: ensure lru ordering of fence_list
...
Fixed trivial conflicts in drivers/gpu/vga/Kconfig
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/fb.h | 2 | ||||
-rw-r--r-- | include/linux/vga_switcheroo.h | 57 |
2 files changed, 59 insertions, 0 deletions
diff --git a/include/linux/fb.h b/include/linux/fb.h index 369767bd873e..c10163b4c40e 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h | |||
@@ -543,6 +543,8 @@ struct fb_cursor_user { | |||
543 | #define FB_EVENT_GET_REQ 0x0D | 543 | #define FB_EVENT_GET_REQ 0x0D |
544 | /* Unbind from the console if possible */ | 544 | /* Unbind from the console if possible */ |
545 | #define FB_EVENT_FB_UNBIND 0x0E | 545 | #define FB_EVENT_FB_UNBIND 0x0E |
546 | /* CONSOLE-SPECIFIC: remap all consoles to new fb - for vga switcheroo */ | ||
547 | #define FB_EVENT_REMAP_ALL_CONSOLE 0x0F | ||
546 | 548 | ||
547 | struct fb_event { | 549 | struct fb_event { |
548 | struct fb_info *info; | 550 | struct fb_info *info; |
diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h new file mode 100644 index 000000000000..ae9ab13b963d --- /dev/null +++ b/include/linux/vga_switcheroo.h | |||
@@ -0,0 +1,57 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2010 Red Hat Inc. | ||
3 | * Author : Dave Airlie <airlied@redhat.com> | ||
4 | * | ||
5 | * Licensed under GPLv2 | ||
6 | * | ||
7 | * vga_switcheroo.h - Support for laptop with dual GPU using one set of outputs | ||
8 | */ | ||
9 | |||
10 | #include <linux/fb.h> | ||
11 | |||
12 | enum vga_switcheroo_state { | ||
13 | VGA_SWITCHEROO_OFF, | ||
14 | VGA_SWITCHEROO_ON, | ||
15 | }; | ||
16 | |||
17 | enum vga_switcheroo_client_id { | ||
18 | VGA_SWITCHEROO_IGD, | ||
19 | VGA_SWITCHEROO_DIS, | ||
20 | VGA_SWITCHEROO_MAX_CLIENTS, | ||
21 | }; | ||
22 | |||
23 | struct vga_switcheroo_handler { | ||
24 | int (*switchto)(enum vga_switcheroo_client_id id); | ||
25 | int (*power_state)(enum vga_switcheroo_client_id id, | ||
26 | enum vga_switcheroo_state state); | ||
27 | int (*init)(void); | ||
28 | int (*get_client_id)(struct pci_dev *pdev); | ||
29 | }; | ||
30 | |||
31 | |||
32 | #if defined(CONFIG_VGA_SWITCHEROO) | ||
33 | void vga_switcheroo_unregister_client(struct pci_dev *dev); | ||
34 | int vga_switcheroo_register_client(struct pci_dev *dev, | ||
35 | void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state), | ||
36 | bool (*can_switch)(struct pci_dev *dev)); | ||
37 | |||
38 | void vga_switcheroo_client_fb_set(struct pci_dev *dev, | ||
39 | struct fb_info *info); | ||
40 | |||
41 | int vga_switcheroo_register_handler(struct vga_switcheroo_handler *handler); | ||
42 | void vga_switcheroo_unregister_handler(void); | ||
43 | |||
44 | int vga_switcheroo_process_delayed_switch(void); | ||
45 | |||
46 | #else | ||
47 | |||
48 | static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {} | ||
49 | static inline int vga_switcheroo_register_client(struct pci_dev *dev, | ||
50 | void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state), | ||
51 | bool (*can_switch)(struct pci_dev *dev)) { return 0; } | ||
52 | static inline void vga_switcheroo_client_fb_set(struct pci_dev *dev, struct fb_info *info) {} | ||
53 | static inline int vga_switcheroo_register_handler(struct vga_switcheroo_handler *handler) { return 0; } | ||
54 | static inline void vga_switcheroo_unregister_handler(void) {} | ||
55 | static inline int vga_switcheroo_process_delayed_switch(void) { return 0; } | ||
56 | |||
57 | #endif | ||