Re: [PATCH] drm/bridge: dw-hdmi: fix EDID parsing

2017-11-10 Thread Luís Mendes
Complementing my previous email information with better dmesg output
(I had booted with my TV monitor off in my previous email):
[8.687907] [drm] Initialized etnaviv 1.1.0 20151214 for
gpu-subsystem on minor 0
[8.689356] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[8.689370] [drm] No driver support for vblank timestamp query.
[8.690733] imx-drm display-subsystem: bound imx-ipuv3-crtc.2 (ops
ipu_crtc_ops [imxdrm])
[8.691023] imx-drm display-subsystem: bound imx-ipuv3-crtc.3 (ops
ipu_crtc_ops [imxdrm])
[8.691264] imx-drm display-subsystem: bound imx-ipuv3-crtc.6 (ops
ipu_crtc_ops [imxdrm])
[8.691507] imx-drm display-subsystem: bound imx-ipuv3-crtc.7 (ops
ipu_crtc_ops [imxdrm])
[8.693485] dwhdmi-imx 12.hdmi: Detected HDMI TX controller
v1.30a with HDCP (DWC HDMI 3D TX PHY)
[8.698677] imx-spdif sound-spdif: snd-soc-dummy-dai <->
2004000.spdif mapping ok
[8.705511] hdmi_set_clk_regenerator:521: dwhdmi-imx 12.hdmi:
hdmi_set_clk_regenerator: fs=48000Hz ftdms=74.250MHz N=6144 cts=74250
[8.706051] dw_hdmi_irq:2146: dwhdmi-imx 12.hdmi: EVENT=plugin
[8.707851] imx-drm display-subsystem: bound 12.hdmi (ops
dw_hdmi_imx_ops [dw_hdmi_imx])
[8.713970] dw_hdmi_connector_get_modes:1917: dwhdmi-imx
12.hdmi: failed to get edid
[8.777150] dw_hdmi_setup:1679: dwhdmi-imx 12.hdmi: Non-CEA
mode used in HDMI
[8.777179] hdmi_av_composer:1495: dwhdmi-imx 12.hdmi: final
pixclk = 173106000
[8.777237] dw_hdmi_phy_power_off:1096: dwhdmi-imx 12.hdmi: PHY
powered down in 0 iterations
[8.817180] dw_hdmi_phy_power_on:1133: dwhdmi-imx 12.hdmi: PHY
PLL locked 1 iterations
[8.817214] dw_hdmi_phy_power_off:1096: dwhdmi-imx 12.hdmi: PHY
powered down in 0 iterations
[8.830554] fsl-asoc-card sound: sgtl5000 <-> 2028000.ssi mapping ok
[8.846647] dw_hdmi_phy_power_on:1133: dwhdmi-imx 12.hdmi: PHY
PLL locked 1 iterations
[8.846701] dw_hdmi_setup:1744: dwhdmi-imx 12.hdmi:
dw_hdmi_setup DVI mode
[8.872936] Console: switching to colour frame buffer device 240x67
[8.959468] imx-drm display-subsystem: fb0:  frame buffer device
[9.042175] [drm] Initialized imx-drm 1.0.0 20120507 for
display-subsystem on minor 1
[   10.078736] dw_hdmi_connector_get_modes:1917: dwhdmi-imx
12.hdmi: failed to get edid
[   11.603962] fec 2188000.ethernet eth0: Link is Up - 1Gbps/Full -
flow control rx/tx
[   11.604795] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   13.690715] dw_hdmi_connector_get_modes:1917: dwhdmi-imx
12.hdmi: failed to get edid
[   13.691803] dw_hdmi_connector_get_modes:1917: dwhdmi-imx
12.hdmi: failed to get edid
[   13.728314] dw_hdmi_phy_power_off:1096: dwhdmi-imx 12.hdmi: PHY
powered down in 0 iterations
[   13.736954] dw_hdmi_setup:1679: dwhdmi-imx 12.hdmi: Non-CEA
mode used in HDMI
[   13.736975] hdmi_av_composer:1495: dwhdmi-imx 12.hdmi: final
pixclk = 6500
[   13.737021] dw_hdmi_phy_power_off:1096: dwhdmi-imx 12.hdmi: PHY
powered down in 0 iterations
[   13.748240] dw_hdmi_phy_power_on:1133: dwhdmi-imx 12.hdmi: PHY
PLL locked 1 iterations
[   13.748269] dw_hdmi_phy_power_off:1096: dwhdmi-imx 12.hdmi: PHY
powered down in 0 iterations
[   13.759760] dw_hdmi_phy_power_on:1133: dwhdmi-imx 12.hdmi: PHY
PLL locked 1 iterations
[   13.759841] dw_hdmi_setup:1744: dwhdmi-imx 12.hdmi:
dw_hdmi_setup DVI mode

