This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

midgard r20p0 kernel drivers errors

Hi,

I am using r20p0 midgard drivers with kernel 4.14 (rc4) on an odroid xu4 board.

I have enabled DEVFREQ, and have simple_ondemand and performance governors available (default set to performance).

I get this kernel error when mali device is probed:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[ 4.492991] mali 11800000.mali: Continuing without Mali regulator control
[ 4.503602] mali 11800000.mali: GPU identified as 0x0620 r0p1 status 0
[ 4.511482] mali 11800000.mali: Protected mode not available
[ 4.518109] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:747
[ 4.525520] in_atomic(): 0, irqs_disabled(): 0, pid: 1, name: swapper/0
[ 4.532000] 3 locks held by swapper/0/1:
[ 4.535675] #0: (&dev->mutex){....}, at: [<c04b69f8>] __driver_attach+0x78/0x120
[ 4.543424] #1: (&dev->mutex){....}, at: [<c04b6a08>] __driver_attach+0x88/0x120
[ 4.550960] #2: (rcu_read_lock){....}, at: [<c04af8a8>] kbase_devfreq_init+0x18/0x6e0
[ 4.558938] Preemption disabled at:
[ 4.559007] [<c0122e58>] irq_enter+0x44/0x88
[ 4.566504] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.14.0-rc4-02 #2
[ 4.572971] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[ 4.579044] [<c01102c8>] (unwind_backtrace) from [<c010cabc>] (show_stack+0x10/0x14)
[ 4.586781] [<c010cabc>] (show_stack) from [<c0821484>] (dump_stack+0x98/0xc4)
[ 4.593969] [<c0821484>] (dump_stack) from [<c0144bcc>] (___might_sleep+0x264/0x2cc)
[ 4.601690] [<c0144bcc>] (___might_sleep) from [<c0837200>] (__mutex_lock+0x2c/0xa38)
[ 4.609484] [<c0837200>] (__mutex_lock) from [<c0837c28>] (mutex_lock_nested+0x1c/0x24)
[ 4.617459] [<c0837c28>] (mutex_lock_nested) from [<c04c6a88>] (_find_opp_table+0x20/0x5c)
[ 4.625692] [<c04c6a88>] (_find_opp_table) from [<c04c6cac>] (dev_pm_opp_get_opp_count+0xc/0x90)
[ 4.634451] [<c04c6cac>] (dev_pm_opp_get_opp_count) from [<c04af934>] (kbase_devfreq_init+0xa4/0x6e0)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Afterwards, if I change devfreq governor to simple_ondemand, I get the same error every second in syslog:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[ 1021.940152] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:747
[ 1021.947111] in_atomic(): 0, irqs_disabled(): 0, pid: 120, name: kworker/u16:1
[ 1021.954278] INFO: lockdep is turned off.
[ 1021.958110] Preemption disabled at:
[ 1021.958119] [< (null)>] (null)
[ 1021.964879] CPU: 3 PID: 120 Comm: kworker/u16:1 Tainted: G W 4.14.0-rc4-02 #2
[ 1021.973101] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[ 1021.979175] Workqueue: devfreq_wq devfreq_monitor
[ 1021.983863] [<c01102c8>] (unwind_backtrace) from [<c010cabc>] (show_stack+0x10/0x14)
[ 1021.991568] [<c010cabc>] (show_stack) from [<c0821484>] (dump_stack+0x98/0xc4)
[ 1021.998762] [<c0821484>] (dump_stack) from [<c0144bcc>] (___might_sleep+0x264/0x2cc)
[ 1022.006475] [<c0144bcc>] (___might_sleep) from [<c0837200>] (__mutex_lock+0x2c/0xa38)
[ 1022.014269] [<c0837200>] (__mutex_lock) from [<c0837c28>] (mutex_lock_nested+0x1c/0x24)
[ 1022.022241] [<c0837c28>] (mutex_lock_nested) from [<c04c6a88>] (_find_opp_table+0x20/0x5c)
[ 1022.030472] [<c04c6a88>] (_find_opp_table) from [<c04c6e10>] (dev_pm_opp_find_freq_ceil+0x18/0x64)
[ 1022.039398] [<c04c6e10>] (dev_pm_opp_find_freq_ceil) from [<c0672b28>] (devfreq_recommended_opp+0x34/0x4c)
[ 1022.049018] [<c0672b28>] (devfreq_recommended_opp) from [<c04af4ec>] (kbase_devfreq_target+0x7c/0x408)
[ 1022.058287] [<c04af4ec>] (kbase_devfreq_target) from [<c0671214>] (update_devfreq+0xd4/0x1c4)
[ 1022.066778] [<c0671214>] (update_devfreq) from [<c0671400>] (devfreq_monitor+0x24/0x78)
[ 1022.074752] [<c0671400>] (devfreq_monitor) from [<c013827c>] (process_one_work+0x19c/0x504)
[ 1022.083070] [<c013827c>] (process_one_work) from [<c013861c>] (worker_thread+0x38/0x568)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

After going back to performance governor, it stops showing up.

Any resolutions?

Thanks.

0