linux/drivers/net/ipa
Alex Elder 8730f45d1c net: ipa: program metadata mask differently
The way the mask value is programmed for QMAP RX endpoints was based
on some wrong assumptions about the way metadata containing the QMAP
mux_id value is formatted.  The metadata value supplied by the
modem is *not* in QMAP format, and in fact contains the mux_id we
want in its (big endian) low-order byte.  That byte must be written
by the IPA into offset 1 of the QMAP header it inserts before the
received packet.

QMAP TX endpoints *do* use a QMAP header as the metadata sent with
each packet.  The modem assumes this, and based on that assumes the
mux_id is in the second byte.  To match those assumptions we must
program the modem TX (QMAP) endpoint HDR register to indicate the
metadata will be found at offset 0 in the message header.

The previous configuration managed to work, but it was not working
correctly.  This patch fixes a bug whose symptom was receipt of
messages containing the wrong QMAP mux_id.

In fixing this, get rid of ipa_rmnet_mux_id_metadata_mask(), which
was more or less defined so there was a separate place to explain
what was happening as we generated the mask value.  Instead, put a
longer description of how this works above ipa_endpoint_init_hdr(),
and define the metadata mask to use as a simple constant.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-06-11 18:39:07 -07:00
..
gsi_private.h soc: qcom: ipa: GSI headers 2020-03-08 22:07:09 -07:00
gsi_reg.h net: ipa: zero return code before issuing generic EE command 2020-04-30 18:04:58 -07:00
gsi_trans.c net: ipa: set DMA length in gsi_trans_cmd_add() 2020-05-11 14:00:29 -07:00
gsi_trans.h soc: qcom: ipa: GSI transactions 2020-03-08 22:07:10 -07:00
gsi.c drivers: ipa: fix typoes for ipa 2020-05-27 14:58:28 -07:00
gsi.h net: ipa: rename db_enable flag 2020-05-06 17:36:04 -07:00
ipa_clock.c drivers: ipa: print dev_err info accurately 2020-05-25 18:03:56 -07:00
ipa_clock.h soc: qcom: ipa: clocking, interrupts, and memory 2020-03-08 22:07:09 -07:00
ipa_cmd.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-15 13:48:59 -07:00
ipa_cmd.h net: ipa: kill ipa_cmd_dma_task_32b_addr_add() 2020-05-06 17:41:32 -07:00
ipa_data-sc7180.c net: ipa: define SMEM memory region for IPA 2020-05-04 11:26:55 -07:00
ipa_data-sdm845.c net: ipa: remove endpoint delay mode feature 2020-05-06 17:37:54 -07:00
ipa_data.h net: ipa: remove endpoint delay mode feature 2020-05-06 17:37:54 -07:00
ipa_endpoint.c net: ipa: program metadata mask differently 2020-06-11 18:39:07 -07:00
ipa_endpoint.h drivers: ipa: remove discription of nonexistent element 2020-05-27 14:58:28 -07:00
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 net: ipa: don't use noirq suspend/resume callbacks 2020-05-16 16:47:19 -07:00
ipa_mem.c net: ipa: remove duplicated include from ipa_mem.c 2020-05-05 12:48:05 -07:00
ipa_mem.h net: ipa: redefine struct ipa_mem_data 2020-05-04 11:26:55 -07:00
ipa_modem.c soc: qcom: ipa: Add a missing '\n' in a log message 2020-04-12 11:44:18 -07:00
ipa_modem.h soc: qcom: ipa: modem and microcontroller 2020-03-08 22:07:10 -07:00
ipa_qmi_msg.c soc: qcom: ipa: AP/modem communications 2020-03-08 22:07:10 -07:00
ipa_qmi_msg.h soc: qcom: ipa: AP/modem communications 2020-03-08 22:07:10 -07:00
ipa_qmi.c soc: qcom: ipa: AP/modem communications 2020-03-08 22:07:10 -07:00
ipa_qmi.h soc: qcom: ipa: AP/modem communications 2020-03-08 22:07:10 -07:00
ipa_reg.c
ipa_reg.h
ipa_smp2p.c drivers: ipa: fix typos for ipa_smp2p structure doc 2020-05-14 13:06:55 -07:00
ipa_smp2p.h soc: qcom: ipa: AP/modem communications 2020-03-08 22:07:10 -07:00
ipa_table.c soc: qcom: ipa: filter and routing tables 2020-03-08 22:07:10 -07:00
ipa_table.h soc: qcom: ipa: filter and routing tables 2020-03-08 22:07:10 -07:00
ipa_uc.c soc: qcom: ipa: modem and microcontroller 2020-03-08 22:07:10 -07:00
ipa_uc.h soc: qcom: ipa: modem and microcontroller 2020-03-08 22:07:10 -07:00
ipa_version.h
ipa.h net: ipa: define SMEM memory region for IPA 2020-05-04 11:26:55 -07:00
Kconfig remoteproc: clean up notification config 2020-03-16 17:31:51 -07:00
Makefile soc: qcom: ipa: support build of IPA code 2020-03-08 22:07:10 -07:00