Re: [PATCH] drm/bridge: dw-hdmi: fix EDID parsing
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
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
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
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
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: