i2c: bcm2835: Store pointer to bus clock
authorStefan Wahren <wahrenst@gmx.net>
Sat, 4 Jan 2020 15:13:20 +0000 (16:13 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Jan 2020 18:48:17 +0000 (19:48 +0100)
commit0ca980a82c0a65ae2cf8aff021ef6e946c760502
treedd96a306e5c3d7e1a1587511fde32cd6442ce9e0
parentddd9320a5ab5319ec0093bc0f8ca383ead670af7
i2c: bcm2835: Store pointer to bus clock

commit 3b722da6672df8392f9c43d7c7e04bddd81d7e37 upstream.

The commit bebff81fb8b9 ("i2c: bcm2835: Model Divider in CCF") introduced
a NULL pointer dereference on driver unload. It seems that we can't fetch
the bus clock via devm_clk_get in bcm2835_i2c_remove. As an alternative
approach store a pointer to the bus clock in the private driver structure.

Fixes: bebff81fb8b9 ("i2c: bcm2835: Model Divider in CCF")
Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/i2c/busses/i2c-bcm2835.c