AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] The Apple iMac11, 1 (late 2009) has an integrated ATI Mobility Radeon HD 4850. This machine suffers from a similar problem as the iMac10, 1 (late 2009) and the iMac11, 2 (mid 2010). This small patch fixes the issue on this machine.
@ 2026-05-10 18:54 Gilles Risch
  2026-05-16  9:24 ` [PATCH v2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
  0 siblings, 1 reply; 29+ messages in thread
From: Gilles Risch @ 2026-05-10 18:54 UTC (permalink / raw)
  To: alexander.deucher; +Cc: dri-devel, amd-gfx, Gilles Risch

Fixes freedesktop issue 164
Link: https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/issues/164
---
 drivers/gpu/drm/radeon/atombios_crtc.c     | 4 ++--
 drivers/gpu/drm/radeon/atombios_encoders.c | 9 +++++----
 drivers/gpu/drm/radeon/radeon.h            | 1 +
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
index 2fc0334e0..3c6d33273 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -580,7 +580,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
 			radeon_crtc->pll_flags |= (/*RADEON_PLL_USE_FRAC_FB_DIV |*/
 				RADEON_PLL_PREFER_CLOSEST_LOWER);
 
-		if (ASIC_IS_DCE32(rdev) && mode->clock > 200000)	/* range limits??? */
+		if (ASIC_IS_DCE31(rdev) && mode->clock > 200000)	/* range limits??? */
 			radeon_crtc->pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV;
 		else
 			radeon_crtc->pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV;
@@ -594,7 +594,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
 		if (((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
 		    && !radeon_crtc->ss_enabled)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
-		if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
+		if (ASIC_IS_DCE31(rdev) && mode->clock > 165000)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
 	} else {
 		radeon_crtc->pll_flags |= RADEON_PLL_LEGACY;
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 5cfd8fcfa..4e984973c 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -2123,12 +2123,13 @@ int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
 	}
 
 	/*
-	 * On DCE32 any encoder can drive any block so usually just use crtc id,
-	 * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
-	 * otherwise the internal eDP panel will stay dark.
+	 * On DCE31 and DCE32 any encoder can drive any block so usually just use crtc id,
+	 * but Apple thinks different at least on iMac10,1, iMac11,1 and iMac11,2,
+	 * so there use linkb, otherwise the internal eDP panel will stay dark.
 	 */
-	if (ASIC_IS_DCE32(rdev)) {
+	if (ASIC_IS_DCE31(rdev)) {
 		if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
+		    dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
 		    dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
 			enc_idx = (dig->linkb) ? 1 : 0;
 		else
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 527b9d19d..6b7c0abe4 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -2625,6 +2625,7 @@ void r100_pll_errata_after_index(struct radeon_device *rdev);
 			    (rdev->family == CHIP_RS740)  ||	\
 			    (rdev->family >= CHIP_R600))
 #define ASIC_IS_DCE3(rdev) ((rdev->family >= CHIP_RV620))
+#define ASIC_IS_DCE31(rdev) ((rdev->family >= CHIP_RV770))
 #define ASIC_IS_DCE32(rdev) ((rdev->family >= CHIP_RV730))
 #define ASIC_IS_DCE4(rdev) ((rdev->family >= CHIP_CEDAR))
 #define ASIC_IS_DCE41(rdev) ((rdev->family >= CHIP_PALM) && \
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-05-10 18:54 [PATCH] The Apple iMac11, 1 (late 2009) has an integrated ATI Mobility Radeon HD 4850. This machine suffers from a similar problem as the iMac10, 1 (late 2009) and the iMac11, 2 (mid 2010). This small patch fixes the issue on this machine Gilles Risch
@ 2026-05-16  9:24 ` Gilles Risch
  2026-05-16 18:09   ` Lukas Wunner
  2026-05-16 18:52   ` [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems Gilles Risch
  0 siblings, 2 replies; 29+ messages in thread
From: Gilles Risch @ 2026-05-16  9:24 UTC (permalink / raw)
  To: alexander.deucher; +Cc: amd-gfx, dri-devel, Gilles Risch

The Apple iMac11,1 (late 2009) has an integrated ATI Mobility Radeon
HD 4850 (RV770/M98L) with a 2560x1440 internal panel connected via an
internal DisplayPort path. This machine suffers from a similar problem
as the iMac10,1 (late 2009) and the iMac11,2 (mid 2010). Without this
fix the display stays dark under KMS. Two issues are addressed:

1. The RV770 implements DCE3.1 and not DCE3.2. ASIC_IS_DCE32() starts at
   CHIP_RV730 which is newer than RV770, so the RV770 never matched the
   DCE3.2 PLL and encoder logic. Introduce ASIC_IS_DCE31() starting at
   CHIP_RV770 to fix this.

2. Apple routed the internal display through Link B of the DIG encoder
   instead of Link A, as observed in the kernel display connector log.
   The same quirk already exists for iMac10,1 and iMac11,2 - iMac11,1
   was simply missing from the list.

Note: resume from suspend still results in a dark screen as the DP
re-driver chips on the mainboard lose their state during power-off.
This will be addressed in a follow-up patch.

Fixes freedesktop issue 164
Link: https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/issues/164

Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
---
v2: No code changes. Fixed commit message:
    - Added drm/radeon: prefix to subject line
    - Added empty line between subject and body
    - Added technical description of the changes

 drivers/gpu/drm/radeon/atombios_crtc.c     | 4 ++--
 drivers/gpu/drm/radeon/atombios_encoders.c | 9 +++++----
 drivers/gpu/drm/radeon/radeon.h            | 1 +
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
index 2fc0334e0d6c..3c6d332739e3 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -580,7 +580,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
 			radeon_crtc->pll_flags |= (/*RADEON_PLL_USE_FRAC_FB_DIV |*/
 				RADEON_PLL_PREFER_CLOSEST_LOWER);
 
-		if (ASIC_IS_DCE32(rdev) && mode->clock > 200000)	/* range limits??? */
+		if (ASIC_IS_DCE31(rdev) && mode->clock > 200000)	/* range limits??? */
 			radeon_crtc->pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV;
 		else
 			radeon_crtc->pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV;
@@ -594,7 +594,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
 		if (((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
 		    && !radeon_crtc->ss_enabled)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
-		if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
+		if (ASIC_IS_DCE31(rdev) && mode->clock > 165000)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
 	} else {
 		radeon_crtc->pll_flags |= RADEON_PLL_LEGACY;
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 5cfd8fcfa5e8..4e984973c043 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -2123,12 +2123,13 @@ int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
 	}
 
 	/*
-	 * On DCE32 any encoder can drive any block so usually just use crtc id,
-	 * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
-	 * otherwise the internal eDP panel will stay dark.
+	 * On DCE31 and DCE32 any encoder can drive any block so usually just use crtc id,
+	 * but Apple thinks different at least on iMac10,1, iMac11,1 and iMac11,2,
+	 * so there use linkb, otherwise the internal eDP panel will stay dark.
 	 */
-	if (ASIC_IS_DCE32(rdev)) {
+	if (ASIC_IS_DCE31(rdev)) {
 		if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
+		    dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
 		    dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
 			enc_idx = (dig->linkb) ? 1 : 0;
 		else
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 527b9d19d730..6b7c0abe49fb 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -2625,6 +2625,7 @@ void r100_pll_errata_after_index(struct radeon_device *rdev);
 			    (rdev->family == CHIP_RS740)  ||	\
 			    (rdev->family >= CHIP_R600))
 #define ASIC_IS_DCE3(rdev) ((rdev->family >= CHIP_RV620))
+#define ASIC_IS_DCE31(rdev) ((rdev->family >= CHIP_RV770))
 #define ASIC_IS_DCE32(rdev) ((rdev->family >= CHIP_RV730))
 #define ASIC_IS_DCE4(rdev) ((rdev->family >= CHIP_CEDAR))
 #define ASIC_IS_DCE41(rdev) ((rdev->family >= CHIP_PALM) && \
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH v2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-05-16  9:24 ` [PATCH v2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
@ 2026-05-16 18:09   ` Lukas Wunner
  2026-05-17 13:53     ` Gilles Risch
  2026-05-16 18:52   ` [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems Gilles Risch
  1 sibling, 1 reply; 29+ messages in thread
From: Lukas Wunner @ 2026-05-16 18:09 UTC (permalink / raw)
  To: Gilles Risch; +Cc: alexander.deucher, amd-gfx, dri-devel

On Sat, May 16, 2026 at 11:24:21AM +0200, Gilles Risch wrote:
> The Apple iMac11,1 (late 2009) has an integrated ATI Mobility Radeon
> HD 4850 (RV770/M98L) with a 2560x1440 internal panel connected via an
> internal DisplayPort path. This machine suffers from a similar problem
> as the iMac10,1 (late 2009) and the iMac11,2 (mid 2010). Without this
> fix the display stays dark under KMS. Two issues are addressed:
> 
> 1. The RV770 implements DCE3.1 and not DCE3.2. ASIC_IS_DCE32() starts at
>    CHIP_RV730 which is newer than RV770, so the RV770 never matched the
>    DCE3.2 PLL and encoder logic. Introduce ASIC_IS_DCE31() starting at
>    CHIP_RV770 to fix this.
> 
> 2. Apple routed the internal display through Link B of the DIG encoder
>    instead of Link A, as observed in the kernel display connector log.
>    The same quirk already exists for iMac10,1 and iMac11,2 - iMac11,1
>    was simply missing from the list.

Not an expert in the radeon driver or AMD chip revisions, but if it
helps improve support for older Macs I'll be happy to offer my:

Reviewed-by: Lukas Wunner <lukas@wunner.de>

It's not immediately obvious that CHIP_RV770 precedes CHIP_RV730
in the enum and that hence ASIC_IS_DCE31() subsumes ASIC_IS_DCE32().

Thanks,

Lukas

^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems
  2026-05-16  9:24 ` [PATCH v2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
  2026-05-16 18:09   ` Lukas Wunner
@ 2026-05-16 18:52   ` Gilles Risch
  2026-05-17  3:28     ` kernel test robot
                       ` (2 more replies)
  1 sibling, 3 replies; 29+ messages in thread
From: Gilles Risch @ 2026-05-16 18:52 UTC (permalink / raw)
  To: alexander.deucher; +Cc: amd-gfx, dri-devel, Gilles Risch

After suspend/resume the internal eDP display on iMac11,1 (and
potentially other DCE3.1 systems) stays dark because
atombios_set_edp_panel_power() skips panel power control for
anything older than DCE4.

Fix this by:
- Extending atombios_set_edp_panel_power() to also handle DCE3.1
  by changing the !ASIC_IS_DCE4() guard to !ASIC_IS_DCE31().
  HPD polling works correctly on DCE3.1 (verified: HPD is asserted
  at iteration 0 on iMac11,1).
- Issuing ATOM_ENCODER_CMD_DP_VIDEO_ON/OFF for DCE3.1 in addition
  to DCE4+.

Tested on iMac11,1 (Mobility Radeon HD 4850, RV770/DCE3.1).

Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
---
 drivers/gpu/drm/radeon/atombios_encoders.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 4e984973c043..b62fd713efcf 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -1383,7 +1383,7 @@ atombios_set_edp_panel_power(struct drm_connector *connector, int action)
 	if (connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 		goto done;
 
-	if (!ASIC_IS_DCE4(rdev))
+	if (!ASIC_IS_DCE31(rdev))
 		goto done;
 
 	if ((action != ATOM_TRANSMITTER_ACTION_POWER_ON) &&
@@ -1707,7 +1707,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
 		if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
 			/* DP_SET_POWER_D0 is set in radeon_dp_link_train */
 			radeon_dp_link_train(encoder, connector);
-			if (ASIC_IS_DCE4(rdev))
+			if (ASIC_IS_DCE4(rdev) || ASIC_IS_DCE31(rdev))
 				atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
 		}
 		if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
@@ -1724,7 +1724,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
 	case DRM_MODE_DPMS_SUSPEND:
 	case DRM_MODE_DPMS_OFF:
 
-		if (ASIC_IS_DCE4(rdev)) {
+		if (ASIC_IS_DCE4(rdev) || ASIC_IS_DCE31(rdev)) {
 			if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector)
 				atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF, 0);
 		}
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems
  2026-05-16 18:52   ` [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems Gilles Risch
@ 2026-05-17  3:28     ` kernel test robot
  2026-05-17  5:12     ` kernel test robot
  2026-05-18 14:13     ` Alex Deucher
  2 siblings, 0 replies; 29+ messages in thread
From: kernel test robot @ 2026-05-17  3:28 UTC (permalink / raw)
  To: Gilles Risch, alexander.deucher
  Cc: llvm, oe-kbuild-all, amd-gfx, dri-devel, Gilles Risch

Hi Gilles,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on linus/master v7.1-rc3 next-20260508]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Gilles-Risch/drm-radeon-fix-eDP-resume-from-suspend-on-iMac11-1-DCE3-1-systems/20260517-025343
base:   https://gitlab.freedesktop.org/drm/misc/kernel.git drm-misc-next
patch link:    https://lore.kernel.org/r/20260516185226.3005-1-gilles.risch%40gmail.com
patch subject: [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems
config: riscv-randconfig-001-20260517 (https://download.01.org/0day-ci/archive/20260517/202605171126.1g7CRkTZ-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 5bac06718f502014fade905512f1d26d578a18f3)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260517/202605171126.1g7CRkTZ-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605171126.1g7CRkTZ-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/gpu/drm/radeon/atombios_encoders.c:1386:7: error: call to undeclared function 'ASIC_IS_DCE31'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1386 |         if (!ASIC_IS_DCE31(rdev))
         |              ^
   drivers/gpu/drm/radeon/atombios_encoders.c:1710:30: error: call to undeclared function 'ASIC_IS_DCE31'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1710 |                         if (ASIC_IS_DCE4(rdev) || ASIC_IS_DCE31(rdev))
         |                                                   ^
   drivers/gpu/drm/radeon/atombios_encoders.c:1727:29: error: call to undeclared function 'ASIC_IS_DCE31'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1727 |                 if (ASIC_IS_DCE4(rdev) || ASIC_IS_DCE31(rdev)) {
         |                                           ^
   3 errors generated.


vim +/ASIC_IS_DCE31 +1386 drivers/gpu/drm/radeon/atombios_encoders.c

  1372	
  1373	bool
  1374	atombios_set_edp_panel_power(struct drm_connector *connector, int action)
  1375	{
  1376		struct radeon_connector *radeon_connector = to_radeon_connector(connector);
  1377		struct drm_device *dev = radeon_connector->base.dev;
  1378		struct radeon_device *rdev = dev->dev_private;
  1379		union dig_transmitter_control args;
  1380		int index = GetIndexIntoMasterTable(COMMAND, UNIPHYTransmitterControl);
  1381		uint8_t frev, crev;
  1382	
  1383		if (connector->connector_type != DRM_MODE_CONNECTOR_eDP)
  1384			goto done;
  1385	
> 1386		if (!ASIC_IS_DCE31(rdev))
  1387			goto done;
  1388	
  1389		if ((action != ATOM_TRANSMITTER_ACTION_POWER_ON) &&
  1390		    (action != ATOM_TRANSMITTER_ACTION_POWER_OFF))
  1391			goto done;
  1392	
  1393		if (!atom_parse_cmd_header(rdev->mode_info.atom_context, index, &frev, &crev))
  1394			goto done;
  1395	
  1396		memset(&args, 0, sizeof(args));
  1397	
  1398		args.v1.ucAction = action;
  1399	
  1400		atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args, sizeof(args));
  1401	
  1402		/* wait for the panel to power up */
  1403		if (action == ATOM_TRANSMITTER_ACTION_POWER_ON) {
  1404			int i;
  1405	
  1406			for (i = 0; i < 300; i++) {
  1407				if (radeon_hpd_sense(rdev, radeon_connector->hpd.hpd))
  1408					return true;
  1409				mdelay(1);
  1410			}
  1411			return false;
  1412		}
  1413	done:
  1414		return true;
  1415	}
  1416	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems
  2026-05-16 18:52   ` [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems Gilles Risch
  2026-05-17  3:28     ` kernel test robot
@ 2026-05-17  5:12     ` kernel test robot
  2026-05-18 14:13     ` Alex Deucher
  2 siblings, 0 replies; 29+ messages in thread
From: kernel test robot @ 2026-05-17  5:12 UTC (permalink / raw)
  To: Gilles Risch, alexander.deucher
  Cc: oe-kbuild-all, amd-gfx, dri-devel, Gilles Risch

Hi Gilles,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on linus/master v7.1-rc3 next-20260508]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Gilles-Risch/drm-radeon-fix-eDP-resume-from-suspend-on-iMac11-1-DCE3-1-systems/20260517-025343
base:   https://gitlab.freedesktop.org/drm/misc/kernel.git drm-misc-next
patch link:    https://lore.kernel.org/r/20260516185226.3005-1-gilles.risch%40gmail.com
patch subject: [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems
config: riscv-randconfig-002-20260517 (https://download.01.org/0day-ci/archive/20260517/202605171301.73YzX9wA-lkp@intel.com/config)
compiler: riscv32-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260517/202605171301.73YzX9wA-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605171301.73YzX9wA-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/gpu/drm/radeon/atombios_encoders.c: In function 'atombios_set_edp_panel_power':
>> drivers/gpu/drm/radeon/atombios_encoders.c:1386:14: error: implicit declaration of function 'ASIC_IS_DCE31'; did you mean 'ASIC_IS_DCE3'? [-Wimplicit-function-declaration]
    1386 |         if (!ASIC_IS_DCE31(rdev))
         |              ^~~~~~~~~~~~~
         |              ASIC_IS_DCE3


vim +1386 drivers/gpu/drm/radeon/atombios_encoders.c

  1372	
  1373	bool
  1374	atombios_set_edp_panel_power(struct drm_connector *connector, int action)
  1375	{
  1376		struct radeon_connector *radeon_connector = to_radeon_connector(connector);
  1377		struct drm_device *dev = radeon_connector->base.dev;
  1378		struct radeon_device *rdev = dev->dev_private;
  1379		union dig_transmitter_control args;
  1380		int index = GetIndexIntoMasterTable(COMMAND, UNIPHYTransmitterControl);
  1381		uint8_t frev, crev;
  1382	
  1383		if (connector->connector_type != DRM_MODE_CONNECTOR_eDP)
  1384			goto done;
  1385	
> 1386		if (!ASIC_IS_DCE31(rdev))
  1387			goto done;
  1388	
  1389		if ((action != ATOM_TRANSMITTER_ACTION_POWER_ON) &&
  1390		    (action != ATOM_TRANSMITTER_ACTION_POWER_OFF))
  1391			goto done;
  1392	
  1393		if (!atom_parse_cmd_header(rdev->mode_info.atom_context, index, &frev, &crev))
  1394			goto done;
  1395	
  1396		memset(&args, 0, sizeof(args));
  1397	
  1398		args.v1.ucAction = action;
  1399	
  1400		atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args, sizeof(args));
  1401	
  1402		/* wait for the panel to power up */
  1403		if (action == ATOM_TRANSMITTER_ACTION_POWER_ON) {
  1404			int i;
  1405	
  1406			for (i = 0; i < 300; i++) {
  1407				if (radeon_hpd_sense(rdev, radeon_connector->hpd.hpd))
  1408					return true;
  1409				mdelay(1);
  1410			}
  1411			return false;
  1412		}
  1413	done:
  1414		return true;
  1415	}
  1416	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-05-16 18:09   ` Lukas Wunner
@ 2026-05-17 13:53     ` Gilles Risch
  2026-05-17 14:05       ` Lukas Wunner
  0 siblings, 1 reply; 29+ messages in thread
From: Gilles Risch @ 2026-05-17 13:53 UTC (permalink / raw)
  To: Lukas Wunner; +Cc: alexander.deucher, amd-gfx, dri-devel

Good afternoon Lukas,

thanks for the review.

The initial launch date can either be verified in the TeraScale 
architecture comparison table on Wikipedia [1] or directly in the kernel 
source at drivers/gpu/drm/radeon/radeon_family.h where CHIP_RV770 (line 
74) precedes CHIP_RV730 (line 75).

The test robot mentions that it cannot find ASIC_IS_DCE31(); this is 
because both patches build on one another. Should I submit both patches 
as a series?

Kind regards,
Gilles

On 16.05.26 20:09, Lukas Wunner wrote:
> On Sat, May 16, 2026 at 11:24:21AM +0200, Gilles Risch wrote:
>> The Apple iMac11,1 (late 2009) has an integrated ATI Mobility Radeon
>> HD 4850 (RV770/M98L) with a 2560x1440 internal panel connected via an
>> internal DisplayPort path. This machine suffers from a similar problem
>> as the iMac10,1 (late 2009) and the iMac11,2 (mid 2010). Without this
>> fix the display stays dark under KMS. Two issues are addressed:
>>
>> 1. The RV770 implements DCE3.1 and not DCE3.2. ASIC_IS_DCE32() starts at
>>     CHIP_RV730 which is newer than RV770, so the RV770 never matched the
>>     DCE3.2 PLL and encoder logic. Introduce ASIC_IS_DCE31() starting at
>>     CHIP_RV770 to fix this.
>>
>> 2. Apple routed the internal display through Link B of the DIG encoder
>>     instead of Link A, as observed in the kernel display connector log.
>>     The same quirk already exists for iMac10,1 and iMac11,2 - iMac11,1
>>     was simply missing from the list.
> Not an expert in the radeon driver or AMD chip revisions, but if it
> helps improve support for older Macs I'll be happy to offer my:
>
> Reviewed-by: Lukas Wunner <lukas@wunner.de>
>
> It's not immediately obvious that CHIP_RV770 precedes CHIP_RV730
> in the enum and that hence ASIC_IS_DCE31() subsumes ASIC_IS_DCE32().
>
> Thanks,
>
> Lukas



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-05-17 13:53     ` Gilles Risch
@ 2026-05-17 14:05       ` Lukas Wunner
  0 siblings, 0 replies; 29+ messages in thread
From: Lukas Wunner @ 2026-05-17 14:05 UTC (permalink / raw)
  To: Gilles Risch; +Cc: alexander.deucher, amd-gfx, dri-devel

On Sun, May 17, 2026 at 03:53:51PM +0200, Gilles Risch wrote:
> The test robot mentions that it cannot find ASIC_IS_DCE31(); this is because
> both patches build on one another. Should I submit both patches as a series?

Yes, either that or wait for the first patch to be applied and show up in
the drm-next repo.  Then 0-day should not complain.

Usually people are annoyed if patches are resubmitted in short cadence,
so the polite thing to do is wait for 1 or 2 weeks before respinning
so that people get a chance to provide further comments.

Thanks,

Lukas

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems
  2026-05-16 18:52   ` [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems Gilles Risch
  2026-05-17  3:28     ` kernel test robot
  2026-05-17  5:12     ` kernel test robot
@ 2026-05-18 14:13     ` Alex Deucher
  2026-05-18 14:40       ` Gilles Risch
  2 siblings, 1 reply; 29+ messages in thread
From: Alex Deucher @ 2026-05-18 14:13 UTC (permalink / raw)
  To: Gilles Risch; +Cc: alexander.deucher, amd-gfx, dri-devel

[-- Attachment #1: Type: text/plain, Size: 2843 bytes --]

On Sat, May 16, 2026 at 2:52 PM Gilles Risch <gilles.risch@gmail.com> wrote:
>
> After suspend/resume the internal eDP display on iMac11,1 (and
> potentially other DCE3.1 systems) stays dark because
> atombios_set_edp_panel_power() skips panel power control for
> anything older than DCE4.
>
> Fix this by:
> - Extending atombios_set_edp_panel_power() to also handle DCE3.1
>   by changing the !ASIC_IS_DCE4() guard to !ASIC_IS_DCE31().
>   HPD polling works correctly on DCE3.1 (verified: HPD is asserted
>   at iteration 0 on iMac11,1).
> - Issuing ATOM_ENCODER_CMD_DP_VIDEO_ON/OFF for DCE3.1 in addition
>   to DCE4+.
>
> Tested on iMac11,1 (Mobility Radeon HD 4850, RV770/DCE3.1).
>
> Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
> ---
>  drivers/gpu/drm/radeon/atombios_encoders.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
> index 4e984973c043..b62fd713efcf 100644
> --- a/drivers/gpu/drm/radeon/atombios_encoders.c
> +++ b/drivers/gpu/drm/radeon/atombios_encoders.c
> @@ -1383,7 +1383,7 @@ atombios_set_edp_panel_power(struct drm_connector *connector, int action)
>         if (connector->connector_type != DRM_MODE_CONNECTOR_eDP)
>                 goto done;
>
> -       if (!ASIC_IS_DCE4(rdev))
> +       if (!ASIC_IS_DCE31(rdev))
>                 goto done;
>
>         if ((action != ATOM_TRANSMITTER_ACTION_POWER_ON) &&
> @@ -1707,7 +1707,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
>                 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
>                         /* DP_SET_POWER_D0 is set in radeon_dp_link_train */
>                         radeon_dp_link_train(encoder, connector);
> -                       if (ASIC_IS_DCE4(rdev))
> +                       if (ASIC_IS_DCE4(rdev) || ASIC_IS_DCE31(rdev))
>                                 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
>                 }
>                 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
> @@ -1724,7 +1724,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
>         case DRM_MODE_DPMS_SUSPEND:
>         case DRM_MODE_DPMS_OFF:
>
> -               if (ASIC_IS_DCE4(rdev)) {
> +               if (ASIC_IS_DCE4(rdev) || ASIC_IS_DCE31(rdev)) {
>                         if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector)
>                                 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF, 0);
>                 }

These changes don't make sense and will break other DCE3.c boards.   I
had the attached patch from you in one of my old branches, does it fix
the issue?

Alex

[-- Attachment #2: 0001-drm-radeon-Fix-eDP-for-single-display-iMac11-1.patch --]
[-- Type: text/x-patch, Size: 3753 bytes --]

From ca4fc2fd58dcd3bf9f6afd8d37b27a1cfcc42337 Mon Sep 17 00:00:00 2001
From: Gilles Risch <gilles.risch@gmail.com>
Date: Fri, 17 Nov 2023 20:48:24 +0100
Subject: [PATCH] drm/radeon: Fix eDP for single-display iMac11,1

The Apple iMac11,1 (late 2009) has an integrated ATI Mobility Radeon HD 4850.
This machine suffers from a similar problem as the iMac10,1 (late 2009) and
the iMac11,2 (mid 2010). This small patch fixes the issue on this machine.

Fixes freedesktop issue 164
Link: https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/issues/164

Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
---
 drivers/gpu/drm/radeon/atombios_crtc.c     | 4 ++--
 drivers/gpu/drm/radeon/atombios_encoders.c | 9 +++++----
 drivers/gpu/drm/radeon/radeon.h            | 1 +
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
index 2fc0334e0d6c5..3c6d332739e3c 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -580,7 +580,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
 			radeon_crtc->pll_flags |= (/*RADEON_PLL_USE_FRAC_FB_DIV |*/
 				RADEON_PLL_PREFER_CLOSEST_LOWER);
 
-		if (ASIC_IS_DCE32(rdev) && mode->clock > 200000)	/* range limits??? */
+		if (ASIC_IS_DCE31(rdev) && mode->clock > 200000)	/* range limits??? */
 			radeon_crtc->pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV;
 		else
 			radeon_crtc->pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV;
@@ -594,7 +594,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
 		if (((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
 		    && !radeon_crtc->ss_enabled)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
-		if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
+		if (ASIC_IS_DCE31(rdev) && mode->clock > 165000)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
 	} else {
 		radeon_crtc->pll_flags |= RADEON_PLL_LEGACY;
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 3d9f47bc807af..37da7961ce792 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -2123,12 +2123,13 @@ int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
 	}
 
 	/*
-	 * On DCE32 any encoder can drive any block so usually just use crtc id,
-	 * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
-	 * otherwise the internal eDP panel will stay dark.
+	 * On DCE31 and DCE32 any encoder can drive any block so usually just use crtc id,
+	 * but Apple thinks different at least on iMac10,1, iMac11,1 and iMac11,2,
+	 * so there use linkb, otherwise the internal eDP panel will stay dark.
 	 */
-	if (ASIC_IS_DCE32(rdev)) {
+	if (ASIC_IS_DCE31(rdev)) {
 		if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
+		    dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
 		    dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
 			enc_idx = (dig->linkb) ? 1 : 0;
 		else
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 527b9d19d7306..6b7c0abe49fb7 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -2625,6 +2625,7 @@ void r100_pll_errata_after_index(struct radeon_device *rdev);
 			    (rdev->family == CHIP_RS740)  ||	\
 			    (rdev->family >= CHIP_R600))
 #define ASIC_IS_DCE3(rdev) ((rdev->family >= CHIP_RV620))
+#define ASIC_IS_DCE31(rdev) ((rdev->family >= CHIP_RV770))
 #define ASIC_IS_DCE32(rdev) ((rdev->family >= CHIP_RV730))
 #define ASIC_IS_DCE4(rdev) ((rdev->family >= CHIP_CEDAR))
 #define ASIC_IS_DCE41(rdev) ((rdev->family >= CHIP_PALM) && \
-- 
2.54.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems
  2026-05-18 14:13     ` Alex Deucher
@ 2026-05-18 14:40       ` Gilles Risch
  2026-05-18 14:57         ` Alex Deucher
  0 siblings, 1 reply; 29+ messages in thread
From: Gilles Risch @ 2026-05-18 14:40 UTC (permalink / raw)
  To: Alex Deucher; +Cc: alexander.deucher, amd-gfx, dri-devel

Am Mo., 18. Mai 2026 um 16:13 Uhr schrieb Alex Deucher <alexdeucher@gmail.com>:
>
> On Sat, May 16, 2026 at 2:52 PM Gilles Risch <gilles.risch@gmail.com> wrote:
> >
> > After suspend/resume the internal eDP display on iMac11,1 (and
> > potentially other DCE3.1 systems) stays dark because
> > atombios_set_edp_panel_power() skips panel power control for
> > anything older than DCE4.
> >
> > Fix this by:
> > - Extending atombios_set_edp_panel_power() to also handle DCE3.1
> >   by changing the !ASIC_IS_DCE4() guard to !ASIC_IS_DCE31().
> >   HPD polling works correctly on DCE3.1 (verified: HPD is asserted
> >   at iteration 0 on iMac11,1).
> > - Issuing ATOM_ENCODER_CMD_DP_VIDEO_ON/OFF for DCE3.1 in addition
> >   to DCE4+.
> >
> > Tested on iMac11,1 (Mobility Radeon HD 4850, RV770/DCE3.1).
> >
> > Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
> > ---
> >  drivers/gpu/drm/radeon/atombios_encoders.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
> > index 4e984973c043..b62fd713efcf 100644
> > --- a/drivers/gpu/drm/radeon/atombios_encoders.c
> > +++ b/drivers/gpu/drm/radeon/atombios_encoders.c
> > @@ -1383,7 +1383,7 @@ atombios_set_edp_panel_power(struct drm_connector *connector, int action)
> >         if (connector->connector_type != DRM_MODE_CONNECTOR_eDP)
> >                 goto done;
> >
> > -       if (!ASIC_IS_DCE4(rdev))
> > +       if (!ASIC_IS_DCE31(rdev))
> >                 goto done;
> >
> >         if ((action != ATOM_TRANSMITTER_ACTION_POWER_ON) &&
> > @@ -1707,7 +1707,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
> >                 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
> >                         /* DP_SET_POWER_D0 is set in radeon_dp_link_train */
> >                         radeon_dp_link_train(encoder, connector);
> > -                       if (ASIC_IS_DCE4(rdev))
> > +                       if (ASIC_IS_DCE4(rdev) || ASIC_IS_DCE31(rdev))
> >                                 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
> >                 }
> >                 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
> > @@ -1724,7 +1724,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
> >         case DRM_MODE_DPMS_SUSPEND:
> >         case DRM_MODE_DPMS_OFF:
> >
> > -               if (ASIC_IS_DCE4(rdev)) {
> > +               if (ASIC_IS_DCE4(rdev) || ASIC_IS_DCE31(rdev)) {
> >                         if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector)
> >                                 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF, 0);
> >                 }
>
> These changes don't make sense and will break other DCE3.c boards.   I
> had the attached patch from you in one of my old branches, does it fix
> the issue?
>
> Alex

While the initial attached patch resolved the dark screen issue after
a fresh boot, this follow-up patch addresses the same problem
occurring after resuming from suspend. Should I used dmi_match() to
avoid breaking other DCE3.c boards?

Regards,
Gilles

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems
  2026-05-18 14:40       ` Gilles Risch
@ 2026-05-18 14:57         ` Alex Deucher
  2026-05-18 21:14           ` [PATCH v3 0/2] drm/radeon: fix iMac11,1 dark display Gilles Risch
                             ` (2 more replies)
  0 siblings, 3 replies; 29+ messages in thread
From: Alex Deucher @ 2026-05-18 14:57 UTC (permalink / raw)
  To: Gilles Risch; +Cc: alexander.deucher, amd-gfx, dri-devel

On Mon, May 18, 2026 at 10:40 AM Gilles Risch <gilles.risch@gmail.com> wrote:
>
> Am Mo., 18. Mai 2026 um 16:13 Uhr schrieb Alex Deucher <alexdeucher@gmail.com>:
> >
> > On Sat, May 16, 2026 at 2:52 PM Gilles Risch <gilles.risch@gmail.com> wrote:
> > >
> > > After suspend/resume the internal eDP display on iMac11,1 (and
> > > potentially other DCE3.1 systems) stays dark because
> > > atombios_set_edp_panel_power() skips panel power control for
> > > anything older than DCE4.
> > >
> > > Fix this by:
> > > - Extending atombios_set_edp_panel_power() to also handle DCE3.1
> > >   by changing the !ASIC_IS_DCE4() guard to !ASIC_IS_DCE31().
> > >   HPD polling works correctly on DCE3.1 (verified: HPD is asserted
> > >   at iteration 0 on iMac11,1).
> > > - Issuing ATOM_ENCODER_CMD_DP_VIDEO_ON/OFF for DCE3.1 in addition
> > >   to DCE4+.
> > >
> > > Tested on iMac11,1 (Mobility Radeon HD 4850, RV770/DCE3.1).
> > >
> > > Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
> > > ---
> > >  drivers/gpu/drm/radeon/atombios_encoders.c | 6 +++---
> > >  1 file changed, 3 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
> > > index 4e984973c043..b62fd713efcf 100644
> > > --- a/drivers/gpu/drm/radeon/atombios_encoders.c
> > > +++ b/drivers/gpu/drm/radeon/atombios_encoders.c
> > > @@ -1383,7 +1383,7 @@ atombios_set_edp_panel_power(struct drm_connector *connector, int action)
> > >         if (connector->connector_type != DRM_MODE_CONNECTOR_eDP)
> > >                 goto done;
> > >
> > > -       if (!ASIC_IS_DCE4(rdev))
> > > +       if (!ASIC_IS_DCE31(rdev))
> > >                 goto done;
> > >
> > >         if ((action != ATOM_TRANSMITTER_ACTION_POWER_ON) &&
> > > @@ -1707,7 +1707,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
> > >                 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
> > >                         /* DP_SET_POWER_D0 is set in radeon_dp_link_train */
> > >                         radeon_dp_link_train(encoder, connector);
> > > -                       if (ASIC_IS_DCE4(rdev))
> > > +                       if (ASIC_IS_DCE4(rdev) || ASIC_IS_DCE31(rdev))
> > >                                 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
> > >                 }
> > >                 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
> > > @@ -1724,7 +1724,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
> > >         case DRM_MODE_DPMS_SUSPEND:
> > >         case DRM_MODE_DPMS_OFF:
> > >
> > > -               if (ASIC_IS_DCE4(rdev)) {
> > > +               if (ASIC_IS_DCE4(rdev) || ASIC_IS_DCE31(rdev)) {
> > >                         if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector)
> > >                                 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF, 0);
> > >                 }
> >
> > These changes don't make sense and will break other DCE3.c boards.   I
> > had the attached patch from you in one of my old branches, does it fix
> > the issue?
> >
> > Alex
>
> While the initial attached patch resolved the dark screen issue after
> a fresh boot, this follow-up patch addresses the same problem
> occurring after resuming from suspend. Should I used dmi_match() to
> avoid breaking other DCE3.c boards?

Yes.  Even that is a hack.  You are effectively just skipping some of
the required programming sequences.  Presumably the mac is wired up
strangely or there are issues with its atom tables.  Ideally we'd sort
that out, but this hardware is pretty old so I'm ok with a hack.

Alex

^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH v3 0/2] drm/radeon: fix iMac11,1 dark display
  2026-05-18 14:57         ` Alex Deucher
@ 2026-05-18 21:14           ` Gilles Risch
  2026-05-18 21:14           ` [PATCH v3 1/2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
  2026-05-18 21:14           ` [PATCH v3 2/2] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems Gilles Risch
  2 siblings, 0 replies; 29+ messages in thread
From: Gilles Risch @ 2026-05-18 21:14 UTC (permalink / raw)
  To: alexander.deucher; +Cc: amd-gfx, dri-devel, lkp, Gilles Risch

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1481 bytes --]

Hello Alex,

thank you for the feedback. I've updated the patch to use dmi_match()
as suggested, limited to iMac11,1 only since that is the only machine
I have tested so far.

I will have access to other older Apple iMacs which also show display
issues under Linux. Given your comment about unusual wiring and
potentially broken atom tables on these machines, it would make sense
to investigate this more thoroughly in the long run. I would be happy
to help with testing if that would be useful.

The build error reported by the kernel test robot is also fixed — the
previous version was missing the dependency on the ASIC_IS_DCE31()
macro introduced in patch 1. Both patches are now submitted together
as a series.

Changes in v3:
- Submit both patches together as a series to fix the build dependency
- Use dmi_match(DMI_PRODUCT_NAME, "iMac11,1") instead of
  ASIC_IS_DCE31() to avoid breaking other DCE3.x boards
  (suggested by Alex Deucher)
- Limit fix to iMac11,1 only (only tested machine)

Tested on iMac11,1 with Debian Linux.

Gilles Risch (2):
  drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1)
  drm/radeon: fix eDP resume from suspend on iMac11,1 / DCE3.1 systems

 drivers/gpu/drm/radeon/atombios_crtc.c     |  4 ++--
 drivers/gpu/drm/radeon/atombios_encoders.c | 16 +++++++++-------
 drivers/gpu/drm/radeon/radeon.h            |  1 +
 3 files changed, 12 insertions(+), 9 deletions(-)


base-commit: 6916d5703ddf9a38f1f6c2cc793381a24ee914c6
-- 
2.47.3


^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH v3 1/2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-05-18 14:57         ` Alex Deucher
  2026-05-18 21:14           ` [PATCH v3 0/2] drm/radeon: fix iMac11,1 dark display Gilles Risch
@ 2026-05-18 21:14           ` Gilles Risch
  2026-05-19 13:35             ` Alex Deucher
  2026-05-18 21:14           ` [PATCH v3 2/2] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems Gilles Risch
  2 siblings, 1 reply; 29+ messages in thread
From: Gilles Risch @ 2026-05-18 21:14 UTC (permalink / raw)
  To: alexander.deucher; +Cc: amd-gfx, dri-devel, lkp, Gilles Risch

The Apple iMac11,1 (late 2009) has an integrated ATI Mobility Radeon
HD 4850 (RV770/M98L) with a 2560x1440 internal panel connected via an
internal DisplayPort path. This machine suffers from a similar problem
as the iMac10,1 (late 2009) and the iMac11,2 (mid 2010). Without this
fix the display stays dark under KMS. Two issues are addressed:

1. The RV770 implements DCE3.1 and not DCE3.2. ASIC_IS_DCE32() starts at
   CHIP_RV730 which is newer than RV770, so the RV770 never matched the
   DCE3.2 PLL and encoder logic. Introduce ASIC_IS_DCE31() starting at
   CHIP_RV770 to fix this.

2. Apple routed the internal display through Link B of the DIG encoder
   instead of Link A, as observed in the kernel display connector log.
   The same quirk already exists for iMac10,1 and iMac11,2 - iMac11,1
   was simply missing from the list.

Note: resume from suspend still results in a dark screen as the DP
re-driver chips on the mainboard lose their state during power-off.
This will be addressed in a follow-up patch.

Fixes freedesktop issue 164
Link: https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/issues/164

Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
---
v3: No code changes. 

 drivers/gpu/drm/radeon/atombios_crtc.c     | 4 ++--
 drivers/gpu/drm/radeon/atombios_encoders.c | 9 +++++----
 drivers/gpu/drm/radeon/radeon.h            | 1 +
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
index 2fc0334e0d6c..3c6d332739e3 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -580,7 +580,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
 			radeon_crtc->pll_flags |= (/*RADEON_PLL_USE_FRAC_FB_DIV |*/
 				RADEON_PLL_PREFER_CLOSEST_LOWER);
 
-		if (ASIC_IS_DCE32(rdev) && mode->clock > 200000)	/* range limits??? */
+		if (ASIC_IS_DCE31(rdev) && mode->clock > 200000)	/* range limits??? */
 			radeon_crtc->pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV;
 		else
 			radeon_crtc->pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV;
@@ -594,7 +594,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
 		if (((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
 		    && !radeon_crtc->ss_enabled)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
-		if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
+		if (ASIC_IS_DCE31(rdev) && mode->clock > 165000)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
 	} else {
 		radeon_crtc->pll_flags |= RADEON_PLL_LEGACY;
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 5cfd8fcfa5e8..4e984973c043 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -2123,12 +2123,13 @@ int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
 	}
 
 	/*
-	 * On DCE32 any encoder can drive any block so usually just use crtc id,
-	 * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
-	 * otherwise the internal eDP panel will stay dark.
+	 * On DCE31 and DCE32 any encoder can drive any block so usually just use crtc id,
+	 * but Apple thinks different at least on iMac10,1, iMac11,1 and iMac11,2,
+	 * so there use linkb, otherwise the internal eDP panel will stay dark.
 	 */
-	if (ASIC_IS_DCE32(rdev)) {
+	if (ASIC_IS_DCE31(rdev)) {
 		if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
+		    dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
 		    dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
 			enc_idx = (dig->linkb) ? 1 : 0;
 		else
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 527b9d19d730..6b7c0abe49fb 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -2625,6 +2625,7 @@ void r100_pll_errata_after_index(struct radeon_device *rdev);
 			    (rdev->family == CHIP_RS740)  ||	\
 			    (rdev->family >= CHIP_R600))
 #define ASIC_IS_DCE3(rdev) ((rdev->family >= CHIP_RV620))
+#define ASIC_IS_DCE31(rdev) ((rdev->family >= CHIP_RV770))
 #define ASIC_IS_DCE32(rdev) ((rdev->family >= CHIP_RV730))
 #define ASIC_IS_DCE4(rdev) ((rdev->family >= CHIP_CEDAR))
 #define ASIC_IS_DCE41(rdev) ((rdev->family >= CHIP_PALM) && \
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v3 2/2] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems
  2026-05-18 14:57         ` Alex Deucher
  2026-05-18 21:14           ` [PATCH v3 0/2] drm/radeon: fix iMac11,1 dark display Gilles Risch
  2026-05-18 21:14           ` [PATCH v3 1/2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
@ 2026-05-18 21:14           ` Gilles Risch
  2026-05-19 13:42             ` Alex Deucher
  2 siblings, 1 reply; 29+ messages in thread
From: Gilles Risch @ 2026-05-18 21:14 UTC (permalink / raw)
  To: alexander.deucher; +Cc: amd-gfx, dri-devel, lkp, Gilles Risch

After suspend/resume the internal eDP display on Apple iMac11,1,
stays dark because atombios_set_edp_panel_power() skips panel
power control for anything older than DCE4, and
ATOM_ENCODER_CMD_DP_VIDEO_ON/OFF is required on ths iMac.

Tested on iMac11,1 (Mobility Radeon HD 4850, RV770/DCE3.1).

Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
---
 drivers/gpu/drm/radeon/atombios_encoders.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 4e984973c043..0a699a887ee9 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -1384,7 +1384,8 @@ atombios_set_edp_panel_power(struct drm_connector *connector, int action)
 		goto done;
 
 	if (!ASIC_IS_DCE4(rdev))
-		goto done;
+	    if (!dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
+		    goto done;
 
 	if ((action != ATOM_TRANSMITTER_ACTION_POWER_ON) &&
 	    (action != ATOM_TRANSMITTER_ACTION_POWER_OFF))
@@ -1707,7 +1708,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
 		if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
 			/* DP_SET_POWER_D0 is set in radeon_dp_link_train */
 			radeon_dp_link_train(encoder, connector);
-			if (ASIC_IS_DCE4(rdev))
+			if (ASIC_IS_DCE4(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
 				atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
 		}
 		if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
@@ -1724,7 +1725,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
 	case DRM_MODE_DPMS_SUSPEND:
 	case DRM_MODE_DPMS_OFF:
 
-		if (ASIC_IS_DCE4(rdev)) {
+		if (ASIC_IS_DCE4(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1")) {
 			if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector)
 				atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF, 0);
 		}
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH v3 1/2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-05-18 21:14           ` [PATCH v3 1/2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
@ 2026-05-19 13:35             ` Alex Deucher
  0 siblings, 0 replies; 29+ messages in thread
From: Alex Deucher @ 2026-05-19 13:35 UTC (permalink / raw)
  To: Gilles Risch; +Cc: alexander.deucher, amd-gfx, dri-devel, lkp

On Tue, May 19, 2026 at 3:19 AM Gilles Risch <gilles.risch@gmail.com> wrote:
>
> The Apple iMac11,1 (late 2009) has an integrated ATI Mobility Radeon
> HD 4850 (RV770/M98L) with a 2560x1440 internal panel connected via an
> internal DisplayPort path. This machine suffers from a similar problem
> as the iMac10,1 (late 2009) and the iMac11,2 (mid 2010). Without this
> fix the display stays dark under KMS. Two issues are addressed:
>
> 1. The RV770 implements DCE3.1 and not DCE3.2. ASIC_IS_DCE32() starts at
>    CHIP_RV730 which is newer than RV770, so the RV770 never matched the
>    DCE3.2 PLL and encoder logic. Introduce ASIC_IS_DCE31() starting at
>    CHIP_RV770 to fix this.
>
> 2. Apple routed the internal display through Link B of the DIG encoder
>    instead of Link A, as observed in the kernel display connector log.
>    The same quirk already exists for iMac10,1 and iMac11,2 - iMac11,1
>    was simply missing from the list.
>
> Note: resume from suspend still results in a dark screen as the DP
> re-driver chips on the mainboard lose their state during power-off.
> This will be addressed in a follow-up patch.
>
> Fixes freedesktop issue 164
> Link: https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/issues/164
>
> Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
> ---
> v3: No code changes.
>
>  drivers/gpu/drm/radeon/atombios_crtc.c     | 4 ++--
>  drivers/gpu/drm/radeon/atombios_encoders.c | 9 +++++----
>  drivers/gpu/drm/radeon/radeon.h            | 1 +
>  3 files changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
> index 2fc0334e0d6c..3c6d332739e3 100644
> --- a/drivers/gpu/drm/radeon/atombios_crtc.c
> +++ b/drivers/gpu/drm/radeon/atombios_crtc.c
> @@ -580,7 +580,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
>                         radeon_crtc->pll_flags |= (/*RADEON_PLL_USE_FRAC_FB_DIV |*/
>                                 RADEON_PLL_PREFER_CLOSEST_LOWER);
>
> -               if (ASIC_IS_DCE32(rdev) && mode->clock > 200000)        /* range limits??? */
> +               if (ASIC_IS_DCE31(rdev) && mode->clock > 200000)        /* range limits??? */
>                         radeon_crtc->pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV;
>                 else
>                         radeon_crtc->pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV;
> @@ -594,7 +594,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
>                 if (((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
>                     && !radeon_crtc->ss_enabled)
>                         radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
> -               if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
> +               if (ASIC_IS_DCE31(rdev) && mode->clock > 165000)

Can you switch these to dmi matches as well?  This change will also
change the behavior for other boards with respect to the PLL
calculations which are often pretty sensitive and may cause
regressions.

Alex

>                         radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
>         } else {
>                 radeon_crtc->pll_flags |= RADEON_PLL_LEGACY;
> diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
> index 5cfd8fcfa5e8..4e984973c043 100644
> --- a/drivers/gpu/drm/radeon/atombios_encoders.c
> +++ b/drivers/gpu/drm/radeon/atombios_encoders.c
> @@ -2123,12 +2123,13 @@ int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
>         }
>
>         /*
> -        * On DCE32 any encoder can drive any block so usually just use crtc id,
> -        * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
> -        * otherwise the internal eDP panel will stay dark.
> +        * On DCE31 and DCE32 any encoder can drive any block so usually just use crtc id,
> +        * but Apple thinks different at least on iMac10,1, iMac11,1 and iMac11,2,
> +        * so there use linkb, otherwise the internal eDP panel will stay dark.
>          */
> -       if (ASIC_IS_DCE32(rdev)) {
> +       if (ASIC_IS_DCE31(rdev)) {
>                 if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
> +                   dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
>                     dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
>                         enc_idx = (dig->linkb) ? 1 : 0;
>                 else
> diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
> index 527b9d19d730..6b7c0abe49fb 100644
> --- a/drivers/gpu/drm/radeon/radeon.h
> +++ b/drivers/gpu/drm/radeon/radeon.h
> @@ -2625,6 +2625,7 @@ void r100_pll_errata_after_index(struct radeon_device *rdev);
>                             (rdev->family == CHIP_RS740)  ||    \
>                             (rdev->family >= CHIP_R600))
>  #define ASIC_IS_DCE3(rdev) ((rdev->family >= CHIP_RV620))
> +#define ASIC_IS_DCE31(rdev) ((rdev->family >= CHIP_RV770))
>  #define ASIC_IS_DCE32(rdev) ((rdev->family >= CHIP_RV730))
>  #define ASIC_IS_DCE4(rdev) ((rdev->family >= CHIP_CEDAR))
>  #define ASIC_IS_DCE41(rdev) ((rdev->family >= CHIP_PALM) && \
> --
> 2.47.3
>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v3 2/2] drm/radeon: fix eDP resume from suspend on iMac11,  1 / DCE3.1 systems
  2026-05-18 21:14           ` [PATCH v3 2/2] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems Gilles Risch
@ 2026-05-19 13:42             ` Alex Deucher
  2026-05-27 22:20               ` [PATCH v4] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
  0 siblings, 1 reply; 29+ messages in thread
From: Alex Deucher @ 2026-05-19 13:42 UTC (permalink / raw)
  To: Gilles Risch; +Cc: alexander.deucher, amd-gfx, dri-devel, lkp

On Tue, May 19, 2026 at 3:44 AM Gilles Risch <gilles.risch@gmail.com> wrote:
>
> After suspend/resume the internal eDP display on Apple iMac11,1,
> stays dark because atombios_set_edp_panel_power() skips panel
> power control for anything older than DCE4, and
> ATOM_ENCODER_CMD_DP_VIDEO_ON/OFF is required on ths iMac.
>
> Tested on iMac11,1 (Mobility Radeon HD 4850, RV770/DCE3.1).
>
> Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
> ---
>  drivers/gpu/drm/radeon/atombios_encoders.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
> index 4e984973c043..0a699a887ee9 100644
> --- a/drivers/gpu/drm/radeon/atombios_encoders.c
> +++ b/drivers/gpu/drm/radeon/atombios_encoders.c
> @@ -1384,7 +1384,8 @@ atombios_set_edp_panel_power(struct drm_connector *connector, int action)
>                 goto done;
>
>         if (!ASIC_IS_DCE4(rdev))
> -               goto done;
> +           if (!dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
> +                   goto done;

This logic is harder to follow.  I would just add an additional check.  E.g.,

         if (!ASIC_IS_DCE4(rdev))
               goto done;

          if (!dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
                  goto done;

Other than that, looks good to me.

>
>         if ((action != ATOM_TRANSMITTER_ACTION_POWER_ON) &&
>             (action != ATOM_TRANSMITTER_ACTION_POWER_OFF))
> @@ -1707,7 +1708,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
>                 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
>                         /* DP_SET_POWER_D0 is set in radeon_dp_link_train */
>                         radeon_dp_link_train(encoder, connector);
> -                       if (ASIC_IS_DCE4(rdev))
> +                       if (ASIC_IS_DCE4(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
>                                 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
>                 }
>                 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
> @@ -1724,7 +1725,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
>         case DRM_MODE_DPMS_SUSPEND:
>         case DRM_MODE_DPMS_OFF:
>
> -               if (ASIC_IS_DCE4(rdev)) {
> +               if (ASIC_IS_DCE4(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1")) {
>                         if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector)
>                                 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF, 0);
>                 }
> --
> 2.47.3
>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH v4] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-05-19 13:42             ` Alex Deucher
@ 2026-05-27 22:20               ` Gilles Risch
  2026-05-28 18:53                 ` Alex Deucher
  0 siblings, 1 reply; 29+ messages in thread
From: Gilles Risch @ 2026-05-27 22:20 UTC (permalink / raw)
  To: alexander.deucher; +Cc: amd-gfx, dri-devel, Gilles Risch

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.

The same problem already exists for iMac10,1 and iMac11,2. Three fixes:

1. Introduce ASIC_IS_DCE31() for CHIP_RV770 and newer. Note that
   CHIP_RV770 precedes CHIP_RV730 in the enum, so ASIC_IS_DCE31()
   subsumes ASIC_IS_DCE32().

2. Extend the Link B encoder quirk from ASIC_IS_DCE32() to
   ASIC_IS_DCE31() and add iMac11,1 to the DMI list.

3. The 2560x1440 panel needs RADEON_PLL_USE_FRAC_FB_DIV and
   ATOM_ENCODER_CMD_DP_VIDEO_ON. These are limited to iMac11,1
   via dmi_match() to avoid affecting other DCE3.1 boards.

Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
---
 drivers/gpu/drm/radeon/atombios_crtc.c     |  5 ++++-
 drivers/gpu/drm/radeon/atombios_encoders.c | 11 ++++++-----
 drivers/gpu/drm/radeon/radeon.h            |  1 +
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
index 2fc0334e0..075eba2d4 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -24,6 +24,8 @@
  *          Alex Deucher
  */
 
+#include <linux/dmi.h>
+
 #include <drm/drm_fixed.h>
 #include <drm/drm_fourcc.h>
 #include <drm/drm_framebuffer.h>
@@ -594,7 +596,8 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
 		if (((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
 		    && !radeon_crtc->ss_enabled)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
-		if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
+		if ((ASIC_IS_DCE32(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
+		    && mode->clock > 165000)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
 	} else {
 		radeon_crtc->pll_flags |= RADEON_PLL_LEGACY;
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 5cfd8fcfa..4de60559f 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -1707,7 +1707,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
 		if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
 			/* DP_SET_POWER_D0 is set in radeon_dp_link_train */
 			radeon_dp_link_train(encoder, connector);
-			if (ASIC_IS_DCE4(rdev))
+			if (ASIC_IS_DCE4(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
 				atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
 		}
 		if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
@@ -2123,12 +2123,13 @@ int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
 	}
 
 	/*
-	 * On DCE32 any encoder can drive any block so usually just use crtc id,
-	 * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
-	 * otherwise the internal eDP panel will stay dark.
+	 * On DCE31 and DCE32 any encoder can drive any block so usually just use crtc id,
+	 * but Apple thinks different at least on iMac10,1, iMac11,1 and iMac11,2,
+	 * so there use linkb, otherwise the internal eDP panel will stay dark.
 	 */
-	if (ASIC_IS_DCE32(rdev)) {
+	if (ASIC_IS_DCE31(rdev)) {
 		if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
+		    dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
 		    dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
 			enc_idx = (dig->linkb) ? 1 : 0;
 		else
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 527b9d19d..6b7c0abe4 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -2625,6 +2625,7 @@ void r100_pll_errata_after_index(struct radeon_device *rdev);
 			    (rdev->family == CHIP_RS740)  ||	\
 			    (rdev->family >= CHIP_R600))
 #define ASIC_IS_DCE3(rdev) ((rdev->family >= CHIP_RV620))
+#define ASIC_IS_DCE31(rdev) ((rdev->family >= CHIP_RV770))
 #define ASIC_IS_DCE32(rdev) ((rdev->family >= CHIP_RV730))
 #define ASIC_IS_DCE4(rdev) ((rdev->family >= CHIP_CEDAR))
 #define ASIC_IS_DCE41(rdev) ((rdev->family >= CHIP_PALM) && \

base-commit: e7ae89a0c97ce2b68b0983cd01eda67cf373517d
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH v4] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-05-27 22:20               ` [PATCH v4] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
@ 2026-05-28 18:53                 ` Alex Deucher
  2026-05-29  7:43                   ` Gilles Risch
  0 siblings, 1 reply; 29+ messages in thread
From: Alex Deucher @ 2026-05-28 18:53 UTC (permalink / raw)
  To: Gilles Risch; +Cc: alexander.deucher, amd-gfx, dri-devel

On Thu, May 28, 2026 at 3:39 AM Gilles Risch <gilles.risch@gmail.com> wrote:
>
> 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.
>
> The same problem already exists for iMac10,1 and iMac11,2. Three fixes:
>
> 1. Introduce ASIC_IS_DCE31() for CHIP_RV770 and newer. Note that
>    CHIP_RV770 precedes CHIP_RV730 in the enum, so ASIC_IS_DCE31()
>    subsumes ASIC_IS_DCE32().
>
> 2. Extend the Link B encoder quirk from ASIC_IS_DCE32() to
>    ASIC_IS_DCE31() and add iMac11,1 to the DMI list.
>
> 3. The 2560x1440 panel needs RADEON_PLL_USE_FRAC_FB_DIV and
>    ATOM_ENCODER_CMD_DP_VIDEO_ON. These are limited to iMac11,1
>    via dmi_match() to avoid affecting other DCE3.1 boards.
>
> Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
> ---
>  drivers/gpu/drm/radeon/atombios_crtc.c     |  5 ++++-
>  drivers/gpu/drm/radeon/atombios_encoders.c | 11 ++++++-----
>  drivers/gpu/drm/radeon/radeon.h            |  1 +
>  3 files changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
> index 2fc0334e0..075eba2d4 100644
> --- a/drivers/gpu/drm/radeon/atombios_crtc.c
> +++ b/drivers/gpu/drm/radeon/atombios_crtc.c
> @@ -24,6 +24,8 @@
>   *          Alex Deucher
>   */
>
> +#include <linux/dmi.h>
> +
>  #include <drm/drm_fixed.h>
>  #include <drm/drm_fourcc.h>
>  #include <drm/drm_framebuffer.h>
> @@ -594,7 +596,8 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
>                 if (((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
>                     && !radeon_crtc->ss_enabled)
>                         radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
> -               if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
> +               if ((ASIC_IS_DCE32(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
> +                   && mode->clock > 165000)
>                         radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
>         } else {
>                 radeon_crtc->pll_flags |= RADEON_PLL_LEGACY;
> diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
> index 5cfd8fcfa..4de60559f 100644
> --- a/drivers/gpu/drm/radeon/atombios_encoders.c
> +++ b/drivers/gpu/drm/radeon/atombios_encoders.c
> @@ -1707,7 +1707,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
>                 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
>                         /* DP_SET_POWER_D0 is set in radeon_dp_link_train */
>                         radeon_dp_link_train(encoder, connector);
> -                       if (ASIC_IS_DCE4(rdev))
> +                       if (ASIC_IS_DCE4(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
>                                 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
>                 }
>                 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
> @@ -2123,12 +2123,13 @@ int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
>         }
>
>         /*
> -        * On DCE32 any encoder can drive any block so usually just use crtc id,
> -        * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
> -        * otherwise the internal eDP panel will stay dark.
> +        * On DCE31 and DCE32 any encoder can drive any block so usually just use crtc id,
> +        * but Apple thinks different at least on iMac10,1, iMac11,1 and iMac11,2,
> +        * so there use linkb, otherwise the internal eDP panel will stay dark.
>          */
> -       if (ASIC_IS_DCE32(rdev)) {
> +       if (ASIC_IS_DCE31(rdev)) {

This will change the routing for DCE3.1 as well.  Probably best to do
something like:

if (dmi_match(DMI_PRODUCT_NAME, "iMac11,1")) {
    enc_idx = (dig->linkb) ? 1 : 0;
    goto assigned;
}

before or after the DCE32() block.

>                 if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
> +                   dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
>                     dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
>                         enc_idx = (dig->linkb) ? 1 : 0;
>                 else
> diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
> index 527b9d19d..6b7c0abe4 100644
> --- a/drivers/gpu/drm/radeon/radeon.h
> +++ b/drivers/gpu/drm/radeon/radeon.h
> @@ -2625,6 +2625,7 @@ void r100_pll_errata_after_index(struct radeon_device *rdev);
>                             (rdev->family == CHIP_RS740)  ||    \
>                             (rdev->family >= CHIP_R600))
>  #define ASIC_IS_DCE3(rdev) ((rdev->family >= CHIP_RV620))
> +#define ASIC_IS_DCE31(rdev) ((rdev->family >= CHIP_RV770))
>  #define ASIC_IS_DCE32(rdev) ((rdev->family >= CHIP_RV730))
>  #define ASIC_IS_DCE4(rdev) ((rdev->family >= CHIP_CEDAR))
>  #define ASIC_IS_DCE41(rdev) ((rdev->family >= CHIP_PALM) && \
>
> base-commit: e7ae89a0c97ce2b68b0983cd01eda67cf373517d
> --
> 2.47.3
>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v4] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-05-28 18:53                 ` Alex Deucher
@ 2026-05-29  7:43                   ` Gilles Risch
  2026-05-29 13:31                     ` Alex Deucher
  0 siblings, 1 reply; 29+ messages in thread
From: Gilles Risch @ 2026-05-29  7:43 UTC (permalink / raw)
  To: Alex Deucher; +Cc: alexander.deucher, amd-gfx, dri-devel

Good morning,

I'll make that adjustment, shouldn't I just regroup all three iMac
machines in one if statement?

Am Do., 28. Mai 2026 um 20:53 Uhr schrieb Alex Deucher <alexdeucher@gmail.com>:
>
> On Thu, May 28, 2026 at 3:39 AM Gilles Risch <gilles.risch@gmail.com> wrote:
> >
> > 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.
> >
> > The same problem already exists for iMac10,1 and iMac11,2. Three fixes:
> >
> > 1. Introduce ASIC_IS_DCE31() for CHIP_RV770 and newer. Note that
> >    CHIP_RV770 precedes CHIP_RV730 in the enum, so ASIC_IS_DCE31()
> >    subsumes ASIC_IS_DCE32().
> >
> > 2. Extend the Link B encoder quirk from ASIC_IS_DCE32() to
> >    ASIC_IS_DCE31() and add iMac11,1 to the DMI list.
> >
> > 3. The 2560x1440 panel needs RADEON_PLL_USE_FRAC_FB_DIV and
> >    ATOM_ENCODER_CMD_DP_VIDEO_ON. These are limited to iMac11,1
> >    via dmi_match() to avoid affecting other DCE3.1 boards.
> >
> > Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
> > ---
> >  drivers/gpu/drm/radeon/atombios_crtc.c     |  5 ++++-
> >  drivers/gpu/drm/radeon/atombios_encoders.c | 11 ++++++-----
> >  drivers/gpu/drm/radeon/radeon.h            |  1 +
> >  3 files changed, 11 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
> > index 2fc0334e0..075eba2d4 100644
> > --- a/drivers/gpu/drm/radeon/atombios_crtc.c
> > +++ b/drivers/gpu/drm/radeon/atombios_crtc.c
> > @@ -24,6 +24,8 @@
> >   *          Alex Deucher
> >   */
> >
> > +#include <linux/dmi.h>
> > +
> >  #include <drm/drm_fixed.h>
> >  #include <drm/drm_fourcc.h>
> >  #include <drm/drm_framebuffer.h>
> > @@ -594,7 +596,8 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
> >                 if (((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
> >                     && !radeon_crtc->ss_enabled)
> >                         radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
> > -               if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
> > +               if ((ASIC_IS_DCE32(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
> > +                   && mode->clock > 165000)
> >                         radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
> >         } else {
> >                 radeon_crtc->pll_flags |= RADEON_PLL_LEGACY;
> > diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
> > index 5cfd8fcfa..4de60559f 100644
> > --- a/drivers/gpu/drm/radeon/atombios_encoders.c
> > +++ b/drivers/gpu/drm/radeon/atombios_encoders.c
> > @@ -1707,7 +1707,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
> >                 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
> >                         /* DP_SET_POWER_D0 is set in radeon_dp_link_train */
> >                         radeon_dp_link_train(encoder, connector);
> > -                       if (ASIC_IS_DCE4(rdev))
> > +                       if (ASIC_IS_DCE4(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
> >                                 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
> >                 }
> >                 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
> > @@ -2123,12 +2123,13 @@ int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
> >         }
> >
> >         /*
> > -        * On DCE32 any encoder can drive any block so usually just use crtc id,
> > -        * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
> > -        * otherwise the internal eDP panel will stay dark.
> > +        * On DCE31 and DCE32 any encoder can drive any block so usually just use crtc id,
> > +        * but Apple thinks different at least on iMac10,1, iMac11,1 and iMac11,2,
> > +        * so there use linkb, otherwise the internal eDP panel will stay dark.
> >          */
> > -       if (ASIC_IS_DCE32(rdev)) {
> > +       if (ASIC_IS_DCE31(rdev)) {
>
> This will change the routing for DCE3.1 as well.  Probably best to do
> something like:
>
> if (dmi_match(DMI_PRODUCT_NAME, "iMac11,1")) {
>     enc_idx = (dig->linkb) ? 1 : 0;
>     goto assigned;
> }
>
> before or after the DCE32() block.
>
> >                 if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
> > +                   dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
> >                     dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
> >                         enc_idx = (dig->linkb) ? 1 : 0;
> >                 else
> > diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
> > index 527b9d19d..6b7c0abe4 100644
> > --- a/drivers/gpu/drm/radeon/radeon.h
> > +++ b/drivers/gpu/drm/radeon/radeon.h
> > @@ -2625,6 +2625,7 @@ void r100_pll_errata_after_index(struct radeon_device *rdev);
> >                             (rdev->family == CHIP_RS740)  ||    \
> >                             (rdev->family >= CHIP_R600))
> >  #define ASIC_IS_DCE3(rdev) ((rdev->family >= CHIP_RV620))
> > +#define ASIC_IS_DCE31(rdev) ((rdev->family >= CHIP_RV770))
> >  #define ASIC_IS_DCE32(rdev) ((rdev->family >= CHIP_RV730))
> >  #define ASIC_IS_DCE4(rdev) ((rdev->family >= CHIP_CEDAR))
> >  #define ASIC_IS_DCE41(rdev) ((rdev->family >= CHIP_PALM) && \
> >
> > base-commit: e7ae89a0c97ce2b68b0983cd01eda67cf373517d
> > --
> > 2.47.3
> >



-- 
Gilles

Sent from my Commodore C=64

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v4] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-05-29  7:43                   ` Gilles Risch
@ 2026-05-29 13:31                     ` Alex Deucher
  2026-06-01 21:19                       ` [PATCH v5] " Gilles Risch
  0 siblings, 1 reply; 29+ messages in thread
From: Alex Deucher @ 2026-05-29 13:31 UTC (permalink / raw)
  To: Gilles Risch; +Cc: alexander.deucher, amd-gfx, dri-devel

On Fri, May 29, 2026 at 3:43 AM Gilles Risch <gilles.risch@gmail.com> wrote:
>
> Good morning,
>
> I'll make that adjustment, shouldn't I just regroup all three iMac
> machines in one if statement?

Yeah, that works too.

Alex

>
> Am Do., 28. Mai 2026 um 20:53 Uhr schrieb Alex Deucher <alexdeucher@gmail.com>:
> >
> > On Thu, May 28, 2026 at 3:39 AM Gilles Risch <gilles.risch@gmail.com> wrote:
> > >
> > > 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.
> > >
> > > The same problem already exists for iMac10,1 and iMac11,2. Three fixes:
> > >
> > > 1. Introduce ASIC_IS_DCE31() for CHIP_RV770 and newer. Note that
> > >    CHIP_RV770 precedes CHIP_RV730 in the enum, so ASIC_IS_DCE31()
> > >    subsumes ASIC_IS_DCE32().
> > >
> > > 2. Extend the Link B encoder quirk from ASIC_IS_DCE32() to
> > >    ASIC_IS_DCE31() and add iMac11,1 to the DMI list.
> > >
> > > 3. The 2560x1440 panel needs RADEON_PLL_USE_FRAC_FB_DIV and
> > >    ATOM_ENCODER_CMD_DP_VIDEO_ON. These are limited to iMac11,1
> > >    via dmi_match() to avoid affecting other DCE3.1 boards.
> > >
> > > Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
> > > ---
> > >  drivers/gpu/drm/radeon/atombios_crtc.c     |  5 ++++-
> > >  drivers/gpu/drm/radeon/atombios_encoders.c | 11 ++++++-----
> > >  drivers/gpu/drm/radeon/radeon.h            |  1 +
> > >  3 files changed, 11 insertions(+), 6 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
> > > index 2fc0334e0..075eba2d4 100644
> > > --- a/drivers/gpu/drm/radeon/atombios_crtc.c
> > > +++ b/drivers/gpu/drm/radeon/atombios_crtc.c
> > > @@ -24,6 +24,8 @@
> > >   *          Alex Deucher
> > >   */
> > >
> > > +#include <linux/dmi.h>
> > > +
> > >  #include <drm/drm_fixed.h>
> > >  #include <drm/drm_fourcc.h>
> > >  #include <drm/drm_framebuffer.h>
> > > @@ -594,7 +596,8 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
> > >                 if (((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
> > >                     && !radeon_crtc->ss_enabled)
> > >                         radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
> > > -               if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
> > > +               if ((ASIC_IS_DCE32(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
> > > +                   && mode->clock > 165000)
> > >                         radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
> > >         } else {
> > >                 radeon_crtc->pll_flags |= RADEON_PLL_LEGACY;
> > > diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
> > > index 5cfd8fcfa..4de60559f 100644
> > > --- a/drivers/gpu/drm/radeon/atombios_encoders.c
> > > +++ b/drivers/gpu/drm/radeon/atombios_encoders.c
> > > @@ -1707,7 +1707,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
> > >                 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
> > >                         /* DP_SET_POWER_D0 is set in radeon_dp_link_train */
> > >                         radeon_dp_link_train(encoder, connector);
> > > -                       if (ASIC_IS_DCE4(rdev))
> > > +                       if (ASIC_IS_DCE4(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
> > >                                 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
> > >                 }
> > >                 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
> > > @@ -2123,12 +2123,13 @@ int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
> > >         }
> > >
> > >         /*
> > > -        * On DCE32 any encoder can drive any block so usually just use crtc id,
> > > -        * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
> > > -        * otherwise the internal eDP panel will stay dark.
> > > +        * On DCE31 and DCE32 any encoder can drive any block so usually just use crtc id,
> > > +        * but Apple thinks different at least on iMac10,1, iMac11,1 and iMac11,2,
> > > +        * so there use linkb, otherwise the internal eDP panel will stay dark.
> > >          */
> > > -       if (ASIC_IS_DCE32(rdev)) {
> > > +       if (ASIC_IS_DCE31(rdev)) {
> >
> > This will change the routing for DCE3.1 as well.  Probably best to do
> > something like:
> >
> > if (dmi_match(DMI_PRODUCT_NAME, "iMac11,1")) {
> >     enc_idx = (dig->linkb) ? 1 : 0;
> >     goto assigned;
> > }
> >
> > before or after the DCE32() block.
> >
> > >                 if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
> > > +                   dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
> > >                     dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
> > >                         enc_idx = (dig->linkb) ? 1 : 0;
> > >                 else
> > > diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
> > > index 527b9d19d..6b7c0abe4 100644
> > > --- a/drivers/gpu/drm/radeon/radeon.h
> > > +++ b/drivers/gpu/drm/radeon/radeon.h
> > > @@ -2625,6 +2625,7 @@ void r100_pll_errata_after_index(struct radeon_device *rdev);
> > >                             (rdev->family == CHIP_RS740)  ||    \
> > >                             (rdev->family >= CHIP_R600))
> > >  #define ASIC_IS_DCE3(rdev) ((rdev->family >= CHIP_RV620))
> > > +#define ASIC_IS_DCE31(rdev) ((rdev->family >= CHIP_RV770))
> > >  #define ASIC_IS_DCE32(rdev) ((rdev->family >= CHIP_RV730))
> > >  #define ASIC_IS_DCE4(rdev) ((rdev->family >= CHIP_CEDAR))
> > >  #define ASIC_IS_DCE41(rdev) ((rdev->family >= CHIP_PALM) && \
> > >
> > > base-commit: e7ae89a0c97ce2b68b0983cd01eda67cf373517d
> > > --
> > > 2.47.3
> > >
>
>
>
> --
> Gilles
>
> Sent from my Commodore C=64

^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH v5] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-05-29 13:31                     ` Alex Deucher
@ 2026-06-01 21:19                       ` Gilles Risch
  2026-07-11  8:41                         ` [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Gilles Risch
  2026-08-20  7:01                         ` [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Erik Gregg
  0 siblings, 2 replies; 29+ messages in thread
From: Gilles Risch @ 2026-06-01 21:19 UTC (permalink / raw)
  To: alexander.deucher; +Cc: amd-gfx, dri-devel, Gilles Risch

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.

Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
---
 drivers/gpu/drm/radeon/atombios_crtc.c     |  5 ++++-
 drivers/gpu/drm/radeon/atombios_encoders.c | 23 ++++++++++++----------
 2 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
index 2fc0334e0..075eba2d4 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -24,6 +24,8 @@
  *          Alex Deucher
  */
 
+#include <linux/dmi.h>
+
 #include <drm/drm_fixed.h>
 #include <drm/drm_fourcc.h>
 #include <drm/drm_framebuffer.h>
@@ -594,7 +596,8 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
 		if (((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
 		    && !radeon_crtc->ss_enabled)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
-		if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
+		if ((ASIC_IS_DCE32(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
+		    && mode->clock > 165000)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
 	} else {
 		radeon_crtc->pll_flags |= RADEON_PLL_LEGACY;
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 5cfd8fcfa..8b3f8303a 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -1707,7 +1707,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
 		if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
 			/* DP_SET_POWER_D0 is set in radeon_dp_link_train */
 			radeon_dp_link_train(encoder, connector);
-			if (ASIC_IS_DCE4(rdev))
+			if (ASIC_IS_DCE4(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
 				atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
 		}
 		if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
@@ -2123,17 +2123,20 @@ int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
 	}
 
 	/*
-	 * On DCE32 any encoder can drive any block so usually just use crtc id,
-	 * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
-	 * otherwise the internal eDP panel will stay dark.
+	 * Apple routes the internal eDP panel through Link B of the DIG encoder
+	 * instead of Link A on the iMac10,1, iMac11,1 and iMac11,2.
+	 * Use linkb to avoid a dark display.
 	 */
-	if (ASIC_IS_DCE32(rdev)) {
-		if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
-		    dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
-			enc_idx = (dig->linkb) ? 1 : 0;
-		else
-			enc_idx = radeon_crtc->crtc_id;
+	if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
+	    dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
+	    dmi_match(DMI_PRODUCT_NAME, "iMac11,2")) {
+		enc_idx = (dig->linkb) ? 1 : 0;
+		goto assigned;
+	}
 
+	/* on DCE32 and encoder can driver any block so just crtc id */
+	if (ASIC_IS_DCE32(rdev)) {
+		enc_idx = radeon_crtc->crtc_id;
 		goto assigned;
 	}
 
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1)
  2026-06-01 21:19                       ` [PATCH v5] " Gilles Risch
@ 2026-07-11  8:41                         ` Gilles Risch
  2026-08-17  0:43                           ` [PATCH v6] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
  2026-08-20  7:01                         ` [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Erik Gregg
  1 sibling, 1 reply; 29+ messages in thread
From: Gilles Risch @ 2026-07-11  8:41 UTC (permalink / raw)
  To: alexander.deucher, amd-gfx, dri-devel

Hello,

gentle ping on this v5 patch — is there anything else needed to get this 
merged?

Regards,
Gilles


On 01.06.26 23:19, Gilles Risch wrote:
> 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.
>
> Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
> ---
>   drivers/gpu/drm/radeon/atombios_crtc.c     |  5 ++++-
>   drivers/gpu/drm/radeon/atombios_encoders.c | 23 ++++++++++++----------
>   2 files changed, 17 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
> index 2fc0334e0..075eba2d4 100644
> --- a/drivers/gpu/drm/radeon/atombios_crtc.c
> +++ b/drivers/gpu/drm/radeon/atombios_crtc.c
> @@ -24,6 +24,8 @@
>    *          Alex Deucher
>    */
>   
> +#include <linux/dmi.h>
> +
>   #include <drm/drm_fixed.h>
>   #include <drm/drm_fourcc.h>
>   #include <drm/drm_framebuffer.h>
> @@ -594,7 +596,8 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
>   		if (((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
>   		    && !radeon_crtc->ss_enabled)
>   			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
> -		if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
> +		if ((ASIC_IS_DCE32(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
> +		    && mode->clock > 165000)
>   			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
>   	} else {
>   		radeon_crtc->pll_flags |= RADEON_PLL_LEGACY;
> diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
> index 5cfd8fcfa..8b3f8303a 100644
> --- a/drivers/gpu/drm/radeon/atombios_encoders.c
> +++ b/drivers/gpu/drm/radeon/atombios_encoders.c
> @@ -1707,7 +1707,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
>   		if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
>   			/* DP_SET_POWER_D0 is set in radeon_dp_link_train */
>   			radeon_dp_link_train(encoder, connector);
> -			if (ASIC_IS_DCE4(rdev))
> +			if (ASIC_IS_DCE4(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
>   				atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
>   		}
>   		if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
> @@ -2123,17 +2123,20 @@ int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
>   	}
>   
>   	/*
> -	 * On DCE32 any encoder can drive any block so usually just use crtc id,
> -	 * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
> -	 * otherwise the internal eDP panel will stay dark.
> +	 * Apple routes the internal eDP panel through Link B of the DIG encoder
> +	 * instead of Link A on the iMac10,1, iMac11,1 and iMac11,2.
> +	 * Use linkb to avoid a dark display.
>   	 */
> -	if (ASIC_IS_DCE32(rdev)) {
> -		if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
> -		    dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
> -			enc_idx = (dig->linkb) ? 1 : 0;
> -		else
> -			enc_idx = radeon_crtc->crtc_id;
> +	if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
> +	    dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
> +	    dmi_match(DMI_PRODUCT_NAME, "iMac11,2")) {
> +		enc_idx = (dig->linkb) ? 1 : 0;
> +		goto assigned;
> +	}
>   
> +	/* on DCE32 and encoder can driver any block so just crtc id */
> +	if (ASIC_IS_DCE32(rdev)) {
> +		enc_idx = radeon_crtc->crtc_id;
>   		goto assigned;
>   	}
>   



^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH v6] drm/radeon: fix internal display on iMac11, 1  (RV770/DCE3.1)
  2026-07-11  8:41                         ` [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Gilles Risch
@ 2026-08-17  0:43                           ` Gilles Risch
  2026-08-17  8:25                             ` [PATCH v6] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Lukas Wunner
  2026-08-17 15:09                             ` [PATCH v6] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Alex Deucher
  0 siblings, 2 replies; 29+ messages in thread
From: Gilles Risch @ 2026-08-17  0:43 UTC (permalink / raw)
  To: alexander.deucher; +Cc: amd-gfx, dri-devel, lukas, Gilles Risch

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.

Signed-off-by: Gilles Risch <gilles.risch@gmail.com>

Good morning,

this is v6 of the patch, rebased on top of amd-staging-drm-next
(agd5f/linux).

There are no functional or code changes since v5.

Regarding Lukas Wunner's previous Reviewed-by (which was provided on v2),
I have kept him in CC so he can confirm if his review still stands given
the changes between v2 and v5.

Could you have a look at this when you have a spare moment?

Regards,
Gilles

Changes in v6:
- Rebased on amd-staging-drm-next (no functional/code changes since v5)
---
 drivers/gpu/drm/radeon/atombios_crtc.c     |  5 ++++-
 drivers/gpu/drm/radeon/atombios_encoders.c | 23 ++++++++++++----------
 2 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
index 2fc0334e0d6c..075eba2d47f3 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -24,6 +24,8 @@
  *          Alex Deucher
  */
 
+#include <linux/dmi.h>
+
 #include <drm/drm_fixed.h>
 #include <drm/drm_fourcc.h>
 #include <drm/drm_framebuffer.h>
@@ -594,7 +596,8 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
 		if (((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
 		    && !radeon_crtc->ss_enabled)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
-		if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
+		if ((ASIC_IS_DCE32(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
+		    && mode->clock > 165000)
 			radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
 	} else {
 		radeon_crtc->pll_flags |= RADEON_PLL_LEGACY;
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 5cfd8fcfa5e8..8b3f8303a967 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -1707,7 +1707,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
 		if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
 			/* DP_SET_POWER_D0 is set in radeon_dp_link_train */
 			radeon_dp_link_train(encoder, connector);
-			if (ASIC_IS_DCE4(rdev))
+			if (ASIC_IS_DCE4(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
 				atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
 		}
 		if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
@@ -2123,17 +2123,20 @@ int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
 	}
 
 	/*
-	 * On DCE32 any encoder can drive any block so usually just use crtc id,
-	 * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
-	 * otherwise the internal eDP panel will stay dark.
+	 * Apple routes the internal eDP panel through Link B of the DIG encoder
+	 * instead of Link A on the iMac10,1, iMac11,1 and iMac11,2.
+	 * Use linkb to avoid a dark display.
 	 */
-	if (ASIC_IS_DCE32(rdev)) {
-		if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
-		    dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
-			enc_idx = (dig->linkb) ? 1 : 0;
-		else
-			enc_idx = radeon_crtc->crtc_id;
+	if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
+	    dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
+	    dmi_match(DMI_PRODUCT_NAME, "iMac11,2")) {
+		enc_idx = (dig->linkb) ? 1 : 0;
+		goto assigned;
+	}
 
+	/* on DCE32 and encoder can driver any block so just crtc id */
+	if (ASIC_IS_DCE32(rdev)) {
+		enc_idx = radeon_crtc->crtc_id;
 		goto assigned;
 	}
 

base-commit: 21c50d41af7c46e138b542dba2dcf6d2a978ae99
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH v6] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1)
  2026-08-17  0:43                           ` [PATCH v6] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
@ 2026-08-17  8:25                             ` Lukas Wunner
  2026-08-17 15:09                             ` [PATCH v6] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Alex Deucher
  1 sibling, 0 replies; 29+ messages in thread
From: Lukas Wunner @ 2026-08-17  8:25 UTC (permalink / raw)
  To: Gilles Risch; +Cc: alexander.deucher, amd-gfx, dri-devel

On Mon, Aug 17, 2026 at 02:43:26AM +0200, Gilles Risch wrote:
> 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.
> 
> Signed-off-by: Gilles Risch <gilles.risch@gmail.com>

Reviewed-by: Lukas Wunner <lukas@wunner.de>

> Good morning,
> 
> this is v6 of the patch, rebased on top of amd-staging-drm-next
> (agd5f/linux).
> 
> There are no functional or code changes since v5.
> 
> Regarding Lukas Wunner's previous Reviewed-by (which was provided on v2),
> I have kept him in CC so he can confirm if his review still stands given
> the changes between v2 and v5.
> 
> Could you have a look at this when you have a spare moment?
> 
> Regards,
> Gilles
> 
> Changes in v6:
> - Rebased on amd-staging-drm-next (no functional/code changes since v5)
> ---

Put additional information like this below the three dashes
so that it's not committed to the git repo when the maintainer
applies your patch.

> -	if (ASIC_IS_DCE32(rdev)) {
> -		if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
> -		    dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
> -			enc_idx = (dig->linkb) ? 1 : 0;
> -		else
> -			enc_idx = radeon_crtc->crtc_id;
> +	if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
> +	    dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
> +	    dmi_match(DMI_PRODUCT_NAME, "iMac11,2")) {
> +		enc_idx = (dig->linkb) ? 1 : 0;
> +		goto assigned;
> +	}

Nit:
If the number of dmi_match() calls exceeds one or two, for readability
it's usually a good idea to create a table and match against that with
dmi_check_system().

Thanks,

Lukas

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v6] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-08-17  0:43                           ` [PATCH v6] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
  2026-08-17  8:25                             ` [PATCH v6] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Lukas Wunner
@ 2026-08-17 15:09                             ` Alex Deucher
  1 sibling, 0 replies; 29+ messages in thread
From: Alex Deucher @ 2026-08-17 15:09 UTC (permalink / raw)
  To: Gilles Risch; +Cc: alexander.deucher, amd-gfx, dri-devel, lukas

Applied.  Thanks!

Alex

On Sun, Aug 16, 2026 at 8:43 PM Gilles Risch <gilles.risch@gmail.com> wrote:
>
> 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.
>
> Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
>
> Good morning,
>
> this is v6 of the patch, rebased on top of amd-staging-drm-next
> (agd5f/linux).
>
> There are no functional or code changes since v5.
>
> Regarding Lukas Wunner's previous Reviewed-by (which was provided on v2),
> I have kept him in CC so he can confirm if his review still stands given
> the changes between v2 and v5.
>
> Could you have a look at this when you have a spare moment?
>
> Regards,
> Gilles
>
> Changes in v6:
> - Rebased on amd-staging-drm-next (no functional/code changes since v5)
> ---
>  drivers/gpu/drm/radeon/atombios_crtc.c     |  5 ++++-
>  drivers/gpu/drm/radeon/atombios_encoders.c | 23 ++++++++++++----------
>  2 files changed, 17 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
> index 2fc0334e0d6c..075eba2d47f3 100644
> --- a/drivers/gpu/drm/radeon/atombios_crtc.c
> +++ b/drivers/gpu/drm/radeon/atombios_crtc.c
> @@ -24,6 +24,8 @@
>   *          Alex Deucher
>   */
>
> +#include <linux/dmi.h>
> +
>  #include <drm/drm_fixed.h>
>  #include <drm/drm_fourcc.h>
>  #include <drm/drm_framebuffer.h>
> @@ -594,7 +596,8 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
>                 if (((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
>                     && !radeon_crtc->ss_enabled)
>                         radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
> -               if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
> +               if ((ASIC_IS_DCE32(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
> +                   && mode->clock > 165000)
>                         radeon_crtc->pll_flags |= RADEON_PLL_USE_FRAC_FB_DIV;
>         } else {
>                 radeon_crtc->pll_flags |= RADEON_PLL_LEGACY;
> diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
> index 5cfd8fcfa5e8..8b3f8303a967 100644
> --- a/drivers/gpu/drm/radeon/atombios_encoders.c
> +++ b/drivers/gpu/drm/radeon/atombios_encoders.c
> @@ -1707,7 +1707,7 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
>                 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
>                         /* DP_SET_POWER_D0 is set in radeon_dp_link_train */
>                         radeon_dp_link_train(encoder, connector);
> -                       if (ASIC_IS_DCE4(rdev))
> +                       if (ASIC_IS_DCE4(rdev) || dmi_match(DMI_PRODUCT_NAME, "iMac11,1"))
>                                 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
>                 }
>                 if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
> @@ -2123,17 +2123,20 @@ int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx)
>         }
>
>         /*
> -        * On DCE32 any encoder can drive any block so usually just use crtc id,
> -        * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
> -        * otherwise the internal eDP panel will stay dark.
> +        * Apple routes the internal eDP panel through Link B of the DIG encoder
> +        * instead of Link A on the iMac10,1, iMac11,1 and iMac11,2.
> +        * Use linkb to avoid a dark display.
>          */
> -       if (ASIC_IS_DCE32(rdev)) {
> -               if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
> -                   dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
> -                       enc_idx = (dig->linkb) ? 1 : 0;
> -               else
> -                       enc_idx = radeon_crtc->crtc_id;
> +       if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
> +           dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
> +           dmi_match(DMI_PRODUCT_NAME, "iMac11,2")) {
> +               enc_idx = (dig->linkb) ? 1 : 0;
> +               goto assigned;
> +       }
>
> +       /* on DCE32 and encoder can driver any block so just crtc id */
> +       if (ASIC_IS_DCE32(rdev)) {
> +               enc_idx = radeon_crtc->crtc_id;
>                 goto assigned;
>         }
>
>
> base-commit: 21c50d41af7c46e138b542dba2dcf6d2a978ae99
> --
> 2.47.3
>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1)
  2026-06-01 21:19                       ` [PATCH v5] " Gilles Risch
  2026-07-11  8:41                         ` [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Gilles Risch
@ 2026-08-20  7:01                         ` Erik Gregg
  2026-08-20 13:24                           ` [PATCH v5] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Alex Deucher
  1 sibling, 1 reply; 29+ messages in thread
From: Erik Gregg @ 2026-08-20  7:01 UTC (permalink / raw)
  To: gilles.risch; +Cc: alexander.deucher, amd-gfx, dri-devel

On Mon, 1 Jun 2026 23:19:32 +0200, Gilles Risch <gilles.risch@gmail.com> wrote:
> 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.
>
> Signed-off-by: Gilles Risch <gilles.risch@gmail.com>

I tested this patch on top of 7.1.7-arch1 on a Late 2009 27" iMac11,1
with the Mobility Radeon HD 4850. With nomodeset the machine boots with
a working (efifb) console. On vanilla 7.1.7 without nomodeset the panel
stays completely black (backlight off) and no radeon init is visible in
dmesg over SSH.

With the patch and without nomodeset, radeon initializes normally per
dmesg, but at the fbcon modeset (~4s) the panel goes blank and then
shows flashing horizontal lines that start at the top and sweep down at
regular intervals. It never recovers. The logs below are from that case,
gathered by logging in blind on the console and running commands blind.

I tried radeon.dpm=0, radeon.audio=0, video=eDP-1:2560x1440@60 and
radeon.modeset=1, with no change.

Renderer: AMD RV770 (DRM 2.51.0 / 7.1.7-arch1-1-imac), Mesa 26.1.6

[    3.028962] radeon 0000:02:00.0: fence driver on ring 3 uses gpu addr 0x0000000020000c0c
[    3.029207] radeon 0000:02:00.0: fence driver on ring 5 uses gpu addr 0x0000000000056230
[    3.030250] radeon 0000:02:00.0: radeon: using MSI.
[    3.030275] [drm] radeon: irq initialized.
[    3.076796] [drm] ring test on 0 succeeded in 1 usecs
[    3.076803] [drm] ring test on 3 succeeded in 2 usecs
[    3.252855] radeon 0000:02:00.0: [drm] ring test on 5 succeeded in 1 usecs
[    3.252861] radeon 0000:02:00.0: [drm] UVD initialized successfully.
[    3.253264] [drm] ib test on ring 0 succeeded in 0 usecs
[    3.253283] [drm] ib test on ring 3 succeeded in 0 usecs
[    3.906199] radeon 0000:02:00.0: [drm] ib test on ring 5 succeeded
[    3.906669] [drm] radeon atom DIG backlight initialized
[    3.906672] radeon 0000:02:00.0: [drm] Radeon Display Connectors
[    3.906674] radeon 0000:02:00.0: [drm] Connector 0:
[    3.906676] radeon 0000:02:00.0: [drm]   DP-1
[    3.906677] radeon 0000:02:00.0: [drm]   HPD2
[    3.906679] radeon 0000:02:00.0: [drm]   DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c
[    3.906682] radeon 0000:02:00.0: [drm]   Encoders:
[    3.906683] radeon 0000:02:00.0: [drm]     DFP1: INTERNAL_UNIPHY
[    3.906685] radeon 0000:02:00.0: [drm] Connector 1:
[    3.906687] radeon 0000:02:00.0: [drm]   eDP-1
[    3.906688] radeon 0000:02:00.0: [drm]   HPD3
[    3.906689] radeon 0000:02:00.0: [drm]   DDC: 0x7e20 0x7e20 0x7e24 0x7e24 0x7e28 0x7e28 0x7e2c 0x7e2c
[    3.906692] radeon 0000:02:00.0: [drm]   Encoders:
[    3.906693] radeon 0000:02:00.0: [drm]     LCD1: INTERNAL_UNIPHY
[    3.906695] radeon 0000:02:00.0: [drm] Connector 2:
[    3.906697] radeon 0000:02:00.0: [drm]   VGA-1
[    3.906698] radeon 0000:02:00.0: [drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
[    3.906701] radeon 0000:02:00.0: [drm]   Encoders:
[    3.906702] radeon 0000:02:00.0: [drm]     CRT1: INTERNAL_KLDSCP_DAC1
[    3.915213] [drm] Initialized radeon 2.51.0 for 0000:02:00.0 on minor 0
[    3.988184] [drm] fb mappable at 0xC0347000
[    3.988187] [drm] vram apper at 0xC0000000
[    3.988188] [drm] size 14745600
[    3.988189] [drm] fb depth is 24
[    3.988190] [drm]    pitch is 10240
[    3.988263] fbcon: radeondrmfb (fb0) is primary device
[    4.026022] radeon 0000:02:00.0: [drm] fb0: radeondrmfb frame buffer device
[    5.366673] systemd[1]: Load Kernel Module drm skipped, unmet condition check ConditionKernelModuleLoaded=!drm
[    8.464118] snd_hda_intel 0000:02:00.1: bound 0000:02:00.0 (ops radeon_audio_component_bind_ops [radeon])

Happy to test further patches or gather more logs.

Regards,
Erik

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v5] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-08-20  7:01                         ` [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Erik Gregg
@ 2026-08-20 13:24                           ` Alex Deucher
  2026-08-20 18:59                             ` [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Gilles Risch
  0 siblings, 1 reply; 29+ messages in thread
From: Alex Deucher @ 2026-08-20 13:24 UTC (permalink / raw)
  To: Erik Gregg; +Cc: gilles.risch, alexander.deucher, amd-gfx, dri-devel

On Thu, Aug 20, 2026 at 8:50 AM Erik Gregg <hank@mowden.top> wrote:
>
> On Mon, 1 Jun 2026 23:19:32 +0200, Gilles Risch <gilles.risch@gmail.com> wrote:
> > 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.
> >
> > Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
>
> I tested this patch on top of 7.1.7-arch1 on a Late 2009 27" iMac11,1
> with the Mobility Radeon HD 4850. With nomodeset the machine boots with
> a working (efifb) console. On vanilla 7.1.7 without nomodeset the panel
> stays completely black (backlight off) and no radeon init is visible in
> dmesg over SSH.
>
> With the patch and without nomodeset, radeon initializes normally per
> dmesg, but at the fbcon modeset (~4s) the panel goes blank and then
> shows flashing horizontal lines that start at the top and sweep down at
> regular intervals. It never recovers. The logs below are from that case,
> gathered by logging in blind on the console and running commands blind.
>
> I tried radeon.dpm=0, radeon.audio=0, video=eDP-1:2560x1440@60 and
> radeon.modeset=1, with no change.

I wonder if different variants of the board are wired up differently.
@Gilles Risch, can you attach your dmesg output as well?  Maybe there
are different panels on different variants?

Alex

>
> Renderer: AMD RV770 (DRM 2.51.0 / 7.1.7-arch1-1-imac), Mesa 26.1.6
>
> [    3.028962] radeon 0000:02:00.0: fence driver on ring 3 uses gpu addr 0x0000000020000c0c
> [    3.029207] radeon 0000:02:00.0: fence driver on ring 5 uses gpu addr 0x0000000000056230
> [    3.030250] radeon 0000:02:00.0: radeon: using MSI.
> [    3.030275] [drm] radeon: irq initialized.
> [    3.076796] [drm] ring test on 0 succeeded in 1 usecs
> [    3.076803] [drm] ring test on 3 succeeded in 2 usecs
> [    3.252855] radeon 0000:02:00.0: [drm] ring test on 5 succeeded in 1 usecs
> [    3.252861] radeon 0000:02:00.0: [drm] UVD initialized successfully.
> [    3.253264] [drm] ib test on ring 0 succeeded in 0 usecs
> [    3.253283] [drm] ib test on ring 3 succeeded in 0 usecs
> [    3.906199] radeon 0000:02:00.0: [drm] ib test on ring 5 succeeded
> [    3.906669] [drm] radeon atom DIG backlight initialized
> [    3.906672] radeon 0000:02:00.0: [drm] Radeon Display Connectors
> [    3.906674] radeon 0000:02:00.0: [drm] Connector 0:
> [    3.906676] radeon 0000:02:00.0: [drm]   DP-1
> [    3.906677] radeon 0000:02:00.0: [drm]   HPD2
> [    3.906679] radeon 0000:02:00.0: [drm]   DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c
> [    3.906682] radeon 0000:02:00.0: [drm]   Encoders:
> [    3.906683] radeon 0000:02:00.0: [drm]     DFP1: INTERNAL_UNIPHY
> [    3.906685] radeon 0000:02:00.0: [drm] Connector 1:
> [    3.906687] radeon 0000:02:00.0: [drm]   eDP-1
> [    3.906688] radeon 0000:02:00.0: [drm]   HPD3
> [    3.906689] radeon 0000:02:00.0: [drm]   DDC: 0x7e20 0x7e20 0x7e24 0x7e24 0x7e28 0x7e28 0x7e2c 0x7e2c
> [    3.906692] radeon 0000:02:00.0: [drm]   Encoders:
> [    3.906693] radeon 0000:02:00.0: [drm]     LCD1: INTERNAL_UNIPHY
> [    3.906695] radeon 0000:02:00.0: [drm] Connector 2:
> [    3.906697] radeon 0000:02:00.0: [drm]   VGA-1
> [    3.906698] radeon 0000:02:00.0: [drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
> [    3.906701] radeon 0000:02:00.0: [drm]   Encoders:
> [    3.906702] radeon 0000:02:00.0: [drm]     CRT1: INTERNAL_KLDSCP_DAC1
> [    3.915213] [drm] Initialized radeon 2.51.0 for 0000:02:00.0 on minor 0
> [    3.988184] [drm] fb mappable at 0xC0347000
> [    3.988187] [drm] vram apper at 0xC0000000
> [    3.988188] [drm] size 14745600
> [    3.988189] [drm] fb depth is 24
> [    3.988190] [drm]    pitch is 10240
> [    3.988263] fbcon: radeondrmfb (fb0) is primary device
> [    4.026022] radeon 0000:02:00.0: [drm] fb0: radeondrmfb frame buffer device
> [    5.366673] systemd[1]: Load Kernel Module drm skipped, unmet condition check ConditionKernelModuleLoaded=!drm
> [    8.464118] snd_hda_intel 0000:02:00.1: bound 0000:02:00.0 (ops radeon_audio_component_bind_ops [radeon])
>
> Happy to test further patches or gather more logs.
>
> Regards,
> Erik

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1)
  2026-08-20 13:24                           ` [PATCH v5] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Alex Deucher
@ 2026-08-20 18:59                             ` Gilles Risch
  2026-08-20 19:34                               ` [PATCH v5] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Alex Deucher
  0 siblings, 1 reply; 29+ messages in thread
From: Gilles Risch @ 2026-08-20 18:59 UTC (permalink / raw)
  To: Alex Deucher, Erik Gregg; +Cc: alexander.deucher, amd-gfx, dri-devel

[-- Attachment #1: Type: text/plain, Size: 5223 bytes --]

Good afternoon,

no problem, please find attached my complete dmesg output after a fresh 
reboot. I don't see a bit difference, except that my card is connected 
to a different PCI bus.

I don’t pass any kernel parameters via GRUB and I don’t use a xorg.conf 
configuration file either. Have you connected an additional, external 
display?
Kind regards,
Gilles

On 20.08.26 15:24, Alex Deucher wrote:
> On Thu, Aug 20, 2026 at 8:50 AM Erik Gregg <hank@mowden.top> wrote:
>> On Mon, 1 Jun 2026 23:19:32 +0200, Gilles Risch <gilles.risch@gmail.com> wrote:
>>> 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.
>>>
>>> Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
>> I tested this patch on top of 7.1.7-arch1 on a Late 2009 27" iMac11,1
>> with the Mobility Radeon HD 4850. With nomodeset the machine boots with
>> a working (efifb) console. On vanilla 7.1.7 without nomodeset the panel
>> stays completely black (backlight off) and no radeon init is visible in
>> dmesg over SSH.
>>
>> With the patch and without nomodeset, radeon initializes normally per
>> dmesg, but at the fbcon modeset (~4s) the panel goes blank and then
>> shows flashing horizontal lines that start at the top and sweep down at
>> regular intervals. It never recovers. The logs below are from that case,
>> gathered by logging in blind on the console and running commands blind.
>>
>> I tried radeon.dpm=0, radeon.audio=0, video=eDP-1:2560x1440@60 and
>> radeon.modeset=1, with no change.
> I wonder if different variants of the board are wired up differently.
> @Gilles Risch, can you attach your dmesg output as well?  Maybe there
> are different panels on different variants?
>
> Alex
>
>> Renderer: AMD RV770 (DRM 2.51.0 / 7.1.7-arch1-1-imac), Mesa 26.1.6
>>
>> [    3.028962] radeon 0000:02:00.0: fence driver on ring 3 uses gpu addr 0x0000000020000c0c
>> [    3.029207] radeon 0000:02:00.0: fence driver on ring 5 uses gpu addr 0x0000000000056230
>> [    3.030250] radeon 0000:02:00.0: radeon: using MSI.
>> [    3.030275] [drm] radeon: irq initialized.
>> [    3.076796] [drm] ring test on 0 succeeded in 1 usecs
>> [    3.076803] [drm] ring test on 3 succeeded in 2 usecs
>> [    3.252855] radeon 0000:02:00.0: [drm] ring test on 5 succeeded in 1 usecs
>> [    3.252861] radeon 0000:02:00.0: [drm] UVD initialized successfully.
>> [    3.253264] [drm] ib test on ring 0 succeeded in 0 usecs
>> [    3.253283] [drm] ib test on ring 3 succeeded in 0 usecs
>> [    3.906199] radeon 0000:02:00.0: [drm] ib test on ring 5 succeeded
>> [    3.906669] [drm] radeon atom DIG backlight initialized
>> [    3.906672] radeon 0000:02:00.0: [drm] Radeon Display Connectors
>> [    3.906674] radeon 0000:02:00.0: [drm] Connector 0:
>> [    3.906676] radeon 0000:02:00.0: [drm]   DP-1
>> [    3.906677] radeon 0000:02:00.0: [drm]   HPD2
>> [    3.906679] radeon 0000:02:00.0: [drm]   DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c
>> [    3.906682] radeon 0000:02:00.0: [drm]   Encoders:
>> [    3.906683] radeon 0000:02:00.0: [drm]     DFP1: INTERNAL_UNIPHY
>> [    3.906685] radeon 0000:02:00.0: [drm] Connector 1:
>> [    3.906687] radeon 0000:02:00.0: [drm]   eDP-1
>> [    3.906688] radeon 0000:02:00.0: [drm]   HPD3
>> [    3.906689] radeon 0000:02:00.0: [drm]   DDC: 0x7e20 0x7e20 0x7e24 0x7e24 0x7e28 0x7e28 0x7e2c 0x7e2c
>> [    3.906692] radeon 0000:02:00.0: [drm]   Encoders:
>> [    3.906693] radeon 0000:02:00.0: [drm]     LCD1: INTERNAL_UNIPHY
>> [    3.906695] radeon 0000:02:00.0: [drm] Connector 2:
>> [    3.906697] radeon 0000:02:00.0: [drm]   VGA-1
>> [    3.906698] radeon 0000:02:00.0: [drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
>> [    3.906701] radeon 0000:02:00.0: [drm]   Encoders:
>> [    3.906702] radeon 0000:02:00.0: [drm]     CRT1: INTERNAL_KLDSCP_DAC1
>> [    3.915213] [drm] Initialized radeon 2.51.0 for 0000:02:00.0 on minor 0
>> [    3.988184] [drm] fb mappable at 0xC0347000
>> [    3.988187] [drm] vram apper at 0xC0000000
>> [    3.988188] [drm] size 14745600
>> [    3.988189] [drm] fb depth is 24
>> [    3.988190] [drm]    pitch is 10240
>> [    3.988263] fbcon: radeondrmfb (fb0) is primary device
>> [    4.026022] radeon 0000:02:00.0: [drm] fb0: radeondrmfb frame buffer device
>> [    5.366673] systemd[1]: Load Kernel Module drm skipped, unmet condition check ConditionKernelModuleLoaded=!drm
>> [    8.464118] snd_hda_intel 0000:02:00.1: bound 0000:02:00.0 (ops radeon_audio_component_bind_ops [radeon])
>>
>> Happy to test further patches or gather more logs.
>>
>> Regards,
>> Erik


[-- Attachment #2: dmesg_iMac11.1.txt --]
[-- Type: text/plain, Size: 86074 bytes --]

[    0.000000] Linux version 7.1.0-imac11.1 (roodemol@skylab) (gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44) #1 SMP PREEMPT_DYNAMIC Mon Aug 17 00:44:16 CEST 2026
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-7.1.0-imac11.1 root=UUID=7b393e66-b42d-48a2-8ded-dcb907b828f1 ro init_on_alloc=0
[    0.000000] Disabled fast string operations
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008dfff]  System RAM
[    0.000000] BIOS-e820: [mem 0x000000000008e000-0x000000000008efff]  device reserved
[    0.000000] BIOS-e820: [mem 0x000000000008f000-0x000000000008ffff]  ACPI NVS
[    0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009ffff]  System RAM
[    0.000000] BIOS-e820: [mem 0x00000000000a0000-0x00000000000bffff]  device reserved
[    0.000000] BIOS-e820: [gap 0x00000000000c0000-0x00000000000fffff]
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000bf65cfff]  System RAM
[    0.000000] BIOS-e820: [mem 0x00000000bf65d000-0x00000000bf6eefff]  ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bf6ef000-0x00000000bf6f4fff]  System RAM
[    0.000000] BIOS-e820: [mem 0x00000000bf6f5000-0x00000000bf70efff]  ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000bf70f000-0x00000000bf733fff]  System RAM
[    0.000000] BIOS-e820: [mem 0x00000000bf734000-0x00000000bf75efff]  device reserved
[    0.000000] BIOS-e820: [mem 0x00000000bf75f000-0x00000000bf783fff]  System RAM
[    0.000000] BIOS-e820: [mem 0x00000000bf784000-0x00000000bf7aefff]  device reserved
[    0.000000] BIOS-e820: [mem 0x00000000bf7af000-0x00000000bf7f5fff]  System RAM
[    0.000000] BIOS-e820: [mem 0x00000000bf7f6000-0x00000000bfffffff]  device reserved
[    0.000000] BIOS-e820: [gap 0x00000000c0000000-0x00000000e00f7fff]
[    0.000000] BIOS-e820: [mem 0x00000000e00f8000-0x00000000e00f8fff]  device reserved
[    0.000000] BIOS-e820: [gap 0x00000000e00f9000-0x00000000fed1bfff]
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff]  device reserved
[    0.000000] BIOS-e820: [gap 0x00000000fed20000-0x00000000ffec3fff]
[    0.000000] BIOS-e820: [mem 0x00000000ffec4000-0x00000000ffee7fff]  device reserved
[    0.000000] BIOS-e820: [gap 0x00000000ffee8000-0x00000000ffffffff]
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000043fffffff]  System RAM
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] APIC: Static calls initialized
[    0.000000] efi: EFI v1.1 by Apple
[    0.000000] efi: ACPI=0xbf70e000 ACPI 2.0=0xbf70e014 SMBIOS=0xbf65e000 MOKvar=0xbf734000 INITRD=0xbde1f798 
[    0.000000] efi: Not removing mem180: MMIO range=[0xe00f8000-0xe00f8fff] (4KB) from e820 map
[    0.000000] efi: Not removing mem181: MMIO range=[0xfed1c000-0xfed1ffff] (16KB) from e820 map
[    0.000000] efi: Not removing mem182: MMIO range=[0xffec4000-0xffee7fff] (144KB) from e820 map
[    0.000000] DMI: SMBIOS 2.4 present.
[    0.000000] DMI: Apple Inc. iMac11,1/Mac-F2268DAE, BIOS 63.0.0.0.0 06/14/2019
[    0.000000] DMI: Memory slots populated: 4/4
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 2660.016 MHz processor
[    0.000583] e820: update [mem 0x00000000-0x00000fff] System RAM ==> device reserved
[    0.000587] e820: remove [mem 0x000a0000-0x000fffff] System RAM
[    0.000600] last_pfn = 0x440000 max_arch_pfn = 0x400000000
[    0.000605] MTRR map: 5 entries (4 fixed + 1 variable; max 20), built from 8 variable MTRRs
[    0.000607] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WP  UC- WT  
[    0.001322] last_pfn = 0xbf7f6 max_arch_pfn = 0x400000000
[    0.034440] Secure boot disabled
[    0.034441] RAMDISK: [mem 0xafa6e000-0xb8910fff]
[    0.034963] ACPI: Early table checksum verification disabled
[    0.034968] ACPI: RSDP 0x00000000BF70E014 000024 (v02 APPLE )
[    0.034974] ACPI: XSDT 0x00000000BF70E1C0 000084 (v01 APPLE  Apple00  0000F000      01000013)
[    0.034980] ACPI: FACP 0x00000000BF70B000 0000F4 (v04 APPLE  Apple00  0000F000 Loki 0000005F)
[    0.034987] ACPI: DSDT 0x00000000BF6FF000 0050F3 (v01 APPLE  iMac     00110001 INTL 20061109)
[    0.034992] ACPI: FACS 0x00000000BF664000 000040
[    0.034996] ACPI: FACS 0x00000000BF664000 000040
[    0.035000] ACPI: ASF! 0x00000000BF70D000 0000A5 (v32 APPLE  Apple00  00000001 Loki 0000005F)
[    0.035005] ACPI: HPET 0x00000000BF70A000 000038 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.035009] ACPI: APIC 0x00000000BF709000 0000BC (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.035014] ACPI: APIC 0x00000000BF708000 0000BC (v02 APPLE  Apple00  00000001 Loki 0000005F)
[    0.035018] ACPI: MCFG 0x00000000BF707000 00003C (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.035022] ACPI: SBST 0x00000000BF706000 000030 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.035027] ACPI: ECDT 0x00000000BF705000 000053 (v01 APPLE  Apple00  00000001 Loki 0000005F)
[    0.035031] ACPI: SSDT 0x00000000BF6FC000 0001DA (v01 APPLE  SataAhci 00001000 INTL 20061109)
[    0.035036] ACPI: SSDT 0x00000000BF6FB000 0000B1 (v01 APPLE  SmcDppt  00001000 INTL 20061109)
[    0.035040] ACPI: SSDT 0x00000000BF6FA000 000774 (v01 APPLE  UsbNoRmh 00001000 INTL 20061109)
[    0.035045] ACPI: SSDT 0x00000000BF6F8000 000A10 (v01 PmRef  CpuPm    00003000 INTL 20061109)
[    0.035048] ACPI: Reserving FACP table memory at [mem 0xbf70b000-0xbf70b0f3]
[    0.035050] ACPI: Reserving DSDT table memory at [mem 0xbf6ff000-0xbf7040f2]
[    0.035051] ACPI: Reserving FACS table memory at [mem 0xbf664000-0xbf66403f]
[    0.035053] ACPI: Reserving FACS table memory at [mem 0xbf664000-0xbf66403f]
[    0.035054] ACPI: Reserving ASF! table memory at [mem 0xbf70d000-0xbf70d0a4]
[    0.035055] ACPI: Reserving HPET table memory at [mem 0xbf70a000-0xbf70a037]
[    0.035056] ACPI: Reserving APIC table memory at [mem 0xbf709000-0xbf7090bb]
[    0.035057] ACPI: Reserving APIC table memory at [mem 0xbf708000-0xbf7080bb]
[    0.035059] ACPI: Reserving MCFG table memory at [mem 0xbf707000-0xbf70703b]
[    0.035060] ACPI: Reserving SBST table memory at [mem 0xbf706000-0xbf70602f]
[    0.035061] ACPI: Reserving ECDT table memory at [mem 0xbf705000-0xbf705052]
[    0.035062] ACPI: Reserving SSDT table memory at [mem 0xbf6fc000-0xbf6fc1d9]
[    0.035063] ACPI: Reserving SSDT table memory at [mem 0xbf6fb000-0xbf6fb0b0]
[    0.035064] ACPI: Reserving SSDT table memory at [mem 0xbf6fa000-0xbf6fa773]
[    0.035066] ACPI: Reserving SSDT table memory at [mem 0xbf6f8000-0xbf6f8a0f]
[    0.035070] ACPI: BIOS bug: multiple APIC/MADT found, using 0
[    0.035071] ACPI: If "acpi_apic_instance=2" works better, notify linux-acpi@vger.kernel.org
[    0.035077] ACPI: DMI detected to setup _OSI("Darwin"): Apple hardware
[    0.035200] No NUMA configuration found
[    0.035201] Faking a node at [mem 0x0000000000000000-0x000000043fffffff]
[    0.035213] NODE_DATA(0) allocated [mem 0x43ffc9200-0x43fff3fff]
[    0.035956] ACPI: PM-Timer IO Port: 0x408
[    0.035966] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.035968] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    0.035970] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    0.035971] ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
[    0.035972] ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
[    0.035973] ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
[    0.035974] ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
[    0.035975] ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
[    0.035986] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[    0.035989] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.035992] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.035998] ACPI: Using ACPI (MADT) for SMP configuration information
[    0.035999] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.036008] CPU topo: Max. logical packages:   1
[    0.036009] CPU topo: Max. logical nodes:      1
[    0.036010] CPU topo: Num. nodes per package:  1
[    0.036015] CPU topo: Max. logical dies:       1
[    0.036015] CPU topo: Max. dies per package:   1
[    0.036025] CPU topo: Max. threads per core:   1
[    0.036026] CPU topo: Num. cores per package:     4
[    0.036027] CPU topo: Num. threads per package:   4
[    0.036027] CPU topo: Allowing 4 present CPUs plus 0 hotplug CPUs
[    0.036051] PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.036054] PM: hibernation: Registered nosave memory: [mem 0x0008e000-0x0008ffff]
[    0.036056] PM: hibernation: Registered nosave memory: [mem 0x000a0000-0x000fffff]
[    0.036058] PM: hibernation: Registered nosave memory: [mem 0xbf65d000-0xbf6eefff]
[    0.036061] PM: hibernation: Registered nosave memory: [mem 0xbf6f5000-0xbf70efff]
[    0.036063] PM: hibernation: Registered nosave memory: [mem 0xbf734000-0xbf75efff]
[    0.036065] PM: hibernation: Registered nosave memory: [mem 0xbf784000-0xbf7aefff]
[    0.036068] PM: hibernation: Registered nosave memory: [mem 0xbf7f6000-0xffffffff]
[    0.036070] [gap 0xc0000000-0xe00f7fff] available for PCI devices
[    0.036072] Booting paravirtualized kernel on bare hardware
[    0.036075] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns
[    0.045325] Zone ranges:
[    0.045326]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.045328]   DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
[    0.045330]   Normal   [mem 0x0000000100000000-0x000000043fffffff]
[    0.045332]   Device   empty
[    0.045333] Movable zone start for each node
[    0.045336] Early memory node ranges
[    0.045337]   node   0: [mem 0x0000000000001000-0x000000000008dfff]
[    0.045338]   node   0: [mem 0x0000000000090000-0x000000000009ffff]
[    0.045340]   node   0: [mem 0x0000000000100000-0x00000000bf65cfff]
[    0.045342]   node   0: [mem 0x00000000bf6ef000-0x00000000bf6f4fff]
[    0.045343]   node   0: [mem 0x00000000bf70f000-0x00000000bf733fff]
[    0.045344]   node   0: [mem 0x00000000bf75f000-0x00000000bf783fff]
[    0.045345]   node   0: [mem 0x00000000bf7af000-0x00000000bf7f5fff]
[    0.045347]   node   0: [mem 0x0000000100000000-0x000000043fffffff]
[    0.045351] Initmem setup node 0 [mem 0x0000000000001000-0x000000043fffffff]
[    0.045360] On node 0, zone DMA: 1 pages in unavailable ranges
[    0.045361] On node 0, zone DMA: 2 pages in unavailable ranges
[    0.045392] On node 0, zone DMA: 96 pages in unavailable ranges
[    0.053383] On node 0, zone DMA32: 146 pages in unavailable ranges
[    0.053389] On node 0, zone DMA32: 26 pages in unavailable ranges
[    0.053391] On node 0, zone DMA32: 43 pages in unavailable ranges
[    0.053393] On node 0, zone DMA32: 43 pages in unavailable ranges
[    0.053811] On node 0, zone Normal: 2058 pages in unavailable ranges
[    0.053828] setup_percpu: NR_CPUS:8192 nr_cpumask_bits:4 nr_cpu_ids:4 nr_node_ids:1
[    0.054527] percpu: Embedded 62 pages/cpu s217088 r8192 d28672 u524288
[    0.054536] pcpu-alloc: s217088 r8192 d28672 u524288 alloc=1*2097152
[    0.054539] pcpu-alloc: [0] 0 1 2 3 
[    0.054568] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-7.1.0-imac11.1 root=UUID=7b393e66-b42d-48a2-8ded-dcb907b828f1 ro init_on_alloc=0
[    0.054629] printk: log buffer data + meta data: 131072 + 557056 = 688128 bytes
[    0.057316] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes, linear)
[    0.058750] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    0.058869] software IO TLB: area num 4.
[    0.081078] Fallback order for Node 0: 0 
[    0.081086] Built 1 zonelists, mobility grouping on.  Total pages: 4191889
[    0.081088] Policy zone: Normal
[    0.081106] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.104806] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.104952] Kernel/User page tables isolation: enabled
[    0.113982] ftrace: allocating 47541 entries in 188 pages
[    0.113986] ftrace: allocated 188 pages with 5 groups
[    0.114580] Dynamic Preempt: lazy
[    0.114720] rcu: Preemptible hierarchical RCU implementation.
[    0.114721] rcu: 	RCU restricting CPUs from NR_CPUS=8192 to nr_cpu_ids=4.
[    0.114723] 	Trampoline variant of Tasks RCU enabled.
[    0.114724] 	Rude variant of Tasks RCU enabled.
[    0.114725] 	Tracing variant of Tasks RCU enabled.
[    0.114726] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.114726] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.114741] RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
[    0.114744] RCU Tasks Rude: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
[    0.123108] NR_IRQS: 524544, nr_irqs: 456, preallocated irqs: 16
[    0.123332] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.123463] Console: colour dummy device 80x25
[    0.123467] printk: legacy console [tty0] enabled
[    0.124225] ACPI: Core revision 20251212
[    0.124412] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 133484882848 ns
[    0.124431] APIC: Switch to symmetric I/O mode setup
[    0.124829] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.144431] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x2657b3137e1, max_idle_ns: 440795267210 ns
[    0.144442] Calibrating delay loop (skipped), value calculated using timer frequency.. 5320.03 BogoMIPS (lpj=10640064)
[    0.144462] Disabled fast string operations
[    0.144477] CPU0: Thermal monitoring enabled (TM1)
[    0.144500] Last level iTLB entries: 4KB 512, 2MB 7, 4MB 7
[    0.144505] Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32, 1GB 0
[    0.144516] process: using mwait in idle threads
[    0.144521] mitigations: Enabled attack vectors: user_kernel, user_user, guest_host, guest_guest, SMT mitigations: auto
[    0.144532] Speculative Store Bypass: Mitigation: Speculative Store Bypass disabled via prctl
[    0.144538] Spectre V2 : Mitigation: Retpolines
[    0.144542] MDS: Vulnerable: Clear CPU buffers attempted, no microcode
[    0.144546] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization
[    0.144552] Spectre V2 : Spectre v2 / SpectreRSB: Filling RSB on context switch and VMEXIT
[    0.144557] Spectre V2 : Enabling Restricted Speculation for firmware calls
[    0.144562] Spectre V2 : mitigation: Enabling conditional Indirect Branch Prediction Barrier
[    0.144570] x86/fpu: x87 FPU will use FXSAVE
[    0.193431] pid_max: default: 32768 minimum: 301
[    0.194158] landlock: Up and running.
[    0.194162] Yama: becoming mindful.
[    0.194254] AppArmor: AppArmor initialized
[    0.194278] TOMOYO Linux initialized
[    0.194458] LSM support for eBPF active
[    0.194854] Mount-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.194896] Mountpoint-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.195099] VFS: Finished mounting rootfs on nullfs
[    0.304145] smpboot: CPU0: Intel(R) Core(TM) i5 CPU         750  @ 2.67GHz (family: 0x6, model: 0x1e, stepping: 0x5)
[    0.304439] Performance Events: PEBS fmt1+, Nehalem events, 16-deep LBR, Intel PMU driver.
[    0.304439] core: CPU erratum AAJ80 worked around
[    0.304439] core: CPUID marked event: 'bus cycles' unavailable
[    0.304439] ... version:                   3
[    0.304439] ... bit width:                 48
[    0.304439] ... generic counters:          4
[    0.304439] ... generic bitmap:            000000000000000f
[    0.304439] ... fixed-purpose counters:    3
[    0.304439] ... fixed-purpose bitmap:      0000000000000007
[    0.304439] ... value mask:                0000ffffffffffff
[    0.304439] ... max period:                000000007fffffff
[    0.304439] ... global_ctrl mask:          000000070000000f
[    0.304439] signal: max sigframe size: 1440
[    0.304439] Estimated ratio of average max frequency by base frequency (times 1024): 1075
[    0.304439] rcu: Hierarchical SRCU implementation.
[    0.304439] rcu: 	Max phase no-delay instances is 1000.
[    0.304439] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[    0.304439] NMI watchdog: Enabled. Permanently consumes one hw-PMU counter.
[    0.304439] smp: Bringing up secondary CPUs ...
[    0.304439] smpboot: x86: Booting SMP configuration:
[    0.304439] .... node  #0, CPUs:      #1 #2 #3
[    0.005071] Disabled fast string operations
[    0.005071] Disabled fast string operations
[    0.005071] Disabled fast string operations
[    0.308499] smp: Brought up 1 node, 4 CPUs
[    0.308499] smpboot: Total of 4 processors activated (21280.12 BogoMIPS)
[    0.336453] node 0 deferred pages initialised in 28ms
[    0.338262] Memory: 16164160K/16767556K available (16406K kernel code, 2595K rwdata, 12548K rodata, 4372K init, 4280K bss, 596512K reserved, 0K cma-reserved)
[    0.338262] devtmpfs: initialized
[    0.338262] x86/mm: Memory block size: 128MB
[    0.341866] ACPI: PM: Registering ACPI NVS region [mem 0x0008f000-0x0008ffff] (4096 bytes)
[    0.341866] ACPI: PM: Registering ACPI NVS region [mem 0xbf65d000-0xbf6eefff] (598016 bytes)
[    0.341866] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.341866] posixtimers hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.341866] futex hash table entries: 1024 (65536 bytes on 1 NUMA nodes, total 64 KiB, linear).
[    0.342042] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.342203] DMA: preallocated 2048 KiB GFP_KERNEL pool for atomic allocations
[    0.342218] DMA: preallocated 2048 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.342225] DMA: preallocated 2048 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.342236] audit: initializing netlink subsys (disabled)
[    0.342247] audit: type=2000 audit(1787249513.000:1): state=initialized audit_enabled=0 res=1
[    0.342247] thermal_sys: Registered thermal governor 'fair_share'
[    0.342247] thermal_sys: Registered thermal governor 'bang_bang'
[    0.342247] thermal_sys: Registered thermal governor 'step_wise'
[    0.342247] thermal_sys: Registered thermal governor 'user_space'
[    0.342247] thermal_sys: Registered thermal governor 'power_allocator'
[    0.342247] cpuidle: using governor ladder
[    0.342247] cpuidle: using governor menu
[    0.342247] Freeing SMP alternatives memory: 44K
[    0.347570] efi: Freeing EFI boot services memory: 46084K
[    0.347580] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.347914] PCI: ECAM [mem 0xe0000000-0xefffffff] (base 0xe0000000) for domain 0000 [bus 00-ff]
[    0.347934] PCI: Using configuration type 1 for base access
[    0.348065] kprobes: kprobe jump-optimization is enabled. All kprobes are optimized if possible.
[    0.350225] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.350225] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[    0.352707] ACPI: Disabled all _OSI OS vendors
[    0.352713] ACPI: Added _OSI(Module Device)
[    0.352716] ACPI: Added _OSI(Processor Device)
[    0.352719] ACPI: Added _OSI(Processor Aggregator Device)
[    0.352723] ACPI: Added _OSI(Darwin)
[    0.355685] ACPI: 5 ACPI AML tables successfully acquired and loaded
[    0.356020] ACPI: EC: EC started
[    0.356024] ACPI: EC: interrupt blocked
[    0.356491] ACPI: EC: EC_CMD/EC_SC=0x66, EC_DATA=0x62
[    0.356495] ACPI: EC: Boot ECDT EC used to handle transactions
[    0.356599] ACPI: BIOS _OSI(Darwin) query honored via DMI
[    0.356704] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    0.360454] ACPI: \_SB_: platform _OSC: OS support mask [002e7eff]
[    0.360670] ACPI: Dynamic OEM Table Load:
[    0.360681] ACPI: SSDT 0xFFFF8E8B802AE800 00047B (v01 PmRef  Cpu0Ist  00003000 INTL 20061109)
[    0.361107] ACPI: Dynamic OEM Table Load:
[    0.361116] ACPI: SSDT 0xFFFF8E8B81038000 0006E5 (v01 PmRef  Cpu0Cst  00003001 INTL 20061109)
[    0.361605] ACPI: Dynamic OEM Table Load:
[    0.361614] ACPI: SSDT 0xFFFF8E8B80BE0000 0003A4 (v01 PmRef  ApIst    00003000 INTL 20061109)
[    0.364636] ACPI: Dynamic OEM Table Load:
[    0.364644] ACPI: SSDT 0xFFFF8E8B80BF1C00 000119 (v01 PmRef  ApCst    00003000 INTL 20061109)
[    0.365206] ACPI: Interpreter enabled
[    0.365226] ACPI: PM: (supports S0 S3 S4 S5)
[    0.365230] ACPI: Using IOAPIC for interrupt routing
[    0.365264] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.365270] PCI: Using E820 reservations for host bridge windows
[    0.365395] ACPI: Enabled 6 GPEs in block 00 to 3F
[    0.371133] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe])
[    0.371144] acpi PNP0A08:00: _OSC: OS assumes control of [PCIeHotplug SHPCHotplug AER PCIeCapability LTR DPC]
[    0.371515] PCI host bridge to bus 0000:00
[    0.371523] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7 window]
[    0.371528] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff window]
[    0.371533] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000fffff window]
[    0.371538] pci_bus 0000:00: root bus resource [mem 0xc0000000-0xfeafffff window]
[    0.371543] pci_bus 0000:00: root bus resource [bus 00-fe]
[    0.371563] pci 0000:00:00.0: [8086:d131] type 00 class 0x060000 conventional PCI endpoint
[    0.371702] pci 0000:00:03.0: [8086:d138] type 01 class 0x060400 PCIe Root Port
[    0.371723] pci 0000:00:03.0: PCI bridge to [bus 01]
[    0.371729] pci 0000:00:03.0:   bridge window [io  0x2000-0x2fff]
[    0.371734] pci 0000:00:03.0:   bridge window [mem 0xd0600000-0xd06fffff]
[    0.371743] pci 0000:00:03.0:   bridge window [mem 0xc0000000-0xcfffffff 64bit pref]
[    0.371752] pci 0000:00:03.0: enabling Extended Tags
[    0.371793] pci 0000:00:03.0: PME# supported from D0 D3hot D3cold
[    0.371937] pci 0000:00:08.0: [8086:d155] type 00 class 0x088000 PCIe Root Complex Integrated Endpoint
[    0.372074] pci 0000:00:08.1: [8086:d156] type 00 class 0x088000 PCIe Root Complex Integrated Endpoint
[    0.372208] pci 0000:00:08.2: [8086:d157] type 00 class 0x088000 PCIe Root Complex Integrated Endpoint
[    0.372305] pci 0000:00:08.3: [8086:d158] type 00 class 0x088000 conventional PCI endpoint
[    0.372395] pci 0000:00:10.0: [8086:d150] type 00 class 0x088000 conventional PCI endpoint
[    0.372481] pci 0000:00:10.1: [8086:d151] type 00 class 0x088000 conventional PCI endpoint
[    0.372574] pci 0000:00:1a.0: [8086:3b3b] type 00 class 0x0c0300 conventional PCI endpoint
[    0.372618] pci 0000:00:1a.0: BAR 4 [io  0x3060-0x307f]
[    0.372737] pci 0000:00:1a.7: [8086:3b3c] type 00 class 0x0c0320 conventional PCI endpoint
[    0.372782] pci 0000:00:1a.7: BAR 0 [mem 0xd0705c00-0xd0705fff]
[    0.372829] pci 0000:00:1a.7: PME# supported from D0 D3hot D3cold
[    0.373090] pci 0000:00:1b.0: [8086:3b56] type 00 class 0x040300 PCIe Root Complex Integrated Endpoint
[    0.373128] pci 0000:00:1b.0: BAR 0 [mem 0xd0700000-0xd0703fff 64bit]
[    0.373182] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.373308] pci 0000:00:1c.0: [8086:3b42] type 01 class 0x060400 PCIe Root Port
[    0.373334] pci 0000:00:1c.0: PCI bridge to [bus 02]
[    0.373342] pci 0000:00:1c.0:   bridge window [mem 0xd0500000-0xd05fffff]
[    0.373403] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.373518] pci 0000:00:1c.1: [8086:3b44] type 01 class 0x060400 PCIe Root Port
[    0.373544] pci 0000:00:1c.1: PCI bridge to [bus 03]
[    0.373552] pci 0000:00:1c.1:   bridge window [mem 0xd0400000-0xd04fffff]
[    0.373612] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[    0.373726] pci 0000:00:1c.2: [8086:3b46] type 01 class 0x060400 PCIe Root Port
[    0.373753] pci 0000:00:1c.2: PCI bridge to [bus 04-05]
[    0.373761] pci 0000:00:1c.2:   bridge window [mem 0xd0300000-0xd03fffff]
[    0.373821] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[    0.373943] pci 0000:00:1c.3: [8086:3b48] type 01 class 0x060400 PCIe Root Port
[    0.373968] pci 0000:00:1c.3: PCI bridge to [bus 06]
[    0.373976] pci 0000:00:1c.3:   bridge window [mem 0xd0200000-0xd02fffff]
[    0.374036] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
[    0.374147] pci 0000:00:1c.4: [8086:3b4a] type 01 class 0x060400 PCIe Root Port
[    0.374172] pci 0000:00:1c.4: PCI bridge to [bus 07]
[    0.374180] pci 0000:00:1c.4:   bridge window [mem 0xd0100000-0xd01fffff]
[    0.374240] pci 0000:00:1c.4: PME# supported from D0 D3hot D3cold
[    0.374326] pci 0000:00:1d.0: [8086:3b36] type 00 class 0x0c0300 conventional PCI endpoint
[    0.374370] pci 0000:00:1d.0: BAR 4 [io  0x3040-0x305f]
[    0.374496] pci 0000:00:1d.7: [8086:3b34] type 00 class 0x0c0320 conventional PCI endpoint
[    0.374541] pci 0000:00:1d.7: BAR 0 [mem 0xd0705800-0xd0705bff]
[    0.374588] pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
[    0.374844] pci 0000:00:1e.0: [8086:244e] type 01 class 0x060401 conventional PCI bridge
[    0.374870] pci 0000:00:1e.0: PCI bridge to [bus 08] (subtractive decode)
[    0.374879] pci 0000:00:1e.0:   bridge window [mem 0xd0000000-0xd00fffff]
[    0.374980] pci 0000:00:1f.0: [8086:3b02] type 00 class 0x060100 conventional PCI endpoint
[    0.375169] pci 0000:00:1f.2: [8086:3b22] type 00 class 0x010601 conventional PCI endpoint
[    0.375205] pci 0000:00:1f.2: BAR 0 [io  0x3088-0x308f]
[    0.375210] pci 0000:00:1f.2: BAR 1 [io  0x3094-0x3097]
[    0.375214] pci 0000:00:1f.2: BAR 2 [io  0x3080-0x3087]
[    0.375218] pci 0000:00:1f.2: BAR 3 [io  0x3090-0x3093]
[    0.375222] pci 0000:00:1f.2: BAR 4 [io  0x3020-0x303f]
[    0.375227] pci 0000:00:1f.2: BAR 5 [mem 0xd0705000-0xd07057ff]
[    0.375264] pci 0000:00:1f.2: PME# supported from D3hot
[    0.375356] pci 0000:00:1f.3: [8086:3b30] type 00 class 0x0c0500 conventional PCI endpoint
[    0.375393] pci 0000:00:1f.3: BAR 0 [mem 0xd0706000-0xd07060ff 64bit]
[    0.375400] pci 0000:00:1f.3: BAR 4 [io  0xefa0-0xefbf]
[    0.375498] pci 0000:00:1f.6: [8086:3b32] type 00 class 0x118000 conventional PCI endpoint
[    0.375542] pci 0000:00:1f.6: BAR 0 [mem 0xd0704000-0xd0704fff 64bit]
[    0.375686] pci 0000:01:00.0: [1002:944a] type 00 class 0x030000 PCIe Legacy Endpoint
[    0.375717] pci 0000:01:00.0: BAR 0 [mem 0xc0000000-0xcfffffff 64bit pref]
[    0.375723] pci 0000:01:00.0: BAR 2 [mem 0xd0620000-0xd062ffff 64bit]
[    0.375728] pci 0000:01:00.0: BAR 4 [io  0x2000-0x20ff]
[    0.375733] pci 0000:01:00.0: ROM [mem 0xd0600000-0xd061ffff pref]
[    0.375741] pci 0000:01:00.0: enabling Extended Tags
[    0.375777] pci 0000:01:00.0: supports D1 D2
[    0.375923] pci 0000:01:00.1: [1002:aa30] type 00 class 0x040300 PCIe Legacy Endpoint
[    0.375953] pci 0000:01:00.1: BAR 0 [mem 0xd0630000-0xd0633fff 64bit]
[    0.375965] pci 0000:01:00.1: enabling Extended Tags
[    0.376001] pci 0000:01:00.1: supports D1 D2
[    0.376131] pci 0000:00:03.0: PCI bridge to [bus 01]
[    0.376227] pci 0000:02:00.0: [14e4:1684] type 00 class 0x020000 PCIe Endpoint
[    0.376290] pci 0000:02:00.0: BAR 0 [mem 0xd0500000-0xd050ffff 64bit]
[    0.376310] pci 0000:02:00.0: enabling Extended Tags
[    0.376420] pci 0000:02:00.0: PME# supported from D3hot D3cold
[    0.376621] pci 0000:00:1c.0: PCI bridge to [bus 02]
[    0.376712] pci 0000:03:00.0: [168c:002a] type 00 class 0x028000 PCIe Legacy Endpoint
[    0.376770] pci 0000:03:00.0: BAR 0 [mem 0xd0400000-0xd040ffff 64bit]
[    0.376870] pci 0000:03:00.0: supports D1
[    0.376874] pci 0000:03:00.0: PME# supported from D0 D1 D3hot D3cold
[    0.377047] pci 0000:03:00.0: disabling ASPM on pre-1.1 PCIe device.  You can enable it with 'pcie_aspm=force'
[    0.377069] pci 0000:00:1c.1: PCI bridge to [bus 03]
[    0.377154] pci 0000:04:00.0: [104c:823e] type 01 class 0x060400 PCIe to PCI/PCI-X bridge
[    0.377199] pci 0000:04:00.0: PCI bridge to [bus 05]
[    0.377214] pci 0000:04:00.0:   bridge window [mem 0xd0300000-0xd03fffff]
[    0.377325] pci 0000:04:00.0: supports D1 D2
[    0.377466] pci 0000:00:1c.2: PCI bridge to [bus 04-05]
[    0.377526] pci_bus 0000:05: extended config space not accessible
[    0.377571] pci 0000:05:00.0: [104c:823f] type 00 class 0x0c0010 conventional PCI endpoint
[    0.377645] pci 0000:05:00.0: BAR 0 [mem 0xd0304000-0xd03047ff]
[    0.377651] pci 0000:05:00.0: BAR 1 [mem 0xd0300000-0xd0303fff]
[    0.377709] pci 0000:05:00.0: supports D1 D2
[    0.377713] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot
[    0.377995] pci 0000:04:00.0: PCI bridge to [bus 05]
[    0.378085] pci 0000:00:1c.3: PCI bridge to [bus 06]
[    0.378140] pci 0000:00:1c.4: PCI bridge to [bus 07]
[    0.378167] pci_bus 0000:08: extended config space not accessible
[    0.378217] pci 0000:00:1e.0: PCI bridge to [bus 08] (subtractive decode)
[    0.378229] pci 0000:00:1e.0:   bridge window [io  0x0000-0x0cf7 window] (subtractive decode)
[    0.378234] pci 0000:00:1e.0:   bridge window [io  0x0d00-0xffff window] (subtractive decode)
[    0.378239] pci 0000:00:1e.0:   bridge window [mem 0x000a0000-0x000fffff window] (subtractive decode)
[    0.378244] pci 0000:00:1e.0:   bridge window [mem 0xc0000000-0xfeafffff window] (subtractive decode)
[    0.379900] ACPI: PCI: Interrupt link LNKA configured for IRQ 0
[    0.379906] ACPI: PCI: Interrupt link LNKA disabled
[    0.379951] ACPI: PCI: Interrupt link LNKB configured for IRQ 0
[    0.379955] ACPI: PCI: Interrupt link LNKB disabled
[    0.379997] ACPI: PCI: Interrupt link LNKC configured for IRQ 0
[    0.380002] ACPI: PCI: Interrupt link LNKC disabled
[    0.380044] ACPI: PCI: Interrupt link LNKD configured for IRQ 0
[    0.380048] ACPI: PCI: Interrupt link LNKD disabled
[    0.380090] ACPI: PCI: Interrupt link LNKE configured for IRQ 0
[    0.380094] ACPI: PCI: Interrupt link LNKE disabled
[    0.380137] ACPI: PCI: Interrupt link LNKF configured for IRQ 0
[    0.380141] ACPI: PCI: Interrupt link LNKF disabled
[    0.380183] ACPI: PCI: Interrupt link LNKG configured for IRQ 0
[    0.380187] ACPI: PCI: Interrupt link LNKG disabled
[    0.380229] ACPI: PCI: Interrupt link LNKH configured for IRQ 0
[    0.380233] ACPI: PCI: Interrupt link LNKH disabled
[    0.380356] ACPI: PCI Root Bridge [CPBG] (domain 0000 [bus ff])
[    0.380364] acpi PNP0A03:00: _OSC: OS assumes control of [PCIeHotplug SHPCHotplug AER PCIeCapability LTR DPC]
[    0.380415] PCI host bridge to bus 0000:ff
[    0.380421] pci_bus 0000:ff: root bus resource [bus ff]
[    0.380431] pci 0000:ff:00.0: [8086:2c51] type 00 class 0x060000 conventional PCI endpoint
[    0.380506] pci 0000:ff:00.1: [8086:2c81] type 00 class 0x060000 conventional PCI endpoint
[    0.380600] pci 0000:ff:02.0: [8086:2c90] type 00 class 0x060000 conventional PCI endpoint
[    0.380662] pci 0000:ff:02.1: [8086:2c91] type 00 class 0x060000 conventional PCI endpoint
[    0.380718] pci 0000:ff:03.0: [8086:2c98] type 00 class 0x060000 conventional PCI endpoint
[    0.380779] pci 0000:ff:03.1: [8086:2c99] type 00 class 0x060000 conventional PCI endpoint
[    0.380839] pci 0000:ff:03.4: [8086:2c9c] type 00 class 0x060000 conventional PCI endpoint
[    0.380894] pci 0000:ff:04.0: [8086:2ca0] type 00 class 0x060000 conventional PCI endpoint
[    0.380954] pci 0000:ff:04.1: [8086:2ca1] type 00 class 0x060000 conventional PCI endpoint
[    0.381016] pci 0000:ff:04.2: [8086:2ca2] type 00 class 0x060000 conventional PCI endpoint
[    0.381071] pci 0000:ff:04.3: [8086:2ca3] type 00 class 0x060000 conventional PCI endpoint
[    0.381132] pci 0000:ff:05.0: [8086:2ca8] type 00 class 0x060000 conventional PCI endpoint
[    0.381192] pci 0000:ff:05.1: [8086:2ca9] type 00 class 0x060000 conventional PCI endpoint
[    0.381246] pci 0000:ff:05.2: [8086:2caa] type 00 class 0x060000 conventional PCI endpoint
[    0.381306] pci 0000:ff:05.3: [8086:2cab] type 00 class 0x060000 conventional PCI endpoint
[    0.381567] ACPI: EC: interrupt unblocked
[    0.381573] ACPI: EC: event unblocked
[    0.381579] ACPI: EC: EC_CMD/EC_SC=0x66, EC_DATA=0x62
[    0.381582] ACPI: EC: GPE=0x17
[    0.381585] ACPI: \_SB_.PCI0.LPCB.EC__: Boot ECDT EC initialization complete
[    0.381590] ACPI: \_SB_.PCI0.LPCB.EC__: EC: Used to handle transactions and events
[    0.381667] iommu: Default domain type: Translated
[    0.381667] iommu: DMA domain TLB invalidation policy: lazy mode
[    0.381667] pps_core: LinuxPPS API ver. 1 registered
[    0.381667] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.381667] PTP clock support registered
[    0.381667] EDAC MC: Ver: 3.0.0
[    0.381667] efivars: Registered efivars operations
[    0.381667] NetLabel: Initializing
[    0.381667] NetLabel:  domain hash size = 128
[    0.381667] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    0.381667] NetLabel:  unlabeled traffic allowed by default
[    0.381667] PCI: Using ACPI for IRQ routing
[    0.388133] PCI: pci_cache_line_size set to 64 bytes
[    0.388203] e820: register RAM buffer resource [mem 0x0008e000-0x0008ffff]
[    0.388208] e820: register RAM buffer resource [mem 0xbf65d000-0xbfffffff]
[    0.388212] e820: register RAM buffer resource [mem 0xbf6f5000-0xbfffffff]
[    0.388216] e820: register RAM buffer resource [mem 0xbf734000-0xbfffffff]
[    0.388220] e820: register RAM buffer resource [mem 0xbf784000-0xbfffffff]
[    0.388223] e820: register RAM buffer resource [mem 0xbf7f6000-0xbfffffff]
[    0.388278] pci 0000:01:00.0: vgaarb: setting as boot VGA device
[    0.388278] pci 0000:01:00.0: vgaarb: bridge control possible
[    0.388278] pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
[    0.388278] vgaarb: loaded
[    0.388515] hpet: 8 channels of 4 reserved for per-cpu timers
[    0.388518] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 24, 25, 26, 27, 0
[    0.388527] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[    0.390579] clocksource: Switched to clocksource tsc-early
[    0.390579] VFS: Disk quotas dquot_6.6.0
[    0.390579] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.390579] AppArmor: AppArmor Filesystem Enabled
[    0.390579] acpi PNP0C02:00: Skipped [io  0x002e-0x002f]
[    0.390579] acpi PNP0C02:00: Skipped [io  0x004e-0x004f]
[    0.390579] acpi PNP0C02:00: Skipped [io  0x0061]
[    0.390579] acpi PNP0C02:00: Skipped [io  0x0063]
[    0.390579] acpi PNP0C02:00: Skipped [io  0x0065]
[    0.390579] acpi PNP0C02:00: Skipped [io  0x0067]
[    0.390579] acpi PNP0C02:00: Skipped [io  0x0080]
[    0.390579] acpi PNP0C02:00: Skipped [io  0x0092]
[    0.390579] acpi PNP0C02:00: Skipped [io  0x00b2-0x00b3]
[    0.390579] acpi PNP0C02:00: Reserved [io  0x0680-0x069f]
[    0.390579] acpi PNP0C02:00: Reserved [io  0x1000-0x100f]
[    0.390579] acpi PNP0C02:00: Reserved [io  0xffff]
[    0.390579] acpi PNP0C02:00: Reserved [io  0xffff]
[    0.390579] acpi PNP0C02:00: Reserved [io  0x0400-0x047f]
[    0.390579] acpi PNP0C02:00: Reserved [io  0x0500-0x057f]
[    0.390579] acpi PNP0C02:00: Reserved [io  0x164e-0x164f]
[    0.390579] acpi PNP0C02:01: Reserved [io  0x06a0-0x06af]
[    0.390579] acpi PNP0C02:01: Reserved [io  0x06b0-0x06ff]
[    0.390579] acpi PNP0C02:02: Reserved [mem 0xfed1c000-0xfed1ffff]
[    0.390579] acpi PNP0C02:02: Reserved [mem 0xfed1b000-0xfed1bfff]
[    0.390579] acpi PNP0C02:02: Could not reserve [mem 0xe0000000-0xefffffff]
[    0.390579] acpi PNP0C02:02: Reserved [mem 0xfed20000-0xfed3ffff]
[    0.390579] acpi PNP0C02:02: Reserved [mem 0xfeb00000-0xfeb03fff]
[    0.390579] acpi PNP0C02:02: Reserved [mem 0xfed45000-0xfed8ffff]
[    0.390579] acpi PNP0C02:02: Could not reserve [mem 0xff000000-0xffffffff]
[    0.390579] acpi PNP0C02:02: Reserved [mem 0xfee00000-0xfeefffff]
[    0.390579] pnp: PnP ACPI init
[    0.390579] pnp: PnP ACPI: found 0 devices
[    0.392559] pci 0000:01:00.0: assigning 56 device properties
[    0.392605] pci 0000:05:00.0: assigning 1 device properties
[    0.392617] pci 0000:00:1b.0: assigning 4 device properties
[    0.397122] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[    0.397360] NET: Registered PF_INET protocol family
[    0.397646] IP idents hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.415217] tcp_listen_portaddr_hash hash table entries: 8192 (order: 5, 131072 bytes, linear)
[    0.415258] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.415270] TCP established hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.415530] TCP bind hash table entries: 65536 (order: 9, 2097152 bytes, linear)
[    0.415989] TCP: Hash tables configured (established 131072 bind 65536)
[    0.416112] MPTCP token hash table entries: 16384 (order: 7, 393216 bytes, linear)
[    0.416198] UDP hash table entries: 8192 (order: 7, 524288 bytes, linear)
[    0.416397] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.416409] NET: Registered PF_XDP protocol family
[    0.416423] pci 0000:00:1c.0: bridge window [io  0x1000-0x0fff] to [bus 02] add_size 1000
[    0.416430] pci 0000:00:1c.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 02] add_size 200000 add_align 100000
[    0.416437] pci 0000:00:1c.1: bridge window [io  0x1000-0x0fff] to [bus 03] add_size 1000
[    0.416442] pci 0000:00:1c.1: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 03] add_size 200000 add_align 100000
[    0.416448] pci 0000:00:1c.2: bridge window [io  0x1000-0x0fff] to [bus 04-05] add_size 1000
[    0.416453] pci 0000:00:1c.2: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 04-05] add_size 200000 add_align 100000
[    0.416458] pci 0000:00:1c.3: bridge window [io  0x1000-0x0fff] to [bus 06] add_size 1000
[    0.416463] pci 0000:00:1c.3: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 06] add_size 200000 add_align 100000
[    0.416468] pci 0000:00:1c.4: bridge window [io  0x1000-0x0fff] to [bus 07] add_size 1000
[    0.416473] pci 0000:00:1c.4: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 07] add_size 200000 add_align 100000
[    0.416483] pci 0000:00:1c.0: bridge window [mem 0xd0800000-0xd09fffff 64bit pref]: assigned
[    0.416483] pci 0000:00:1c.1: bridge window [mem 0xd0a00000-0xd0bfffff 64bit pref]: assigned
[    0.416483] pci 0000:00:1c.2: bridge window [mem 0xd0c00000-0xd0dfffff 64bit pref]: assigned
[    0.416483] pci 0000:00:1c.3: bridge window [mem 0xd0e00000-0xd0ffffff 64bit pref]: assigned
[    0.416483] pci 0000:00:1c.4: bridge window [mem 0xd1000000-0xd11fffff 64bit pref]: assigned
[    0.416615] pci 0000:00:1c.0: bridge window [io  0x4000-0x4fff]: assigned
[    0.416628] pci 0000:00:1c.1: bridge window [io  0x5000-0x5fff]: assigned
[    0.416641] pci 0000:00:1c.2: bridge window [io  0x6000-0x6fff]: assigned
[    0.416646] pci 0000:00:1c.3: bridge window [io  0x7000-0x7fff]: assigned
[    0.416651] pci 0000:00:1c.4: bridge window [io  0x8000-0x8fff]: assigned
[    0.416658] pci 0000:00:03.0: PCI bridge to [bus 01]
[    0.416663] pci 0000:00:03.0:   bridge window [io  0x2000-0x2fff]
[    0.416669] pci 0000:00:03.0:   bridge window [mem 0xd0600000-0xd06fffff]
[    0.416674] pci 0000:00:03.0:   bridge window [mem 0xc0000000-0xcfffffff 64bit pref]
[    0.416684] pci 0000:00:1c.0: PCI bridge to [bus 02]
[    0.416688] pci 0000:00:1c.0:   bridge window [io  0x4000-0x4fff]
[    0.416694] pci 0000:00:1c.0:   bridge window [mem 0xd0500000-0xd05fffff]
[    0.416699] pci 0000:00:1c.0:   bridge window [mem 0xd0800000-0xd09fffff 64bit pref]
[    0.416706] pci 0000:00:1c.1: PCI bridge to [bus 03]
[    0.416710] pci 0000:00:1c.1:   bridge window [io  0x5000-0x5fff]
[    0.416716] pci 0000:00:1c.1:   bridge window [mem 0xd0400000-0xd04fffff]
[    0.416721] pci 0000:00:1c.1:   bridge window [mem 0xd0a00000-0xd0bfffff 64bit pref]
[    0.416729] pci 0000:04:00.0: PCI bridge to [bus 05]
[    0.416736] pci 0000:04:00.0:   bridge window [mem 0xd0300000-0xd03fffff]
[    0.416749] pci 0000:00:1c.2: PCI bridge to [bus 04-05]
[    0.416753] pci 0000:00:1c.2:   bridge window [io  0x6000-0x6fff]
[    0.416759] pci 0000:00:1c.2:   bridge window [mem 0xd0300000-0xd03fffff]
[    0.416764] pci 0000:00:1c.2:   bridge window [mem 0xd0c00000-0xd0dfffff 64bit pref]
[    0.416771] pci 0000:00:1c.3: PCI bridge to [bus 06]
[    0.416774] pci 0000:00:1c.3:   bridge window [io  0x7000-0x7fff]
[    0.416780] pci 0000:00:1c.3:   bridge window [mem 0xd0200000-0xd02fffff]
[    0.416785] pci 0000:00:1c.3:   bridge window [mem 0xd0e00000-0xd0ffffff 64bit pref]
[    0.416792] pci 0000:00:1c.4: PCI bridge to [bus 07]
[    0.416796] pci 0000:00:1c.4:   bridge window [io  0x8000-0x8fff]
[    0.416802] pci 0000:00:1c.4:   bridge window [mem 0xd0100000-0xd01fffff]
[    0.416807] pci 0000:00:1c.4:   bridge window [mem 0xd1000000-0xd11fffff 64bit pref]
[    0.416814] pci 0000:00:1e.0: PCI bridge to [bus 08]
[    0.416819] pci 0000:00:1e.0:   bridge window [mem 0xd0000000-0xd00fffff]
[    0.416828] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7 window]
[    0.416832] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff window]
[    0.416835] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000fffff window]
[    0.416839] pci_bus 0000:00: resource 7 [mem 0xc0000000-0xfeafffff window]
[    0.416842] pci_bus 0000:01: resource 0 [io  0x2000-0x2fff]
[    0.416845] pci_bus 0000:01: resource 1 [mem 0xd0600000-0xd06fffff]
[    0.416849] pci_bus 0000:01: resource 2 [mem 0xc0000000-0xcfffffff 64bit pref]
[    0.416853] pci_bus 0000:02: resource 0 [io  0x4000-0x4fff]
[    0.416856] pci_bus 0000:02: resource 1 [mem 0xd0500000-0xd05fffff]
[    0.416859] pci_bus 0000:02: resource 2 [mem 0xd0800000-0xd09fffff 64bit pref]
[    0.416863] pci_bus 0000:03: resource 0 [io  0x5000-0x5fff]
[    0.416866] pci_bus 0000:03: resource 1 [mem 0xd0400000-0xd04fffff]
[    0.416870] pci_bus 0000:03: resource 2 [mem 0xd0a00000-0xd0bfffff 64bit pref]
[    0.416873] pci_bus 0000:04: resource 0 [io  0x6000-0x6fff]
[    0.416877] pci_bus 0000:04: resource 1 [mem 0xd0300000-0xd03fffff]
[    0.416880] pci_bus 0000:04: resource 2 [mem 0xd0c00000-0xd0dfffff 64bit pref]
[    0.416884] pci_bus 0000:05: resource 1 [mem 0xd0300000-0xd03fffff]
[    0.416887] pci_bus 0000:06: resource 0 [io  0x7000-0x7fff]
[    0.416890] pci_bus 0000:06: resource 1 [mem 0xd0200000-0xd02fffff]
[    0.416894] pci_bus 0000:06: resource 2 [mem 0xd0e00000-0xd0ffffff 64bit pref]
[    0.416897] pci_bus 0000:07: resource 0 [io  0x8000-0x8fff]
[    0.416901] pci_bus 0000:07: resource 1 [mem 0xd0100000-0xd01fffff]
[    0.416904] pci_bus 0000:07: resource 2 [mem 0xd1000000-0xd11fffff 64bit pref]
[    0.416908] pci_bus 0000:08: resource 1 [mem 0xd0000000-0xd00fffff]
[    0.416911] pci_bus 0000:08: resource 4 [io  0x0000-0x0cf7 window]
[    0.416914] pci_bus 0000:08: resource 5 [io  0x0d00-0xffff window]
[    0.416918] pci_bus 0000:08: resource 6 [mem 0x000a0000-0x000fffff window]
[    0.416921] pci_bus 0000:08: resource 7 [mem 0xc0000000-0xfeafffff window]
[    0.417668] pci 0000:01:00.1: D0 power state depends on 0000:01:00.0
[    0.417690] pci 0000:05:00.0: CLS mismatch (256 != 64), using 64 bytes
[    0.417721] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    0.417724] software IO TLB: mapped [mem 0x00000000aba6e000-0x00000000afa6e000] (64MB)
[    0.417818] Trying to unpack rootfs image as initramfs...
[    0.418263] Initialise system trusted keyrings
[    0.418285] Key type blacklist registered
[    0.418465] workingset: timestamp_bits=36 (anon: 32) max_order=22 bucket_order=0 (anon: 0)
[    0.419539] fuse: init (API version 7.45)
[    0.420073] integrity: Platform Keyring initialized
[    0.420085] integrity: Machine keyring initialized
[    0.435956] Key type asymmetric registered
[    0.435969] Asymmetric key parser 'x509' registered
[    0.436043] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    0.436224] io scheduler mq-deadline registered
[    0.440655] ledtrig-cpu: registered to indicate activity on CPUs
[    0.441402] pcieport 0000:00:03.0: AER: enabled with IRQ 28
[    0.441690] pcieport 0000:00:1c.0: pciehp: Slot #0 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Interlock- NoCompl+ IbPresDis- LLActRep+
[    0.442407] pcieport 0000:00:1c.1: pciehp: Slot #1 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Interlock- NoCompl+ IbPresDis- LLActRep+
[    0.442987] pcieport 0000:00:1c.2: pciehp: Slot #2 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Interlock- NoCompl+ IbPresDis- LLActRep+
[    0.443359] pcieport 0000:00:1c.3: enabling device (0000 -> 0003)
[    0.443532] pcieport 0000:00:1c.3: pciehp: Slot #3 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Interlock- NoCompl+ IbPresDis- LLActRep+
[    0.443807] pcieport 0000:00:1c.4: enabling device (0000 -> 0003)
[    0.443948] pcieport 0000:00:1c.4: pciehp: Slot #4 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Interlock- NoCompl+ IbPresDis- LLActRep+
[    0.444609] Monitor-Mwait will be used to enter C-1 state
[    0.444618] Monitor-Mwait will be used to enter C-2 state
[    0.449824] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.453185] i8042: PNP: No PS/2 controller found.
[    0.453460] mousedev: PS/2 mouse device common for all mice
[    0.453560] rtc_cmos PNP0B00:00: RTC can wake from S4
[    0.453928] rtc_cmos PNP0B00:00: registered as rtc0
[    0.453963] rtc_cmos PNP0B00:00: setting system clock to 2026-08-20T18:11:54 UTC (1787249514)
[    0.453993] rtc_cmos PNP0B00:00: alarms up to one month, y3k, 242 bytes nvram
[    0.456714] intel_pstate: CPU model not supported
[    0.457071] Relocating firmware framebuffer to offset 0x0000000000010000[d] within [mem 0xc0000000-0xcfffffff flags 0x14220c]
[    0.457123] efifb: probing for efifb
[    0.457163] efifb: framebuffer at 0xc0010000, using 14400k, total 14400k
[    0.457167] efifb: mode is 2560x1440x32, linelength=10240, pages=1
[    0.457170] efifb: scrolling: redraw
[    0.457172] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    0.463065] Console: switching to colour frame buffer device 160x45
[    0.468859] fb0: EFI VGA frame buffer device
[    0.469240] NET: Registered PF_INET6 protocol family
[    0.470255] Segment Routing with IPv6
[    0.470302] In-situ OAM (IOAM) with IPv6
[    0.470368] mip6: Mobile IPv6
[    0.470400] NET: Registered PF_PACKET protocol family
[    0.470639] mpls_gso: MPLS GSO support
[    0.473119] microcode: Current revision: 0x0000000a
[    0.477061] IPI shorthand broadcast: enabled
[    0.479617] sched_clock: Marking stable (475950136, 1071788)->(483361899, -6339975)
[    0.480006] registered taskstats version 1
[    0.480273] Loading compiled-in X.509 certificates
[    0.481463] Loaded X.509 cert 'Build time autogenerated kernel key: df9dd727c44cda94ad4df5f120675b92998733e6'
[    0.484880] Demotion targets for Node 0: null
[    0.485334] Key type .fscrypt registered
[    0.485378] Key type fscrypt-provisioning registered
[    1.196001] Freeing initrd memory: 146060K
[    1.229475] Key type encrypted registered
[    1.229538] AppArmor: AppArmor sha256 policy hashing enabled
[    1.229612] ima: No TPM chip found, activating TPM-bypass!
[    1.231587] ima: Allocated hash algorithm: sha256
[    1.233560] ima: No architecture policies found
[    1.235489] evm: Initialising EVM extended attributes:
[    1.237449] evm: security.selinux
[    1.239314] evm: security.SMACK64 (disabled)
[    1.241196] evm: security.SMACK64EXEC (disabled)
[    1.243021] evm: security.SMACK64TRANSMUTE (disabled)
[    1.244804] evm: security.SMACK64MMAP (disabled)
[    1.246596] evm: security.apparmor
[    1.248303] evm: security.ima
[    1.249996] evm: security.capability
[    1.251656] evm: HMAC attrs: 0x1
[    1.335582] RAS: Correctable Errors collector initialized.
[    1.337584] clk: Disabling unused clocks
[    1.339258] PM: genpd: Disabling unused power domains
[    1.342920] Freeing unused decrypted memory: 2036K
[    1.345446] Freeing unused kernel image (initmem) memory: 4372K
[    1.347211] Write protecting the kernel read-only data: 32768k
[    1.350023] Freeing unused kernel image (text/rodata gap) memory: 2024K
[    1.352307] Freeing unused kernel image (rodata/data gap) memory: 1788K
[    1.406992] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[    1.408692] x86/mm: Checking user space page tables
[    1.439182] tsc: Refined TSC clocksource calibration: 2659.999 MHz
[    1.440783] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x2657a34898c, max_idle_ns: 440795323804 ns
[    1.444889] clocksource: Switched to clocksource tsc
[    1.466398] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[    1.468068] Run /init as init process
[    1.469720]   with arguments:
[    1.469722]     /init
[    1.469723]   with environment:
[    1.469724]     HOME=/
[    1.469725]     TERM=linux
[    1.629411] input: Power Button as /devices/platform/PNP0C0C:00/input/input0
[    1.633293] ACPI: button: Power Button [PWRB]
[    1.636081] input: Sleep Button as /devices/platform/PNP0C0E:00/input/input1
[    1.638348] ACPI: button: Sleep Button [SLPB]
[    1.640496] input: Power Button as /devices/platform/LNXPWRBN:00/input/input2
[    1.642673] ACPI: button: Power Button [PWRF]
[    1.667504] ACPI Warning: SystemIO range 0x0000000000000428-0x000000000000042F conflicts with OpRegion 0x0000000000000400-0x000000000000047F (\PMIO) (20251212/utaddress-204)
[    1.682588] ACPI: OSL: Resource conflict; ACPI support missing from driver?
[    1.687098] ACPI Warning: SystemIO range 0x0000000000000540-0x000000000000054F conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20251212/utaddress-204)
[    1.699155] ACPI: OSL: Resource conflict; ACPI support missing from driver?
[    1.703907] ACPI Warning: SystemIO range 0x0000000000000530-0x000000000000053F conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20251212/utaddress-204)
[    1.717057] ACPI: OSL: Resource conflict; ACPI support missing from driver?
[    1.723093] ACPI Warning: SystemIO range 0x0000000000000500-0x000000000000052F conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20251212/utaddress-204)
[    1.732769] ACPI: bus type USB registered
[    1.735438] ACPI: OSL: Resource conflict; ACPI support missing from driver?
[    1.735568] usbcore: registered new interface driver usbfs
[    1.740428] lpc_ich: Resource conflict(s) found affecting gpio_ich
[    1.741060] usbcore: registered new interface driver hub
[    1.746922] usbcore: registered new device driver usb
[    1.748211] i801_smbus 0000:00:1f.3: enabling device (0000 -> 0003)
[    1.752527] i801_smbus 0000:00:1f.3: SMBus using PCI interrupt
[    1.755941] i2c i2c-0: Successfully instantiated SPD at 0x50
[    1.759357] i2c i2c-0: Successfully instantiated SPD at 0x51
[    1.762693] i2c i2c-0: Successfully instantiated SPD at 0x52
[    1.766387] SCSI subsystem initialized
[    1.767383] i2c i2c-0: Successfully instantiated SPD at 0x53
[    1.784695] tg3 0000:02:00.0 eth0: Tigon3 [partno(BCM95764m) rev 5784100] (PCI Express) MAC address d4:9a:20:d0:12:f6
[    1.788110] tg3 0000:02:00.0 eth0: attached PHY is 5784 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[0])
[    1.791219] tg3 0000:02:00.0 eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[    1.794326] tg3 0000:02:00.0 eth0: dma_rwctrl[76180000] dma_mask[64-bit]
[    1.806670] ACPI: bus type drm_connector registered
[    1.811631] tg3 0000:02:00.0 enp2s0: renamed from eth0
[    1.824236] ehci-pci 0000:00:1a.7: EHCI Host Controller
[    1.824471] libata version 3.00 loaded.
[    1.827267] firewire_ohci 0000:05:00.0: added OHCI v1.10 device as card 0, 8 IR + 8 IT contexts, quirks 0x2
[    1.827307] ehci-pci 0000:00:1a.7: new USB bus registered, assigned bus number 1
[    1.833529] ehci-pci 0000:00:1a.7: debug port 2
[    1.840109] ehci-pci 0000:00:1a.7: irq 16, io mem 0xd0705c00
[    1.849166] ehci-pci 0000:00:1a.7: USB 2.0 started, EHCI 1.00
[    1.852280] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 7.01
[    1.855385] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.858291] usb usb1: Product: EHCI Host Controller
[    1.861017] usb usb1: Manufacturer: Linux 7.1.0-imac11.1 ehci_hcd
[    1.863653] usb usb1: SerialNumber: 0000:00:1a.7
[    1.868493] hub 1-0:1.0: USB hub found
[    1.872958] hub 1-0:1.0: 6 ports detected
[    1.877901] ehci-pci 0000:00:1d.7: EHCI Host Controller
[    1.880421] ehci-pci 0000:00:1d.7: new USB bus registered, assigned bus number 2
[    1.882862] ehci-pci 0000:00:1d.7: debug port 2
[    1.889228] ehci-pci 0000:00:1d.7: irq 23, io mem 0xd0705800
[    1.901324] ehci-pci 0000:00:1d.7: USB 2.0 started, EHCI 1.00
[    1.903614] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 7.01
[    1.905807] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.907961] usb usb2: Product: EHCI Host Controller
[    1.910035] usb usb2: Manufacturer: Linux 7.1.0-imac11.1 ehci_hcd
[    1.912035] usb usb2: SerialNumber: 0000:00:1d.7
[    1.914315] hub 2-0:1.0: USB hub found
[    1.916206] hub 2-0:1.0: 8 ports detected
[    1.927460] uhci_hcd 0000:00:1a.0: UHCI Host Controller
[    1.929665] uhci_hcd 0000:00:1a.0: new USB bus registered, assigned bus number 3
[    1.931647] uhci_hcd 0000:00:1a.0: detected 2 ports
[    1.931762] iTCO_wdt iTCO_wdt.1.auto: unable to reset NO_REBOOT flag, device disabled by hardware/BIOS
[    1.933874] uhci_hcd 0000:00:1a.0: irq 21, io port 0x00003060
[    1.938219] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 7.01
[    1.940350] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.942866] usb usb3: Product: UHCI Host Controller
[    1.945049] usb usb3: Manufacturer: Linux 7.1.0-imac11.1 uhci_hcd
[    1.947035] usb usb3: SerialNumber: 0000:00:1a.0
[    1.949522] hub 3-0:1.0: USB hub found
[    1.949920] ahci 0000:00:1f.2: AHCI vers 0001.0300, 32 command slots, 3 Gbps, SATA mode
[    1.951545] hub 3-0:1.0: 2 ports detected
[    1.953802] ahci 0000:00:1f.2: 2/6 ports implemented (port mask 0x3)
[    1.956118] uhci_hcd 0000:00:1d.0: UHCI Host Controller
[    1.958051] ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part ems apst 
[    1.960319] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 4
[    1.964712] uhci_hcd 0000:00:1d.0: detected 2 ports
[    1.966789] uhci_hcd 0000:00:1d.0: irq 19, io port 0x00003040
[    1.969123] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 7.01
[    1.971287] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.971386] scsi host0: ahci
[    1.973515] usb usb4: Product: UHCI Host Controller
[    1.977770] usb usb4: Manufacturer: Linux 7.1.0-imac11.1 uhci_hcd
[    1.979744] usb usb4: SerialNumber: 0000:00:1d.0
[    1.982003] scsi host1: ahci
[    1.982064] hub 4-0:1.0: USB hub found
[    1.986226] hub 4-0:1.0: 2 ports detected
[    1.986367] scsi host2: ahci
[    1.990742] scsi host3: ahci
[    1.994509] scsi host4: ahci
[    1.996710] scsi host5: ahci
[    1.998582] ata1: SATA max UDMA/133 abar m2048@0xd0705000 port 0xd0705100 irq 34 lpm-pol 3
[    2.000408] ata2: SATA max UDMA/133 abar m2048@0xd0705000 port 0xd0705180 irq 34 lpm-pol 3
[    2.002201] ata3: DUMMY
[    2.003917] ata4: DUMMY
[    2.005682] ata5: DUMMY
[    2.007641] ata6: DUMMY
[    2.125259] usb 1-1: new high-speed USB device number 2 using ehci-pci
[    2.165248] usb 2-1: new high-speed USB device number 2 using ehci-pci
[    2.173245] clocksource: Watchdog remote CPU 2 read timed out
[    2.269574] usb 1-1: New USB device found, idVendor=0424, idProduct=2514, bcdDevice= 0.03
[    2.271630] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.275058] hub 1-1:1.0: USB hub found
[    2.277078] hub 1-1:1.0: 4 ports detected
[    2.317937] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    2.318072] usb 2-1: New USB device found, idVendor=0424, idProduct=2514, bcdDevice= 0.03
[    2.321579] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    2.322259] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.324186] ata1.00: ACPI cmd ef/10:03:00:00:00:a0(SET FEATURES) filtered out
[    2.326125] hub 2-1:1.0: USB hub found
[    2.327345] ata2.00: Model 'Samsung SSD 750 EVO 250GB', rev 'MAT01B6Q', applying quirks: zeroaftertrim
[    2.330600] hub 2-1:1.0: 4 ports detected
[    2.330633] ata2.00: ACPI cmd ef/10:03:00:00:00:a0(SET FEATURES) filtered out
[    2.333611] ata1.00: ATA-9: WDC WD20EZRX-00D8PB0, 80.00A80, max UDMA/133
[    2.335193] ata2.00: supports DRM functions and may not be fully accessible
[    2.337279] ata2.00: ATA-9: Samsung SSD 750 EVO 250GB, MAT01B6Q, max UDMA/133
[    2.337303] firewire_core 0000:05:00.0: created device fw0: GUID 041e64fffef9dc20, S800, quirks 00000000
[    2.342363] ata1.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 32), AA
[    2.344249] ata1.00: Features: HIPM DIPM
[    2.346208] ata2.00: 488397168 sectors, multi 1: LBA48 NCQ (depth 32), AA
[    2.349231] ata2.00: Features: Trust Dev-Sleep DIPM NCQ-sndrcv
[    2.351262] ata2.00: ACPI cmd ef/10:03:00:00:00:a0(SET FEATURES) filtered out
[    2.352825] ata2.00: supports DRM functions and may not be fully accessible
[    2.354978] ata2.00: Invalid log directory version 0x0000
[    2.359226] ata1.00: ACPI cmd ef/10:03:00:00:00:a0(SET FEATURES) filtered out
[    2.361066] ata1.00: configured for UDMA/133
[    2.362936] ata2.00: configured for UDMA/133
[    2.365219] scsi 0:0:0:0: Direct-Access     ATA      WDC WD20EZRX-00D 0A80 PQ: 0 ANSI: 5
[    2.375365] scsi 1:0:0:0: Direct-Access     ATA      Samsung SSD 750  1B6Q PQ: 0 ANSI: 5
[    2.395280] sd 0:0:0:0: [sdb] 3907029168 512-byte logical blocks: (2.00 TB/1.82 TiB)
[    2.395282] sd 1:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/233 GiB)
[    2.395295] sd 1:0:0:0: [sda] Write Protect is off
[    2.397453] sd 0:0:0:0: [sdb] 4096-byte physical blocks
[    2.399453] sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    2.401612] sd 0:0:0:0: [sdb] Write Protect is off
[    2.403626] sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.405781] sd 0:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    2.407902] sd 0:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.407933] sd 1:0:0:0: [sda] Preferred minimum I/O size 512 bytes
[    2.410075] sd 0:0:0:0: [sdb] Preferred minimum I/O size 4096 bytes
[    2.450683]  sda: sda1 sda2 sda3
[    2.453970] sd 1:0:0:0: [sda] supports TCG Opal
[    2.455972] sd 1:0:0:0: [sda] Attached SCSI disk
[    2.508577]  sdb: sdb1
[    2.511120] sd 0:0:0:0: [sdb] Attached SCSI disk
[    2.571340] usb 1-1.1: new full-speed USB device number 3 using ehci-pci
[    2.613129] usb 2-1.1: new high-speed USB device number 3 using ehci-pci
[    2.701084] usb 1-1.1: New USB device found, idVendor=0a5c, idProduct=4500, bcdDevice= 1.00
[    2.703024] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.705023] usb 1-1.1: Product: BRCM2046 Hub
[    2.706989] usb 1-1.1: Manufacturer: Apple Inc.
[    2.709369] hub 1-1.1:1.0: USB hub found
[    2.711607] hub 1-1.1:1.0: 3 ports detected
[    2.751124] usb 2-1.1: New USB device found, idVendor=05ac, idProduct=8502, bcdDevice= 2.30
[    2.753070] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.754642] usb 2-1.1: Product: Built-in iSight
[    2.756563] usb 2-1.1: Manufacturer: Apple Inc.
[    2.758493] usb 2-1.1: SerialNumber: 8J9AQ2L7M77J3A00
[    2.763138] [drm] radeon kernel modesetting enabled.
[    2.765049] Console: switching to colour dummy device 80x25
[    2.765108] radeon 0000:01:00.0: vgaarb: deactivate vga console
[    2.765232] [drm] initializing kernel modesetting (RV770 0x1002:0x944A 0x106B:0x00B5 0x00).
[    2.801140] usb 1-1.2: new high-speed USB device number 4 using ehci-pci
[    2.897137] usb 2-1.2: new low-speed USB device number 4 using ehci-pci
[    2.902747] usb 1-1.2: New USB device found, idVendor=05ac, idProduct=8403, bcdDevice=98.33
[    2.902756] usb 1-1.2: New USB device strings: Mfr=3, Product=4, SerialNumber=2
[    2.902762] usb 1-1.2: Product: Card Reader
[    2.902768] usb 1-1.2: Manufacturer: Apple
[    2.902772] usb 1-1.2: SerialNumber: 000000009833
[    2.917195] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[    2.917540] scsi host6: usb-storage 1-1.2:1.0
[    2.917643] usbcore: registered new interface driver usb-storage
[    2.923708] usbcore: registered new interface driver uas
[    2.989135] usb 1-1.3: new high-speed USB device number 5 using ehci-pci
[    3.003249] usb 2-1.2: New USB device found, idVendor=05ac, idProduct=8242, bcdDevice= 0.16
[    3.003262] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.003267] usb 2-1.2: Product: IR Receiver
[    3.003271] usb 2-1.2: Manufacturer: Apple Computer, Inc.
[    3.026439] hid: raw HID events driver (C) Jiri Kosina
[    3.038520] usbcore: registered new interface driver usbhid
[    3.038527] usbhid: USB HID core driver
[    3.048155] input: Apple Computer, Inc. IR Receiver as /devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0/0003:05AC:8242.0001/input/input3
[    3.070739] ATOM BIOS: 113
[    3.070786] radeon 0000:01:00.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used)
[    3.070792] radeon 0000:01:00.0: GTT: 1024M 0x0000000020000000 - 0x000000005FFFFFFF
[    3.070800] [drm] Detected VRAM RAM=512M, BAR=256M
[    3.070803] [drm] RAM width 256bits DDR
[    3.071146] [drm] radeon: 512M of VRAM memory ready
[    3.071161] [drm] radeon: 1024M of GTT memory ready.
[    3.071181] [drm] Loading RV770 Microcode
[    3.071439] [drm] External GPIO thermal controller with fan control
[    3.071449] [drm] radeon: power management initialized
[    3.071908] [drm] GART: num cpu pages 262144, num gpu pages 262144
[    3.072856] [drm] enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0
[    3.085819] [drm] PCIE GART of 1024M enabled (table at 0x0000000000146000).
[    3.085876] radeon 0000:01:00.0: WB enabled
[    3.085881] radeon 0000:01:00.0: fence driver on ring 0 uses gpu addr 0x0000000020000c00
[    3.085886] radeon 0000:01:00.0: fence driver on ring 3 uses gpu addr 0x0000000020000c0c
[    3.086193] radeon 0000:01:00.0: fence driver on ring 5 uses gpu addr 0x0000000000056230
[    3.086831] radeon 0000:01:00.0: radeon: using MSI.
[    3.086875] [drm] radeon: irq initialized.
[    3.094124] usb 1-1.3: New USB device found, idVendor=05ac, idProduct=1006, bcdDevice=96.15
[    3.094134] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    3.094139] usb 1-1.3: Product: Keyboard Hub
[    3.094146] usb 1-1.3: Manufacturer: Apple, Inc.
[    3.094149] usb 1-1.3: SerialNumber: 000000000000
[    3.094496] hub 1-1.3:1.0: USB hub found
[    3.094702] hub 1-1.3:1.0: 3 ports detected
[    3.101434] appleir 0003:05AC:8242.0001: input,hiddev0,hidraw0: USB HID v1.11 Device [Apple Computer, Inc. IR Receiver] on usb-0000:00:1d.7-1.2/input0
[    3.133198] [drm] ring test on 0 succeeded in 1 usecs
[    3.133211] [drm] ring test on 3 succeeded in 2 usecs
[    3.157227] usb 1-1.1.1: new full-speed USB device number 6 using ehci-pci
[    3.258247] usb 1-1.1.1: New USB device found, idVendor=05ac, idProduct=8215, bcdDevice= 2.08
[    3.258259] usb 1-1.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    3.258264] usb 1-1.1.1: Product: Bluetooth USB Host Controller
[    3.258268] usb 1-1.1.1: Manufacturer: Apple Inc.
[    3.258272] usb 1-1.1.1: SerialNumber: 64B9E8D7241E
[    3.308048] radeon 0000:01:00.0: [drm] ring test on 5 succeeded in 1 usecs
[    3.308056] radeon 0000:01:00.0: [drm] UVD initialized successfully.
[    3.308106] [drm] ib test on ring 0 succeeded in 0 usecs
[    3.308127] [drm] ib test on ring 3 succeeded in 0 usecs
[    3.329174] usb 1-1.1.2: new full-speed USB device number 7 using ehci-pci
[    3.429130] usb 1-1.1.2: New USB device found, idVendor=05ac, idProduct=820a, bcdDevice= 1.00
[    3.429140] usb 1-1.1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    3.431172] input: HID 05ac:820a as /devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.0/0003:05AC:820A.0002/input/input4
[    3.505323] usb 1-1.3.2: new low-speed USB device number 8 using ehci-pci
[    3.529518] hid-generic 0003:05AC:820A.0002: input,hidraw1: USB HID v1.11 Keyboard [HID 05ac:820a] on usb-0000:00:1a.7-1.1.2/input0
[    3.608525] usb 1-1.3.2: New USB device found, idVendor=05ac, idProduct=0220, bcdDevice= 0.69
[    3.608545] usb 1-1.3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.608557] usb 1-1.3.2: Product: Apple Keyboard
[    3.608566] usb 1-1.3.2: Manufacturer: Apple, Inc
[    3.635793] input: Apple, Inc Apple Keyboard as /devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1.3/1-1.3.2/1-1.3.2:1.0/0003:05AC:0220.0003/input/input5
[    3.673264] usb 1-1.1.3: new full-speed USB device number 9 using ehci-pci
[    3.721478] apple 0003:05AC:0220.0003: input,hidraw2: USB HID v1.11 Keyboard [Apple, Inc Apple Keyboard] on usb-0000:00:1a.7-1.3.2/input0
[    3.721663] apple 0003:05AC:0220.0004: Fn key not found (Apple Wireless Keyboard clone?), disabling Fn key handling
[    3.721745] input: Apple, Inc Apple Keyboard as /devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1.3/1-1.3.2/1-1.3.2:1.1/0003:05AC:0220.0004/input/input6
[    3.773207] usb 1-1.1.3: New USB device found, idVendor=05ac, idProduct=820b, bcdDevice= 1.00
[    3.773228] usb 1-1.1.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    3.775538] input: HID 05ac:820b as /devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1.1/1-1.1.3/1-1.1.3:1.0/0003:05AC:820B.0005/input/input7
[    3.777492] apple 0003:05AC:0220.0004: input,hidraw3: USB HID v1.11 Device [Apple, Inc Apple Keyboard] on usb-0000:00:1a.7-1.3.2/input1
[    3.778650] hid-generic 0003:05AC:820B.0005: input,hidraw4: USB HID v1.11 Mouse [HID 05ac:820b] on usb-0000:00:1a.7-1.1.3/input0
[    3.841255] usb 1-1.3.3: new full-speed USB device number 10 using ehci-pci
[    3.935615] scsi 6:0:0:0: Direct-Access     APPLE    SD Card Reader   1.00 PQ: 0 ANSI: 0
[    3.937010] sd 6:0:0:0: [sdc] Media removed, stopped polling
[    3.939513] usb 1-1.3.3: New USB device found, idVendor=062a, idProduct=7269, bcdDevice= 1.06
[    3.939534] usb 1-1.3.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.939546] usb 1-1.3.3: Product: Full-Speed Mouse
[    3.939555] usb 1-1.3.3: Manufacturer: Full-Speed Mouse
[    3.941316] input: Full-Speed Mouse Full-Speed Mouse as /devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1.3/1-1.3.3/1-1.3.3:1.0/0003:062A:7269.0006/input/input8
[    3.941391] hid-generic 0003:062A:7269.0006: input,hidraw5: USB HID v1.10 Mouse [Full-Speed Mouse Full-Speed Mouse] on usb-0000:00:1a.7-1.3.3/input0
[    3.953629] sd 6:0:0:0: [sdc] Attached SCSI removable disk
[    3.965359] radeon 0000:01:00.0: [drm] ib test on ring 5 succeeded
[    3.965646] [drm] radeon atom DIG backlight initialized
[    3.965653] radeon 0000:01:00.0: [drm] Radeon Display Connectors
[    3.965656] radeon 0000:01:00.0: [drm] Connector 0:
[    3.965659] radeon 0000:01:00.0: [drm]   DP-1
[    3.965662] radeon 0000:01:00.0: [drm]   HPD2
[    3.965664] radeon 0000:01:00.0: [drm]   DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c
[    3.965669] radeon 0000:01:00.0: [drm]   Encoders:
[    3.965672] radeon 0000:01:00.0: [drm]     DFP1: INTERNAL_UNIPHY
[    3.965675] radeon 0000:01:00.0: [drm] Connector 1:
[    3.965678] radeon 0000:01:00.0: [drm]   eDP-1
[    3.965681] radeon 0000:01:00.0: [drm]   HPD3
[    3.965683] radeon 0000:01:00.0: [drm]   DDC: 0x7e20 0x7e20 0x7e24 0x7e24 0x7e28 0x7e28 0x7e2c 0x7e2c
[    3.965688] radeon 0000:01:00.0: [drm]   Encoders:
[    3.965691] radeon 0000:01:00.0: [drm]     LCD1: INTERNAL_UNIPHY
[    3.965694] radeon 0000:01:00.0: [drm] Connector 2:
[    3.965696] radeon 0000:01:00.0: [drm]   VGA-1
[    3.965699] radeon 0000:01:00.0: [drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
[    3.965704] radeon 0000:01:00.0: [drm]   Encoders:
[    3.965706] radeon 0000:01:00.0: [drm]     CRT1: INTERNAL_KLDSCP_DAC1
[    3.985239] [drm] Initialized radeon 2.51.0 for 0000:01:00.0 on minor 0
[    4.069373] [drm] fb mappable at 0xC0347000
[    4.069378] [drm] vram apper at 0xC0000000
[    4.069381] [drm] size 14745600
[    4.069383] [drm] fb depth is 24
[    4.069385] [drm]    pitch is 10240
[    4.069616] fbcon: radeondrmfb (fb0) is primary device
[    4.102098] Console: switching to colour frame buffer device 160x45
[    4.106678] radeon 0000:01:00.0: [drm] fb0: radeondrmfb frame buffer device
[    9.346131] amdgpu: Virtual CRAT table created for CPU
[    9.346209] amdgpu: Topology: Add CPU node
[    9.606204] PM: Image not found (code -22)
[   10.024397] EXT4-fs (sda3): mounted filesystem 7b393e66-b42d-48a2-8ded-dcb907b828f1 ro with ordered data mode. Quota mode: none.
[   10.124069] Not activating Mandatory Access Control as /sbin/tomoyo-init does not exist.
[   10.259693] systemd[1]: Inserted module 'autofs4'
[   11.725946] systemd[1]: systemd 257.13-1~deb13u1 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +IPE +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBCRYPTSETUP_PLUGINS +LIBFDISK +PCRE2 +PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK +BTF -XKBCOMMON -UTMP +SYSVINIT +LIBARCHIVE)
[   11.725954] systemd[1]: Detected architecture x86-64.
[   11.742207] systemd[1]: Hostname set to <skylab>.
[   11.865285] systemd[1]: bpf-restrict-fs: LSM BPF program attached
[   12.157550] systemd[1]: Queued start job for default target graphical.target.
[   12.208210] systemd[1]: Created slice system-getty.slice - Slice /system/getty.
[   12.211331] systemd[1]: Created slice system-modprobe.slice - Slice /system/modprobe.
[   12.217015] systemd[1]: Created slice system-systemd\x2dfsck.slice - Slice /system/systemd-fsck.
[   12.223616] systemd[1]: Created slice user.slice - User and Session Slice.
[   12.230443] systemd[1]: Started systemd-ask-password-wall.path - Forward Password Requests to Wall Directory Watch.
[   12.234655] systemd[1]: Set up automount proc-sys-fs-binfmt_misc.automount - Arbitrary Executable File Formats File System Automount Point.
[   12.240995] systemd[1]: Expecting device dev-disk-by\x2duuid-76BF\x2d119F.device - /dev/disk/by-uuid/76BF-119F...
[   12.249598] systemd[1]: Expecting device dev-disk-by\x2duuid-a73d76c6\x2db688\x2d474a\x2d85ce\x2d036f62b36ea1.device - /dev/disk/by-uuid/a73d76c6-b688-474a-85ce-036f62b36ea1...
[   12.256691] systemd[1]: Expecting device dev-disk-by\x2duuid-dd5a3c31\x2d2d2c\x2d4d7d\x2d8300\x2d1ef36536195a.device - /dev/disk/by-uuid/dd5a3c31-2d2c-4d7d-8300-1ef36536195a...
[   12.271020] systemd[1]: Reached target integritysetup.target - Local Integrity Protected Volumes.
[   12.276306] systemd[1]: Reached target nss-user-lookup.target - User and Group Name Lookups.
[   12.286432] systemd[1]: Reached target remote-fs.target - Remote File Systems.
[   12.291800] systemd[1]: Reached target slices.target - Slice Units.
[   12.302300] systemd[1]: Reached target veritysetup.target - Local Verity Protected Volumes.
[   12.307937] systemd[1]: Listening on syslog.socket - Syslog Socket.
[   12.324038] systemd[1]: Listening on systemd-creds.socket - Credential Encryption/Decryption.
[   12.335464] systemd[1]: Listening on systemd-initctl.socket - initctl Compatibility Named Pipe.
[   12.347477] systemd[1]: Listening on systemd-journald-dev-log.socket - Journal Socket (/dev/log).
[   12.353808] systemd[1]: Listening on systemd-journald.socket - Journal Sockets.
[   12.365882] systemd[1]: systemd-pcrextend.socket - TPM PCR Measurements skipped, unmet condition check ConditionSecurity=measured-uki
[   12.365924] systemd[1]: systemd-pcrlock.socket - Make TPM PCR Policy skipped, unmet condition check ConditionSecurity=measured-uki
[   12.366045] systemd[1]: Listening on systemd-udevd-control.socket - udev Control Socket.
[   12.390298] systemd[1]: Listening on systemd-udevd-kernel.socket - udev Kernel Socket.
[   12.406348] systemd[1]: Mounting dev-hugepages.mount - Huge Pages File System...
[   12.414967] systemd[1]: Mounting dev-mqueue.mount - POSIX Message Queue File System...
[   12.442151] systemd[1]: Mounting run-lock.mount - Legacy Locks Directory /run/lock...
[   12.449980] systemd[1]: Mounting sys-kernel-debug.mount - Kernel Debug File System...
[   12.457915] systemd[1]: Mounting sys-kernel-tracing.mount - Kernel Trace File System...
[   12.466275] systemd[1]: Starting keyboard-setup.service - Set the console keyboard layout...
[   12.473974] systemd[1]: Starting kmod-static-nodes.service - Create List of Static Device Nodes...
[   12.481957] systemd[1]: Starting modprobe@configfs.service - Load Kernel Module configfs...
[   12.492850] systemd[1]: Starting modprobe@drm.service - Load Kernel Module drm...
[   12.500974] systemd[1]: Starting modprobe@efi_pstore.service - Load Kernel Module efi_pstore...
[   12.507848] systemd[1]: Starting modprobe@fuse.service - Load Kernel Module fuse...
[   12.511965] systemd[1]: systemd-fsck-root.service - File System Check on Root Device skipped, unmet condition check ConditionPathExists=!/run/initramfs/fsck-root
[   12.512030] systemd[1]: systemd-hibernate-clear.service - Clear Stale Hibernate Storage Info skipped, unmet condition check ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67
[   12.515010] systemd[1]: Starting systemd-journald.service - Journal Service...
[   12.546832] pstore: Using crash dump compression: deflate
[   12.550302] systemd[1]: Starting systemd-modules-load.service - Load Kernel Modules...
[   12.565525] systemd[1]: systemd-pcrmachine.service - TPM PCR Machine ID Measurement skipped, unmet condition check ConditionSecurity=measured-uki
[   12.569324] systemd[1]: Starting systemd-remount-fs.service - Remount Root and Kernel File Systems...
[   12.578282] systemd[1]: systemd-tpm2-setup-early.service - Early TPM SRK Setup skipped, unmet condition check ConditionSecurity=measured-uki
[   12.579639] systemd[1]: Starting systemd-udev-load-credentials.service - Load udev Rules from Credentials...
[   12.590271] systemd[1]: Starting systemd-udev-trigger.service - Coldplug All udev Devices...
[   12.608118] systemd[1]: Mounted dev-hugepages.mount - Huge Pages File System.
[   12.614757] systemd[1]: Mounted dev-mqueue.mount - POSIX Message Queue File System.
[   12.622070] systemd[1]: Mounted run-lock.mount - Legacy Locks Directory /run/lock.
[   12.632665] systemd[1]: Mounted sys-kernel-debug.mount - Kernel Debug File System.
[   12.643377] systemd[1]: Mounted sys-kernel-tracing.mount - Kernel Trace File System.
[   12.652907] systemd[1]: Finished kmod-static-nodes.service - Create List of Static Device Nodes.
[   12.659668] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[   12.659912] systemd[1]: Finished modprobe@configfs.service - Load Kernel Module configfs.
[   12.669911] systemd[1]: modprobe@drm.service: Deactivated successfully.
[   12.670150] systemd[1]: Finished modprobe@drm.service - Load Kernel Module drm.
[   12.685043] systemd[1]: modprobe@fuse.service: Deactivated successfully.
[   12.685352] systemd[1]: Finished modprobe@fuse.service - Load Kernel Module fuse.
[   12.694811] systemd[1]: Mounting sys-fs-fuse-connections.mount - FUSE Control File System...
[   12.701858] systemd[1]: Mounting sys-kernel-config.mount - Kernel Configuration File System...
[   12.705178] EXT4-fs (sda3): re-mounted 7b393e66-b42d-48a2-8ded-dcb907b828f1 r/w.
[   12.717391] systemd[1]: Starting systemd-tmpfiles-setup-dev-early.service - Create Static Device Nodes in /dev gracefully...
[   12.723923] systemd[1]: Finished systemd-remount-fs.service - Remount Root and Kernel File Systems.
[   12.729067] systemd-journald[271]: Collecting audit messages is disabled.
[   12.729801] lp: driver loaded but no devices found
[   12.737597] systemd[1]: Mounted sys-fs-fuse-connections.mount - FUSE Control File System.
[   12.743467] systemd[1]: Mounted sys-kernel-config.mount - Kernel Configuration File System.
[   12.763616] ppdev: user-space parallel port driver
[   12.788815] systemd[1]: systemd-hwdb-update.service - Rebuild Hardware Database skipped, unmet condition check ConditionNeedsUpdate=/etc
[   12.796569] systemd[1]: Starting systemd-random-seed.service - Load/Save OS Random Seed...
[   12.803387] systemd[1]: systemd-tpm2-setup.service - TPM SRK Setup skipped, unmet condition check ConditionSecurity=measured-uki
[   12.811350] systemd[1]: Finished systemd-udev-load-credentials.service - Load udev Rules from Credentials.
[   12.939665] systemd[1]: Finished systemd-modules-load.service - Load Kernel Modules.
[   12.949149] systemd[1]: Finished systemd-tmpfiles-setup-dev-early.service - Create Static Device Nodes in /dev gracefully.
[   12.955758] systemd[1]: Finished keyboard-setup.service - Set the console keyboard layout.
[   12.965264] systemd[1]: Starting systemd-sysctl.service - Apply Kernel Variables...
[   12.970179] systemd[1]: systemd-sysusers.service - Create System Users skipped, no trigger condition checks were met.
[   12.973455] systemd[1]: Starting systemd-timesyncd.service - Network Time Synchronization...
[   13.005265] systemd[1]: Starting systemd-tmpfiles-setup-dev.service - Create Static Device Nodes in /dev...
[   13.009062] systemd[1]: Started systemd-journald.service - Journal Service.
[   13.157025] systemd-journald[271]: Received client request to flush runtime journal.
[   13.291355] pstore: Registered efi_pstore as persistent store backend
[   13.401089] random: crng init done
[   13.484127] sd 0:0:0:0: Attached scsi generic sg0 type 0
[   13.484172] sd 1:0:0:0: Attached scsi generic sg1 type 0
[   13.484210] sd 6:0:0:0: Attached scsi generic sg2 type 0
[   13.540081] usbcore: registered new device driver apple-mfi-fastcharge
[   13.841722] Adding 31249404k swap on /dev/sda2.  Priority:-1 extents:1 across:31249404k SS
[   13.876126] snd_hda_intel 0000:00:1b.0: enabling device (0000 -> 0002)
[   13.876352] Bluetooth: Core ver 2.22
[   13.876635] mc: Linux media interface: v0.10
[   13.876759] EDAC MC0: Giving out device to module i7core_edac.c controller i7 core #0: DEV 0000:ff:03.0 (INTERRUPT)
[   13.876795] EDAC PCI0: Giving out device to module i7core_edac controller EDAC PCI controller: DEV 0000:ff:03.0 (POLLED)
[   13.876814] EDAC i7core: Driver loaded, 1 memory controller(s) found.
[   13.883514] snd_hda_intel 0000:01:00.1: enabling device (0000 -> 0002)
[   13.886316] NET: Registered PF_BLUETOOTH protocol family
[   13.903528] Bluetooth: HCI device and connection manager initialized
[   13.903534] Bluetooth: HCI socket layer initialized
[   13.903537] Bluetooth: L2CAP socket layer initialized
[   13.903550] Bluetooth: SCO socket layer initialized
[   13.905442] at24 0-0050: supply vcc not found, using dummy regulator
[   13.911893] input: PC Speaker as /devices/platform/pcspkr/input/input9
[   13.915963] intel ips 0000:00:1f.6: Non-IPS CPU detected.
[   13.915966] intel ips 0000:00:1f.6: IPS not supported on this CPU
[   13.947140] at24 0-0050: 256 byte spd EEPROM, read-only
[   13.947178] at24 0-0051: supply vcc not found, using dummy regulator
[   13.952397] at24 0-0051: 256 byte spd EEPROM, read-only
[   13.952422] at24 0-0052: supply vcc not found, using dummy regulator
[   13.955439] at24 0-0052: 256 byte spd EEPROM, read-only
[   13.970678] at24 0-0053: supply vcc not found, using dummy regulator
[   13.974206] at24 0-0053: 256 byte spd EEPROM, read-only
[   13.981793] Error: Driver 'pcspkr' is already registered, aborting...
[   13.999395] snd_hda_intel 0000:01:00.1: bound 0000:01:00.0 (ops radeon_audio_component_bind_ops [radeon])
[   14.063267] input: HDA ATI HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:03.0/0000:01:00.1/sound/card1/input10
[   14.069800] videodev: Linux video capture interface: v2.00
[   14.099844] snd_hda_codec_cs420x hdaudioC0D0: CS4206: picked fixup  for codec SSID 106b:0000
[   14.100265] snd_hda_codec_cs420x hdaudioC0D0: autoconfig for CS4206: line_outs=2 (0xa/0xb/0x0/0x0/0x0) type:speaker
[   14.100299] snd_hda_codec_cs420x hdaudioC0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[   14.100323] snd_hda_codec_cs420x hdaudioC0D0:    hp_outs=1 (0x9/0x0/0x0/0x0/0x0)
[   14.100345] snd_hda_codec_cs420x hdaudioC0D0:    mono: mono_out=0x0
[   14.100364] snd_hda_codec_cs420x hdaudioC0D0:    dig-out=0x10/0x0
[   14.100383] snd_hda_codec_cs420x hdaudioC0D0:    inputs:
[   14.100404] snd_hda_codec_cs420x hdaudioC0D0:      Mic=0xd
[   14.100422] snd_hda_codec_cs420x hdaudioC0D0:      Line=0xc
[   14.100440] snd_hda_codec_cs420x hdaudioC0D0:    dig-in=0xf
[   14.109308] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   14.109614] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   14.109894] Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600'
[   14.112144] input: HDA Intel MID Line as /devices/pci0000:00/0000:00:1b.0/sound/card0/input11
[   14.112237] input: HDA Intel MID Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input12
[   14.112351] input: HDA Intel MID SPDIF In as /devices/pci0000:00/0000:00:1b.0/sound/card0/input13
[   14.112910] cfg80211: loaded regulatory.db is malformed or signature is missing/invalid
[   14.314874] kvm_intel: VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL does not work properly. Using workaround
[   14.322156] usbcore: registered new interface driver btusb
[   14.333249] uvcvideo 2-1.1:1.0: Found UVC 1.00 device Built-in iSight (05ac:8502)
[   14.349194] usbcore: registered new interface driver uvcvideo
[   14.373714] applesmc: key=297 fan=3 temp=36 index=35 acc=0 lux=2 kbd=0
[   14.375366] applesmc applesmc.768: hwmon_device_register() is deprecated. Please convert the driver to use hwmon_device_register_with_info().
[   14.389333] usb 1-1.1.2: USB disconnect, device number 7
[   14.414772] ath9k 0000:03:00.0: enabling device (0000 -> 0002)
[   14.422457] EXT4-fs (sdb1): mounted filesystem dd5a3c31-2d2c-4d7d-8300-1ef36536195a r/w with ordered data mode. Quota mode: none.
[   14.430089] Bluetooth: hci0: BCM: chip id 254 build 0518
[   14.431096] Bluetooth: hci0: BCM: product 05ac:8215
[   14.435168] Bluetooth: hci0: BCM: features 0x00
[   14.452163] Bluetooth: hci0: Bluetooth USB Host Controller
[   14.529093] audit: type=1400 audit(1787249528.570:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="QtWebEngineProcess" pid=514 comm="apparmor_parser"
[   14.530915] audit: type=1400 audit(1787249528.570:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="1password" pid=511 comm="apparmor_parser"
[   14.532761] audit: type=1400 audit(1787249528.570:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name=4D6F6E676F444220436F6D70617373 pid=513 comm="apparmor_parser"
[   14.534606] audit: type=1400 audit(1787249528.570:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="Discord" pid=512 comm="apparmor_parser"
[   14.536429] audit: type=1400 audit(1787249528.578:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="buildah" pid=518 comm="apparmor_parser"
[   14.537639] audit: type=1400 audit(1787249528.582:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="busybox" pid=519 comm="apparmor_parser"
[   14.541561] audit: type=1400 audit(1787249528.582:8): apparmor="STATUS" operation="profile_load" profile="unconfined" name="balena-etcher" pid=516 comm="apparmor_parser"
[   14.541564] audit: type=1400 audit(1787249528.586:9): apparmor="STATUS" operation="profile_load" profile="unconfined" name="cam" pid=520 comm="apparmor_parser"
[   14.542423] audit: type=1400 audit(1787249528.586:10): apparmor="STATUS" operation="profile_load" profile="unconfined" name="brave" pid=517 comm="apparmor_parser"
[   14.547511] audit: type=1400 audit(1787249528.586:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="ch-checkns" pid=522 comm="apparmor_parser"
[   14.681129] usb 1-1.1.3: USB disconnect, device number 9
[   14.863380] ath: EEPROM regdomain: 0x37
[   14.863383] ath: EEPROM indicates we should expect a direct regpair map
[   14.863385] ath: Country alpha2 being used: AL
[   14.863386] ath: Regpair used: 0x37
[   14.869563] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   14.893172] ieee80211 phy0: Atheros AR9280 Rev:2 mem=0x00000000d3e7ab68, irq=17
[   14.902445] ath9k 0000:03:00.0 wlp3s0: renamed from wlan0
[   15.164512] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   15.164517] Bluetooth: BNEP filters: protocol multicast
[   15.164522] Bluetooth: BNEP socket layer initialized
[   15.176091] Bluetooth: MGMT ver 1.23
[   15.209489] Bluetooth: RFCOMM TTY layer initialized
[   15.211954] Bluetooth: RFCOMM socket layer initialized
[   15.213585] Bluetooth: RFCOMM ver 1.11
[   15.233289] NET: Registered PF_ALG protocol family
[   15.381841] NET: Registered PF_QIPCRTR protocol family
[   19.182143] tg3 0000:02:00.0 enp2s0: Link is up at 1000 Mbps, full duplex
[   19.182153] tg3 0000:02:00.0 enp2s0: Flow control is on for TX and on for RX
[   22.143510] kauditd_printk_skb: 115 callbacks suppressed
[   22.143515] audit: type=1400 audit(1787249536.186:127): apparmor="STATUS" operation="profile_load" profile="unconfined" name="docker-default" pid=1355 comm="apparmor_parser"
[   22.243206] evm: overlay not supported
[   22.363070] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[   22.371288] Bridge firewalling registered
[   22.558186] Initializing XFRM netlink socket

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v5] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1)
  2026-08-20 18:59                             ` [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Gilles Risch
@ 2026-08-20 19:34                               ` Alex Deucher
  0 siblings, 0 replies; 29+ messages in thread
From: Alex Deucher @ 2026-08-20 19:34 UTC (permalink / raw)
  To: Gilles Risch; +Cc: Erik Gregg, alexander.deucher, amd-gfx, dri-devel

On Thu, Aug 20, 2026 at 2:59 PM Gilles Risch <gilles.risch@gmail.com> wrote:
>
> Good afternoon,
>
> no problem, please find attached my complete dmesg output after a fresh
> reboot. I don't see a bit difference, except that my card is connected
> to a different PCI bus.
>
> I don’t pass any kernel parameters via GRUB and I don’t use a xorg.conf
> configuration file either. Have you connected an additional, external
> display?
> Kind regards,
> Gilles
>
> On 20.08.26 15:24, Alex Deucher wrote:
> > On Thu, Aug 20, 2026 at 8:50 AM Erik Gregg <hank@mowden.top> wrote:
> >> On Mon, 1 Jun 2026 23:19:32 +0200, Gilles Risch <gilles.risch@gmail.com> wrote:
> >>> 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.
> >>>
> >>> Signed-off-by: Gilles Risch <gilles.risch@gmail.com>
> >> I tested this patch on top of 7.1.7-arch1 on a Late 2009 27" iMac11,1
> >> with the Mobility Radeon HD 4850. With nomodeset the machine boots with
> >> a working (efifb) console. On vanilla 7.1.7 without nomodeset the panel
> >> stays completely black (backlight off) and no radeon init is visible in
> >> dmesg over SSH.
> >>
> >> With the patch and without nomodeset, radeon initializes normally per
> >> dmesg, but at the fbcon modeset (~4s) the panel goes blank and then
> >> shows flashing horizontal lines that start at the top and sweep down at
> >> regular intervals. It never recovers. The logs below are from that case,
> >> gathered by logging in blind on the console and running commands blind.
> >>
> >> I tried radeon.dpm=0, radeon.audio=0, video=eDP-1:2560x1440@60 and
> >> radeon.modeset=1, with no change.
> > I wonder if different variants of the board are wired up differently.
> > @Gilles Risch, can you attach your dmesg output as well?  Maybe there
> > are different panels on different variants?

@Erik Gregg Can you narrow down which hunk(s) if this patch are
problematic?  If I had to guess, I'd say it's this hunk:

+       if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
+           dmi_match(DMI_PRODUCT_NAME, "iMac11,1") ||
+           dmi_match(DMI_PRODUCT_NAME, "iMac11,2")) {
+               enc_idx = (dig->linkb) ? 1 : 0;
+               goto assigned;
+       }

Alex

> >
> > Alex
> >
> >> Renderer: AMD RV770 (DRM 2.51.0 / 7.1.7-arch1-1-imac), Mesa 26.1.6
> >>
> >> [    3.028962] radeon 0000:02:00.0: fence driver on ring 3 uses gpu addr 0x0000000020000c0c
> >> [    3.029207] radeon 0000:02:00.0: fence driver on ring 5 uses gpu addr 0x0000000000056230
> >> [    3.030250] radeon 0000:02:00.0: radeon: using MSI.
> >> [    3.030275] [drm] radeon: irq initialized.
> >> [    3.076796] [drm] ring test on 0 succeeded in 1 usecs
> >> [    3.076803] [drm] ring test on 3 succeeded in 2 usecs
> >> [    3.252855] radeon 0000:02:00.0: [drm] ring test on 5 succeeded in 1 usecs
> >> [    3.252861] radeon 0000:02:00.0: [drm] UVD initialized successfully.
> >> [    3.253264] [drm] ib test on ring 0 succeeded in 0 usecs
> >> [    3.253283] [drm] ib test on ring 3 succeeded in 0 usecs
> >> [    3.906199] radeon 0000:02:00.0: [drm] ib test on ring 5 succeeded
> >> [    3.906669] [drm] radeon atom DIG backlight initialized
> >> [    3.906672] radeon 0000:02:00.0: [drm] Radeon Display Connectors
> >> [    3.906674] radeon 0000:02:00.0: [drm] Connector 0:
> >> [    3.906676] radeon 0000:02:00.0: [drm]   DP-1
> >> [    3.906677] radeon 0000:02:00.0: [drm]   HPD2
> >> [    3.906679] radeon 0000:02:00.0: [drm]   DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c
> >> [    3.906682] radeon 0000:02:00.0: [drm]   Encoders:
> >> [    3.906683] radeon 0000:02:00.0: [drm]     DFP1: INTERNAL_UNIPHY
> >> [    3.906685] radeon 0000:02:00.0: [drm] Connector 1:
> >> [    3.906687] radeon 0000:02:00.0: [drm]   eDP-1
> >> [    3.906688] radeon 0000:02:00.0: [drm]   HPD3
> >> [    3.906689] radeon 0000:02:00.0: [drm]   DDC: 0x7e20 0x7e20 0x7e24 0x7e24 0x7e28 0x7e28 0x7e2c 0x7e2c
> >> [    3.906692] radeon 0000:02:00.0: [drm]   Encoders:
> >> [    3.906693] radeon 0000:02:00.0: [drm]     LCD1: INTERNAL_UNIPHY
> >> [    3.906695] radeon 0000:02:00.0: [drm] Connector 2:
> >> [    3.906697] radeon 0000:02:00.0: [drm]   VGA-1
> >> [    3.906698] radeon 0000:02:00.0: [drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
> >> [    3.906701] radeon 0000:02:00.0: [drm]   Encoders:
> >> [    3.906702] radeon 0000:02:00.0: [drm]     CRT1: INTERNAL_KLDSCP_DAC1
> >> [    3.915213] [drm] Initialized radeon 2.51.0 for 0000:02:00.0 on minor 0
> >> [    3.988184] [drm] fb mappable at 0xC0347000
> >> [    3.988187] [drm] vram apper at 0xC0000000
> >> [    3.988188] [drm] size 14745600
> >> [    3.988189] [drm] fb depth is 24
> >> [    3.988190] [drm]    pitch is 10240
> >> [    3.988263] fbcon: radeondrmfb (fb0) is primary device
> >> [    4.026022] radeon 0000:02:00.0: [drm] fb0: radeondrmfb frame buffer device
> >> [    5.366673] systemd[1]: Load Kernel Module drm skipped, unmet condition check ConditionKernelModuleLoaded=!drm
> >> [    8.464118] snd_hda_intel 0000:02:00.1: bound 0000:02:00.0 (ops radeon_audio_component_bind_ops [radeon])
> >>
> >> Happy to test further patches or gather more logs.
> >>
> >> Regards,
> >> Erik
>

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2026-08-21  8:22 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-10 18:54 [PATCH] The Apple iMac11, 1 (late 2009) has an integrated ATI Mobility Radeon HD 4850. This machine suffers from a similar problem as the iMac10, 1 (late 2009) and the iMac11, 2 (mid 2010). This small patch fixes the issue on this machine Gilles Risch
2026-05-16  9:24 ` [PATCH v2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
2026-05-16 18:09   ` Lukas Wunner
2026-05-17 13:53     ` Gilles Risch
2026-05-17 14:05       ` Lukas Wunner
2026-05-16 18:52   ` [PATCH] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems Gilles Risch
2026-05-17  3:28     ` kernel test robot
2026-05-17  5:12     ` kernel test robot
2026-05-18 14:13     ` Alex Deucher
2026-05-18 14:40       ` Gilles Risch
2026-05-18 14:57         ` Alex Deucher
2026-05-18 21:14           ` [PATCH v3 0/2] drm/radeon: fix iMac11,1 dark display Gilles Risch
2026-05-18 21:14           ` [PATCH v3 1/2] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
2026-05-19 13:35             ` Alex Deucher
2026-05-18 21:14           ` [PATCH v3 2/2] drm/radeon: fix eDP resume from suspend on iMac11, 1 / DCE3.1 systems Gilles Risch
2026-05-19 13:42             ` Alex Deucher
2026-05-27 22:20               ` [PATCH v4] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
2026-05-28 18:53                 ` Alex Deucher
2026-05-29  7:43                   ` Gilles Risch
2026-05-29 13:31                     ` Alex Deucher
2026-06-01 21:19                       ` [PATCH v5] " Gilles Risch
2026-07-11  8:41                         ` [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Gilles Risch
2026-08-17  0:43                           ` [PATCH v6] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Gilles Risch
2026-08-17  8:25                             ` [PATCH v6] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Lukas Wunner
2026-08-17 15:09                             ` [PATCH v6] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Alex Deucher
2026-08-20  7:01                         ` [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Erik Gregg
2026-08-20 13:24                           ` [PATCH v5] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Alex Deucher
2026-08-20 18:59                             ` [PATCH v5] drm/radeon: fix internal display on iMac11,1 (RV770/DCE3.1) Gilles Risch
2026-08-20 19:34                               ` [PATCH v5] drm/radeon: fix internal display on iMac11, 1 (RV770/DCE3.1) Alex Deucher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox