[pull] radeon drm-next-3.7

From: Alex Deucher <alexander.deucher at amd.com> Hi Dave, This is the drm-next pull request for 3.7. Most of these patches have been in my drm-next-3.7-wip branch for a while now, and I've been using it regularly now for a while. The big changes for 3.7 include: - Asynchronous VM page table updates for Cayman/SI - 2 level VM page table support. Saves memory compared to 1 level page tables. - Reworked PLL handing in the display code allows lots more combinations of monitors to work, including more than two DP displays assuming compatible clocks across shared PLLs. This also allows us to power down extra PLLs when we can share a single one across multiple displays which saves power. - Native backlight control on ATOMBIOS systems. - Improved ACPI support for interacting with the GPU. Fixes backlight control on some laptops. - Document AMD ACPI interfaces - Lots of code cleanup - Bug fixes The branch is against your drm-fixes branch due to conflicts, let me know if you have trouble pulling it in. The following changes since commit 16c58081eb95e35f284421176f355eccfc773bbe: drm/radeon: Prevent leak of scratch register on resume from suspend (2012-09-20 12:59:16 -0400) are available in the git repository at: git://people.freedesktop.org/~agd5f/linux drm-next-3.7 Alex Deucher (45): drm/radeon/dce4+: don't use radeon_crtc for vblank callback drm/radeon: clean up evergreen_get_vblank_counter drm/radeon/r1xx-r4xx: don't use radeon_crtc for vblank callback drm/radeon/r5xx-r7xx: don't use radeon_crtc for vblank callback (v2) drm/radeon: properly handle mc_stop/mc_resume on evergreen+ (v2) drm/radeon/dynpm: wait for fences on all rings when reclocking drm/radeon: remove gui_idle interrupt infrastructure drm/radeon: add new AMD ACPI header and update relevant code (v2) drm/radeon: add a license header to radeon_apci.c drm/radeon: track whether the GPU controls the backlight (v2) drm/radeon: rework legacy backlight control drm/radeon: add backlight control for atom devices (v2) drm/radeon: re-organize the acpi notifier callback drm/radeon: document radeon_acpi.c drm/radeon: update ATPX verify interface handling (v2) drm/radeon: reorganize ATPX support (v2) drm/radeon: document radeon_atpx_handler.c (v2) drm/radeon: add initial support for ATCS ACPI methods drm/radeon: rework the backlight control to be an asic callback drm/radeon/atom: add consolidate bpc code drm/radeon: document async VM changes in ni.c drm/radeon: implement bounds checking on thermal controller lookup drm/radeon: remove dead function def drm/radeon: clean up encoder dp checks drm/radeon: white space cleanup in transmitter setup drm/radeon/atom: fix typo in SetPixelClock handling drm/radeon: fix typo in atombios_get_encoder_mode drm/radeon: rework pll selection (v4) drm/radeon/dce3: use a single PPLL for all DP displays drm/radeon: allow PPLL sharing on non-DP displays drm/radeon: rework crtc pll setup to better support PPLL sharing drm/radeon: store the encoder in the radeon_crtc drm/radeon: make non-DP PPLL sharing more robust drm/radeon: work around KMS modeset limitations in PLL allocation (v2) drm/radeon: validate PPLL in crtc fixup drm/radeon: only adjust default clocks on NI GPUs drm/radeon: add get_backlight_level callback drm/radeon: restore backlight level on resume drm/radeon: Add MSI quirk for gateway RS690 drm/radeon: force MSIs on RS690 asics drm/radeon: fix radeon power state debug output drm/radeon/pm: fix multi-head profile handling on BTC+ (v2) drm/radeon: use WRITE_DATA packets for vm flush on SI drm/radeon: rework the vm_flush interface drm/radeon: add vm set_page() callback for SI Christian König (18): drm/radeon: cleanup VM id handling a bit drm/radeon: move VM funcs into asic structure drm/radeon: remove vm_unbind drm/radeon: add sync helper function drm/radeon: make VM flushs a ring operation drm/radeon: rework VMID handling drm/radeon: rework VM page table handling drm/radeon: Move looping over the PTEs into chip code drm/radeon: make page table updates async v2 drm/radeon: fix VM syncing with multiple rings drm/radeon: fix VA range check drm/radeon: fix VA overlap check drm/radeon: move IB pool to 1MB offset drm/radeon: move and rename radeon_bo_va function drm/radeon: let bo_reserve take no_intr instead of no_wait param drm/radeon: fix gem_close_object handling drm/radeon: rework the VM code a bit more (v2) drm/radeon: refactor set_page chipset interface v5 Dmitry Cherkasov (1): drm/radeon: add 2-level VM pagetables support v9 Jerome Glisse (1): drm/radeon: make sure ib bo is properly bound and up to date in vm space Lauri Kasanen (2): drm/radeon: Mark all possible functions / structs as static drm/radeon: Remove unused functions Luca Tettamanti (6): drm/radeon: refactor radeon_atif_call drm/radeon: implement radeon_atif_verify_interface drm/radeon: implement wrapper for GET_SYSTEM_PARAMS drm/radeon: implement handler for ACPI event ACPI video: allow events handlers to veto the keypress drm/radeon: block the keypress on ATIF events Marek Olšák (2): drm/radeon/kms: allow STRMOUT_BASE_UPDATE on RS780 and RS880 drm/radeon: allow MIP_ADDRESS=0 for MSAA textures on Evergreen Michel Dänzer (1): drm/radeon: Fix scratch register leak in IB test. Steven Fuerst (3): Rename i2f() to int2float(), and make it global so one copy can be removed. Replace int2float() with an optimized version. Annotate int2float() as being a pure function. drivers/acpi/video.c | 8 +- drivers/gpu/drm/radeon/atombios_crtc.c | 663 +++++++++++++++-------- drivers/gpu/drm/radeon/atombios_encoders.c | 367 ++++++++++--- drivers/gpu/drm/radeon/evergreen.c | 282 ++++++---- drivers/gpu/drm/radeon/evergreen_cs.c | 61 ++- drivers/gpu/drm/radeon/evergreen_reg.h | 2 + drivers/gpu/drm/radeon/evergreend.h | 7 + drivers/gpu/drm/radeon/ni.c | 134 +++-- drivers/gpu/drm/radeon/nid.h | 1 + drivers/gpu/drm/radeon/r100.c | 96 +--- drivers/gpu/drm/radeon/r300.c | 4 +- drivers/gpu/drm/radeon/r520.c | 4 +- drivers/gpu/drm/radeon/r600.c | 37 +- drivers/gpu/drm/radeon/r600_blit.c | 115 ++-- drivers/gpu/drm/radeon/r600_blit_kms.c | 52 +-- drivers/gpu/drm/radeon/r600_blit_shaders.h | 1 + drivers/gpu/drm/radeon/r600_cs.c | 5 +- drivers/gpu/drm/radeon/r600_hdmi.c | 2 +- drivers/gpu/drm/radeon/radeon.h | 192 +++++-- drivers/gpu/drm/radeon/radeon_acpi.c | 607 ++++++++++++++++++++- drivers/gpu/drm/radeon/radeon_acpi.h | 445 +++++++++++++++ drivers/gpu/drm/radeon/radeon_asic.c | 93 +++- drivers/gpu/drm/radeon/radeon_asic.h | 28 +- drivers/gpu/drm/radeon/radeon_atombios.c | 15 +- drivers/gpu/drm/radeon/radeon_atpx_handler.c | 411 ++++++++++++--- drivers/gpu/drm/radeon/radeon_combios.c | 9 - drivers/gpu/drm/radeon/radeon_connectors.c | 43 +- drivers/gpu/drm/radeon/radeon_cs.c | 83 +-- drivers/gpu/drm/radeon/radeon_device.c | 11 +- drivers/gpu/drm/radeon/radeon_drv.c | 4 +- drivers/gpu/drm/radeon/radeon_encoders.c | 19 +- drivers/gpu/drm/radeon/radeon_fb.c | 16 - drivers/gpu/drm/radeon/radeon_fence.c | 2 +- drivers/gpu/drm/radeon/radeon_gart.c | 602 +++++++++++++-------- drivers/gpu/drm/radeon/radeon_gem.c | 54 ++- drivers/gpu/drm/radeon/radeon_ioc32.c | 2 +- drivers/gpu/drm/radeon/radeon_irq_kms.c | 43 +-- drivers/gpu/drm/radeon/radeon_kms.c | 17 +- drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 7 +- drivers/gpu/drm/radeon/radeon_legacy_encoders.c | 65 ++- drivers/gpu/drm/radeon/radeon_mode.h | 49 ++- drivers/gpu/drm/radeon/radeon_object.c | 22 +- drivers/gpu/drm/radeon/radeon_object.h | 4 +- drivers/gpu/drm/radeon/radeon_pm.c | 104 ++-- drivers/gpu/drm/radeon/radeon_ring.c | 30 +- drivers/gpu/drm/radeon/radeon_sa.c | 20 +- drivers/gpu/drm/radeon/radeon_test.c | 2 +- drivers/gpu/drm/radeon/radeon_ttm.c | 2 +- drivers/gpu/drm/radeon/rs400.c | 6 +- drivers/gpu/drm/radeon/rs600.c | 49 +- drivers/gpu/drm/radeon/rs690.c | 6 +- drivers/gpu/drm/radeon/rv515.c | 18 +- drivers/gpu/drm/radeon/rv770.c | 10 +- drivers/gpu/drm/radeon/si.c | 113 +++-- drivers/gpu/drm/radeon/sid.h | 15 + 55 files changed, 3549 insertions(+), 1510 deletions(-) create mode 100644 drivers/gpu/drm/radeon/radeon_acpi.h