On Thu, Nov 9, 2017 at 10:52 AM, Luís Mendes  wrote:
> Hi,
>
> I've just applied the referred individual patch to kernel-4.14-rc5 and
> the EDID isn't loaded. dw-hdmi gets no firmware at all.
>
> #cat /proc/cmdline
> console=ttymxc0,115200 root=/dev/sda2 rw video=HDMI-A-1:1920x1080M@60
> drm.edid_firmware=edid/ktc_edid.bin dw_hdmi.dyndbg=+pfl cma=128M
>
> #zcat /proc/config.gz  | grep EDID
> CONFIG_DRM_LOAD_EDID_FIRMWARE=y
> # CONFIG_FIRMWARE_EDID is not set
>
> #cat /sys/class/drm/card1-HDMI-A-1/edid
> 
>
> #dmesg
> ...
> [8.815238] imx-drm display-subsystem: bound imx-ipuv3-crtc.2 (ops
> ipu_crtc_ops [imxdrm])
> [8.81] imx-drm display-subsystem: bound imx-ipuv3-crtc.3 (ops
> ipu_crtc_ops [imxdrm])
> [8.815832] imx-drm display-subsystem: bound imx-ipuv3-crtc.6 (ops
> ipu_crtc_ops [imxdrm])
> [8.816073] imx-drm display-subsystem: bound imx-ipuv3-crtc.7 (ops
> ipu_crtc_ops [imxdrm])
> [8.818243] dwhdmi-imx 12.hdmi: Detected HDMI TX controller
> v1.30a with HDCP (DWC HDMI 3D TX PHY)
> [8.821780] hdmi_set_clk_regenerator:521: dwhdmi-imx 12.hdmi:
> hdmi_set_clk_regenerator: fs=48000Hz ftdms=74.250MHz N=6144 cts=74250
> [8.831034] imx-drm display-subsystem: bound 12.hdmi (ops
> dw_hdmi_imx_ops [dw_hdmi_imx])
> [8.832218] [drm] Cannot find any crtc or sizes
> [8.839807] [drm] Initialized imx-drm 1.0.0 20120507 for
> display-subsystem on minor 1
>
> Regards,
>

Re: [PATCH] drm/bridge: dw-hdmi: fix EDID parsing

2017-11-10 Thread Luís Mendes
Hi everyone,

I can try that patch and see if it fixes the problem.
Give me a moment so that I can check how it goes.

Luís



On Thu, Nov 9, 2017 at 9:49 AM, Jani Nikula 
wrote:

