On Sun, Aug 02, 2020 at 01:05:37PM +0200, [email protected] wrote:
> >Synopsis:    On boot, screen remains black after radeondrm driver initializes
> >Category:    kernel/graphics/firmware
> >Environment:
>       System      : OpenBSD 6.7
>       Details     : OpenBSD 6.7-current (GENERIC.MP) #0: Sun Aug  2 09:57:37 
> CEST 2020
>                        
> [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> 
>       Architecture: OpenBSD.amd64
>       Machine     : amd64
> 
> >Description:
> Installing an OpenBSD snapshot the first time on this iMac Intel Core i3
> machine.  After the radaeon firmware package has been installed and you
> reboot the system, the screen remains black after the radeondrm driver
> initializes.  The system as such comes up fine - SSH possible.
> 
> >How-To-Repeat:
> Install an OpenBSD.amd64 or OpenBSD.i386 snapshot and reboot the system
> again after the radeon firmware package has been installed.
> 
> >Fix:
> No fix found yet.
> Workaround;
> Disable the radaeondrm driver so system boots without accelerated graphics 
> mode.

Try this.  RV730 is DCE3.2

Index: sys/dev/pci/drm/radeon/atombios_encoders.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/drm/radeon/atombios_encoders.c,v
retrieving revision 1.15
diff -u -p -U6 -r1.15 atombios_encoders.c
--- sys/dev/pci/drm/radeon/atombios_encoders.c  8 Jun 2020 04:48:15 -0000       
1.15
+++ sys/dev/pci/drm/radeon/atombios_encoders.c  2 Aug 2020 16:18:23 -0000
@@ -2191,13 +2191,14 @@ int radeon_atom_pick_dig_encoder(struct 
        /*
         * On DCE32 any encoder can drive any block so usually just use crtc id,
         * but Apple thinks different at least on iMac10,1, so there use linkb,
         * otherwise the internal eDP panel will stay dark.
         */
        if (ASIC_IS_DCE32(rdev)) {
-               if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1"))
+               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;
 
                goto assigned;
        }

Reply via email to