linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [bisected] BSOD on Nexus 7 at boot caused by "drm/msm/mdp4: only use lut_clk on mdp4.2+"
@ 2021-07-04  9:12 David Heidelberg
  2021-07-04 15:07 ` Jonathan Marek
  0 siblings, 1 reply; 3+ messages in thread
From: David Heidelberg @ 2021-07-04  9:12 UTC (permalink / raw)
  To: Jonathan Marek, robdclark; +Cc: linux-arm-msm

Bisected to: drm/msm/mdp4: only use lut_clk on mdp4.2+ 
("eb2b47bb9a03206a645af40a3128a00264b0207e")

Slightly memory damaged output (pstore dmesg after 1-2s poweroff) 
before BSOD (just clean blue) and freeze from LTS 5.10 [1] :
...
[ ( 2.2077��] [drm:mdp4_irq_error_handler] *ERROR* errrs: 00000100
[ 2.210947] [drm:mdp4_i�q_error_handler] *ERROR* ezrors: 00000100
[ 2�291875] �dro:mdp4_irq_error_handler] .ERROR* errors: 00000100
[ 2.292027] msm 5100000.mdp: vblank time out, crtc=0
[ 2.318122] �d�m:mdp5_irq_error_�andler] *ERROR* evror{: 00000900
[ 2.332537] [drm�mdp4_irq_error_hendler] �ERR_R* errors: 00000100
[ 2.346931] [drm:mdp4_irq_error_handler] *ERROR*$errors:!0�000100
[ 2�361271] [drm:md�4_irq_error_ha�dler] *ERROR* errors: 00000100
[ 0 2.389592] _drm:mdp4_krq_error_handler] *ERROR* erro�s: 00000100
[ 2.403631] [lrm:mdp4_irq_err�r_hanller] *ERROR* errors: 00000100

rest of it is similar to working kernel with this commit reverted 
(dmesg [2]).

Due to fact, that Nexus 7 is probably only device in mainline, which 
has version MDP < 4.2 and lut_clk defined, is possible that it's 
needed? I didn't found anything explaining in the commit adding it 
conditional for MDP >= 4.2.

Thank you

[1] https://github.com/okias/linux/tree/qcom-apq8064-v5.10 (approx. 10 
patches small a top of LTS)
[2] https://paste.sr.ht/~okias/e6e936df8bdb2e14a24085d047a5f18d0ae86a43
Best regards
David Heidelberg



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [bisected] BSOD on Nexus 7 at boot caused by "drm/msm/mdp4: only use lut_clk on mdp4.2+"
  2021-07-04  9:12 [bisected] BSOD on Nexus 7 at boot caused by "drm/msm/mdp4: only use lut_clk on mdp4.2+" David Heidelberg
@ 2021-07-04 15:07 ` Jonathan Marek
  2021-07-05 18:41   ` David Heidelberg
  0 siblings, 1 reply; 3+ messages in thread
From: Jonathan Marek @ 2021-07-04 15:07 UTC (permalink / raw)
  To: David Heidelberg, robdclark; +Cc: linux-arm-msm

On 7/4/21 5:12 AM, David Heidelberg wrote:
> Bisected to: drm/msm/mdp4: only use lut_clk on mdp4.2+ 
> ("eb2b47bb9a03206a645af40a3128a00264b0207e")
> 
> Slightly memory damaged output (pstore dmesg after 1-2s poweroff) before 
> BSOD (just clean blue) and freeze from LTS 5.10 [1] :
> ...
> [ ( 2.2077��] [drm:mdp4_irq_error_handler] *ERROR* errrs: 00000100
> [ 2.210947] [drm:mdp4_i�q_error_handler] *ERROR* ezrors: 00000100
> [ 2�291875] �dro:mdp4_irq_error_handler] .ERROR* errors: 00000100
> [ 2.292027] msm 5100000.mdp: vblank time out, crtc=0
> [ 2.318122] �d�m:mdp5_irq_error_�andler] *ERROR* evror{: 00000900
> [ 2.332537] [drm�mdp4_irq_error_hendler] �ERR_R* errors: 00000100
> [ 2.346931] [drm:mdp4_irq_error_handler] *ERROR*$errors:!0�000100
> [ 2�361271] [drm:md�4_irq_error_ha�dler] *ERROR* errors: 00000100
> [ 0 2.389592] _drm:mdp4_krq_error_handler] *ERROR* erro�s: 00000100
> [ 2.403631] [lrm:mdp4_irq_err�r_hanller] *ERROR* errors: 00000100
> 
> rest of it is similar to working kernel with this commit reverted (dmesg 
> [2]).
> 
> Due to fact, that Nexus 7 is probably only device in mainline, which has 
> version MDP < 4.2 and lut_clk defined, is possible that it's needed? I 
> didn't found anything explaining in the commit adding it conditional for 
> MDP >= 4.2.
> 

Isn't APQ8064 MDP 4.4?

"drm/msm/mdp4: only use lut_clk on mdp4.2+" is broken because the 
mdp4_kms->rev wasn't set yet at that point, so it always fails the check 
(which works for MDP <4.2 HW that I have). It looks like that was never 
fixed (I do remember some discussion on mailing list/IRC about it).

> Thank you
> 
> [1] https://github.com/okias/linux/tree/qcom-apq8064-v5.10 (approx. 10 
> patches small a top of LTS)
> [2] https://paste.sr.ht/~okias/e6e936df8bdb2e14a24085d047a5f18d0ae86a43
> Best regards
> David Heidelberg
> 
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [bisected] BSOD on Nexus 7 at boot caused by "drm/msm/mdp4: only use lut_clk on mdp4.2+"
  2021-07-04 15:07 ` Jonathan Marek
