i2c: bcm2835: Fix the error handling in 'bcm2835_i2c_probe()'
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Fri, 20 Aug 2021 18:43:33 +0000 (20:43 +0200)
committerWolfram Sang <wsa@kernel.org>
Mon, 7 Feb 2022 14:52:41 +0000 (15:52 +0100)
commitb205f5850263632b6897d8f0bfaeeea4955f8663
tree4c6614acfb4d64f898556ed8f5ecec4563d3b83a
parent951285e59e8ac1d056780b3b5f024cdbdc9846d8
i2c: bcm2835: Fix the error handling in 'bcm2835_i2c_probe()'

Some resource should be released if an error occurs in
'bcm2835_i2c_probe()'.
Add an error handling path and the needed 'clk_disable_unprepare()' and
'clk_rate_exclusive_put()' calls.

While at it, rework the bottom of the function to use this newly added
error handling path and have an explicit and more standard "return 0;" at
the end of the normal path.

Fixes: bebff81fb8b9 ("i2c: bcm2835: Model Divider in CCF")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
[wsa: rebased]
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-bcm2835.c