diff options
author | Alex Elder <elder@linaro.org> | 2020-06-11 14:48:32 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-06-11 18:39:08 -0700 |
commit | 636edeaad5577b6023f0de2b98a010d1cea73607 (patch) | |
tree | 4c4dfda43367a3fdeb3caf97a33da1fe108cae93 /drivers/net/ipa/ipa_endpoint.c | |
parent | 9b8ad8dab994f4cba682ca6110bda37f3dcd4b83 (diff) | |
download | linux-636edeaad5577b6023f0de2b98a010d1cea73607.tar.gz linux-636edeaad5577b6023f0de2b98a010d1cea73607.tar.bz2 linux-636edeaad5577b6023f0de2b98a010d1cea73607.zip |
net: ipa: program upper nibbles of sequencer type
The upper two nibbles of the sequencer type were not used for
SDM845, and were assumed to be 0. But for SC7180 they are used, and
so they must be programmed by ipa_endpoint_init_seq(). Fix this bug.
IPA_SEQ_PKT_PROCESS_NO_DEC_NO_UCP_DMAP doesn't have a descriptive
comment, so add one.
Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ipa/ipa_endpoint.c')
-rw-r--r-- | drivers/net/ipa/ipa_endpoint.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ipa/ipa_endpoint.c b/drivers/net/ipa/ipa_endpoint.c index 2825dca23ec4..bf3e8ced3ee0 100644 --- a/drivers/net/ipa/ipa_endpoint.c +++ b/drivers/net/ipa/ipa_endpoint.c @@ -699,10 +699,12 @@ static void ipa_endpoint_init_seq(struct ipa_endpoint *endpoint) u32 seq_type = endpoint->seq_type; u32 val = 0; + /* Sequencer type is made up of four nibbles */ val |= u32_encode_bits(seq_type & 0xf, HPS_SEQ_TYPE_FMASK); val |= u32_encode_bits((seq_type >> 4) & 0xf, DPS_SEQ_TYPE_FMASK); - /* HPS_REP_SEQ_TYPE is 0 */ - /* DPS_REP_SEQ_TYPE is 0 */ + /* The second two apply to replicated packets */ + val |= u32_encode_bits((seq_type >> 8) & 0xf, HPS_REP_SEQ_TYPE_FMASK); + val |= u32_encode_bits((seq_type >> 12) & 0xf, DPS_REP_SEQ_TYPE_FMASK); iowrite32(val, endpoint->ipa->reg_virt + offset); } |