On Tue, Oct 2, 2012 at 3:24 PM, alexdeucher@gmail.com wrote:
From: Alex Deucher alexander.deucher@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.
non-DP displays
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