linux/drivers/net/ipa
Alex Elder e2f154e6b6 net: ipa: introduce ipa_uc_clock()
The first time it's booted, the modem loads and starts the
IPA-resident microcontroller.  Once the microcontroller has
completed its initialization, it notifies the AP it's "ready"
by sending an INIT_COMPLETED response message.

Until it receives that microcontroller message, the AP must ensure
the IPA core clock remains operational.  Currently, a "proxy" clock
reference is taken in ipa_uc_config(), dropping it again once the
message is received.

However there could be a long delay between when ipa_config()
completes and when modem actually starts.  And because the
microcontroller gets loaded by the modem, there's no need to
get the modem "proxy clock" until the first time it starts.

Create a new function ipa_uc_clock() which takes the "proxy" clock
reference for the microcontroller.  Call it when we get remoteproc
SSR notification that the modem is about to start.  Keep an
additional flag to record whether this proxy clock reference needs
to be dropped at shutdown time, and issue a warning if we get the
microcontroller message either before the clock reference is taken,
or after it has already been dropped.

Drop the nearby use of "hh" length modifiers, which are no longer
encouraged in the kernel.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-07-26 23:09:18 +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
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
ipa_gsi.h
ipa_interrupt.c net: ipa: set up IPA interrupts earlier 2021-07-26 23:09:18 +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: set up the microcontroller earlier 2021-07-26 23:09:18 +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