clk: s2mps11: Fix matching when built as module and DT node contains compatible
authorKrzysztof Kozlowski <krzk@kernel.org>
Wed, 29 Aug 2018 19:20:10 +0000 (21:20 +0200)
committerStephen Boyd <sboyd@kernel.org>
Tue, 16 Oct 2018 21:45:14 +0000 (14:45 -0700)
commit8985167ecf57f97061599a155bb9652c84ea4913
tree97f476e6a84e37bfad1fb215cb08dc3713153d32
parent5b394b2ddf0347bef56e50c69a58773c94343ff3
clk: s2mps11: Fix matching when built as module and DT node contains compatible

When driver is built as module and DT node contains clocks compatible
(e.g. "samsung,s2mps11-clk"), the module will not be autoloaded because
module aliases won't match.

The modalias from uevent: of:NclocksT<NULL>Csamsung,s2mps11-clk
The modalias from driver: platform:s2mps11-clk

The devices are instantiated by parent's MFD.  However both Device Tree
bindings and parent define the compatible for clocks devices.  In case
of module matching this DT compatible will be used.

The issue will not happen if this is a built-in (no need for module
matching) or when clocks DT node does not contain compatible (not
correct from bindings perspective but working for driver).

Note when backporting to stable kernels: adjust the list of device ID
entries.

Cc: <stable@vger.kernel.org>
Fixes: 53c31b3437a6 ("mfd: sec-core: Add of_compatible strings for clock MFD cells")
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Acked-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/clk-s2mps11.c