> On Thu, 09 Nov 2017, Russell King - ARM Linux 
> wrote:
> > On Thu, Nov 09, 2017 at 09:23:18AM +0100, Daniel Vetter wrote:
> >> On Tue, Nov 07, 2017 at 11:27:21AM +, Russell King wrote:
> >> > Parsing the EDID for HDMI and audio information in the get_modes()
> >> > callback is incorrect - this only parses the EDID read from the
> >> > connector, not any override or firmware provided EDID.
> >> >
> >> > The correct place to parse the EDID for these parameters is the
> >> > fill_modes() callback, after we've called the helper.  Move the
> parsing
> >> > there.  This caused problems for Luís Mendes.
> >> >
> >> > Cc: 
> >> > Reported-by: Luís Mendes 
> >> > Tested-by: Luís Mendes 
> >> > Signed-off-by: Russell King 
> >> > ---
> >> >  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 28
> 
> >> >  1 file changed, 24 insertions(+), 4 deletions(-)
> >> >
> >> > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> >> > index 9fe407f49986..2516a1c18a10 100644
> >> > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> >> > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> >> > @@ -1905,10 +1905,7 @@ static int dw_hdmi_connector_get_modes(struct
> drm_connector *connector)
> >> >dev_dbg(hdmi->dev, "got edid: width[%d] x height[%d]\n",
> >> >edid->width_cm, edid->height_cm);
> >> >
> >> > -  hdmi->sink_is_hdmi = drm_detect_hdmi_monitor(edid);
> >> > -  hdmi->sink_has_audio = drm_detect_monitor_audio(edid);
> >> >drm_mode_connector_update_edid_property(connector, edid);
> >> > -  cec_notifier_set_phys_addr_from_edid(hdmi->cec_notifier,
> edid);
> >> >ret = drm_add_edid_modes(connector, edid);
> >> >/* Store the ELD */
> >> >drm_edid_to_eld(connector, edid);
> >> > @@ -1920,6 +1917,29 @@ static int dw_hdmi_connector_get_modes(struct
> drm_connector *connector)
> >> >return ret;
> >> >  }
> >> >
> >> > +static int dw_hdmi_connector_fill_modes(struct drm_connector
> *connector,
> >> > +  uint32_t maxX, uint32_t maxY)
> >> > +{
> >> > +  struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi,
> >> > +  connector);
> >> > +  int ret;
> >> > +
> >> > +  ret = drm_helper_probe_single_connector_modes(connector, maxX,
> maxY);
> >> > +
> >> > +  if (connector->edid_blob_ptr) {
> >> > +  struct edid *edid = (void *)connector->edid_blob_ptr->
> data;
> >> > +
> >> > +  hdmi->sink_is_hdmi = drm_detect_hdmi_monitor(edid);
> >> > +  hdmi->sink_has_audio = drm_detect_monitor_audio(edid);
> >> > +  cec_notifier_set_phys_addr_from_edid(hdmi->cec_notifier,
> edid);
> >> > +  } else {
> >> > +  hdmi->sink_is_hdmi = false;
> >> > +  hdmi->sink_has_audio = false;
> >> > +  }
> >> > +
> >> > +  return ret;
> >> > +}
> >> > +
> >> >  static void dw_hdmi_connector_force(struct drm_connector *connector)
> >> >  {
> >> >struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi,
> >> > @@ -1933,7 +1953,7 @@ static void dw_hdmi_connector_force(struct
> drm_connector *connector)
> >> >  }
> >> >
> >> >  static const struct drm_connector_funcs dw_hdmi_connector_funcs = {
> >> > -  .fill_modes = drm_helper_probe_single_connector_modes,
> >> > +  .fill_modes = dw_hdmi_connector_fill_modes,
> >>
> >> Papering over helper functions shouldn't be necessary, except the helper
> >> functions not handling the override edid is a known issue. Jani Nikula
> is
> >> working on a proper fix, please coordinate with him.
> >
> > So, what you're basically saying is that fixing real bugs that affect
> > users is not something that DRM people want.  That's fine, I'll ignore
> > people who come to me for help with DRM bugs in future then because
> > it's obviously a dead loss.
>
> We may already have fixed the bug in drm-next at the proper
> layer. Please see my other mail.
>
> BR,
> Jani.
>
> --
> Jani Nikula, Intel Open Source Technology Center
>
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH] drm/bridge: dw-hdmi: fix EDID parsing

2017-11-10 Thread Luís Mendes
I've verified that dw_hdmi tracks when there is a monitor connected or
not and reacts to it, there are logs that are generated when the
TV/Monitor goes into standby and this is true even if DDC cannot be
read.
My original problem is that if the EDID data cannot be read then
dw_hdmi will enter DVI mode confiuration, with which I cannot get
sound, other than that the driver works properly.

On Thu, Nov 9, 2017 at 4:28 PM, Russell King - ARM Linux
 wrote:
> On Thu, Nov 09, 2017 at 05:01:35PM +0200, Jani Nikula wrote:
>> On Thu, 09 Nov 2017, Luís Mendes  wrote:
>> > Hi Jani,
>> >
>> > I tried:
>> > git clone git://people.freedesktop.org/~airlied/linux -b drm-next
>> > --depth=1 --single-branch
>> >
>> > I got this:
>> > EDID isn't loaded from file
>> >
>> > # cat /proc/cmdline
>> > console=ttymxc0,115200 root=/dev/sda2 rw video=HDMI-A-1:1920x1080M@60
>> > drm.edid_firmware=edid/ktc_edid.bin dw_hdmi.dyndbg=+pfl cma=128M
>>
>> Please try adding D at the end of your video= parameter to force
>> connector on. Otherwise it'll do a ddc probe which apparently fails with
>> your display.
>
> I do hope you're not converting dw-hdmi to use DDC probing and having it
> ignore the hotplug signal.  dw-hdmi has to work with AV setups, which
> include an AV receiver, and that includes the AV receiver modifying the
> HDMI data when:
>
> (a) the TV is turned off or on.
> (b) the AV receiver is placed into or out of standby
>
> and it informs sources by pulsing the HDMI HPD signal, as per the HDMI
> specification.  Proving the presence of DDC as a means of detection
> won't pick up on these changes, and will cause a regression in the
> driver.
>
> --
> RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
> FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
> According to speedtest.net: 8.21Mbps down 510kbps up
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH] drm/bridge: dw-hdmi: fix EDID parsing

