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 <[email protected]>
Reviewed-by: Lukas Wunner <[email protected]> > 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
