Hi
Seeing the following when booting kernel 4.6-rc1 on Acube Sam460ex Canyonlands board. This loops for a few times then the kernel boots. No problem with the 4.6-rc1 with an A-eon Tabor Freescale e500v2 board.
Regards
Julian
[ 2.197839] ------------[ cut here ]------------ [ 2.197850] WARNING: CPU: 0 PID: 1 at drivers/gpu/drm/drm_irq.c:1368 drm_vblank_off+0x2c/0x1e0 [ 2.197853] Modules linked in: [ 2.197859] CPU: 0 PID: 1 Comm: swapper Tainted: G W 4.6.0-rc1-sam460ex-jm #23 [ 2.197863] task: ea850000 ti: ea846000 task.ti: ea846000 [ 2.197866] NIP: c03c057c LR: c03ec780 CTR: c03eec50 [ 2.197870] REGS: ea847860 TRAP: 0700 Tainted: G W (4.6.0-rc1-sam460ex-jm) [ 2.197880] MSR: 00029000 <CE,EE,ME> CR: 42ec8282 XER: 20000000 [ 2.197932] [ 2.197932] GPR00: c03ec780 ea847910 ea850000 ea935000 00000003 000000ff eab704ec ea8be000 [ 2.197932] GPR08: 00000006 00000000 00000001 ea8479d0 22ec8282 00000000 ea935278 eeaaee00 [ 2.197932] GPR16: ea8bf000 c08aeaa4 eaad5800 eab48900 c0cf0000 ea935290 eaad5800 eab48900 [ 2.197932] GPR24: ea8bf000 c08a2c3c 00000000 c0bbc22a 00000000 ea935000 eab70000 eab2f18c [ 2.197937] NIP [c03c057c] drm_vblank_off+0x2c/0x1e0 [ 2.197945] LR [c03ec780] atombios_crtc_dpms+0x90/0xf0 [ 2.197946] Call Trace: [ 2.197956] [ea847910] [c08aeaa4] atombios_helper_funcs+0x0/0x218 (unreliable) [ 2.197963] [ea847960] [c03ec780] atombios_crtc_dpms+0x90/0xf0 [ 2.197970] [ea847980] [c03eec74] atombios_crtc_disable+0x24/0x2a4 [ 2.197977] [ea8479d0] [c03abb8c] __drm_helper_disable_unused_functions+0x9c/0xd0 [ 2.197984] [ea8479f0] [c03ac954] drm_crtc_helper_set_config+0x680/0x934 [ 2.197993] [ea847a60] [c04062f4] radeon_crtc_set_config+0x30/0xb8 [ 2.197999] [ea847a70] [c03c8b28] drm_mode_set_config_internal+0x5c/0xe0 [ 2.198008] [ea847a90] [c03b7218] restore_fbdev_mode+0x20c/0x25c [ 2.198016] [ea847ac0] [c03b8e24] drm_fb_helper_restore_fbdev_mode_unlocked+0x40/0x8c [ 2.198024] [ea847ae0] [c03b8ebc] drm_fb_helper_set_par+0x4c/0x60 [ 2.198031] [ea847af0] [c036ba34] fbcon_init+0x318/0x410 [ 2.198039] [ea847b40] [c0395eb0] visual_init+0xc8/0x114 [ 2.198046] [ea847b60] [c0397628] do_bind_con_driver+0x1e0/0x2e0 [ 2.198053] [ea847bb0] [c0397aa8] do_take_over_console+0x1a0/0x1b0 [ 2.198059] [ea847be0] [c036bbac] do_fbcon_takeover+0x80/0xd8 [ 2.198068] [ea847bf0] [c003f474] notifier_call_chain+0x60/0x94 [ 2.198076] [ea847c10] [c003f758] __blocking_notifier_call_chain+0x50/0x68 [ 2.198085] [ea847c30] [c0372fb0] register_framebuffer+0x250/0x280 [ 2.198092] [ea847ca0] [c03b91f0] drm_fb_helper_initial_config+0x320/0x394 [ 2.198100] [ea847ce0] [c040e3d0] radeon_fbdev_init+0xdc/0x114 [ 2.198107] [ea847d00] [c04085fc] radeon_modeset_init+0x5a8/0x938 [ 2.198113] [ea847d60] [c03e5ebc] radeon_driver_load_kms+0xcc/0x134 [ 2.198120] [ea847d80] [c03c1a5c] drm_dev_register+0x84/0xc8 [ 2.198127] [ea847da0] [c03c3b54] drm_get_pci_dev+0xf4/0x18c [ 2.198136] [ea847dc0] [c0357f44] pci_device_probe+0x78/0xcc [ 2.198143] [ea847de0] [c04ce61c] driver_probe_device+0x124/0x264 [ 2.198149] [ea847e00] [c04ce7e4] __driver_attach+0x88/0xb0 [ 2.198159] [ea847e20] [c04ccbc4] bus_for_each_dev+0x90/0xa0 [ 2.198165] [ea847e50] [c04cdc64] bus_add_driver+0xe0/0x1f0 [ 2.198172] [ea847e70] [c04ceee0] driver_register+0xb4/0xf8 [ 2.198179] [ea847e90] [c00015f8] do_one_initcall+0x11c/0x1a0 [ 2.198187] [ea847f00] [c0c5fa9c] kernel_init_freeable+0x130/0x1cc [ 2.198193] [ea847f30] [c0001bf4] kernel_init+0x14/0x108 [ 2.198201] [ea847f40] [c000b1d4] ret_from_kernel_thread+0x5c/0x64 [ 2.198204] --- interrupt: 0 at (null) [ 2.198204] LR = (null) [ 2.198207] Instruction dump: [ 2.198221] 4bfffdf0 9421ffb0 1d240084 7c0802a6 be61001c 90010054 83e3010c 7fff4a14 [ 2.198235] 81230160 7d492010 7d4a5110 394a0001 <0f0a0000> 7f844840 409c01a4 3ae3013c [ 2.198237] ---[ end trace ee501c2ec7a725ac ]---
On 29.03.2016 08:47, Julian Margetson wrote:
That's
if (WARN_ON(pipe >= dev->num_crtcs))
My best guess is that drm_vblank_off is called before drm_vblank_init, so dev->num_crtcs is still 0.
Please provide the full dmesg output corresponding to the problem.
On 29.03.2016 18:55, Julian Margetson wrote:
[...]
Okay, so the problem is that acceleration fails to initialize, in which case the driver calls drm_vblank_cleanup.
I can see two basic options for a solution: Either don't call radeon_irq_kms_fini/drm_vblank_cleanup if acceleration fails to initialize, or check if acceleration is enabled before calling drm_vblank_on/off. Any preferences?
On 30.03.2016 19:36, Julian Margetson wrote:
Does the attached patch fix the problem?
I would be interested in a fix for the acceleration problem if possible .
Beware that while the kernel side of this might be relatively easy to fix, making the userspace radeonsi driver work on big endian hosts would likely require substantial effort.
On 3/31/2016 2:50 AM, Michel Dänzer wrote:
Thanks
The patch solved the problem . Tested-by: Julian Margetson runaway@candw.ms
I would indeed like to see the kernel side fix for the the acceleration problem. (Been hoping for it for almost 3 years now) http://marc.info/?l=dri-devel&m=137881893518240&w=2 I also have Northern Islands cards and acceleration with these does work with my other powerpc board, an e500v2 . It also requires the patch in the linked post by Hans Verkuil for Radeon NI and SI cards to work .
Regards Julian
On 31.03.2016 19:00, Julian Margetson wrote:
Thanks, patch submitted for inclusion.
Is Hans' patch enough for SI or not? Anyway, somebody should split Hans' patch up between ttm and radeon, clean up the latter (use PRIx64 or a phys_addr_t specific format sequence instead of %llx, apply the same fix in radeon_doorbell_init) and submit them as properly Git formatted patches.
On 4/1/2016 4:31 AM, Michel Dänzer wrote:
Han's patch seems to be enough for SI. There are 4 powerpc motherboards that our group are using. Two require the full patch. The Sam460ex (460ex) and Tabor (e500v2). The Nemo X1000 (P.A. semi) does require part of the patch or another one that has been used. The Cyrus X5000 (P5020) do not.
There are some other powerpc issues with mesa. Apparently Oded Gabbay has been working on mesa fixes .
I have attached the dmesg of a Tabor boot with a Radeon SI card. Is there anyone one who could redo Han's patches or would we have to find someone ?
Regards Julian
dri-devel@lists.freedesktop.org