[Letux-kernel] [Bug] v5.3-rc3: arm: omap5: omapdss: omap_fbdev_init fails with lpae config and reports dma_mask error

H. Nikolaus Schaller hns at goldelico.com
Wed Aug 7 16:22:03 CEST 2019


Hi,
with v5.3-rc3 I observed this for the first time

[    8.752861] omapdrm omapdrm.0: DMA map on device without dma_mask
[    8.762680] ------------[ cut here ]------------
[    8.773339] WARNING: CPU: 1 PID: 1144 at kernel/dma/direct.c:35 report_addr+0xc8/0xe4
[    8.784854] Modules linked in: snd_soc_dmic cfg80211(+) panel_boe_w677l libarc4 dwc3 snd_soc_omap_abe_twl6040 snd_soc_simple_card snd_soc_twl6040 snd_soc_simple_card_utils leds_gpio omapdss cec connector_hdmi encoder_tpd12s015 pwm_omap_dmtimer pwm_bl ehci_omap wlcore_sdio dwc3_omap omapdrm omapdss_base drm_kms_helper snd_soc_ts3a227e syscopyarea hci_uart sysfillrect tsc2007 sysimgblt leds_is31fl319x bq2429x_charger btbcm fb_sys_fops ina2xx bq27xxx_battery_i2c tca8418_keypad bq27xxx_battery drm twl6040_vibra gpio_twl6040 bmp280_spi drm_panel_orientation_quirks palmas_gpadc palmas_pwrbutton bluetooth ecdh_generic ecc usb3503 bmc150_magn_i2c bmg160_i2c bmc150_accel_i2c bmp280_i2c bmc150_accel_core bmc150_magn bmg160_core bmp280 industrialio_triggered_buffer kfifo_buf industrialio snd_soc_omap_mcpdm snd_soc_omap_mcbsp snd_soc_ti_sdma ip_tables x_tables ipv6 nf_defrag_ipv6 autofs4
[  OK  ] Started Load/Save Screen Backlig[    8.871770] CPU: 1 PID: 1144 Comm: kworker/1:2 Not tainted 5.3.0-rc2-letux-lpae+ #578
[    8.883207] Hardware name: Generic OMAP5 (Flattened Device Tree)
ht Brightness of backlight:backlight.
[    8.889523] Workqueue: events deferred_probe_work_func
[    8.898309] [<c0210790>] (unwind_backtrace) from [<c020bc08>] (show_stack+0x10/0x14)
[    8.906430] [<c020bc08>] (show_stack) from [<c0927398>] (dump_stack+0x7c/0x9c)
[    8.914012] [<c0927398>] (dump_stack) from [<c022dd80>] (__warn+0xd8/0x108)
[    8.914025] [<c022dd80>] (__warn) from [<c022dec0>] (warn_slowpath_null+0x38/0x44)
[    8.929228] [<c022dec0>] (warn_slowpath_null) from [<c028fdbc>] (report_addr+0xc8/0xe4)
[    8.937624] [<c028fdbc>] (report_addr) from [<c028ff50>] (dma_direct_map_page+0x178/0x1a0)
[    8.946319] [<c028ff50>] (dma_direct_map_page) from [<bf2449c4>] (omap_gem_attach_pages+0xa8/0x1c8 [omapdrm])
[    8.956835] [<bf2449c4>] (omap_gem_attach_pages [omapdrm]) from [<bf2454d0>] (omap_gem_pin+0xa4/0x198 [omapdrm])
[    8.969001] [<bf2454d0>] (omap_gem_pin [omapdrm]) from [<bf248d60>] (omap_fbdev_create+0x16c/0x2f0 [omapdrm])
[    8.979605] [<bf248d60>] (omap_fbdev_create [omapdrm]) from [<bf1e9794>] (__drm_fb_helper_initial_config_and_unlock+0x314/0x42c [drm_kms_helper])
[    8.997509] [<bf1e9794>] (__drm_fb_helper_initial_config_and_unlock [drm_kms_helper]) from [<bf249024>] (omap_fbdev_init+0x84/0xc0 [omapdrm])
[    9.012912] [<bf249024>] (omap_fbdev_init [omapdrm]) from [<bf2419a0>] (pdev_probe+0x5f0/0x6c4 [omapdrm])
[    9.022966] [<bf2419a0>] (pdev_probe [omapdrm]) from [<c0679e40>] (platform_drv_probe+0x48/0x98)
[    9.032350] [<c0679e40>] (platform_drv_probe) from [<c0678020>] (really_probe+0x160/0x2cc)
[    9.041010] [<c0678020>] (really_probe) from [<c06783e4>] (driver_probe_device+0x110/0x158)
[    9.049769] [<c06783e4>] (driver_probe_device) from [<c0676680>] (bus_for_each_drv+0x90/0xb8)
[    9.058705] [<c0676680>] (bus_for_each_drv) from [<c0678220>] (__device_attach+0x94/0x124)
[    9.067377] [<c0678220>] (__device_attach) from [<c06772c8>] (bus_probe_device+0x28/0x80)
[    9.075955] [<c06772c8>] (bus_probe_device) from [<c0675028>] (device_add+0x2f4/0x57c)
[    9.084273] [<c0675028>] (device_add) from [<c0679cf4>] (platform_device_add+0x130/0x1bc)
[    9.092844] [<c0679cf4>] (platform_device_add) from [<c067a5c8>] (platform_device_register_full+0xec/0x13c)
[    9.103108] [<c067a5c8>] (platform_device_register_full) from [<bf28d648>] (dss_bind+0x58/0xa4 [omapdss])
[    9.113193] [<bf28d648>] (dss_bind [omapdss]) from [<c0672810>] (try_to_bring_up_master+0x128/0x178)
[    9.122776] [<c0672810>] (try_to_bring_up_master) from [<c06728dc>] (__component_add+0x7c/0xec)
[    9.131947] [<c06728dc>] (__component_add) from [<bf29bcfc>] (dsi_probe+0x438/0x4e0 [omapdss])
[    9.141029] [<bf29bcfc>] (dsi_probe [omapdss]) from [<c0679e40>] (platform_drv_probe+0x48/0x98)
[    9.150158] [<c0679e40>] (platform_drv_probe) from [<c0678020>] (really_probe+0x160/0x2cc)
[    9.158825] [<c0678020>] (really_probe) from [<c06783e4>] (driver_probe_device+0x110/0x158)
[    9.167582] [<c06783e4>] (driver_probe_device) from [<c0676680>] (bus_for_each_drv+0x90/0xb8)
[    9.176518] [<c0676680>] (bus_for_each_drv) from [<c0678220>] (__device_attach+0x94/0x124)
[    9.185188] [<c0678220>] (__device_attach) from [<c06772c8>] (bus_probe_device+0x28/0x80)
[    9.193763] [<c06772c8>] (bus_probe_device) from [<c0677748>] (deferred_probe_work_func+0x5c/0x80)
[    9.203164] [<c0677748>] (deferred_probe_work_func) from [<c0247a04>] (process_one_work+0x258/0x47c)
[    9.212738] [<c0247a04>] (process_one_work) from [<c02481e4>] (worker_thread+0x2b8/0x3d8)
[    9.221313] [<c02481e4>] (worker_thread) from [<c024bef0>] (kthread+0x134/0x14c)
[    9.229083] [<c024bef0>] (kthread) from [<c02010d8>] (ret_from_fork+0x14/0x3c)
[    9.236651] Exception stack(0xe8f51fb0 to 0xe8f51ff8)
[    9.241945] 1fa0:                                     00000000 00000000 00000000 00000000
[    9.250529] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    9.259094] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    9.270457] ---[ end trace 1045ffa6055069e6 ]---
[    9.275808] omapdrm omapdrm.0: omap_gem_attach_pages: failed to map page
[    9.284171] omapdrm omapdrm.0: could not pin framebuffer
[    9.290502] omapdrm omapdrm.0: omap_fbdev_init failed

The result is that the omapdrm system is not working.

It works fine with a non-lpae build.

The kernel tree is v5.3-rc3 plus a minimal set of patches to boot on the Pyra hardware:

	http://git.goldelico.com/?p=letux-kernel.git;a=shortlog;h=refs/heads/letux/pyra-minimal

A git bisect between v5.3-rc2 and v5.3-rc3 (each time plus the pyra-minimal patch set) thinks
this patch is the reason:

# first bad commit: [a507f25d1c2048c136f6834f10966510b62af987] Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

but I could not find out how this relates to building for 32 bit ARM with LPAE.

Is this already known? Is there a known solution?

BR and thanks,
Nikolaus



More information about the Letux-kernel mailing list