From: Dave Airlie Date: Mon, 1 Mar 2010 06:22:38 +0000 (+1000) Subject: Merge branch 'gpu-switcher' of /ssd/git//linux-2.6 into drm-next-stage X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=1c62233508ef7104f8a78e571fdf5c72d0dc0200;p=openwrt%2Fstaging%2Fblogic.git Merge branch 'gpu-switcher' of /ssd/git//linux-2.6 into drm-next-stage * 'gpu-switcher' of /ssd/git//linux-2.6: vga_switcheroo: initial implementation (v15) fb: for framebuffer handover don't exit the loop early. Conflicts: drivers/gpu/drm/i915/i915_dma.c drivers/gpu/drm/radeon/Makefile drivers/gpu/drm/radeon/radeon.h --- 1c62233508ef7104f8a78e571fdf5c72d0dc0200 diff --cc drivers/gpu/drm/i915/i915_dma.c index 3e658d6a6b7d,42ca07f04a21..8bfc0bbf13e6 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@@ -35,8 -35,7 +35,9 @@@ #include "i915_drv.h" #include "i915_trace.h" #include +#include +#include + #include /* Really want an OS-independent resettable timer. Would like to have * this loop run for (eg) 3 sec, but have the timer reset every time diff --cc drivers/gpu/drm/nouveau/nouveau_drv.h index 2f8ce42f0725,85c05feab4f0..a2e24f252e84 --- a/drivers/gpu/drm/nouveau/nouveau_drv.h +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h @@@ -847,22 -847,11 +849,11 @@@ nouveau_debugfs_channel_fini(struct nou /* nouveau_dma.c */ extern void nouveau_dma_pre_init(struct nouveau_channel *); extern int nouveau_dma_init(struct nouveau_channel *); -extern int nouveau_dma_wait(struct nouveau_channel *, int size); +extern int nouveau_dma_wait(struct nouveau_channel *, int slots, int size); /* nouveau_acpi.c */ - #ifdef CONFIG_ACPI - extern int nouveau_hybrid_setup(struct drm_device *dev); - extern bool nouveau_dsm_probe(struct drm_device *dev); - #else - static inline int nouveau_hybrid_setup(struct drm_device *dev) - { - return 0; - } - static inline bool nouveau_dsm_probe(struct drm_device *dev) - { - return false; - } - #endif + void nouveau_register_dsm_handler(void); + void nouveau_unregister_dsm_handler(void); /* nouveau_backlight.c */ #ifdef CONFIG_DRM_NOUVEAU_BACKLIGHT diff --cc drivers/gpu/drm/radeon/Makefile index b46f115d1c25,8e62fe13e31c..0a4d526e4f44 --- a/drivers/gpu/drm/radeon/Makefile +++ b/drivers/gpu/drm/radeon/Makefile @@@ -60,7 -55,7 +60,7 @@@ radeon-y += radeon_device.o radeon_kms. rs400.o rs600.o rs690.o rv515.o r520.o r600.o rv770.o radeon_test.o \ r200.o radeon_legacy_tv.o r600_cs.o r600_blit.o r600_blit_shaders.o \ r600_blit_kms.o radeon_pm.o atombios_dp.o r600_audio.o r600_hdmi.o \ - evergreen.o - radeon_atpx_handler.o ++ evergreen.o radeon_atpx_handler.o radeon-$(CONFIG_COMPAT) += radeon_ioc32.o diff --cc drivers/gpu/drm/radeon/radeon.h index 2434d553bbbc,a5dfb1557d3e..ad9d55f94398 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h @@@ -1165,8 -1048,8 +1171,10 @@@ extern void radeon_legacy_set_clock_gat extern void radeon_atom_set_clock_gating(struct radeon_device *rdev, int enable); extern void radeon_ttm_placement_from_domain(struct radeon_bo *rbo, u32 domain); extern bool radeon_ttm_bo_is_radeon_bo(struct ttm_buffer_object *bo); +extern void radeon_vram_location(struct radeon_device *rdev, struct radeon_mc *mc, u64 base); +extern void radeon_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc); + extern int radeon_resume_kms(struct drm_device *dev); + extern int radeon_suspend_kms(struct drm_device *dev, pm_message_t state); /* r100,rv100,rs100,rv200,rs200,r200,rv250,rs300,rv280 */ struct r100_mc_save {