Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751509AbdIOXfN (ORCPT ); Fri, 15 Sep 2017 19:35:13 -0400 Received: from jonshouse.plus.com ([81.174.134.161]:59370 "HELO jonshouse.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1751197AbdIOXfM (ORCPT ); Fri, 15 Sep 2017 19:35:12 -0400 X-Greylist: delayed 466 seconds by postgrey-1.27 at vger.kernel.org; Fri, 15 Sep 2017 19:35:12 EDT Message-ID: <1505518458.29529.326.camel@jon-HP-Compaq-Elite-8300-SFF> Subject: kernel crash using fbtft / SPI on Orange Pi zero board, armbian From: jon Reply-To: jon@jonshouse.co.uk To: linux-kernel@vger.kernel.org Date: Sat, 16 Sep 2017 00:34:18 +0100 Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5530 Lines: 76 I am trying to use an LCD connected via SPI on an Orange Pi zero board. It works, for a while, then crashes. armbian forum thread here: https://forum.armbian.com/index.php?/topic/5067-orange-pi-zero-fbtft-unreliable/ root@orangepizero:~# uname -a Linux orangepizero 3.4.113-sun8i #12 SMP PREEMPT Fri Sep 15 00:26:14 CEST 2017 armv7l armv7l armv7l GNU/Linux The LCD initially works, but fbtft stops updating the LCD framebuffer after a few mins use. The more frequent the framebuffer updates the faster it is to lockup. In this case advmame is running pacman, works for <2mins. advmame is built from source on the ARM board itself. This source and the LCD module itself work without issues on Raspberry Pi boards. dmesg shows the following: [ 113.076235] warning: process `advmame' used the deprecated sysctl system call with 8.1.2. [ 361.030206] INFO: task kworker/u:0:5 blocked for more than 120 seconds. [ 361.030258] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 361.030303] kworker/u:0 D c061c3a4 0 5 2 0x00000000 [ 361.030452] [] (__schedule+0x574/0x7fc) from [] (schedule+0x90/0x94) [ 361.030540] [] (schedule+0x90/0x94) from [] (schedule_timeout+0x2c/0x2bc) [ 361.030629] [] (schedule_timeout+0x2c/0x2bc) from [] (wait_for_common+0x120/0x168) [ 361.030719] [] (wait_for_common+0x120/0x168) from [] (wait_for_completion+0x20/0x24) [ 361.030817] [] (wait_for_completion+0x20/0x24) from [] (sunxi_spi_work+0x748/0x88c) [ 361.030918] [] (sunxi_spi_work+0x748/0x88c) from [] (process_one_work+0x248/0x404) [ 361.031011] [] (process_one_work+0x248/0x404) from [] (worker_thread+0x1b4/0x2d0) [ 361.031105] [] (worker_thread+0x1b4/0x2d0) from [] (kthread+0x94/0xa0) [ 361.031201] [] (kthread+0x94/0xa0) from [] (kernel_thread_exit+0x0/0x8) [ 361.031273] INFO: task kworker/1:1:25 blocked for more than 120 seconds. [ 361.031313] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 361.031355] kworker/1:1 D c061c3a4 0 25 2 0x00000000 [ 361.031466] [] (__schedule+0x574/0x7fc) from [] (schedule+0x90/0x94) [ 361.031551] [] (schedule+0x90/0x94) from [] (schedule_timeout+0x2c/0x2bc) [ 361.031637] [] (schedule_timeout+0x2c/0x2bc) from [] (wait_for_common+0x120/0x168) [ 361.031726] [] (wait_for_common+0x120/0x168) from [] (wait_for_completion+0x20/0x24) [ 361.031816] [] (wait_for_completion+0x20/0x24) from [] (spi_sync+0x84/0xa0) [ 361.031958] [] (spi_sync+0x84/0xa0) from [] (fbtft_write_spi+0xf0/0x104 [fbtft]) [ 361.032136] [] (fbtft_write_spi+0xf0/0x104 [fbtft]) from [] (fbtft_write_vmem16_bus8+0x11c/0x138 [fbtft]) [ 361.032295] [] (fbtft_write_vmem16_bus8+0x11c/0x138 [fbtft]) from [] (fbtft_update_display+0x150/0x2fc [fbtft]) [ 361.032445] [] (fbtft_update_display+0x150/0x2fc [fbtft]) from [] (fbtft_deferred_io+0x110/0x11c [fbtft]) [ 361.032573] [] (fbtft_deferred_io+0x110/0x11c [fbtft]) from [] (fb_deferred_io_work+0x84/0xcc) [ 361.032670] [] (fb_deferred_io_work+0x84/0xcc) from [] (process_one_work+0x248/0x404) [ 361.032760] [] (process_one_work+0x248/0x404) from [] (worker_thread+0x1b4/0x2d0) [ 361.032850] [] (worker_thread+0x1b4/0x2d0) from [] (kthread+0x94/0xa0) [ 361.032940] [] (kthread+0x94/0xa0) from [] (kernel_thread_exit+0x0/0x8) [ 361.033053] INFO: task advmame:1561 blocked for more than 120 seconds. [ 361.033093] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 361.033135] advmame D c061c3a4 0 1561 1517 0x00000000 [ 361.033246] [] (__schedule+0x574/0x7fc) from [] (schedule+0x90/0x94) [ 361.033333] [] (schedule+0x90/0x94) from [] (schedule_preempt_disabled+0x30/0x40) [ 361.033425] [] (schedule_preempt_disabled+0x30/0x40) from [] (__mutex_lock_slowpath+0x160/0x1a8) [ 361.033518] [] (__mutex_lock_slowpath+0x160/0x1a8) from [] (mutex_lock+0x64/0x7c) [ 361.033607] [] (mutex_lock+0x64/0x7c) from [] (fb_deferred_io_mkwrite+0x2c/0xbc) [ 361.033699] [] (fb_deferred_io_mkwrite+0x2c/0xbc) from [] (do_wp_page+0x224/0x7a4) [ 361.033789] [] (do_wp_page+0x224/0x7a4) from [] (handle_pte_fault+0x7b0/0x838) [ 361.033874] [] (handle_pte_fault+0x7b0/0x838) from [] (handle_mm_fault+0xf8/0x134) [ 361.033961] [] (handle_mm_fault+0xf8/0x134) from [] (do_page_fault+0x11c/0x344) [ 361.034047] [] (do_page_fault+0x11c/0x344) from [] (do_DataAbort+0x44/0xa8) [ 361.034132] [] (do_DataAbort+0x44/0xa8) from [] (__dabt_usr+0x38/0x40) [ 361.034184] Exception stack(0xd719ffb0 to 0xd719fff8) [ 361.034237] ffa0: 00000000 00000000 b5aa3000 0445f912 [ 361.034307] ffc0: 00000000 00000000 b5aa3000 00000000 00000001 0000000b 0000f800 0000001f [ 361.034374] ffe0: 00000120 bef33fc8 fffffe00 0003d094 68000030 ffffffff I am not a linux kernel hacker, just posting here to draw attention to it :-) Thanks, Jon