2017-11-10 Thread Luís Mendes
Hi,

I've just applied the referred individual patch to kernel-4.14-rc5 and
the EDID isn't loaded. dw-hdmi gets no firmware at all.

#cat /proc/cmdline
console=ttymxc0,115200 root=/dev/sda2 rw video=HDMI-A-1:1920x1080M@60
drm.edid_firmware=edid/ktc_edid.bin dw_hdmi.dyndbg=+pfl cma=128M

#zcat /proc/config.gz  | grep EDID
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
# CONFIG_FIRMWARE_EDID is not set

#cat /sys/class/drm/card1-HDMI-A-1/edid


#dmesg
...
[8.815238] imx-drm display-subsystem: bound imx-ipuv3-crtc.2 (ops
ipu_crtc_ops [imxdrm])
[8.81] imx-drm display-subsystem: bound imx-ipuv3-crtc.3 (ops
ipu_crtc_ops [imxdrm])
[8.815832] imx-drm display-subsystem: bound imx-ipuv3-crtc.6 (ops
ipu_crtc_ops [imxdrm])
[8.816073] imx-drm display-subsystem: bound imx-ipuv3-crtc.7 (ops
ipu_crtc_ops [imxdrm])
[8.818243] dwhdmi-imx 12.hdmi: Detected HDMI TX controller
v1.30a with HDCP (DWC HDMI 3D TX PHY)
[8.821780] hdmi_set_clk_regenerator:521: dwhdmi-imx 12.hdmi:
hdmi_set_clk_regenerator: fs=48000Hz ftdms=74.250MHz N=6144 cts=74250
[8.831034] imx-drm display-subsystem: bound 12.hdmi (ops
dw_hdmi_imx_ops [dw_hdmi_imx])
[8.832218] [drm] Cannot find any crtc or sizes
[8.839807] [drm] Initialized imx-drm 1.0.0 20120507 for
display-subsystem on minor 1

Regards,
Luís Mendes

On Thu, Nov 9, 2017 at 9:51 AM, Luís Mendes  wrote:
> Hi everyone,
>
> I can try that patch and see if it fixes the problem.
> Give me a moment so that I can check how it goes.
>
> Luís
>
>
>
> On Thu, Nov 9, 2017 at 9:49 AM, Jani Nikula 
> wrote:
>>
>> On Thu, 09 Nov 2017, Russell King - ARM Linux 
>> wrote:
>> > On Thu, Nov 09, 2017 at 09:23:18AM +0100, Daniel Vetter wrote:
>> >> On Tue, Nov 07, 2017 at 11:27:21AM +, Russell King wrote:
>> >> > Parsing the EDID for HDMI and audio information in the get_modes()
>> >> > callback is incorrect - this only parses the EDID read from the
>> >> > connector, not any override or firmware provided EDID.
>> >> >
>> >> > The correct place to parse the EDID for these parameters is the
>> >> > fill_modes() callback, after we've called the helper.  Move the
>> >> > parsing
>> >> > there.  This caused problems for Luís Mendes.
>> >> >
>> >> > Cc: 
>> >> > Reported-by: Luís Mendes 
>> >> > Tested-by: Luís Mendes 
>> >> > Signed-off-by: Russell King 
>> >> > ---
>> >> >  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 28
>> >> > 
>> >> >  1 file changed, 24 insertions(+), 4 deletions(-)
>> >> >
>> >> > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
>> >> > b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
>> >> > index 9fe407f49986..2516a1c18a10 100644
>> >> > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
>> >> > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
>> >> > @@ -1905,10 +1905,7 @@ static int dw_hdmi_connector_get_modes(struct
>> >> > drm_connector *connector)
>> >> >dev_dbg(hdmi->dev, "got edid: width[%d] x height[%d]\n",
>> >> >edid->width_cm, edid->height_cm);
>> >> >
>> >> > -  hdmi->sink_is_hdmi = drm_detect_hdmi_monitor(edid);
>> >> > -  hdmi->sink_has_audio = drm_detect_monitor_audio(edid);
>> >> >drm_mode_connector_update_edid_property(connector, edid);
>> >> > -  cec_notifier_set_phys_addr_from_edid(hdmi->cec_notifier,
>> >> > edid);
>> >> >ret = drm_add_edid_modes(connector, edid);
>> >> >/* Store the ELD */
>> >> >drm_edid_to_eld(connector, edid);
>> >> > @@ -1920,6 +1917,29 @@ static int dw_hdmi_connector_get_modes(struct
>> >> > drm_connector *connector)
>> >> >return ret;
>> >> >  }
>> >> >
>> >> > +static int dw_hdmi_connector_fill_modes(struct drm_connector
>> >> > *connector,
>> >> > +  uint32_t maxX, uint32_t maxY)
>> >> > +{
>> >> > +  struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi,
>> >> > +  connector);
>> >> > +  int ret;
>> >> > +
>> >> > +  ret = drm_helper_probe_single_connector_modes(connector, maxX,
>> >> > maxY);
>> >> > +
&

