Commits
Robby Cai committed 3b78d523231
media: ov5640 v2: fix kernel warning when no camera is plugged in in 5451781dadf85000665e0e2c3288e9e0f34b860a commit, it added the check that the regulator need to be disabled before calling regulator_put(). If not do so, the kernel will print warning message as below. To fix this, need to disable regulator before probe function return if the camera's not found. regulator_put() will be called when probe fails in this case as devm_regulator_get() already called in probe function. [ 1482.424157] camera ov5640 is not found [ 1482.428022] ------------[ cut here ]------------ [ 1482.433070] WARNING: CPU: 0 PID: 697 at drivers/regulator/core.c:2039 _regulator_put.part.4+0x100/0x120 [ 1482.442566] Modules linked in: ov5640_camera_v2(+) v4l2_int_device mx6s_capture galcore(O) [last unloaded: ov5640_camera_int] [ 1482.453990] CPU: 0 PID: 697 Comm: modprobe Tainted: G O 5.3.0-rc3-next-20190809-5.3-warrior-next+g1dc2946 #1 [ 1482.465136] Hardware name: Freescale i.MX6 SoloX (Device Tree) [ 1482.471007] [<c0112868>] (unwind_backtrace) from [<c010cd9c>] (show_stack+0x10/0x14) [ 1482.478781] [<c010cd9c>] (show_stack) from [<c0cec834>] (dump_stack+0xd8/0x110) [ 1482.486116] [<c0cec834>] (dump_stack) from [<c01362c4>] (__warn.part.3+0xa8/0xe8) [ 1482.493620] [<c01362c4>] (__warn.part.3) from [<c013645c>] (warn_slowpath_null+0x40/0x4c) [ 1482.501824] [<c013645c>] (warn_slowpath_null) from [<c05e6868>] (_regulator_put.part.4+0x100/0x120) [ 1482.510894] [<c05e6868>] (_regulator_put.part.4) from [<c05e68b4>] (regulator_put+0x2c/0x3c) [ 1482.519356] [<c05e68b4>] (regulator_put) from [<c06dd210>] (release_nodes+0x1ac/0x1f8) [ 1482.527298] [<c06dd210>] (release_nodes) from [<c06d8cb0>] (really_probe+0x104/0x340) [ 1482.535151] [<c06d8cb0>] (really_probe) from [<c06d9098>] (driver_probe_device+0x84/0x194) [ 1482.543436] [<c06d9098>] (driver_probe_device) from [<c06d938c>] (device_driver_attach+0x58/0x60) [ 1482.552329] [<c06d938c>] (device_driver_attach) from [<c06d93ec>] (__driver_attach+0x58/0xd0) [ 1482.560875] [<c06d93ec>] (__driver_attach) from [<c06d70b8>] (bus_for_each_dev+0x70/0xb4) [ 1482.569073] [<c06d70b8>] (bus_for_each_dev) from [<c06d80e4>] (bus_add_driver+0x198/0x1d0) [ 1482.577358] [<c06d80e4>] (bus_add_driver) from [<c06da078>] (driver_register+0x74/0x108) [ 1482.585474] [<c06da078>] (driver_register) from [<c088b238>] (i2c_register_driver+0x38/0x84) [ 1482.593937] [<c088b238>] (i2c_register_driver) from [<c0103078>] (do_one_initcall+0x80/0x338) [ 1482.602486] [<c0103078>] (do_one_initcall) from [<c01e163c>] (do_init_module+0x5c/0x238) [ 1482.610598] [<c01e163c>] (do_init_module) from [<c01e3b00>] (load_module+0x2260/0x256c) [ 1482.618623] [<c01e3b00>] (load_module) from [<c01e4060>] (sys_finit_module+0xbc/0xdc) [ 1482.626473] [<c01e4060>] (sys_finit_module) from [<c0101000>] (ret_fast_syscall+0x0/0x28) [ 1482.634666] Exception stack(0xec0f5fa8 to 0xec0f5ff0) [ 1482.639737] 5fa0: 00000000 00000000 00000003 00028e44 00000000 01602408 [ 1482.647933] 5fc0: 00000000 00000000 00040000 0000017b 00000000 00000000 00000000 01602630 [ 1482.656127] 5fe0: beb158f0 beb158e0 0001fdb4 b6f1f510 [ 1482.661324] irq event stamp: 3497 [ 1482.664677] hardirqs last enabled at (3505): [<c019be00>] console_unlock+0x418/0x5f4 [ 1482.672612] hardirqs last disabled at (3522): [<c019ba70>] console_unlock+0x88/0x5f4 [ 1482.680451] softirqs last enabled at (3538): [<c01024e4>] __do_softirq+0x2c4/0x514 [ 1482.688136] softirqs last disabled at (3531): [<c013da4c>] irq_exit+0x100/0x188 [ 1482.695530] ---[ end trace e580778621876135 ]--- Signed-off-by: Robby Cai <robby.cai@nxp.com>