PM / AVS: SmartReflex: Prepare to use device tree based probing
authorTony Lindgren <tony@atomide.com>
Fri, 23 Feb 2018 18:03:28 +0000 (10:03 -0800)
committerTony Lindgren <tony@atomide.com>
Thu, 1 Mar 2018 00:32:09 +0000 (16:32 -0800)
commit2ad1ec0d2fddcb9cf17632dacf4d70c81a0c49e7
tree9e226414a3764f09b06996d3aa58cba3f78d5459
parent15618256224769621b2c2300f66ad9513135ffaa
PM / AVS: SmartReflex: Prepare to use device tree based probing

We are currently probing smartreflex with omap_device while we are
already probing smartreflex related interconnect target module with
ti-sysc driver and dts data.

Before we can flip things on for ti-sysc, we need to prepare the
smartreflex driver a bit:

1. The smartreflex clock is really for the whole interconnect target
   module. So it may be configured at the parent device level with
   ti-sysc

2. With ti-sysc, we have the child device manage interconnect target
   module directly if pm_runtime_irq_safe() is set and there is only
   one child. In that case nobody else is going to call pm_runtime_get
   and put, so we need to add these calls to idle smartreflex properly
   after probe if not fully configured

3. With ti-sysc, the parent driver may rebind. So we want to use
   platform_driver_register() and don't want probe to be __init

Note that this patch depends on the related changes to ti-sysc driver
and omap_device probing to prevent both ti-sysc and omap_device to
try to probe smartreflex.

Cc: linux-pm@vger.kernel.org
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
drivers/power/avs/smartreflex.c