Re: [PATCH] drm/bridge: dw-hdmi: fix EDID parsing

2017-11-10 Thread Luís Mendes
Hi Jani,

I tried:
git clone git://people.freedesktop.org/~airlied/linux -b drm-next
--depth=1 --single-branch

I got this:
EDID isn't loaded from file

# cat /proc/cmdline
console=ttymxc0,115200 root=/dev/sda2 rw video=HDMI-A-1:1920x1080M@60
drm.edid_firmware=edid/ktc_edid.bin dw_hdmi.dyndbg=+pfl cma=128M

#zcat /proc/config.gz  | grep EDID
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
# CONFIG_FIRMWARE_EDID is not set

#cat /sys/class/drm/card1-HDMI-A-1/edid


dmesg output follows below...

Regards,
Luís Mendes

[7.381500] dwhdmi-imx 12.hdmi: Detected HDMI TX controller
v1.30a with HDCP (DWC HDMI 3D TX PHY)
[7.409108] hdmi_set_clk_regenerator:521: dwhdmi-imx 12.hdmi:
hdmi_set_clk_regenerator: fs=48000Hz ftdms=74.250MHz N=6144 cts=74250
[7.411001] dw_hdmi_irq:2146: dwhdmi-imx 12.hdmi: EVENT=plugin
[7.421524] imx-drm display-subsystem: bound 12.hdmi (ops
dw_hdmi_imx_ops [dw_hdmi_imx])
[7.481948] dw_hdmi_connector_get_modes:1917: dwhdmi-imx
12.hdmi: failed to get edid
[7.537018] fsl-asoc-card sound: sgtl5000 <-> 2028000.ssi mapping ok
[7.549254] [ cut here ]
[7.549303] WARNING: CPU: 2 PID: 219 at
drivers/gpu/drm/drm_vblank.c:303
drm_crtc_accurate_vblank_count+0x80/0x84
[7.549308] This function requires support for accurate vblank timestamps.
[7.549312] Modules linked in: snd_soc_imx_spdif(+)
snd_soc_fsl_asoc_card(+) snd_ac97_codec coda videobuf2_dma_contig
imx_vdoa v4l2_mem2mem videobuf2_vmalloc videobuf2_memops dw_hdmi_imx
imxdrm(+) dw_hdmi cec etnaviv imx_ipu_v3 binfmt_misc parport_pc ppdev
lp parport
[7.549396] CPU: 2 PID: 219 Comm: systemd-udevd Tainted: GW
  4.14.0-rc7-gd65d313-dirty #1
