net: ipa: define the ENDP_INIT_NAT register
Define the ENDP_INIT_NAT register for setting up the NAT configuration for an endpoint. We aren't using NAT at this time, so explicitly set the type to BYPASS for all endpoints. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
eb09457c9d
Коммит
647a05f3ae
|
@ -1,7 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2020 Linaro Ltd.
|
||||
* Copyright (C) 2019-2021 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
@ -468,6 +468,20 @@ static void ipa_endpoint_init_cfg(struct ipa_endpoint *endpoint)
|
|||
iowrite32(val, endpoint->ipa->reg_virt + offset);
|
||||
}
|
||||
|
||||
static void ipa_endpoint_init_nat(struct ipa_endpoint *endpoint)
|
||||
{
|
||||
u32 offset;
|
||||
u32 val;
|
||||
|
||||
if (!endpoint->toward_ipa)
|
||||
return;
|
||||
|
||||
offset = IPA_REG_ENDP_INIT_NAT_N_OFFSET(endpoint->endpoint_id);
|
||||
val = u32_encode_bits(IPA_NAT_BYPASS, NAT_EN_FMASK);
|
||||
|
||||
iowrite32(val, endpoint->ipa->reg_virt + offset);
|
||||
}
|
||||
|
||||
/**
|
||||
* ipa_endpoint_init_hdr() - Initialize HDR endpoint configuration register
|
||||
* @endpoint: Endpoint pointer
|
||||
|
@ -1488,6 +1502,7 @@ static void ipa_endpoint_program(struct ipa_endpoint *endpoint)
|
|||
else
|
||||
(void)ipa_endpoint_program_suspend(endpoint, false);
|
||||
ipa_endpoint_init_cfg(endpoint);
|
||||
ipa_endpoint_init_nat(endpoint);
|
||||
ipa_endpoint_init_hdr(endpoint);
|
||||
ipa_endpoint_init_hdr_ext(endpoint);
|
||||
ipa_endpoint_init_hdr_metadata_mask(endpoint);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2018-2020 Linaro Ltd.
|
||||
* Copyright (C) 2018-2021 Linaro Ltd.
|
||||
*/
|
||||
#ifndef _IPA_REG_H_
|
||||
#define _IPA_REG_H_
|
||||
|
@ -388,6 +388,18 @@ enum ipa_cs_offload_en {
|
|||
IPA_CS_OFFLOAD_DL = 0x2,
|
||||
};
|
||||
|
||||
/* Valid only for TX (IPA consumer) endpoints */
|
||||
#define IPA_REG_ENDP_INIT_NAT_N_OFFSET(ep) \
|
||||
(0x0000080c + 0x0070 * (ep))
|
||||
#define NAT_EN_FMASK GENMASK(1, 0)
|
||||
|
||||
/** enum ipa_nat_en - ENDP_INIT_NAT register NAT_EN field value */
|
||||
enum ipa_nat_en {
|
||||
IPA_NAT_BYPASS = 0x0,
|
||||
IPA_NAT_SRC = 0x1,
|
||||
IPA_NAT_DST = 0x2,
|
||||
};
|
||||
|
||||
#define IPA_REG_ENDP_INIT_HDR_N_OFFSET(ep) \
|
||||
(0x00000810 + 0x0070 * (ep))
|
||||
#define HDR_LEN_FMASK GENMASK(5, 0)
|
||||
|
|
Загрузка…
Ссылка в новой задаче