linux/drivers/net/ipa
Alex Elder 5fb859f79f net: ipa: initialize ring indexes to 0
When a GSI channel is initially allocated, and after it has been
reset, the hardware assumes its ring index is 0.  And although we
do initialize channels this way, the comments in the IPA code don't
really explain this.  For event rings, it doesn't matter what value
we use initially, so using 0 is just fine.

Add some information about the assumptions made by hardware above
the definition of the gsi_ring structure in "gsi.h".

Zero the index field for all rings (channel and event) when the ring
is allocated.  As a result, that function initializes all fields in
the structure.

Stop zeroing the index the top of gsi_channel_program().  Initially
we'll use the index value set when the channel ring was allocated.
And we'll explicitly zero the index value in gsi_channel_reset()
before programming the hardware, adding a comment explaining why
it's required.

For event rings, use the index initialized by gsi_ring_alloc()
rather than 0 when ringing the doorbell in gsi_evt_ring_program().
(It'll still be zero, but we won't assume that to be the case.)

Use a local variable in gsi_evt_ring_program() that represents the
address of the event ring's ring structure.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-07-20 11:12:20 +01:00
..
gsi_private.h net: ipa: don't assume one channel per event ring 2022-06-16 20:44:03 -07:00
gsi_reg.h net: ipa: rename a GSI error code 2022-05-20 11:12:23 +01:00
gsi_trans.c net: ipa: remove unexpected word "the" 2022-06-22 18:20:26 -07:00
gsi_trans.h net: ipa: introduce gsi_trans_tx_committed() 2022-06-15 09:07:58 +01:00
gsi.c net: ipa: initialize ring indexes to 0 2022-07-20 11:12:20 +01:00
gsi.h net: ipa: initialize ring indexes to 0 2022-07-20 11:12:20 +01:00
ipa_cmd.c net: ipa: rename channel->tlv_count 2022-06-13 12:01:58 +01:00
ipa_cmd.h net: ipa: remove command info pool 2022-05-22 20:46:12 +01:00
ipa_data-v3.1.c net: ipa: specify RX aggregation time limit in config data 2022-05-22 20:46:12 +01:00
ipa_data-v3.5.1.c net: ipa: specify RX aggregation time limit in config data 2022-05-22 20:46:12 +01:00
ipa_data-v4.2.c net: ipa: specify RX aggregation time limit in config data 2022-05-22 20:46:12 +01:00
ipa_data-v4.5.c net: ipa: specify RX aggregation time limit in config data 2022-05-22 20:46:12 +01:00
ipa_data-v4.9.c net: ipa: specify RX aggregation time limit in config data 2022-05-22 20:46:12 +01:00
ipa_data-v4.11.c net: ipa: specify RX aggregation time limit in config data 2022-05-22 20:46:12 +01:00
ipa_data.h net: ipa: rename a few endpoint config data types 2022-05-20 11:12:24 +01:00
ipa_endpoint.c net: ipa: simplify endpoint transaction completion 2022-06-13 12:01:58 +01:00
ipa_endpoint.h net: ipa: rename endpoint->trans_tre_max 2022-06-13 12:01:58 +01: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: don't proceed to out-of-bound write 2022-05-19 18:44:51 -07:00
ipa_interrupt.h net: ipa: set up IPA interrupts earlier 2021-07-26 23:09:18 +01:00
ipa_main.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-11-26 13:45:19 -08:00
ipa_mem.c net: ipa: Use 'for_each_clear_bit' when possible 2021-11-19 11:19:11 +00: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: save a copy of endpoint default config 2022-05-20 11:12:24 +01:00
ipa_modem.h net: ipa: kill ipa_modem_init() 2021-11-25 19:37:33 -08:00
ipa_power.c net: ipa: use struct_size() for the interconnect array 2022-03-11 22:50:07 -08:00
ipa_power.h net: ipa: request IPA register values be retained 2022-02-03 08:03:43 -08: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: get rid of a duplicate initialization 2022-05-13 12:01:42 +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: ipa_resource: Fix wrong for loop range 2021-11-12 19:59:45 -08:00
ipa_resource.h net: ipa: get rid of empty IPA functions 2021-04-09 20:57:25 -07:00
ipa_smp2p.c net: ipa: separate disabling setup from modem stop 2021-11-23 12:06:40 +00:00
ipa_smp2p.h net: ipa: separate disabling setup from modem stop 2021-11-23 12:06:40 +00: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: zero unused portions of filter table memory 2021-11-25 19:37:33 -08: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: request IPA register values be retained 2022-02-03 08:03:43 -08:00
ipa_uc.h net: ipa: rename ipa_clock_* symbols 2021-08-22 09:44:17 +01:00
ipa_version.h net: ipa: introduce sysfs code 2021-06-11 14:13:18 -07:00
ipa.h net: ipa: count the number of modem TX endpoints 2022-05-22 20:46:12 +01:00
Kconfig net: ipa: add an interconnect dependency 2022-03-02 22:14:05 -08:00
Makefile net: ipa: rename "ipa_clock.c" 2021-08-22 09:44:17 +01:00