forked from Minki/linux
gpio: pca953x: add a comment explaining the need for a lockdep subclass
This is a follow-up to commit 559b46990e
("gpio: pca953x: fix an
incorrect lockdep warning"). The reason for calling
lockdep_set_subclass() in pca953x_probe() is not explained in
the code.
Add a comment describing the problem, partial solution and required
future extensions.
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
parent
de34f4da7f
commit
74f47f07e5
@ -794,6 +794,22 @@ static int pca953x_probe(struct i2c_client *client,
|
||||
}
|
||||
|
||||
mutex_init(&chip->i2c_lock);
|
||||
/*
|
||||
* In case we have an i2c-mux controlled by a GPIO provided by an
|
||||
* expander using the same driver higher on the device tree, read the
|
||||
* i2c adapter nesting depth and use the retrieved value as lockdep
|
||||
* subclass for chip->i2c_lock.
|
||||
*
|
||||
* REVISIT: This solution is not complete. It protects us from lockdep
|
||||
* false positives when the expander controlling the i2c-mux is on
|
||||
* a different level on the device tree, but not when it's on the same
|
||||
* level on a different branch (in which case the subclass number
|
||||
* would be the same).
|
||||
*
|
||||
* TODO: Once a correct solution is developed, a similar fix should be
|
||||
* applied to all other i2c-controlled GPIO expanders (and potentially
|
||||
* regmap-i2c).
|
||||
*/
|
||||
lockdep_set_subclass(&chip->i2c_lock,
|
||||
i2c_adapter_depth(client->adapter));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user