backlight lcd crash [ Pine64 ]

125 views
Skip to first unread message

@lex

unread,
Jan 8, 2020, 7:19:48 PM1/8/20
to linux-sunxi
I am doing some experiments with LCD7" with the kernel 5.4.8 and occasionally i get this crash.
Can someone explain or give some directions on how to find the offending error based on the crash log?  Any idea what could be causing this?

Jan  8 23:49:43 pine64-plus kernel: [ 5144.681388] BUG: scheduling while atomic: gsd-backlight-h/3978/0x00000002
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688221] Modules linked in: fuse rfkill dw_hdmi_i2s_audio snd_soc_hdmi_codec panel_feiyang_fy07024di26a30d sunxi_cedrus(C) v4l2_mem2mem crct10dif_ce sun8i_drm_hdmi videobuf2_dma_contig snd_soc_spdif_tx dw_hdmi videobuf2_memops axp20x_adc cec videobuf2_v4l2 snd_soc_simple_card sunxi_cir axp20x_usb_power axp20x_ac_power snd_soc_simple_card_utils pinctrl_axp209 axp20x_battery phy_sun6i_mipi_dphy rc_core videobuf2_common mali(O) sun6i_mipi_dsi sun50i_codec_analog videodev sun8i_adda_pr_regmap crc_ccitt goodix sun8i_codec sun4i_i2s mc sun4i_drm sun4i_frontend sun4i_tcon sun8i_mixer sun8i_tcon_top pwm_bl ip_tables x_tables ipv6 nf_defrag_ipv6
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688331] CPU: 3 PID: 3978 Comm: gsd-backlight-h Tainted: G         C O      5.4.8 #1
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688334] Hardware name: Pine64+ (DT)
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688339] Call trace:
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688357]  dump_backtrace+0x0/0x150
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688364]  show_stack+0x14/0x20
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688374]  dump_stack+0xb4/0xd8
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688384]  __schedule_bug+0x50/0x70
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688392]  __schedule+0x4bc/0x510
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688397]  schedule+0x40/0xd0
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688403]  schedule_preempt_disabled+0x20/0x38
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688410]  __mutex_lock.isra.10+0x150/0x568
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688416]  __mutex_lock_slowpath+0x10/0x18
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688422]  mutex_lock+0x38/0x40
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688430]  clk_prepare_lock+0x40/0xa0
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688437]  clk_get_rate+0x1c/0x70
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688446]  sun4i_pwm_apply+0xb4/0x450
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688453]  pwm_apply_state+0x64/0x1e8
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688464]  pwm_backlight_update_status+0xb8/0x198 [pwm_bl]
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688473]  backlight_device_set_brightness+0x64/0xb8
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688480]  brightness_store+0x78/0x90
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688488]  dev_attr_store+0x14/0x28
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688496]  sysfs_kf_write+0x3c/0x50
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688501]  kernfs_fop_write+0x144/0x230
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688511]  __vfs_write+0x18/0x38
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688517]  vfs_write+0xb4/0x1e0
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688524]  ksys_write+0x68/0xf8
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688530]  __arm64_sys_write+0x18/0x20
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688540]  el0_svc_common.constprop.2+0x64/0x160
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688547]  el0_svc_handler+0x20/0x80
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688552]  el0_svc+0x8/0xc
Jan  8 23:49:43 pine64-plus kernel: [ 5144.688694] BUG: scheduling while atomic: gsd-backlight-h/3978/0x00000000
Jan  8 23:49:43 pine64-plus kernel: [ 5144.695480] Modules linked in: fuse rfkill dw_hdmi_i2s_audio snd_soc_hdmi_codec panel_feiyang_fy07024di26a30d sunxi_cedrus(C) v4l2_mem2mem crct10dif_ce sun8i_drm_hdmi videobuf2_dma_contig snd_soc_spdif_tx dw_hdmi videobuf2_memops axp20x_adc cec videobuf2_v4l2 snd_soc_simple_card sunxi_cir axp20x_usb_power axp20x_ac_power snd_soc_simple_card_utils pinctrl_axp209 axp20x_battery phy_sun6i_mipi_dphy rc_core videobuf2_common mali(O) sun6i_mipi_dsi sun50i_codec_analog videodev sun8i_adda_pr_regmap crc_ccitt goodix sun8i_codec sun4i_i2s mc sun4i_drm sun4i_frontend sun4i_tcon sun8i_mixer sun8i_tcon_top pwm_bl ip_tables x_tables ipv6 nf_defrag_ipv6
Jan  8 23:49:43 pine64-plus kernel: [ 5144.695558] CPU: 3 PID: 3978 Comm: gsd-backlight-h Tainted: G        WC O      5.4.8 #1
Jan  8 23:49:43 pine64-plus kernel: [ 5144.695561] Hardware name: Pine64+ (DT)
Jan  8 23:49:43 pine64-plus kernel: [ 5144.695564] Call trace:
Jan  8 23:49:43 pine64-plus kernel: [ 5144.695579]  dump_backtrace+0x0/0x150
Jan  8 23:49:43 pine64-plus kernel: [ 5144.695583]  show_stack+0x14/0x20
Jan  8 23:49:43 pine64-plus kernel: [ 5144.695591]  dump_stack+0xb4/0xd8
Jan  8 23:49:43 pine64-plus kernel: [ 5144.695600]  __schedule_bug+0x50/0x70
Jan  8 23:49:43 pine64-plus kernel: [ 5144.695605]  __schedule+0x4bc/0x510
Jan  8 23:49:43 pine64-plus kernel: [ 5144.695610]  schedule+0x40/0xd0
Jan  8 23:49:43 pine64-plus kernel: [ 5144.695615]  do_notify_resume+0x1e0/0x398
Jan  8 23:49:43 pine64-plus kernel: [ 5144.695620]  work_pending+0x8/0x10
Jan  8 23:49:45 pine64-plus kernel: [ 5146.894318] BUG: scheduling while atomic: gsd-backlight-h/3987/0x00000002
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901147] Modules linked in: fuse rfkill dw_hdmi_i2s_audio snd_soc_hdmi_codec panel_feiyang_fy07024di26a30d sunxi_cedrus(C) v4l2_mem2mem crct10dif_ce sun8i_drm_hdmi videobuf2_dma_contig snd_soc_spdif_tx dw_hdmi videobuf2_memops axp20x_adc cec videobuf2_v4l2 snd_soc_simple_card sunxi_cir axp20x_usb_power axp20x_ac_power snd_soc_simple_card_utils pinctrl_axp209 axp20x_battery phy_sun6i_mipi_dphy rc_core videobuf2_common mali(O) sun6i_mipi_dsi sun50i_codec_analog videodev sun8i_adda_pr_regmap crc_ccitt goodix sun8i_codec sun4i_i2s mc sun4i_drm sun4i_frontend sun4i_tcon sun8i_mixer sun8i_tcon_top pwm_bl ip_tables x_tables ipv6 nf_defrag_ipv6
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901246] CPU: 0 PID: 3987 Comm: gsd-backlight-h Tainted: G        WC O      5.4.8 #1
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901250] Hardware name: Pine64+ (DT)
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901254] Call trace:
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901271]  dump_backtrace+0x0/0x150
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901277]  show_stack+0x14/0x20
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901286]  dump_stack+0xb4/0xd8
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901296]  __schedule_bug+0x50/0x70
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901303]  __schedule+0x4bc/0x510
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901307]  schedule+0x40/0xd0
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901313]  schedule_preempt_disabled+0x20/0x38
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901319]  __mutex_lock.isra.10+0x150/0x568
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901324]  __mutex_lock_slowpath+0x10/0x18
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901330]  mutex_lock+0x38/0x40
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901337]  clk_prepare_lock+0x40/0xa0
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901343]  clk_get_rate+0x1c/0x70
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901352]  sun4i_pwm_apply+0xb4/0x450
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901357]  pwm_apply_state+0x64/0x1e8
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901368]  pwm_backlight_update_status+0xb8/0x198 [pwm_bl]
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901375]  backlight_device_set_brightness+0x64/0xb8
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901381]  brightness_store+0x78/0x90
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901389]  dev_attr_store+0x14/0x28
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901396]  sysfs_kf_write+0x3c/0x50
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901401]  kernfs_fop_write+0x144/0x230
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901409]  __vfs_write+0x18/0x38
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901415]  vfs_write+0xb4/0x1e0
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901421]  ksys_write+0x68/0xf8
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901427]  __arm64_sys_write+0x18/0x20
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901435]  el0_svc_common.constprop.2+0x64/0x160
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901441]  el0_svc_handler+0x20/0x80
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901446]  el0_svc+0x8/0xc
Jan  8 23:49:45 pine64-plus kernel: [ 5146.901612] BUG: scheduling while atomic: gsd-backlight-h/3987/0x00000000
Jan  8 23:49:45 pine64-plus kernel: [ 5146.908388] Modules linked in: fuse rfkill dw_hdmi_i2s_audio snd_soc_hdmi_codec panel_feiyang_fy07024di26a30d sunxi_cedrus(C) v4l2_mem2mem crct10dif_ce sun8i_drm_hdmi videobuf2_dma_contig snd_soc_spdif_tx dw_hdmi videobuf2_memops axp20x_adc cec videobuf2_v4l2 snd_soc_simple_card sunxi_cir axp20x_usb_power axp20x_ac_power snd_soc_simple_card_utils pinctrl_axp209 axp20x_battery phy_sun6i_mipi_dphy rc_core videobuf2_common mali(O) sun6i_mipi_dsi sun50i_codec_analog videodev sun8i_adda_pr_regmap crc_ccitt goodix sun8i_codec sun4i_i2s mc sun4i_drm sun4i_frontend sun4i_tcon sun8i_mixer sun8i_tcon_top pwm_bl ip_tables x_tables ipv6 nf_defrag_ipv6
Jan  8 23:49:45 pine64-plus kernel: [ 5146.908479] CPU: 0 PID: 3987 Comm: gsd-backlight-h Tainted: G        WC O      5.4.8 #1
Jan  8 23:49:45 pine64-plus kernel: [ 5146.908482] Hardware name: Pine64+ (DT)
Jan  8 23:49:45 pine64-plus kernel: [ 5146.908486] Call trace:
Jan  8 23:49:45 pine64-plus kernel: [ 5146.908500]  dump_backtrace+0x0/0x150
Jan  8 23:49:45 pine64-plus kernel: [ 5146.908507]  show_stack+0x14/0x20
Jan  8 23:49:45 pine64-plus kernel: [ 5146.908517]  dump_stack+0xb4/0xd8
Jan  8 23:49:45 pine64-plus kernel: [ 5146.908526]  __schedule_bug+0x50/0x70
Jan  8 23:49:45 pine64-plus kernel: [ 5146.908533]  __schedule+0x4bc/0x510
Jan  8 23:49:45 pine64-plus kernel: [ 5146.908538]  schedule+0x40/0xd0
Jan  8 23:49:45 pine64-plus kernel: [ 5146.908545]  do_notify_resume+0x1e0/0x398
Jan  8 23:49:45 pine64-plus kernel: [ 5146.908551]  work_pending+0x8/0x10



