linux/drivers/gpu/drm/radeon
Gilles Risch 275c333258 drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
The Apple iMac11,1 (27-inch, Late 2009) uses a Mobility Radeon HD 4850
(RV770/DCE3.1) with a 2560x1440 internal panel on an internal
DisplayPort path. Without this fix the display stays dark under KMS.

This machine suffers from the same issue as iMac10,1 and iMac11,2:
Apple routes the internal display through Link B of the DIG encoder
instead of Link A. Add iMac11,1 to the existing DMI quirk and move
the Apple-specific encoder assignment into its own block, independent
of the DCE version check.

Additionally, the 2560x1440 panel requires RADEON_PLL_USE_FRAC_FB_DIV
and ATOM_ENCODER_CMD_DP_VIDEO_ON, limited to iMac11,1 via dmi_match()
to avoid affecting other boards.

Reviewed-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2026-08-19 10:12:25 -04:00
..
reg_srcs
.gitignore
atom-bits.h
atom-names.h
atom-types.h
atom.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
atom.h
atombios_crtc.c drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) 2026-08-19 10:12:25 -04:00
atombios_dp.c
atombios_encoders.c drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) 2026-08-19 10:12:25 -04:00
atombios_i2c.c
atombios.h drm/radeon: fixing typo in macro name 2025-05-22 12:02:01 -04:00
avivod.h
btc_dpm.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
btc_dpm.h
btcd.h
cayman_blit_shaders.h
ci_dpm.c drm/radeon: add missing revision check for CI 2026-05-05 09:56:48 -04:00
ci_dpm.h
ci_smc.c
cik_blit_shaders.h
cik_reg.h
cik_sdma.c
cik.c drm/radeon: replace nested min calls with min3 2026-04-17 15:41:13 -04:00
cik.h
cikd.h
clearstate_cayman.h
clearstate_ci.h
clearstate_defs.h
clearstate_evergreen.h
clearstate_si.h
cypress_dpm.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
cypress_dpm.h
dce3_1_afmt.c
dce6_afmt.c
dce6_afmt.h
evergreen_blit_shaders.h
evergreen_cs.c drm/radeon/evergreen_cs: Add missing NULL prefix check in surface check 2026-05-19 11:49:56 -04:00
evergreen_dma.c
evergreen_hdmi.c
evergreen_hdmi.h
evergreen_reg.h
evergreen_smc.h
evergreen.c drm/radeon: Convert legacy DRM logging in evergreen.c to drm_* helpers 2025-12-16 13:29:15 -05:00
evergreen.h
evergreend.h
Kconfig PCI: Add CONFIG_MMU dependency 2025-04-23 15:40:30 -05:00
kv_dpm.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
kv_dpm.h
kv_smc.c
Makefile
mkregtable.c
ni_dma.c
ni_dpm.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
ni_dpm.h
ni_reg.h
ni.c
ni.h
nid.h
nislands_smc.h
ObjectID.h
ppsmc.h
pptable.h drm/radeon: Remove __counted_by from ClockInfoArray.clockInfo[] 2026-01-05 17:23:41 -05:00
r100_track.h
r100.c drm/radeon: fix r100_copy_blit for large BOs 2026-06-17 16:22:25 -04:00
r100d.h
r200.c drm/radeon: use dev_warn_once() in CS parsers 2025-09-05 17:38:42 -04:00
r300_reg.h
r300.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
r300d.h
r420.c
r420d.h
r500_reg.h
r520.c
r520d.h
r600_cs.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
r600_dma.c
r600_dpm.c drm/radeon: avoid double free in r600 DPM cleanup 2026-06-17 16:23:16 -04:00
r600_dpm.h
r600_hdmi.c drm/radeon/radeon_audio: Remove unused r600_hdmi_audio_workaround 2025-04-22 08:51:45 -04:00
r600_reg.h
r600.c
r600.h
r600d.h
radeon_acpi.c ACPI: AC: Define ACPI_AC_CLASS in one place 2026-03-13 16:48:28 +01:00
radeon_acpi.h
radeon_agp.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
radeon_asic.c
radeon_asic.h drm/radeon/radeon_audio: Remove unused r600_hdmi_audio_workaround 2025-04-22 08:51:45 -04:00
radeon_atombios.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
radeon_atombios.h
radeon_atpx_handler.c
radeon_audio.c drm/radeon/radeon_connectors: use struct drm_edid instead of struct edid 2026-05-27 10:51:15 -04:00
radeon_audio.h
radeon_benchmark.c
radeon_bios.c drm/radeon: Only define radeon_acpi_vfct_match when actually used 2026-07-16 18:27:48 -04:00
radeon_clocks.c
radeon_combios.c drm/radeon/radeon_connectors: use struct drm_edid instead of struct edid 2026-05-27 10:51:15 -04:00
radeon_connectors.c drm/radeon/radeon_connectors: remove radeon_connector_free_edid 2026-05-27 10:51:19 -04:00
radeon_cs.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
radeon_cursor.c
radeon_device.c drm/radeon: Test for fbdev GEM object with generic helper 2026-03-06 16:31:42 -05:00
radeon_device.h
radeon_display.c drm/radeon: add WQ_PERCPU to alloc_workqueue users 2026-04-03 13:52:39 -04:00
radeon_dp_auxch.c
radeon_drv.c drm/amdgpu: Use amdgpu by default for CIK APUs too 2026-04-03 14:04:57 -04:00
radeon_drv.h
radeon_encoders.c
radeon_family.h
radeon_fbdev.c drm/radeon: Test for fbdev GEM object with generic helper 2026-03-06 16:31:42 -05:00
radeon_fence.c drm/radeon: restore hardware polling in fence_is_signaled to fix performance regression 2026-08-06 12:50:02 -04:00
radeon_gart.c drm/radeon: Use vmalloc_array and vcalloc to simplify code 2025-08-18 17:06:24 -04:00
radeon_gem.c drm/radeon: fix integer overflow in radeon_align_pitch() 2026-04-17 15:41:16 -04:00
radeon_i2c.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
radeon_ib.c
radeon_irq_kms.c drm/radeon: Make MSI address limit based on the device DMA limit 2026-01-31 01:11:48 +01:00
radeon_kms.c drm/radeon: fix autosuspend cleanup during teardown 2026-08-12 09:39:44 -04:00
radeon_kms.h
radeon_legacy_crtc.c drm/radeon: Do not implement mode_set_base_atomic callback 2025-12-02 09:20:36 +01:00
radeon_legacy_encoders.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
radeon_legacy_encoders.h
radeon_legacy_tv.c
radeon_mn.c
radeon_mode.h drm/radeon/radeon_connectors: use struct drm_edid instead of struct edid 2026-05-27 10:51:15 -04:00
radeon_object.c
radeon_object.h
radeon_pm.c drm/radeon/pm: Remove redundant ternary operators 2025-09-05 17:38:40 -04:00
radeon_pm.h
radeon_prime.c
radeon_prime.h
radeon_reg.h
radeon_ring.c drm/radeon: fix memory leak in radeon_ring_restore() on lock failure 2026-04-17 15:41:16 -04:00
radeon_sa.c
radeon_semaphore.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
radeon_sync.c
radeon_test.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
radeon_trace_points.c
radeon_trace.h
radeon_ttm.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
radeon_ttm.h
radeon_ucode.c
radeon_ucode.h
radeon_uvd.c
radeon_vce.c drm/radeon: convert VCE logging to drm_* helpers 2026-01-20 17:28:06 -05:00
radeon_vm.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
radeon.h drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
rs100d.h
rs400.c
rs400d.h
rs600.c
rs600d.h
rs690.c
rs690d.h
rs780_dpm.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
rs780_dpm.h
rs780d.h
rv6xx_dpm.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
rv6xx_dpm.h
rv6xxd.h
rv200d.h
rv250d.h
rv350d.h
rv515.c
rv515d.h
rv730_dpm.c
rv730d.h
rv740_dpm.c
rv740d.h
rv770_dma.c
rv770_dpm.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
rv770_dpm.h
rv770_smc.c
rv770_smc.h
rv770.c
rv770.h
rv770d.h
si_blit_shaders.h
si_dma.c
si_dpm.c drm/radeon: apply state adjust rules to some additional HAINAN vairants 2026-03-17 18:04:15 -04:00
si_dpm.h
si_reg.h
si_smc.c
si.c drm/radeon: replace nested min calls with min3 2026-04-17 15:41:13 -04:00
si.h
sid.h drm/radeon: fix MAX_POWER_SHIFT value 2025-04-07 15:18:32 -04:00
sislands_smc.h
smu7_discrete.h
smu7_fusion.h
smu7.h
sumo_dpm.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
sumo_dpm.h
sumo_smc.c
sumod.h
trinity_dpm.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
trinity_dpm.h
trinity_smc.c
trinityd.h
uvd_v1_0.c drm/radeon: convert UVD v1.0 logging to drm_* helpers 2026-01-08 11:43:13 -05:00
uvd_v2_2.c
uvd_v3_1.c
uvd_v4_2.c
vce_v1_0.c
vce_v2_0.c
vce.h