Well, absence of Oopses doesn't say too much. Blacklisting pwm_bl would likely give the same result according to my tests.
well, the problem was moved into the sound system by blacklisting bl
How many did you see with not blacklisting anything? 100% or something significantly high?
3% kernel BUG at ../drivers/base/devres.c:104!
29% (strcmp) from [<c04266bc>] (pinctrl_generic_add_group+0x50/0xc4)
68% no Oopses
the devres backtrace is a more than 500ms before iio_charge output!
[ 12.860412] omap3isp 480bc000.isp: 480bc000.isp supply vdd-csiphy1 not found, using dummy regulator [ 12.926818] omap3isp 480bc000.isp: 480bc000.isp supply vdd-csiphy2 not found, using dummy regulator [ 12.955352] pwm-backlight backlight: backlight supply power not found, using dummy regulator [ 12.964996] (NULL device *): hwmon: 'gta04-battery' is not a valid name attribute, please fix [ 12.974243] ------------[ cut here ]------------ [ 12.979064] kernel BUG at ../drivers/base/devres.c:104! [ 12.984527] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM [ 12.990631] Modules linked in: panel_dpi(+) snd_soc_gtm601(+) pwm_omap_dmtimer(+) connector_analog_tv(+) generic_adc_battery(+) pwm_bl(+) b mp280_spi omap3_isp(+) videobuf2_dma_contig videobuf2_memops videobuf2_v4l2 videobuf2_common bq27xxx_battery_hdq bq27xxx_battery omap2430 omap _hdq ov9655 v4l2_fwnode v4l2_common itg3200 bmp280_i2c bmp280 at24 videodev bma180 hmc5843_i2c hmc5843_core industrialio_triggered_buffer tsc2 007 kfifo_buf leds_tca6507 media snd_soc_omap_mcbsp snd_soc_omap snd_pcm_dmaengine gpio_twl4030 phy_twl4030_usb musb_hdrc twl4030_vibra snd_so c_twl4030 twl4030_pwrbutton twl4030_charger twl4030_madc industrialio gnss_w2sg0004 gnss w2cbw003_bluetooth ehci_omap omapdss omapdss_base cec overlay [ 13.056152] CPU: 0 PID: 1224 Comm: kworker/0:3 Not tainted 4.17.2-letux+ #2 [ 13.063446] Hardware name: Generic OMAP36xx (Flattened Device Tree) [ 13.070007] Workqueue: events deferred_probe_work_func [ 13.075378] PC is at add_dr+0xc/0x28 [ 13.079132] LR is at devres_add+0x28/0x38 [ 13.083312] pc : [<c04cf04c>] lr : [<c04cf140>] psr: a00d0093 [ 13.089874] sp : dbee1e00 ip : 00000000 fp : c0b98df0 [ 13.095336] r10: 0000002a r9 : df9ee208 r8 : ddac4c00 [ 13.100799] r7 : 00000000 r6 : cf895b50 r5 : ddac4c10 r4 : ddac4d7c [ 13.107635] r3 : 00000011 r2 : 800d0013 r1 : cf895b40 r0 : ddac4c10 [ 13.114440] Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none [ 13.122009] Control: 10c5387d Table: 9bdec019 DAC: 00000051 [ 13.128021] Process kworker/0:3 (pid: 1224, stack limit = 0x(ptrval)) [ 13.134765] Stack: (0xdbee1e00 to 0xdbee2000) [ 13.139312] 1e00: cf913780 cf895b50 ddac4c10 c048ec44 00000001 cf913b90 dbee1e50 ddac4c10 [ 13.147888] 1e20: ddac4c00 bf248264 00000000 00000001 cf8946e0 0000002c 00000009 00000000 [ 13.156402] 1e40: 00000000 cf8f54d0 00000001 c02b02f4 00000000 0000000a 00000009 00000000 [ 13.164978] 1e60: 00000000 cf895b90 ffffffea 00000000 00000000 00000000 00000000 00000000 [ 13.173522] 1e80: ddac4c10 bf248074 ddac4c10 bf24a014 00000000 00000000 bf24a014 c04cdb88 [ 13.182098] 1ea0: ddac4c10 c0bd1bc8 c0bd1bc4 c04cc19c 00000000 dbee1ee8 c04cc344 ddac4c44 [ 13.190643] 1ec0: dbee0000 c0b02d00 00000000 c04ca9f0 dd81be6c dbfa40b8 ddac4c10 c0b66540 [ 13.199188] 1ee0: 00000001 c04cbed0 ddac4c10 00000001 00000000 ddac4c10 c0b66540 ddac4c10 [ 13.207702] 1f00: 00000000 c04cb498 ddac4c10 c0b66320 df9b0c80 c04cb9bc dbe61880 c0b66354 [ 13.216278] 1f20: df9b0c80 00000000 df9b3f00 c014716c dbe61880 c0b66354 ffff8fdf dbe61880 [ 13.224822] 1f40: df9b0c80 df9b0c80 dbee0000 df9b0c98 c0b02d00 dbe61898 00000008 c0148104 [ 13.233367] 1f60: 00000000 dbeca880 dbeca900 dbee0000 dbe61880 c0147e60 00000000 dd8b1ee8 [ 13.241912] 1f80: dbeca89c c014c250 dbee0000 dbeca900 c014c120 00000000 00000000 00000000 [ 13.250457] 1fa0: 00000000 00000000 00000000 c01010e8 00000000 00000000 00000000 00000000 [ 13.259002] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 13.267578] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000 [ 13.276123] [<c04cf04c>] (add_dr) from [<c04cf140>] (devres_add+0x28/0x38) [ 13.283294] [<c04cf140>] (devres_add) from [<c048ec44>] (_devm_regulator_get+0x5c/0x78) [ 13.291687] [<c048ec44>] (_devm_regulator_get) from [<bf248264>] (pwm_backlight_probe+0x1f0/0x4dc [pwm_bl]) [ 13.301879] [<bf248264>] (pwm_backlight_probe [pwm_bl]) from [<c04cdb88>] (platform_drv_probe+0x50/0x9c) [ 13.311798] [<c04cdb88>] (platform_drv_probe) from [<c04cc19c>] (driver_probe_device+0x240/0x308) [ 13.321105] [<c04cc19c>] (driver_probe_device) from [<c04ca9f0>] (bus_for_each_drv+0x84/0x8c) [ 13.330017] [<c04ca9f0>] (bus_for_each_drv) from [<c04cbed0>] (__device_attach+0x98/0x100) [ 13.338684] [<c04cbed0>] (__device_attach) from [<c04cb498>] (bus_probe_device+0x28/0x80) [ 13.347229] [<c04cb498>] (bus_probe_device) from [<c04cb9bc>] (deferred_probe_work_func+0x108/0x120) [ 13.356811] [<c04cb9bc>] (deferred_probe_work_func) from [<c014716c>] (process_one_work+0x220/0x464) [ 13.366363] [<c014716c>] (process_one_work) from [<c0148104>] (worker_thread+0x2a4/0x3e8) [ 13.374938] [<c0148104>] (worker_thread) from [<c014c250>] (kthread+0x130/0x148) [ 13.382690] [<c014c250>] (kthread) from [<c01010e8>] (ret_from_fork+0x14/0x2c) [ 13.390228] Exception stack(0xdbee1fb0 to 0xdbee1ff8) [ 13.395507] 1fa0: 00000000 00000000 00000000 00000000 [ 13.404052] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 13.412628] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 [ 13.419555] Code: eaf52d64 e5913000 e1510003 0a000000 (e7f001f2) [ 13.425903] ---[ end trace 0e2922f6280d4840 ]--- [ 13.430938] note: kworker/0:3[1224] exited with preempt_count 1 [ 13.454772] wwan_on_off_init: wwan_on_off_init [ 13.472869] panel-dpi lcd: lcd supply vcc not found, using dummy regulator [ 13.480712] omap3isp 480bc000.isp: Revision 15.0 found
So that might be something else... but also bl
And then please replace the strange
memcpy(properties + sizeof(*(psy_desc->properties)) * index, &gab_dyn_props[chan], sizeof(gab_dyn_props[chan]));
by
properties[index] = gab_dyn_props[chan];
and run your auto-repeated tests. If it goes down (to 0%) we have found it.
will do.
Regards, Andreas