linux_dsm_epyc7002/drivers/net/ipa
Alex Elder 9dd441e4ed soc: qcom: ipa: GSI transactions
This patch implements GSI transactions.  A GSI transaction is a
structure that represents a single request (consisting of one or
more TREs) sent to the GSI hardware.  The last TRE in a transaction
includes a flag requesting that the GSI interrupt the AP to notify
that it has completed.

TREs are executed and completed strictly in order.  For this reason,
the completion of a single TRE implies that all previous TREs (in
particular all of those "earlier" in a transaction) have completed.

Whenever there is a need to send a request (a set of TREs) to the
IPA, a GSI transaction is allocated, specifying the number of TREs
that will be required.  Details of the request (e.g. transfer offsets
and length) are represented by in a Linux scatterlist array that is
incorporated in the transaction structure.

Once all commands (TREs) are added to a transaction it is committed.
When the hardware signals that the request has completed, a callback
function allows for cleanup or followup activity to be performed
before the transaction is freed.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-03-08 22:07:10 -07:00
..
gsi_private.h soc: qcom: ipa: GSI headers 2020-03-08 22:07:09 -07:00
gsi_reg.h soc: qcom: ipa: GSI headers 2020-03-08 22:07:09 -07:00
gsi_trans.c soc: qcom: ipa: GSI transactions 2020-03-08 22:07:10 -07:00
gsi_trans.h soc: qcom: ipa: GSI transactions 2020-03-08 22:07:10 -07:00
gsi.c soc: qcom: ipa: the generic software interface 2020-03-08 22:07:09 -07:00
gsi.h soc: qcom: ipa: GSI headers 2020-03-08 22:07:09 -07:00
ipa_clock.c soc: qcom: ipa: clocking, interrupts, and memory 2020-03-08 22:07:09 -07:00
ipa_clock.h soc: qcom: ipa: clocking, interrupts, and memory 2020-03-08 22:07:09 -07:00
ipa_data-sc7180.c
ipa_data-sdm845.c
ipa_data.h
ipa_gsi.c soc: qcom: ipa: IPA interface to GSI 2020-03-08 22:07:10 -07:00
ipa_gsi.h soc: qcom: ipa: IPA interface to GSI 2020-03-08 22:07:10 -07:00
ipa_interrupt.c soc: qcom: ipa: clocking, interrupts, and memory 2020-03-08 22:07:09 -07:00
ipa_interrupt.h soc: qcom: ipa: clocking, interrupts, and memory 2020-03-08 22:07:09 -07:00
ipa_main.c
ipa_mem.c soc: qcom: ipa: clocking, interrupts, and memory 2020-03-08 22:07:09 -07:00
ipa_mem.h soc: qcom: ipa: clocking, interrupts, and memory 2020-03-08 22:07:09 -07:00
ipa_reg.c
ipa_reg.h
ipa_version.h
ipa.h