B.R

Vasily Khoruzhick

unread,
Jan 8, 2020, 7:51:03 PM1/8/20
to alex....@gmail.com, linux-sunxi
The issue is that sun4i_pwm_apply() calls sun4i_pwm_calculate() which
calls clk_get_rate() while holding a spinlock and clk_get_rate() may
sleep.

It's a bug in pwm-sun4i driver.
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi...@googlegroups.com.
> To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/91a0725f-5ce3-4244-ba98-88c1ea7e7574%40googlegroups.com.

@lex

unread,
Jan 9, 2020, 7:25:11 AM1/9/20
to linux-sunxi
Thank you Vasily for the explanation.

Is this a known bug or i have possibly introduced it while patching the kernel?
> To unsubscribe from this group and stop receiving emails from it, send an email to linux...@googlegroups.com.

@lex

unread,
Jan 9, 2020, 7:55:54 AM1/9/20
to linux-sunxi
I asked this because i have not touched the pwm-sun4i driver code, Only the MIPI-DSI on top of 5.4.8.

@lex

unread,
Jan 9, 2020, 10:51:24 AM1/9/20
to linux-sunxi
Just adding some info, 5.3.y has the same issue.

Clément Péron

unread,
Jan 9, 2020, 12:03:43 PM1/9/20
to alex....@gmail.com, linux-sunxi
Hi @lex,

