greybus: spilib: make spilib independent of gbphy
authorViresh Kumar <viresh.kumar@linaro.org>
Thu, 21 Jul 2016 21:45:06 +0000 (14:45 -0700)
committerGreg Kroah-Hartman <gregkh@google.com>
Fri, 22 Jul 2016 02:03:05 +0000 (19:03 -0700)
commit92bcaddea3197e477bb37439805fcb5a2f9942d7
treec38580b183820a61bd7f7579591116175d833157
parentadac4b95941189ca301759a67da4a132fc2804d5
greybus: spilib: make spilib independent of gbphy

spilib is used by multiple users currently (spi.c and fw-core.c) but
commit aa52b62a0556 broke that hierarchy and introduced gbphy dependent
code in spilib.

This may have unreliable consequences as we are doing following
operation unconditionally now:

gbphy_dev = to_gbphy_dev(spi->parent);
gbphy_runtime_get_sync(gbphy_dev);

which may not go well when the parent is of type &bundle->dev
(fw-core.c).

This patch introduces spilib_ops and lets the users of the core register
them. This shall have no functional change for the spi.c usecase and
shall fix the unreliable results for the fw-core.c usecase.

Tested by writing to mtd0 dev and verifying (with print messages) that
the below routines are getting called for a gpbridge-test module.

Fixes: aa52b62a0556 ("spi: Add runtime_pm support")
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/fw-core.c
drivers/staging/greybus/spi.c
drivers/staging/greybus/spilib.c
drivers/staging/greybus/spilib.h