linux/drivers/net/ipa
Alex Elder 923a6b6984 net: ipa: get clock in ipa_probe()
Any entry point that leads to IPA hardware access must ensure the
hardware is operational (clocked).  Currently we ensure this by
taking an extra clock reference during setup that is not released
until we receive a system suspend request.  But this extra reference
will soon go away.

When the platform driver ->probe function is called, we first need
hardware access in ipa_config().  Although ipa_config() takes an IPA
clock reference, it the special reference taken to prevent suspending
the hardware.

Have ipa_probe() take a reference before calling ipa_config(), so
that the "no-suspend" reference can eventually go away.  Drop this
reference before ipa_probe() returns.

Similarly, the driver ->remove function can be called at any time.
Take an IPA clock reference at the beginning of that function, and
drop it again after the deconfig stage has completed (at which point
hardware access is no longer needed).

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-07-28 00:06:27 +01:00
..
gsi_private.h net: ipa: DMA addresses are nicely aligned 2021-03-28 18:12:03 -07:00
gsi_reg.h net: ipa: inter-EE interrupts aren't always available 2021-06-21 12:30:59 -07:00
gsi_trans.c net: ipa: use WARN_ON() rather than assertions 2021-07-26 22:38:11 +01:00
gsi_trans.h net: ipa: fix all kernel-doc warnings 2021-03-28 18:12:03 -07:00
gsi.c net: ipa: kill the remaining conditional validation code 2021-07-26 22:38:11 +01:00
gsi.h net: ipa: introduce gsi_ring_setup() 2021-06-21 12:30:59 -07:00
ipa_clock.c net: ipa: use dev_err_probe() in ipa_clock.c 2021-02-12 16:54:17 -08:00
ipa_clock.h net: ipa: define clock and interconnect data 2020-11-20 18:44:59 -08:00
ipa_cmd.c net: ipa: use WARN_ON() rather than assertions 2021-07-26 22:38:11 +01:00
ipa_cmd.h net: ipa: kill the remaining conditional validation code 2021-07-26 22:38:11 +01:00
ipa_data-v3.1.c net: ipa: add IPA v3.1 configuration data 2021-06-21 12:31:00 -07:00
ipa_data-v3.5.1.c net: ipa: don't index mem data array by ID 2021-06-10 14:50:08 -07:00
ipa_data-v4.2.c net: ipa: don't index mem data array by ID 2021-06-10 14:50:08 -07:00
ipa_data-v4.5.c net: ipa: enable inline checksum offload for IPA v4.5+ 2021-07-26 22:56:34 +01:00
ipa_data-v4.9.c net: ipa: enable inline checksum offload for IPA v4.5+ 2021-07-26 22:56:34 +01:00
ipa_data-v4.11.c net: ipa: enable inline checksum offload for IPA v4.5+ 2021-07-26 22:56:34 +01:00
ipa_data.h net: ipa: add IPA v3.1 configuration data 2021-06-21 12:31:00 -07:00
ipa_endpoint.c net: ipa: use WARN_ON() rather than assertions 2021-07-26 22:38:11 +01:00
ipa_endpoint.h net: ipa: three small fixes 2021-04-09 20:57:26 -07:00
ipa_gsi.c net: ipa: include declarations in "ipa_gsi.c" 2020-07-07 12:43:18 -07:00
ipa_gsi.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
ipa_interrupt.c net: ipa: kill ipa_interrupt_process_all() 2021-07-27 21:02:06 +01:00
ipa_interrupt.h net: ipa: set up IPA interrupts earlier 2021-07-26 23:09:18 +01:00
ipa_main.c net: ipa: get clock in ipa_probe() 2021-07-28 00:06:27 +01:00
ipa_mem.c net: ipa: don't index mem data array by ID 2021-06-10 14:50:08 -07:00
ipa_mem.h net: ipa: don't index mem data array by ID 2021-06-10 14:50:08 -07:00
ipa_modem.c net: ipa: introduce ipa_uc_clock() 2021-07-26 23:09:18 +01:00
ipa_modem.h net: ipa: kill ipa_modem_setup() 2021-07-26 23:09:18 +01:00
ipa_qmi_msg.c net: ipa: extend the INDICATION_REGISTER request 2021-03-16 11:17:59 -07:00
ipa_qmi_msg.h net: ipa: extend the INDICATION_REGISTER request 2021-03-16 11:17:59 -07:00
ipa_qmi.c net: ipa: kill ipa_modem_setup() 2021-07-26 23:09:18 +01:00
ipa_qmi.h net: ipa: kill ipa_modem_setup() 2021-07-26 23:09:18 +01:00
ipa_reg.c
ipa_reg.h net: ipa: use WARN_ON() rather than assertions 2021-07-26 22:38:11 +01:00
ipa_resource.c net: ipa: kill the remaining conditional validation code 2021-07-26 22:38:11 +01:00
ipa_resource.h net: ipa: get rid of empty IPA functions 2021-04-09 20:57:25 -07:00
ipa_smp2p.c Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
ipa_smp2p.h net: ipa: fix all kernel-doc warnings 2021-03-28 18:12:03 -07:00
ipa_sysfs.c net: ipa: introduce sysfs code 2021-06-11 14:13:18 -07:00
ipa_sysfs.h net: ipa: introduce sysfs code 2021-06-11 14:13:18 -07:00
ipa_table.c net: ipa: use WARN_ON() rather than assertions 2021-07-26 22:38:11 +01:00
ipa_table.h net: ipa: always validate filter and route tables 2021-07-26 22:38:11 +01:00
ipa_uc.c net: ipa: introduce ipa_uc_clock() 2021-07-26 23:09:18 +01:00
ipa_uc.h net: ipa: introduce ipa_uc_clock() 2021-07-26 23:09:18 +01:00
ipa_version.h net: ipa: introduce sysfs code 2021-06-11 14:13:18 -07:00
ipa.h net: ipa: introduce ipa_uc_clock() 2021-07-26 23:09:18 +01:00
Kconfig net: ipa: switch to version based configuration 2021-03-28 18:12:03 -07:00
Makefile net: ipa: kill the remaining conditional validation code 2021-07-26 22:38:11 +01:00