On Thu, 9 Jan 2020 at 16:51, @lex <alex....@gmail.com> wrote:
>
> Just adding some info, 5.3.y has the same issue.

Yes the bug is not fix mainline.

I will open a discussion with the PWM maintainer

Regards,
Clement
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi...@googlegroups.com.
> To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/a6a5a51d-1fe5-4eef-bbd1-c285260f8fd4%40googlegroups.com.

@lex

unread,
Jan 9, 2020, 2:39:14 PM1/9/20
to linux-sunxi
Hi Clément,

Looks like Kernel 5.5 will be affected too.

Thank you.

BR,
@lex

Clément Péron

unread,
Jan 9, 2020, 2:59:39 PM1/9/20
to alex....@gmail.com, linux-sunxi
Hi,

On Thu, 9 Jan 2020 at 20:39, @lex <alex....@gmail.com> wrote:
>
> Hi Clément,
>
> Looks like Kernel 5.5 will be affected too.
Yes but if a fix is sent it will be backported to all the kernels
affected still maintained.

What command do you do to reproduce this?

Thanks,
Clément
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi...@googlegroups.com.
> To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/ed19d20b-9436-48bc-8e7e-5a6dd1593af3%40googlegroups.com.

@lex

unread,
Jan 9, 2020, 4:51:17 PM1/9/20
to linux-sunxi
Clément,