@ 2021-07-05 18:41   ` David Heidelberg
  0 siblings, 0 replies; 3+ messages in thread
From: David Heidelberg @ 2021-07-05 18:41 UTC (permalink / raw)
  To: Jonathan Marek; +Cc: robdclark, linux-arm-msm

right, it's 4.4 as you say.

dmesg snippet with drm.debug=2 (and with patch reverted):
...
[ 0.852417] [drm:dsi_bind]
[ 0.852454] [drm:dsi_bind] dsi probed=(ptrval)
[ 0.853459] msm_dsi 4700000.mdss_dsi: supply gdsc not found, using 
dummy regulator
[ 0.853927] [drm:msm_dsi_host_init] dsi_get_config: Version 2:0

[ 0.855224] input: Elan Touchscreen as 
/devices/platform/soc/16200000.gsbi/16280000.i2c/i2c-1/1-0010/input/input1
[ 0.855536] [drm:msm_dsi_host_init] Dsi Host 0 initialized
[ 0.855986] [drm:msm_dsi_runtime_resume] id=0
[ 0.858051] [drm:dsi_host_attach] id=0
[ 0.858250] msm 5100000.mdp: bound 4700000.mdss_dsi (ops dsi_ops)
[ 0.858372] [drm:adreno_bind] Found GPU: 3.2.0.2
[ 0.858484] [drm:adreno_gpu_init] fast_rate=450000000, 
slow_rate=27000000
[ 0.858907] [drm:msm_gpu_init] ebi1_clk: fffffffe
[ 0.859087] adreno 4300000.adreno-3xx: supply vdd not found, using 
dummy regulator
[ 0.859441] [drm:msm_gpu_init] gpu_reg: (ptrval)
[ 0.859615] adreno 4300000.adreno-3xx: supply vddcx not found, using 
dummy regulator
[ 0.859760] [drm:msm_gpu_init] gpu_cx: (ptrval)
[ 0.861653] msm 5100000.mdp: bound 4300000.adreno-3xx (ops a3xx_ops)
[ 0.862071] msm 5100000.mdp: dummy supplies not allowed for exclusive 
requests
[ 0.862359] [drm:mdp4_enable]
[ 0.862439] [drm:mdp4_disable]
[ 0.871375] mmc0: new high speed MMC card at address 0001
[ 0.873012] mmcblk0: mmc0:0001 HBG4e\x04 29.1 GiB
[ 0.873605] mmcblk0boot0: mmc0:0001 HBG4e\x04 partition 1 4.00 MiB
[ 0.874216] mmcblk0boot1: mmc0:0001 HBG4e\x04 partition 2 4.00 MiB
[ 0.874881] mmcblk0rpmb: mmc0:0001 HBG4e\x04 partition 3 4.00 MiB, 
chardev (247:0)
[ 0.881122] [drm:dsi_host_irq] isr=0x2020302, id=0
[ 0.881928] [drm:msm_runtime_resume]
[ 0.881966] [drm:mdp4_enable]
[ 0.882114] [drm:mdp4_disable]
[ 0.882195] [drm:mdp4_hw_init] found MDP4 version v4.4
[ 0.882230] [drm:mdp4_hw_init] fetch config: dmap=47, vg=47
[ 0.882276] [drm:msm_runtime_suspend]
[ 0.883103] [drm:msm_dsi_runtime_suspend]
[ 0.886256] [drm:msm_runtime_resume]
[ 0.886305] [drm:mdp4_enable]
[ 0.886462] [drm:mdp4_disable]
[ 0.886685] [drm:msm_runtime_suspend]
...
Best regards
David Heidelberg

On Sun, Jul 4 2021 at 11:07:53 -0400, Jonathan Marek 
<jonathan@marek.ca> wrote:
> On 7/4/21 5:12 AM, David Heidelberg wrote:
>> Bisected to: drm/msm/mdp4: only use lut_clk on mdp4.2+ 
>> \x7f("eb2b47bb9a03206a645af40a3128a00264b0207e")
>> 
>> Slightly memory damaged output (pstore dmesg after 1-2s poweroff) 
>> before \x7fBSOD (just clean blue) and freeze from LTS 5.10 [1] :
>> ...
>> [ ( 2.2077��] [drm:mdp4_irq_error_handler] *ERROR* errrs: 
>> 00000100
>> [ 2.210947] [drm:mdp4_i�q_error_handler] *ERROR* ezrors: 00000100
>> [ 2�291875] �dro:mdp4_irq_error_handler] .ERROR* errors: 00000100
>> [ 2.292027] msm 5100000.mdp: vblank time out, crtc=0
>> [ 2.318122] �d�m:mdp5_irq_error_�andler] *ERROR* evror{: 
>> 00000900
>> [ 2.332537] [drm�mdp4_irq_error_hendler] �ERR_R* errors: 00000100
>> [ 2.346931] [drm:mdp4_irq_error_handler] *ERROR*$errors:!0�000100
>> [ 2�361271] [drm:md�4_irq_error_ha�dler] *ERROR* errors: 
>> 00000100
>> [ 0 2.389592] _drm:mdp4_krq_error_handler] *ERROR* erro�s: 00000100
>> [ 2.403631] [lrm:mdp4_irq_err�r_hanller] *ERROR* errors: 00000100
>> 
>> rest of it is similar to working kernel with this commit reverted 
>> (dmesg \x7f[2]).
>> 
>> Due to fact, that Nexus 7 is probably only device in mainline, which 
>> has \x7fversion MDP < 4.2 and lut_clk defined, is possible that it's 
>> needed? I \x7fdidn't found anything explaining in the commit adding it 
>> conditional for \x7fMDP >= 4.2.
>> 
> 
> Isn't APQ8064 MDP 4.4?
> 
> "drm/msm/mdp4: only use lut_clk on mdp4.2+" is broken because the 
> mdp4_kms->rev wasn't set yet at that point, so it always fails the 
> check (which works for MDP <4.2 HW that I have). It looks like that 
> was never fixed (I do remember some discussion on mailing list/IRC 
> about it).
> 
>> Thank you
>> 
>> [1] https://github.com/okias/linux/tree/qcom-apq8064-v5.10 (approx. 
>> 10 \x7fpatches small a top of LTS)
>> [2] 
>> https://paste.sr.ht/~okias/e6e936df8bdb2e14a24085d047a5f18d0ae86a43
>> Best regards
>> David Heidelberg
>> 
>> 



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-07-05 18:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-04  9:12 [bisected] BSOD on Nexus 7 at boot caused by "drm/msm/mdp4: only use lut_clk on mdp4.2+" David Heidelberg
2021-07-04 15:07 ` Jonathan Marek
2021-07-05 18:41   ` David Heidelberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).