android_kernel_oneplus_msm8998/drivers/gpu/drm/radeon
Paul Parsons ba250be924 drm/radeon: Fix PCIe lane width calculation
commit 85e290d92b4b794d0c758c53007eb4248d385386 upstream.

Two years ago I tried an AMD Radeon E8860 embedded GPU with the drm driver.
The dmesg output included driver warnings about an invalid PCIe lane width.
Tracking the problem back led to si_set_pcie_lane_width_in_smc().
The calculation of the lane widths via ATOM_PPLIB_PCIE_LINK_WIDTH_MASK and
ATOM_PPLIB_PCIE_LINK_WIDTH_SHIFT macros did not increment the resulting
value, per the comment in pptable.h ("lanes - 1"), and per usage elsewhere.
Applying the increment silenced the warnings.
The code has not changed since, so either my analysis was incorrect or the
bug has gone unnoticed. Hence submitting this as an RFC.

Acked-by: Christian König <christian.koenig@amd.com>
Acked-by: Chunming Zhou <david1.zhou@amd.com>
Signed-off-by: Paul Parsons <lost.distance@yahoo.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-04-24 09:32:09 +02:00
..
reg_srcs
.gitignore
atom-bits.h
atom-names.h
atom-types.h
atom.c
atom.h
atombios.h
atombios_crtc.c drm/radeon: Ensure vblank interrupt is enabled on DPMS transition to on 2016-12-02 09:09:01 +01:00
atombios_dp.c drm/radeon: fix atombios on big endian 2017-12-05 11:22:51 +01:00
atombios_encoders.c drm/radeon: Fix eDP for single-display iMac10,1 (v2) 2017-07-27 15:06:06 -07:00
atombios_i2c.c
avivod.h
btc_dpm.c
btc_dpm.h
btcd.h
cayman_blit_shaders.c drm: fix trivial typos 2015-10-21 11:35:11 -04:00
cayman_blit_shaders.h
ci_dpm.c drm/radeon/ci: disable mclk switching for high refresh rates (v2) 2017-07-27 15:06:06 -07:00
ci_dpm.h
ci_smc.c
cik.c drm/radeon: fix KV harvesting 2018-03-18 11:17:49 +01:00
cik_blit_shaders.c
cik_blit_shaders.h
cik_reg.h
cik_sdma.c drm/radeon: SDMA fix hibernation (CI GPU family). 2015-06-29 11:21:41 -04:00
cikd.h
clearstate_cayman.h
clearstate_ci.h
clearstate_defs.h
clearstate_evergreen.h
clearstate_si.h
cypress_dpm.c
cypress_dpm.h
dce3_1_afmt.c
dce6_afmt.c drm/radeon: Add a common function for DFS handling 2016-03-03 15:07:21 -08:00
drm_buffer.c
drm_buffer.h
evergreen.c drm/radeon: Unbreak HPD handling for r600+ 2017-06-07 12:06:00 +02:00
evergreen_blit_shaders.c drm: fix trivial typos 2015-10-21 11:35:11 -04:00
evergreen_blit_shaders.h
evergreen_cs.c drm/radeon: remove volatile qualifier 2015-10-02 16:08:30 -04:00
evergreen_dma.c
evergreen_hdmi.c drm/radeon: fix DP audio support for APU with DCE4.1 display engine 2016-03-03 15:07:21 -08:00
evergreen_reg.h drm/radeon: fix vertical bars appear on monitor (v2) 2016-05-04 14:48:46 -07:00
evergreen_smc.h
evergreend.h drm/radeon: fix DP audio support for APU with DCE4.1 display engine 2016-03-03 15:07:21 -08:00
Kconfig
kv_dpm.c
kv_dpm.h
kv_smc.c
Makefile
mkregtable.c
ni.c drm/radeon: drop register readback in cayman_cp_int_cntl_setup 2016-11-10 16:36:36 +01:00
ni_dma.c
ni_dpm.c
ni_dpm.h
ni_reg.h
nid.h
nislands_smc.h
ObjectID.h
ppsmc.h
pptable.h
r100.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-04 13:11:41 -05:00
r100_track.h
r100d.h
r200.c
r300.c
r300_cmdbuf.c
r300_reg.h
r300d.h
r420.c
r420d.h
r500_reg.h
r520.c
r520d.h
r600.c drm/radeon: Unbreak HPD handling for r600+ 2017-06-07 12:06:00 +02:00
r600_blit.c
r600_blit_shaders.c drm: fix trivial typos 2015-10-21 11:35:11 -04:00
r600_blit_shaders.h
r600_cp.c drm: Remove __OS_HAS_AGP 2015-09-30 10:44:48 +02:00
r600_cs.c
r600_dma.c
r600_dpm.c drm/radeon: change vblank_time's calculation method to reduce computational error. 2016-10-31 04:13:58 -06:00
r600_dpm.h
r600_hdmi.c
r600_reg.h
r600d.h
radeon.h drm/radeon: cleaned up VCO output settings for DP audio 2016-03-03 15:07:21 -08:00
radeon_acpi.c drm/radeon: Drop unnecessary #include <linux/vga_switcheroo.h> 2015-10-14 16:16:37 -04:00
radeon_acpi.h
radeon_agp.c add blacklist for thinkpad T40p 2015-11-30 14:44:34 -05:00
radeon_asic.c drm/radeon: Drop unnecessary #include <linux/vga_switcheroo.h> 2015-10-14 16:16:37 -04:00
radeon_asic.h
radeon_atombios.c drm/radeon: fix firmware info version checks 2016-08-20 18:09:23 +02:00
radeon_atpx_handler.c drm/radeon: add a delay after ATPX dGPU power off 2016-08-20 18:09:22 +02:00
radeon_audio.c drm/radeon: Add a common function for DFS handling 2016-03-03 15:07:21 -08:00
radeon_audio.h drm/radeon: Add a common function for DFS handling 2016-03-03 15:07:21 -08:00
radeon_benchmark.c
radeon_bios.c drm/radeon: Drop unnecessary #include <linux/vga_switcheroo.h> 2015-10-14 16:16:37 -04:00
radeon_clocks.c
radeon_combios.c drm/radeon: add a quirk for Toshiba Satellite L20-183 2017-06-29 12:48:52 +02:00
radeon_connectors.c drm/radeon: Don't turn off DP sink when disconnected 2018-03-28 18:40:15 +02:00
radeon_cp.c drm: Remove __OS_HAS_AGP 2015-09-30 10:44:48 +02:00
radeon_cs.c
radeon_cursor.c drm/radeon: Use mode h/vdisplay fields to hide out of bounds HW cursor 2017-02-23 17:43:09 +01:00
radeon_device.c drm/radeon: add a PX quirk for another K53TK variant 2017-06-29 12:48:52 +02:00
radeon_display.c drm/radeon: Fail fb creation from imported dma-bufs. 2018-03-22 09:23:25 +01:00
radeon_dp_auxch.c Revert "drm/radeon: fix DP link training issue with second 4K monitor" 2016-11-10 16:36:35 +01:00
radeon_dp_mst.c drm/radeon/mst: fix regression in lane/link handling. 2016-09-15 08:27:47 +02:00
radeon_drv.c drm/irq: Use unsigned int pipe in public API 2015-10-06 12:57:47 +02:00
radeon_drv.h drm/irq: Use unsigned int pipe in public API 2015-10-06 12:57:47 +02:00
radeon_encoders.c drm/radeon: move bl encoder assignment into bl init 2015-10-29 11:13:18 -04:00
radeon_family.h
radeon_fb.c Revert "drm/radeon: dont switch vt on suspend" 2017-12-05 11:22:51 +01:00
radeon_fence.c
radeon_gart.c drm/radeon: Don't flush the GART TLB if rdev->gart.ptr == NULL 2015-07-16 12:39:37 -04:00
radeon_gem.c drm/radeon: fix user ptr race condition 2015-07-16 12:39:37 -04:00
radeon_i2c.c
radeon_ib.c
radeon_ioc32.c
radeon_irq.c drm/irq: Use unsigned int pipe in public API 2015-10-06 12:57:47 +02:00
radeon_irq_kms.c drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt 2015-12-04 13:09:12 -05:00
radeon_kfd.c drm/radeon: Modify kgd_engine_type enum to match CZ 2015-07-20 09:16:47 +03:00
radeon_kfd.h
radeon_kms.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-04 13:11:41 -05:00
radeon_legacy_crtc.c drm/radeon: Ensure vblank interrupt is enabled on DPMS transition to on 2016-12-02 09:09:01 +01:00
radeon_legacy_encoders.c drm/radeon: move bl encoder assignment into bl init 2015-10-29 11:13:18 -04:00
radeon_legacy_tv.c
radeon_mem.c
radeon_mn.c
radeon_mode.h drm/radeon: Hide the HW cursor while it's out of bounds 2017-01-09 08:07:46 +01:00
radeon_object.c radeon: hide pointless #warning when compile testing 2018-04-24 09:32:03 +02:00
radeon_object.h
radeon_pm.c Revert "drm/radeon/pm: adjust display configuration after powerstate" 2016-03-16 08:43:00 -07:00
radeon_prime.c
radeon_reg.h
radeon_ring.c
radeon_sa.c drm/radeon: hold reference to fences in radeon_sa_bo_new 2016-03-03 15:07:22 -08:00
radeon_semaphore.c
radeon_state.c
radeon_sync.c
radeon_test.c
radeon_trace.h
radeon_trace_points.c
radeon_ttm.c drm/radeon: Override fpfn for all VRAM placements in radeon_evict_flags 2017-04-08 09:53:31 +02:00
radeon_ucode.c
radeon_ucode.h
radeon_uvd.c drm/radeon: adjust tested variable 2018-02-22 15:44:59 +01:00
radeon_vce.c radeon: Fix VCE IB test on Big-Endian systems 2015-12-09 00:23:56 -05:00
radeon_vm.c drm/radeon: Fix off-by-one errors in radeon_vm_bo_set_addr 2016-03-03 15:07:21 -08:00
rs100d.h
rs400.c
rs400d.h
rs600.c drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt 2015-12-04 13:09:12 -05:00
rs600d.h
rs690.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-04 13:11:41 -05:00
rs690d.h
rs780_dpm.c
rs780_dpm.h
rs780d.h
rv6xx_dpm.c
rv6xx_dpm.h
rv6xxd.h
rv200d.h
rv250d.h
rv350d.h
rv515.c
rv515d.h
rv730_dpm.c drm/radeon: make some dpm errors debug only 2015-11-25 11:28:42 -05:00
rv730d.h
rv740_dpm.c
rv740d.h
rv770.c
rv770_dma.c
rv770_dpm.c drm/radeon: make some dpm errors debug only 2015-11-25 11:28:42 -05:00
rv770_dpm.h
rv770_smc.c
rv770_smc.h
rv770d.h
si.c drm/radeon: Unbreak HPD handling for r600+ 2017-06-07 12:06:00 +02:00
si_blit_shaders.c
si_blit_shaders.h
si_dma.c
si_dpm.c drm/radeon: Fix PCIe lane width calculation 2018-04-24 09:32:09 +02:00
si_dpm.h
si_reg.h
si_smc.c
sid.h drm/radeon: Fix "slow" audio over DP on DCE8+ 2016-03-03 15:07:21 -08:00
sislands_smc.h drm/radeon/si/dpm: fix phase shedding setup 2016-10-31 04:13:58 -06:00
smu7.h
smu7_discrete.h
smu7_fusion.h
sumo_dpm.c
sumo_dpm.h
sumo_smc.c
sumod.h
trinity_dpm.c
trinity_dpm.h
trinity_smc.c
trinityd.h
uvd_v1_0.c
uvd_v2_2.c
uvd_v3_1.c
uvd_v4_2.c
vce_v1_0.c drm/radeon: properly byte swap vce firmware setup 2016-03-03 15:07:21 -08:00
vce_v2_0.c