It usually crashes while changing the LCD backlight.
Not sure it is related, but some time later the board enters in a sleep mode and shutdown itself (don't resume from that). Screen saver and power savings are disabled.
BR,
@lex

changing_backlight.png

Clément Péron

unread,
Jan 9, 2020, 6:33:13 PM1/9/20
to Alex Mobigo, linux-sunxi
Hi Alex,

On Thu, 9 Jan 2020 at 22:51, @lex <alex....@gmail.com> wrote:
>
> Clément,
>
> It usually crashes while changing the LCD backlight.
> Not sure it is related, but some time later the board enters in a sleep mode and shutdown itself (don't resume from that). Screen saver and power savings are disabled.

Yes totally makes sense,

Could you test with this patch on top of linux-next ?
https://patchwork.kernel.org/patch/11326439/

Thanks
Clément
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi...@googlegroups.com.
> To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/8d9b3d8a-7cb7-4837-96dc-0883d25a1b3a%40googlegroups.com.

@lex

unread,
Jan 9, 2020, 7:03:02 PM1/9/20
to linux-sunxi
Hi Clément,

Sure, i will try to apply the MIPI-DSI patch to linux-next, but i see there are a lot of changes to be made and this can take some time.

I will report back when i get the results.
Thanks,
@lex

Clément Péron

unread,
Jan 10, 2020, 2:50:35 AM1/10/20
to alex....@gmail.com, linux-sunxi
Hi Alex 


Le ven. 10 janv. 2020 à 01:03, @lex <alex....@gmail.com> a écrit :
Hi Clément,

Sure, i will try to apply the MIPI-DSI patch to linux-next, but i see there are a lot of changes to be made and this can take some time.

MIPI DSI is already applied in Linux-next for a64.



I will report back when i get the results.
Thanks
Clement


Thanks,
To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/64b161cf-1af2-4a19-bddf-17a749fb8820%40googlegroups.com.

@lex

unread,
Jan 10, 2020, 8:22:20 AM1/10/20
to linux-sunxi
Hi Clément,

I can still see some diff from what i have working in 5.4.8. Maybe this is redundant and not necessary. Anyway, I will test it soon.

BR,
@lex

--- /arm/ubuntu/nanopi-a64-linux-next/linux-next/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h
+++ /arm/ubuntu/nanopi-a64-linux-next/linux-5.4.8/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h
@@ -13,7 +13,11 @@
 
#include <drm/drm_encoder.h>
 
#include <drm/drm_mipi_dsi.h>
-#define SUN6I_DSI_TCON_DIV 4
+#include <linux/regulator/consumer.h>
+
+struct sun6i_dsi_variant {
+ bool has_mod_clk;
+};
 
struct sun6i_dsi {
 
struct drm_connector connector;
@@ -29,8 +33,10 @@
 
struct device *dev;
 
struct sun4i_drv *drv;
+ struct sun4i_tcon *tcon;
 
struct mipi_dsi_device *device;
 
struct drm_panel *panel;
+ const struct sun6i_dsi_variant *variant;
 
};
 
static inline struct sun6i_dsi *host_to_sun6i_dsi(struct mipi_dsi_host *host)

@lex

unread,
Jan 10, 2020, 10:02:44 AM1/10/20
to linux-sunxi
Hi Clément,

backligth.png

I can confirm that the patch fixed the issue (just need to run for a day to make it does not break something else). MIPI-DSI worked out-of-the-box, i just noticed the refresh rate seems to be a bit wrong, maybe i tested it during the night and now it is possible to note this in daylight.
Any chance we see a back-port on this soon?

Thank you!

BR
@lex

@lex

unread,
Jan 11, 2020, 9:45:38 AM1/11/20
to linux-sunxi
Here is a workaround that seems to be working so far for the kernel 5.3 and 5.4.

Small Obs: 
During the tests, dimming the lcd backlight up and down for one hour worked without issues.
I let the board idle for 6 hrs, worked 5 min on other things and had a crash. I could not recover the log to investigate it, but does not seem to be related to the issue.

BR
@lex
pwm-sun4i.patch

Clément Péron

unread,
Jan 12, 2020, 1:29:48 PM1/12/20
to Alex Mobigo, linux-sunxi
Hi @lex,

On Sat, 11 Jan 2020 at 15:45, @lex <alex....@gmail.com> wrote:
Here is a workaround that seems to be working so far for the kernel 5.3 and 5.4.

Ok great,

So If you test the patch on linux-next could you add your Tested-by tag on this patch ?
https://patchwork.kernel.org/patch/11326439/ 

Regards,
Clement
 
To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/96676ab2-c7e8-476f-8340-f8c619ea538c%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages