[PATCH 000/165] radeon drm-next patches

Jerome Glisse j.glisse at gmail.com
Wed Jun 26 05:55:42 PDT 2013


On Wed, Jun 26, 2013 at 09:21:20AM -0400, alexdeucher at gmail.com wrote:
> From: Alex Deucher <alexander.deucher at amd.com>
> 
> These are the radeon patches for 3.11.  Some of these patches
> are huge so, it might be easier to review things here:
> http://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-next-3.11-wip
> 
> I'll send a formal pull in request in the next day or two.
> 
> Highlights of this series:
> - DPM support (Dynamic Power Management) for r6xx-SI
> - Support for CIK (Sea Islands): modesetting, 3D, compute, UVD
> - ASPM support for R6xx-SI
> 
> Since this is the initial public DPM code, it's still disabled by default
> until we get more community testing.  Pass dpm=1 to the radeon module to
> enable it.

So for the serie (except one i replied to) got my :

Reviewed-by: Jerome Glisse <jglisse at redhat.com>

I mostly checked the logic behind function ie what function is supose to do
and does it do it properly. I didn't do any tedious check like is it using
proper define for this generation.

I wish more of the acronym related to power management were documented. There
is so many magic name that it's often hard to understand the logic of the
code, what it's doing and what is it that it's computing.

Regarding CIK i fear that the hsa addition doesn't fit very well with our ring
stuff, we probably don't want a ring struct for each of the 32 or 64 queues.
But as right now we are only using few queues, that's probably alright.

Cheers,
Jerome

> 
> Alex Deucher (164):
>   drm/radeon: fix AVI infoframe generation
>   drm/radeon: add backlight quirk for hybrid mac
>   drm/radeon: add a reset work handler
>   drm/radeon: add CIK chip families
>   drm/radeon: add DCE8 macro for CIK
>   drm/radeon: adapt to PCI BAR changes on CIK
>   drm/radeon: add gpu init support for CIK (v9)
>   drm/radeon: Add support for CIK GPU reset (v2)
>   drm/radeon: add support for MC/VM setup on CIK (v6)
>   drm/radeon/cik: stop page faults from hanging the system (v2)
>   drm/radeon: add initial ucode loading for CIK (v5)
>   drm/radeon: add support mc ucode loading on CIK (v2)
>   drm/radeon: Add CP init for CIK (v7)
>   drm/radeon: add IB and fence dispatch functions for CIK gfx (v7)
>   drm/radeon: add ring and IB tests for CIK (v3)
>   drm/radeon: implement async vm_flush for the CP (v7)
>   drm/radeon: Add support for RLC init on CIK (v4)
>   drm/radeon: add support for interrupts on CIK (v5)
>   drm/radeon/cik: log and handle VM page fault interrupts
>   drm/radeon/cik: add support for sDMA dma engines (v8)
>   drm/radeon: implement async vm_flush for the sDMA (v6)
>   drm/radeon/cik: add support for doing async VM pt updates (v5)
>   drm/radeon/cik: fill in startup/shutdown callbacks (v4)
>   drm/radeon: upstream ObjectID.h updates (v2)
>   drm/radeon: upstream atombios.h updates (v2)
>   drm/radeon: atombios power table updates (v2)
>   drm/radeon: handle the integrated thermal controller on CI
>   drm/radeon: update power state parsing for CI
>   drm/radeon/dce8: add support for display watermark setup
>   drm/radeon/cik: add hw cursor support (v2)
>   drm/radeon/dce8: properly handle interlaced timing
>   drm/radeon/dce8: crtc_set_base updates
>   drm/radeon/atom: add DCE8 encoder support
>   drm/radeon/atom: add support for new DVO tables
>   drm/radeon: update DISPCLK programming for DCE8
>   drm/radeon: add support pll selection for DCE8 (v4)
>   drm/radeon: Handle PPLL0 powerdown on DCE8
>   drm/radeon: use frac fb div on DCE8
>   drm/radeon: add SS override support for KB/KV
>   drm/radeon: Update radeon_info_ioctl for CIK (v2)
>   drm/radeon: add get_gpu_clock_counter() callback for cik
>   drm/radeon: update CIK soft reset
>   drm/radeon: add indirect register accessors for SMC registers
>   drm/radeon: add get_xclk() callback for CIK
>   drm/radeon/cik: add pcie_port indirect register accessors
>   drm/radeon: update radeon_atom_get_clock_dividers() for SI
>   drm/radeon: update radeon_atom_get_clock_dividers for CIK
>   drm/radeon/cik: add srbm_select function
>   drm/radeon: use callbacks for ring pointer handling
>   drm/radeon: implement simple doorbell page allocator
>   drm/radeon/cik: Add support for compute queues (v2)
>   drm/radeon/cik: switch to type3 nop packet for compute rings
>   drm/radeon: fix up ring functions for compute rings
>   drm/radeon/cik: add support for compute interrupts
>   drm/radeon/cik: add support for golden register init
>   drm/radeon: add radeon_asic struct for CIK (v11)
>   drm/radeon: add cik tile mode array query
>   drm/radeon: add current Bonaire PCI ids
>   drm/radeon: add current KB pci ids
>   drm/radeon/kms: add accessors for RCU indirect space
>   drm/radeon/evergreen: add indirect register accessors for CG
>     registers
>   drm/radeon: make get_temperature functions a callback
>   drm/radeon: add support for thermal sensor on tn
>   drm/radeon/kms: move ucode defines to a separate header
>   drm/radeon: properly set up the RLC on ON/LN/TN (v3)
>   drm/radeon/kms: add atom helper functions for dpm (v3)
>   drm/radeon/kms: add new asic struct for rv6xx (v3)
>   drm/radeon/kms: add common dpm infrastructure
>   drm/radeon/kms: fix up rs780/rs880 display watermark calc for dpm
>   drm/radeon/kms: fix up 6xx/7xx display watermark calc for dpm
>   drm/radeon/kms: fix up dce4/5 display watermark calc for dpm
>   drm/radeon/kms: fix up dce6 display watermark calc for dpm
>   drm/radeon/kms: add common r600 dpm functions
>   drm/radeon/kms: add dpm support for rs780/rs880
>   drm/radeon/kms: add dpm support for rv6xx
>   drm/radeon/kms: add dpm support for rv7xx (v2)
>   drm/radeon/kms: add dpm support for evergreen (v2)
>   drm/radeon/kms: add dpm support for btc (v2)
>   drm/radeon/kms: add dpm support for sumo asics
>   drm/radeon/kms: add dpm support for trinity asics
>   drm/radeon/dpm: let atom control display phy powergating
>   drm/radeon: add dpm UVD handling for r7xx asics
>   drm/radeon: add dpm UVD handling for evergreen/btc asics
>   drm/radeon: add dpm UVD handling for sumo asics
>   drm/radeon: add dpm UVD handling for TN asics (v2)
>   drm/radeon/kms: enable UVD as needed (v9)
>   drm/radeon/dpm: add helpers for extended power tables (v2)
>   drm/radeon/dpm: track whether we are on AC or battery
>   drm/radeon/dpm: fixup dynamic state adjust for sumo
>   drm/radeon/dpm: fixup dynamic state adjust for TN
>   drm/radeon/dpm: fixup dynamic state adjust for btc (v2)
>   drm/radeon/kms: add dpm support for cayman
>   drm/radeon/cayman: update tdp limits in set_power_state
>   drm/radeon/dpm/rs780: restructure code
>   drm/radeon/dpm/rv6xx: restructure code
>   drm/radeon/dpm/rv7xx: restructure code
>   drm/radeon/dpm/evergreen: restructure code
>   drm/radeon/dpm/btc: restructure code
>   drm/radeon/dpm/cayman: restructure code
>   drm/radeon/dpm/sumo: restructure code
>   drm/radeon/dpm/tn: restructure code
>   drm/radeon/dpm: add new pre/post_set_power_state callbacks
>   drm/radeon/dpm: add pre/post_set_power_state callbacks (6xx-eg)
>   drm/radeon/dpm: add pre/post_set_power_state callback (sumo)
>   drm/radeon/dpm: add pre/post_set_power_state callback (TN)
>   drm/radeon/dpm: add pre/post_set_power_state callback (BTC)
>   drm/radeon/dpm: add pre/post_set_power_state callback (cayman)
>   drm/radeon/dpm: remove broken dyn state remnants
>   drm/radeon: add missing UVD clock set in cayman dpm code
>   drm/radeon/dpm: remove local sumo_get_xclk()
>   drm/radeon: implement apci perf request
>   drm/radeon/atom: add helper to calcuate mpll params
>   drm/radeon: update radeon_atom_is_voltage_gpio() for SI
>   drm/radeon: update radeon_atom_get_voltage_table() for SI
>   drm/radeon: implement pcie gen2/3 support for SI
>   drm/radeon: add accessors of pif_phy indirect register space
>   drm/radeon: add support for ASPM on evergreen asics
>   drm/radeon: add support for ASPM on SI asics (v2)
>   drm/radeon: enable additional power gating features on trinity
>   drm/radeon: update rlc programming sequence on SI
>   drm/radeon: add atom get leakage vddc function
>   drm/radeon: add indirect accessors for UVD CTX registers
>   drm/radeon: initialize save/restore buffer for pg on verde
>   drm/radeon: add clearstate init for verde power gating
>   drm/radeon: implement clock and power gating for SI
>   drm/radeon/dpm: add an enum for pcie gen selection
>   drm/radeon/dpm: pull in phase shedding limits from atom
>   drm/radeon/dpm: endian fixes for extended power tables
>   drm/radeon/dpm: pull in ppm info from atom
>   drm/radeon/dpm: save some display parameters for DPM
>   drm/radeon: minor sid.h cleanup
>   drm: add some additional fixed point helpers (v2)
>   drm/radeon/dpm/cayman: use new fixed point functions
>   drm/radeon: fix some memory leaks in extended table parsing
>   drm/radeon/dpm: validate voltages against dispclk requirements
>   drm/radeon: update radeon_atombios_get_default_voltages for mvdd
>   drm/radeon/dpm: add pcie gen helper function
>   drm/radeon: fix typo in atom voltage table handling (6xx-ni)
>   drm/radeon: fix typo in atom voltage table handling (si+)
>   drm/radeon/atom: fix voltage table parsing
>   drm/radeon/dpm/ni: properly catch errors in dpm setup
>   drm/radeon/dpm/btc: properly catch errors in dpm setup
>   drm/radeon/dpm/evergreen: properly catch errors in dpm setup
>   drm/radeon/dpm/sumo: properly catch errors in dpm setup
>   drm/radeon/dpm/trinity: properly catch errors in dpm setup
>   drm/radeon/dpm/r7xx: properly catch errors in dpm setup
>   drm/radeon/dpm/r6xx: properly catch errors in dpm setup
>   drm/radeon/dpm/rs780: properly catch errors in dpm setup
>   drm/radeon: add SI to r600_is_internal_thermal_sensor()
>   drm/radeon: switch SI to use radeon_ucode.h
>   drm/radeon/kms: add dpm support for SI (v3)
>   drm/radeon/dpm: add dpm_enable failure output (7xx-ni)
>   drm/radeon/dpm: add dpm_enable failure output (si)
>   drm/radeon/dpm: add dpm_set_power_state failure output (7xx-ni)
>   drm/radeon/dpm: add dpm_set_power_state failure output (si)
>   drm/radeon/dpm: fix typo in setting uvd clock
>   drm/radeon/si: fix typo in function name
>   drm/radeon: fix typo in cik_select_se_sh()
>   drm/radeon: fix typo in ni_print_power_state
>   drm/radeon/dpm: add support for setting UVD clock on rs780
>   drm/radeon/dpm: add support for setting UVD clock on rv6xx
>   drm/radeon/dpm: fix UVD clock setting on cayman
>   drm/radeon/dpm: fix UVD clock setting on SI
>   drm/radeon: fix endian issues in atombios dpm code
> 
> Christian König (1):
>   drm/radeon: add UVD support for CIK (v3)
> 
>  drivers/gpu/drm/radeon/Makefile               |    5 +-
>  drivers/gpu/drm/radeon/ObjectID.h             |   40 +
>  drivers/gpu/drm/radeon/atombios.h             |  547 ++-
>  drivers/gpu/drm/radeon/atombios_crtc.c        |   88 +-
>  drivers/gpu/drm/radeon/atombios_encoders.c    |   51 +-
>  drivers/gpu/drm/radeon/btc_dpm.c              | 2731 ++++++++++
>  drivers/gpu/drm/radeon/btc_dpm.h              |   57 +
>  drivers/gpu/drm/radeon/btcd.h                 |  181 +
>  drivers/gpu/drm/radeon/cik.c                  | 6995 +++++++++++++++++++++++++
>  drivers/gpu/drm/radeon/cik_blit_shaders.c     |  246 +
>  drivers/gpu/drm/radeon/cik_blit_shaders.h     |   32 +
>  drivers/gpu/drm/radeon/cik_reg.h              |  147 +
>  drivers/gpu/drm/radeon/cikd.h                 | 1297 +++++
>  drivers/gpu/drm/radeon/clearstate_cayman.h    | 1081 ++++
>  drivers/gpu/drm/radeon/clearstate_defs.h      |   44 +
>  drivers/gpu/drm/radeon/clearstate_evergreen.h | 1080 ++++
>  drivers/gpu/drm/radeon/clearstate_si.h        |  941 ++++
>  drivers/gpu/drm/radeon/cypress_dpm.c          | 2170 ++++++++
>  drivers/gpu/drm/radeon/cypress_dpm.h          |  160 +
>  drivers/gpu/drm/radeon/evergreen.c            |  644 +++-
>  drivers/gpu/drm/radeon/evergreen_hdmi.c       |   11 +-
>  drivers/gpu/drm/radeon/evergreen_reg.h        |   12 +
>  drivers/gpu/drm/radeon/evergreen_smc.h        |   67 +
>  drivers/gpu/drm/radeon/evergreend.h           |  389 ++-
>  drivers/gpu/drm/radeon/ni.c                   |  198 +-
>  drivers/gpu/drm/radeon/ni_dpm.c               | 4288 +++++++++++++++
>  drivers/gpu/drm/radeon/ni_dpm.h               |  248 +
>  drivers/gpu/drm/radeon/nid.h                  |  561 ++
>  drivers/gpu/drm/radeon/nislands_smc.h         |  329 ++
>  drivers/gpu/drm/radeon/ppsmc.h                |  110 +
>  drivers/gpu/drm/radeon/r600.c                 |  147 +-
>  drivers/gpu/drm/radeon/r600_dpm.c             | 1024 ++++
>  drivers/gpu/drm/radeon/r600_dpm.h             |  226 +
>  drivers/gpu/drm/radeon/r600_hdmi.c            |   11 +-
>  drivers/gpu/drm/radeon/r600_reg.h             |    6 +
>  drivers/gpu/drm/radeon/r600d.h                |  232 +-
>  drivers/gpu/drm/radeon/radeon.h               |  517 ++-
>  drivers/gpu/drm/radeon/radeon_acpi.c          |  145 +
>  drivers/gpu/drm/radeon/radeon_asic.c          |  524 ++-
>  drivers/gpu/drm/radeon/radeon_asic.h          |  166 +
>  drivers/gpu/drm/radeon/radeon_atombios.c      |  880 +++-
>  drivers/gpu/drm/radeon/radeon_cs.c            |    1 +
>  drivers/gpu/drm/radeon/radeon_cursor.c        |   10 +-
>  drivers/gpu/drm/radeon/radeon_device.c        |  106 +-
>  drivers/gpu/drm/radeon/radeon_display.c       |   21 +-
>  drivers/gpu/drm/radeon/radeon_drv.c           |    7 +-
>  drivers/gpu/drm/radeon/radeon_family.h        |    3 +
>  drivers/gpu/drm/radeon/radeon_irq_kms.c       |   20 +
>  drivers/gpu/drm/radeon/radeon_kms.c           |   41 +-
>  drivers/gpu/drm/radeon/radeon_mode.h          |   93 +
>  drivers/gpu/drm/radeon/radeon_pm.c            |  610 ++-
>  drivers/gpu/drm/radeon/radeon_reg.h           |    1 +
>  drivers/gpu/drm/radeon/radeon_ring.c          |   55 +-
>  drivers/gpu/drm/radeon/radeon_ucode.h         |  129 +
>  drivers/gpu/drm/radeon/radeon_uvd.c           |   32 +-
>  drivers/gpu/drm/radeon/rs690.c                |  291 +-
>  drivers/gpu/drm/radeon/rs780_dpm.c            |  963 ++++
>  drivers/gpu/drm/radeon/rs780_dpm.h            |  109 +
>  drivers/gpu/drm/radeon/rs780d.h               |  168 +
>  drivers/gpu/drm/radeon/rv515.c                |  224 +-
>  drivers/gpu/drm/radeon/rv6xx_dpm.c            | 2059 ++++++++
>  drivers/gpu/drm/radeon/rv6xx_dpm.h            |   95 +
>  drivers/gpu/drm/radeon/rv6xxd.h               |  246 +
>  drivers/gpu/drm/radeon/rv730_dpm.c            |  508 ++
>  drivers/gpu/drm/radeon/rv730d.h               |  165 +
>  drivers/gpu/drm/radeon/rv740_dpm.c            |  416 ++
>  drivers/gpu/drm/radeon/rv740d.h               |  117 +
>  drivers/gpu/drm/radeon/rv770_dpm.c            | 2446 +++++++++
>  drivers/gpu/drm/radeon/rv770_dpm.h            |  287 +
>  drivers/gpu/drm/radeon/rv770_smc.c            |  621 +++
>  drivers/gpu/drm/radeon/rv770_smc.h            |  209 +
>  drivers/gpu/drm/radeon/rv770d.h               |  279 +-
>  drivers/gpu/drm/radeon/si.c                   | 1337 +++++-
>  drivers/gpu/drm/radeon/si_dpm.c               | 6369 ++++++++++++++++++++++
>  drivers/gpu/drm/radeon/si_dpm.h               |  227 +
>  drivers/gpu/drm/radeon/si_smc.c               |  284 +
>  drivers/gpu/drm/radeon/sid.h                  |  599 ++-
>  drivers/gpu/drm/radeon/sislands_smc.h         |  397 ++
>  drivers/gpu/drm/radeon/sumo_dpm.c             | 1801 +++++++
>  drivers/gpu/drm/radeon/sumo_dpm.h             |  220 +
>  drivers/gpu/drm/radeon/sumo_smc.c             |  222 +
>  drivers/gpu/drm/radeon/sumod.h                |  372 ++
>  drivers/gpu/drm/radeon/trinity_dpm.c          | 1887 +++++++
>  drivers/gpu/drm/radeon/trinity_dpm.h          |  131 +
>  drivers/gpu/drm/radeon/trinity_smc.c          |  115 +
>  drivers/gpu/drm/radeon/trinityd.h             |  228 +
>  include/drm/drm_fixed.h                       |   96 +
>  include/drm/drm_pciids.h                      |   24 +
>  88 files changed, 52708 insertions(+), 561 deletions(-)
>  create mode 100644 drivers/gpu/drm/radeon/btc_dpm.c
>  create mode 100644 drivers/gpu/drm/radeon/btc_dpm.h
>  create mode 100644 drivers/gpu/drm/radeon/btcd.h
>  create mode 100644 drivers/gpu/drm/radeon/cik.c
>  create mode 100644 drivers/gpu/drm/radeon/cik_blit_shaders.c
>  create mode 100644 drivers/gpu/drm/radeon/cik_blit_shaders.h
>  create mode 100644 drivers/gpu/drm/radeon/cik_reg.h
>  create mode 100644 drivers/gpu/drm/radeon/cikd.h
>  create mode 100644 drivers/gpu/drm/radeon/clearstate_cayman.h
>  create mode 100644 drivers/gpu/drm/radeon/clearstate_defs.h
>  create mode 100644 drivers/gpu/drm/radeon/clearstate_evergreen.h
>  create mode 100644 drivers/gpu/drm/radeon/clearstate_si.h
>  create mode 100644 drivers/gpu/drm/radeon/cypress_dpm.c
>  create mode 100644 drivers/gpu/drm/radeon/cypress_dpm.h
>  create mode 100644 drivers/gpu/drm/radeon/evergreen_smc.h
>  create mode 100644 drivers/gpu/drm/radeon/ni_dpm.c
>  create mode 100644 drivers/gpu/drm/radeon/ni_dpm.h
>  create mode 100644 drivers/gpu/drm/radeon/nislands_smc.h
>  create mode 100644 drivers/gpu/drm/radeon/ppsmc.h
>  create mode 100644 drivers/gpu/drm/radeon/r600_dpm.c
>  create mode 100644 drivers/gpu/drm/radeon/r600_dpm.h
>  create mode 100644 drivers/gpu/drm/radeon/radeon_ucode.h
>  create mode 100644 drivers/gpu/drm/radeon/rs780_dpm.c
>  create mode 100644 drivers/gpu/drm/radeon/rs780_dpm.h
>  create mode 100644 drivers/gpu/drm/radeon/rs780d.h
>  create mode 100644 drivers/gpu/drm/radeon/rv6xx_dpm.c
>  create mode 100644 drivers/gpu/drm/radeon/rv6xx_dpm.h
>  create mode 100644 drivers/gpu/drm/radeon/rv6xxd.h
>  create mode 100644 drivers/gpu/drm/radeon/rv730_dpm.c
>  create mode 100644 drivers/gpu/drm/radeon/rv730d.h
>  create mode 100644 drivers/gpu/drm/radeon/rv740_dpm.c
>  create mode 100644 drivers/gpu/drm/radeon/rv740d.h
>  create mode 100644 drivers/gpu/drm/radeon/rv770_dpm.c
>  create mode 100644 drivers/gpu/drm/radeon/rv770_dpm.h
>  create mode 100644 drivers/gpu/drm/radeon/rv770_smc.c
>  create mode 100644 drivers/gpu/drm/radeon/rv770_smc.h
>  create mode 100644 drivers/gpu/drm/radeon/si_dpm.c
>  create mode 100644 drivers/gpu/drm/radeon/si_dpm.h
>  create mode 100644 drivers/gpu/drm/radeon/si_smc.c
>  create mode 100644 drivers/gpu/drm/radeon/sislands_smc.h
>  create mode 100644 drivers/gpu/drm/radeon/sumo_dpm.c
>  create mode 100644 drivers/gpu/drm/radeon/sumo_dpm.h
>  create mode 100644 drivers/gpu/drm/radeon/sumo_smc.c
>  create mode 100644 drivers/gpu/drm/radeon/sumod.h
>  create mode 100644 drivers/gpu/drm/radeon/trinity_dpm.c
>  create mode 100644 drivers/gpu/drm/radeon/trinity_dpm.h
>  create mode 100644 drivers/gpu/drm/radeon/trinity_smc.c
>  create mode 100644 drivers/gpu/drm/radeon/trinityd.h
> 
> -- 
> 1.7.7.5
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list