i2c: mark device nodes only in case of successful instantiation
authorRalf Ramsauer <ralf@ramses-pyramidenbau.de>
Mon, 17 Oct 2016 13:59:57 +0000 (15:59 +0200)
committerWolfram Sang <wsa@the-dreams.de>
Tue, 25 Oct 2016 09:48:48 +0000 (11:48 +0200)
commit6a676fb69dcbf3310b9e462c1db66c8e7f6ead38
tree56c420e9ca21a6899e0d7004f0581fdc2d6eee24
parent399c168ab5ab5e12ed55b6c91d61c24eb84c9164
i2c: mark device nodes only in case of successful instantiation

Instantiated I2C device nodes are marked with OF_POPULATE. This was
introduced in 4f001fd30145a6. On unloading, loaded device nodes will of
course be unmarked. The problem are nodes that fail during
initialisation: If a node fails, it won't be unloaded and hence not be
unmarked.

If a I2C driver module is unloaded and reloaded, it will skip nodes that
failed before.

Skip device nodes that are already populated and mark them only in case
of success.

Fixes: 4f001fd30145a6 ("i2c: Mark instantiated device nodes with OF_POPULATE")
Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
[wsa: use 14-digit commit sha]
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: stable@kernel.org
drivers/i2c/i2c-core.c