[7.549401] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[7.549405] Backtrace:
[7.549427] [] (dump_backtrace) from []
(show_stack+0x18/0x1c)
[7.549436]  r7:c106eed0 r6: r5:600d0193 r4:c106eed0
[7.549465] [] (show_stack) from []
(dump_stack+0xac/0xd8)
[7.549486] [] (dump_stack) from [] (__warn+0xec/0x104)
[7.549496]  r10:edf56e00 r9:c0527bd8 r8:012f r7:0009
r6:c0d4fc08 r5:
[7.549501]  r4:edd15688 r3:
[7.549514] [] (__warn) from []
(warn_slowpath_fmt+0x40/0x48)
[7.549523]  r9:edc2f3e0 r8:0001 r7:edc2f000 r6:
r5:edc2f000 r4:c0d50064
[7.549535] [] (warn_slowpath_fmt) from []
(drm_crtc_accurate_vblank_count+0x80/0x84)
[7.549540]  r3: r2:c0d50064
[7.549544]  r4:edc2f000
[7.549553] [] (drm_crtc_accurate_vblank_count) from
[] (drm_crtc_arm_vblank_event+0x30/0x64)
[7.549560]  r7:edc2f000 r6:0001 r5:edc2f000 r4:eeb3e400
[7.549614] [] (drm_crtc_arm_vblank_event) from
[] (ipu_crtc_atomic_begin+0x50/0x80 [imxdrm])
[7.549620]  r5:eeb3e680 r4:edc2b018
[7.549653] [] (ipu_crtc_atomic_begin [imxdrm]) from
[] (drm_atomic_helper_commit_planes+0x8c/0x2a8)
[7.549660]  r5:eeb3e680 r4:0018
[7.549682] [] (drm_atomic_helper_commit_planes) from
[] (imx_drm_atomic_commit_tail+0x30/0x144 [imxdrm])
[7.549691]  r10:edf56e00 r9:edc2f3e0 r8:edfafdf8 r7:edc2f000
r6:eeb3e680 r5:bf0ab088
[7.549695]  r4:eeb3e680
[7.549723] [] (imx_drm_atomic_commit_tail [imxdrm]) from
[] (commit_tail+0x48/0x8c)
[7.549732]  r10:edf56e00 r9:edc2f3e0 r8:edfafdf8 r7:edc2f000
r6: r5:bf0ab088
[7.549737]  r4:eeb3e680 r3:bf0a8174
[7.549762] [] (commit_tail) from []
(drm_atomic_helper_commit+0x140/0x148)
[7.549780]  r5: r4:eeb3e680
[7.549820] [] (drm_atomic_helper_commit) from
[] (drm_atomic_commit+0x54/0x60)
[7.549843]  r7:eeb3e680 r6:edc2f000 r5:eeb3e680 r4:
[7.549865] [] (drm_atomic_commit) from []
(restore_fbdev_mode_atomic+0x19c/0x1f8)
[7.549874]  r7:eeb3e680 r6:0001 r5:003f r4:00a0
[7.549886] [] (restore_fbdev_mode_atomic) from
[] (restore_fbdev_mode+0x30/0x168)
[7.549895]  r10:edf57800 r9:c17e5a70 r8: r7:edf56e00
r6:c17e5bc8 r5:edf56ed0
[7.549899]  r4:edf56e00
[7.549914] [] (restore_fbdev_mode) from []
(drm_fb_helper_restore_fbdev_mode_unlocked.part.8+0x28/0x7c)
[7.549925]  r10:edf57800 r9:c17e5a70 r8: r7:c1022ed8
r6:c17e5bc8 r5:edf56ed0
[7.549931]  r4:edf56e00
[7.549943] []
(drm_fb_helper_restore_fbdev_mode_unlocked.part.8) from []
(drm_fb_helper_set_par+0x5c/0x8c)
[7.549950]  r7:c1022ed8 r6:c17e5bc8 r5:edfe3400 r4:
[7.549972] [] (drm_fb_helper_set_par) from []
(fbcon_init+0x564/0x5b0)
[7.549977]  r5:edfe3400 r4:ee808c00
[7.549992] [] (fbcon_init) from []
(visual_init+0xcc/0x114)
[7.550001]  r10:0001 r9:ee808c00 r8:c17ebfb4 r7:
r6:ee808e08 r5:
[7.550005]  r4:ee808c00
[7.550016] [] (visual_init) from []
(do_bind_con_driver+0x1b4/0x394)
[7.550023]  r7: r6: r5:c17ebea0 r4:c0b3e0dc
[7.550033] [] (do_bind_con_driver) from []
(do_take_over_console+0x15c/0x1c4)
[7.550041]  r10:0001 r9:003e r8: r7:c17ebeb0
r6: