Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-07-05 | drm/radeon: use pcie functions for link width | Alex Deucher | |
This is the last user of drm_pcie_get_speed_cap_mask. Use the pci version so we can drop drm_pcie_get_speed_cap_mask. Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2018-06-12 | treewide: kzalloc() -> kcalloc() | Kees Cook | |
The kzalloc() function has a 2-factor argument form, kcalloc(). This patch replaces cases of: kzalloc(a * b, gfp) with: kcalloc(a * b, gfp) as well as handling cases of: kzalloc(a * b * c, gfp) with: kzalloc(array3_size(a, b, c), gfp) as it's slightly less ugly than: kzalloc_array(array_size(a, b), c, gfp) This does, however, attempt to ignore constant size factors like: kzalloc(4 * 1024, gfp) though any constants defined via macros get caught up in the conversion. Any factors with a sizeof() of "unsigned char", "char", and "u8" were dropped, since they're redundant. The Coccinelle script used for this was: // Fix redundant parens around sizeof(). @@ type TYPE; expression THING, E; @@ ( kzalloc( - (sizeof(TYPE)) * E + sizeof(TYPE) * E , ...) | kzalloc( - (sizeof(THING)) * E + sizeof(THING) * E , ...) ) // Drop single-byte sizes and redundant parens. @@ expression COUNT; typedef u8; typedef __u8; @@ ( kzalloc( - sizeof(u8) * (COUNT) + COUNT , ...) | kzalloc( - sizeof(__u8) * (COUNT) + COUNT , ...) | kzalloc( - sizeof(char) * (COUNT) + COUNT , ...) | kzalloc( - sizeof(unsigned char) * (COUNT) + COUNT , ...) | kzalloc( - sizeof(u8) * COUNT + COUNT , ...) | kzalloc( - sizeof(__u8) * COUNT + COUNT , ...) | kzalloc( - sizeof(char) * COUNT + COUNT , ...) | kzalloc( - sizeof(unsigned char) * COUNT + COUNT , ...) ) // 2-factor product with sizeof(type/expression) and identifier or constant. @@ type TYPE; expression THING; identifier COUNT_ID; constant COUNT_CONST; @@ ( - kzalloc + kcalloc ( - sizeof(TYPE) * (COUNT_ID) + COUNT_ID, sizeof(TYPE) , ...) | - kzalloc + kcalloc ( - sizeof(TYPE) * COUNT_ID + COUNT_ID, sizeof(TYPE) , ...) | - kzalloc + kcalloc ( - sizeof(TYPE) * (COUNT_CONST) + COUNT_CONST, sizeof(TYPE) , ...) | - kzalloc + kcalloc ( - sizeof(TYPE) * COUNT_CONST + COUNT_CONST, sizeof(TYPE) , ...) | - kzalloc + kcalloc ( - sizeof(THING) * (COUNT_ID) + COUNT_ID, sizeof(THING) , ...) | - kzalloc + kcalloc ( - sizeof(THING) * COUNT_ID + COUNT_ID, sizeof(THING) , ...) | - kzalloc + kcalloc ( - sizeof(THING) * (COUNT_CONST) + COUNT_CONST, sizeof(THING) , ...) | - kzalloc + kcalloc ( - sizeof(THING) * COUNT_CONST + COUNT_CONST, sizeof(THING) , ...) ) // 2-factor product, only identifiers. @@ identifier SIZE, COUNT; @@ - kzalloc + kcalloc ( - SIZE * COUNT + COUNT, SIZE , ...) // 3-factor product with 1 sizeof(type) or sizeof(expression), with // redundant parens removed. @@ expression THING; identifier STRIDE, COUNT; type TYPE; @@ ( kzalloc( - sizeof(TYPE) * (COUNT) * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | kzalloc( - sizeof(TYPE) * (COUNT) * STRIDE + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | kzalloc( - sizeof(TYPE) * COUNT * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | kzalloc( - sizeof(TYPE) * COUNT * STRIDE + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | kzalloc( - sizeof(THING) * (COUNT) * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) | kzalloc( - sizeof(THING) * (COUNT) * STRIDE + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) | kzalloc( - sizeof(THING) * COUNT * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) | kzalloc( - sizeof(THING) * COUNT * STRIDE + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) ) // 3-factor product with 2 sizeof(variable), with redundant parens removed. @@ expression THING1, THING2; identifier COUNT; type TYPE1, TYPE2; @@ ( kzalloc( - sizeof(TYPE1) * sizeof(TYPE2) * COUNT + array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2)) , ...) | kzalloc( - sizeof(TYPE1) * sizeof(THING2) * (COUNT) + array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2)) , ...) | kzalloc( - sizeof(THING1) * sizeof(THING2) * COUNT + array3_size(COUNT, sizeof(THING1), sizeof(THING2)) , ...) | kzalloc( - sizeof(THING1) * sizeof(THING2) * (COUNT) + array3_size(COUNT, sizeof(THING1), sizeof(THING2)) , ...) | kzalloc( - sizeof(TYPE1) * sizeof(THING2) * COUNT + array3_size(COUNT, sizeof(TYPE1), sizeof(THING2)) , ...) | kzalloc( - sizeof(TYPE1) * sizeof(THING2) * (COUNT) + array3_size(COUNT, sizeof(TYPE1), sizeof(THING2)) , ...) ) // 3-factor product, only identifiers, with redundant parens removed. @@ identifier STRIDE, SIZE, COUNT; @@ ( kzalloc( - (COUNT) * STRIDE * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - COUNT * (STRIDE) * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - COUNT * STRIDE * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - (COUNT) * (STRIDE) * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - COUNT * (STRIDE) * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - (COUNT) * STRIDE * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - (COUNT) * (STRIDE) * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - COUNT * STRIDE * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) ) // Any remaining multi-factor products, first at least 3-factor products, // when they're not all constants... @@ expression E1, E2, E3; constant C1, C2, C3; @@ ( kzalloc(C1 * C2 * C3, ...) | kzalloc( - (E1) * E2 * E3 + array3_size(E1, E2, E3) , ...) | kzalloc( - (E1) * (E2) * E3 + array3_size(E1, E2, E3) , ...) | kzalloc( - (E1) * (E2) * (E3) + array3_size(E1, E2, E3) , ...) | kzalloc( - E1 * E2 * E3 + array3_size(E1, E2, E3) , ...) ) // And then all remaining 2 factors products when they're not all constants, // keeping sizeof() as the second factor argument. @@ expression THING, E1, E2; type TYPE; constant C1, C2, C3; @@ ( kzalloc(sizeof(THING) * C2, ...) | kzalloc(sizeof(TYPE) * C2, ...) | kzalloc(C1 * C2 * C3, ...) | kzalloc(C1 * C2, ...) | - kzalloc + kcalloc ( - sizeof(TYPE) * (E2) + E2, sizeof(TYPE) , ...) | - kzalloc + kcalloc ( - sizeof(TYPE) * E2 + E2, sizeof(TYPE) , ...) | - kzalloc + kcalloc ( - sizeof(THING) * (E2) + E2, sizeof(THING) , ...) | - kzalloc + kcalloc ( - sizeof(THING) * E2 + E2, sizeof(THING) , ...) | - kzalloc + kcalloc ( - (E1) * E2 + E1, E2 , ...) | - kzalloc + kcalloc ( - (E1) * (E2) + E1, E2 , ...) | - kzalloc + kcalloc ( - E1 * E2 + E1, E2 , ...) ) Signed-off-by: Kees Cook <keescook@chromium.org> | |||
2017-05-17 | drm/radeon: fix include notation and remove -Iinclude/drm flag | Masahiro Yamada | |
Include <drm/*.h> instead of relative path from include/drm, then remove the -Iinclude/drm compiler flag. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1493009447-31524-14-git-send-email-yamada.masahiro@socionext.com | |||
2017-03-29 | drm: Use pr_cont where appropriate | Joe Perches | |
Using 'printk("\n")' is not preferred anymore and using printk to continue logging messages now produces multiple line logging output unless the continuations use KERN_CONT. Convert these uses to appropriately use pr_cont or a single printk where possible. Miscellanea: o Use a temporary const char * instead of multiple printks o Remove trailing space from logging by using a leading space instead Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2016-10-13 | drm/radeon: change vblank_time's calculation method to reduce computational ↵ | Alex Deucher | |
error. Ported from Rex's amdgpu change. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org | |||
2016-03-16 | drm/radeon: fix indentation. | Jérome Glisse | |
I hate doing this but it hurts my eyes to go over code that does not comply with indentation rules. Only thing that is not only space change is in atom.c all other files are space indentation issues. Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Jérôme Glisse <jglisse@redhat.com> Cc: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2015-02-25 | drm/radeon: use drm_mode_vrefresh() rather than mode->vrefresh | Alex Deucher | |
Just in case it hasn't been calculated for the mode. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org | |||
2014-12-02 | Merge tag 'v3.18-rc7' into drm-next | Dave Airlie | |
This fixes a bunch of conflicts prior to merging i915 tree. Linux 3.18-rc7 Conflicts: drivers/gpu/drm/exynos/exynos_drm_drv.c drivers/gpu/drm/i915/i915_drv.c drivers/gpu/drm/i915/intel_pm.c drivers/gpu/drm/tegra/dc.c | |||
2014-11-20 | drm/radeon/dpm: add smc fan control for CI (v2) | Alex Deucher | |
Enable smc fan control for CI boards. Should reduce the fan noise on systems with a higher default fan profile. v2: disable by default, add additional fan setup, rpm control bug: https://bugs.freedesktop.org/show_bug.cgi?id=73338 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2014-11-20 | drm/radeon: fix endian swapping in vbios fetch for tdp table | Alex Deucher | |
Value needs to be swapped on BE. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org | |||
2014-10-16 | drm/radeon: reduce sparse false positive warnings | Michele Curti | |
include radeon_asic.h header file in the various xxx_dpm.c files to reduce sparse false positive warnings. Not so great patch in itself, but reducing warning count from 391 to 258 may help to see real problems.. Signed-off-by: Michele Curti <michele.curti@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2014-04-22 | drm/radeon/pm: don't walk the crtc list before it has been initialized (v2) | Alex Deucher | |
Avoids a crash in certain cases when thermal irqs are generated before the display structures have been initialized. v2: fix the vblank and vrefresh helpers as well bug: https://bugzilla.kernel.org/show_bug.cgi?id=73931 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org | |||
2014-02-18 | drm/radeon/dpm: fetch vce states from the vbios | Alex Deucher | |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2014-02-18 | drm/radeon/dpm: move platform caps fetching to a separate function | Alex Deucher | |
It's needed by by both the asic specific functions and the extended table parser. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-12-24 | drm/radeon/dpm: switch on new late_enable callback | Alex Deucher | |
Right now it's called right after enable, but after reworking the dpm init order, it will get called later to accomodate loading the smc early, but enabling thermal interrupts and block powergating later after the ring tests are complete. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-12-24 | drm/radeon/dpm: add late_enable for rs780/rs880/rv6xx | Alex Deucher | |
Make sure interrupts are enabled before we enable thermal interrupts. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-09-23 | drm/radeon: fix missed variable sized access | Alex Deucher | |
I missed this when I fixed up this file. Noticed-by: Mathias Fröhlich <Mathias.Froehlich@gmx.net> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-09-11 | drm/radeon: clean up r600_free_extended_power_table() | Dan Carpenter | |
kfree() can accept NULL pointers so I have removed the checks. Also I've used a pointer to shorten the lines. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon: gcc fixes for extended dpm tables | Alex Deucher | |
Newer versions of gcc seem to wander off into the weeds when dealing with variable sizes arrays in structs. Rather than indexing the arrays, use pointer arithmetic. See bugs: https://bugs.freedesktop.org/show_bug.cgi?id=66932 https://bugs.freedesktop.org/show_bug.cgi?id=66972 https://bugs.freedesktop.org/show_bug.cgi?id=66945 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon/dpm: add helper to fetch the vrefresh of the current mode | Alex Deucher | |
Needed for DPM on CI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon/dpm: add a helper to encode pcie lane setting | Alex Deucher | |
convert from number of lanes to register setting. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon: add r600_get_pcie_lane_support helper | Alex Deucher | |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon: parse the acp clock voltage deps table | Alex Deucher | |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon: parse the samu clock voltage deps table | Alex Deucher | |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon/dpm: clean up the extended table error pathes | Alex Deucher | |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon: parse the uvd clock voltage deps table | Alex Deucher | |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon: parse the vce clock voltage deps table | Alex Deucher | |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon/dpm: grab mvdd_dependency_on_mclk info from vbios | Alex Deucher | |
Required for dpm on CI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon/dpm: add support for parsing the atom powertune table | Alex Deucher | |
Needed for DPM on CI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon/dpm: update cac leakage table parsing for CI | Alex Deucher | |
Uses a different table format if the board supports EVV. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon: add KB/KV to r600_is_internal_thermal_sensor | Alex Deucher | |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-08-30 | drm/radeon: add CI to r600_is_internal_thermal_sensor() | Alex Deucher | |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-07-25 | drm/radeon/dpm: fix r600_enable_sclk_control() | Alex Deucher | |
Actually program the correct register to enable engine clock scaling control. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-07-08 | drm/radeon/dpm: add helper to calculate vblank time | Alex Deucher | |
Required for checking vblank time for mclk changes. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-06-27 | drm/radeon/kms: add dpm support for SI (v7) | Alex Deucher | |
This adds dpm support for SI asics. This includes: - dynamic engine clock scaling - dynamic memory clock scaling - dynamic voltage scaling - dynamic pcie gen1/gen2/gen3 switching - power containment - shader power scaling Set radeon.dpm=1 to enable. v2: enable hainan support, rebase v3: guard acpi stuff v4: fix 64 bit math v5: fix 64 bit div harder v6: fix thermal interrupt check noticed by Jerome v7: attempt fix state enable Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-06-27 | drm/radeon: add SI to r600_is_internal_thermal_sensor() | Alex Deucher | |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-06-27 | drm/radeon/dpm: add pcie gen helper function | Alex Deucher | |
Add a helper function to determine the preferred pcie gen based on the card, system, and circumstance. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-06-27 | drm/radeon: fix some memory leaks in extended table parsing | Alex Deucher | |
Forgot to free some structs when allocation fails for some tables. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-06-27 | drm/radeon/dpm: pull in ppm info from atom | Alex Deucher | |
Used by SI dpm. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-06-27 | drm/radeon/dpm: endian fixes for extended power tables | Alex Deucher | |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-06-27 | drm/radeon/dpm: pull in phase shedding limits from atom | Alex Deucher | |
Required for dpm on SI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-06-27 | drm/radeon/dpm: add pre/post_set_power_state callbacks (6xx-eg) | Alex Deucher | |
For r6xx-evergreen, they are no-ops as they don't support any dynamic state adjustment. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-06-27 | drm/radeon/dpm: add helpers for extended power tables (v2) | Alex Deucher | |
This data will be needed for dpm on newer asics. v2: fix typo in rebase Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |||
2013-06-27 | drm/radeon/kms: add dpm support for rv6xx (v3) | Alex Deucher | |
This adds dpm support for rv6xx asics. This includes: - clockgating - dynamic engine clock scaling - dynamic memory clock scaling - dynamic voltage scaling - dynamic pcie gen1/gen2 switching Set radeon.dpm=1 to enable. v2: remove duplicate line v3: fix thermal interrupt check noticed by Jerome Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> | |||
2013-06-27 | drm/radeon/kms: add common r600 dpm functions | Alex Deucher | |
These are shared by rs780/rs880, rv6xx, and newer chips. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> |