On Mon, 3 Aug 2020 02:24:47 +1000
Jonathan Gray <[email protected]> wrote:

> 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

Thanks, that looked very promising.

I've double checked that with your diff it reaches the desired branch
now, but unfortunately the screen still remains dark :-(  enc_idx gets
set to 1.

What I'm getting now on a regular base is this error:

root on wd0a (b4216fe12e2ef06e.a) swap on wd0b dump on wd0b
initializing kernel modesetting (RV730 0x1002:0x9488 0x106B:0x00B6
0x00). radeondrm0: 1024x768, 32bpp
wsdisplay0 at radeondrm0 mux 1: console (std, vt100 emulation), using
wskbd0 wsdisplay0: screen 1-5 added (std, vt100 emulation)
[drm] *ERROR* clock recovery reached max voltage
[drm] *ERROR* clock recovery failed
[drm] *ERROR* crtc 42: Can't calculate constants, dotclock = 0!

This error seems to be common when you browse the net, but I have
no idea to what it's exactly related in my case ... Hmm.

> 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