Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751535AbdG0JvT (ORCPT ); Thu, 27 Jul 2017 05:51:19 -0400 Received: from gloria.sntech.de ([95.129.55.99]:34994 "EHLO gloria.sntech.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751122AbdG0JvR (ORCPT ); Thu, 27 Jul 2017 05:51:17 -0400 From: Heiko =?ISO-8859-1?Q?St=FCbner?= To: Mark Yao Cc: David Airlie , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v6 4/7] drm/rockchip: vop: group vop registers Date: Thu, 27 Jul 2017 11:51:06 +0200 Message-ID: <44153824.CqyclESHdT@diego> User-Agent: KMail/5.2.3 (Linux/4.8.0-2-amd64; KDE/5.27.0; x86_64; ; ) In-Reply-To: <1501049966-6070-1-git-send-email-mark.yao@rock-chips.com> References: <1501049930-5794-1-git-send-email-mark.yao@rock-chips.com> <1501049966-6070-1-git-send-email-mark.yao@rock-chips.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3910 Lines: 63 Hi Mark, Am Mittwoch, 26. Juli 2017, 14:19:25 CEST schrieb Mark Yao: > Grouping the vop registers facilitates make register > definition clearer, and also is useful for different vop > reuse the same group register. > > Signed-off-by: Mark Yao > --- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 99 ++++++++++++------------ > drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 60 ++++++++------- > drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 112 > +++++++++++++++------------- 3 files changed, 144 insertions(+), 127 > deletions(-) This breaks display support on both rk3036 and rk3288 and I end up with a null pointer dereference in [ 10.640297] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 10.654430] pgd = c0204000 [ 10.657452] [00000000] *pgd=00000000 [ 10.661473] Internal error: Oops: 5 [#1] SMP ARM [ 10.666635] Modules linked in: snd_pcm media snd_timer phy_rockchip_dp snd soundcore rockchipdrm dw_hdmi analogix_dp rtc_rk808 pwm_rockchip clk_rk808 spi_rockchip [ 10.682897] CPU: 2 PID: 143 Comm: kworker/2:2 Not tainted 4.13.0-rc2-01791-g2b86603d0515 #355 [ 10.692430] Hardware name: Rockchip (Device Tree) [ 10.697692] Workqueue: events deferred_probe_work_func [ 10.702152] Linux video capture interface: v2.00 [ 10.708590] task: ee38c800 task.stack: ed2e6000 [ 10.713656] PC is at vop_reg_set.constprop.4+0x4/0xa8 [rockchipdrm] [ 10.720668] LR is at vop_bind+0x568/0x8a0 [rockchipdrm] [ 10.726507] pc : [] lr : [] psr: 40010013 [ 10.733514] sp : ed2e7d68 ip : 00000004 fp : bf054988 [ 10.739350] r10: bf054988 r9 : 00000000 r8 : 00000001 [ 10.745189] r7 : ed66f500 r6 : ee29da10 r5 : 00000000 r4 : ed22e010 [ 10.752487] r3 : ffffffff r2 : 00000000 r1 : 00000000 r0 : ed22e010 [ 10.759785] Flags: nZcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 10.767763] Control: 10c5387d Table: 2d4e806a DAC: 00000051 [ 10.774188] Process kworker/2:2 (pid: 143, stack limit = 0xed2e6220) [...] [ 11.058818] [] (vop_reg_set.constprop.4 [rockchipdrm]) from [] (vop_bind+0x568/0x8a0 [rockchipdrm]) [ 11.058828] [] (vop_bind [rockchipdrm]) from [] (component_bind_all+0x11c/0x23c) [ 11.058836] [] (component_bind_all) from [] (rockchip_drm_bind+0x90/0x1d4 [rockchipdrm]) [ 11.058843] [] (rockchip_drm_bind [rockchipdrm]) from [] (try_to_bring_up_master+0x148/0x184) [ 11.058847] [] (try_to_bring_up_master) from [] (component_add+0x98/0x144) [ 11.058853] [] (component_add) from [] (rockchip_dp_probe+0x7c/0x8c [rockchipdrm]) [ 11.058860] [] (rockchip_dp_probe [rockchipdrm]) from [] (platform_drv_probe+0x50/0xb0) [ 11.058865] [] (platform_drv_probe) from [] (driver_probe_device+0x230/0x2e4) [ 11.058869] [] (driver_probe_device) from [] (bus_for_each_drv+0x60/0x94) [ 11.058873] [] (bus_for_each_drv) from [] (__device_attach+0xb0/0x114) [ 11.058876] [] (__device_attach) from [] (bus_probe_device+0x84/0x8c) [ 11.058879] [] (bus_probe_device) from [] (deferred_probe_work_func+0x68/0x94) [ 11.058884] [] (deferred_probe_work_func) from [] (process_one_work+0x200/0x504) [ 11.058889] [] (process_one_work) from [] (worker_thread+0x38/0x594) [ 11.058894] [] (worker_thread) from [] (kthread+0x128/0x158) [ 11.058900] [] (kthread) from [] (ret_from_fork+0x14/0x3c) [ 11.058904] Code: eaffffe0 e3a03004 eaffffef e92d4070 (e5914000) [ 11.058930] ---[ end trace 9caa88bbcb1af5e4 ]--- I'll try to investigate a bit more, but maybe you'll be able to find the issue faster than me in the meantime. Heiko