ath10k: fix rfc1042 header retrieval in QCA4019 with eth decap mode
commit 2f38c3c01de945234d23dd163e3528ccb413066d upstream. Chipset from QCA99X0 onwards (QCA99X0, QCA9984, QCA4019 & future) rx_hdr_status is not padded to align in 4-byte boundary. Define a new hw_params field to handle different alignment behaviour between different hw. This patch fixes improper retrieval of rfc1042 header with QCA4019. This patch along with "ath10k: Properly remove padding from the start of rx payload" will fix traffic failure in ethernet decap mode for QCA4019. Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com> Signed-off-by: Sriram R <srirrama@codeaurora.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
df94ad02f0
commit
b88fb9ea47
2 changed files with 12 additions and 0 deletions
|
@ -67,6 +67,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|||
.board_size = QCA988X_BOARD_DATA_SZ,
|
||||
.board_ext_size = QCA988X_BOARD_EXT_DATA_SZ,
|
||||
},
|
||||
.decap_align_bytes = 4,
|
||||
},
|
||||
{
|
||||
.id = QCA6174_HW_2_1_VERSION,
|
||||
|
@ -85,6 +86,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|||
.board_size = QCA6174_BOARD_DATA_SZ,
|
||||
.board_ext_size = QCA6174_BOARD_EXT_DATA_SZ,
|
||||
},
|
||||
.decap_align_bytes = 4,
|
||||
},
|
||||
{
|
||||
.id = QCA6174_HW_2_1_VERSION,
|
||||
|
@ -103,6 +105,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|||
.board_size = QCA6174_BOARD_DATA_SZ,
|
||||
.board_ext_size = QCA6174_BOARD_EXT_DATA_SZ,
|
||||
},
|
||||
.decap_align_bytes = 4,
|
||||
},
|
||||
{
|
||||
.id = QCA6174_HW_3_0_VERSION,
|
||||
|
@ -121,6 +124,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|||
.board_size = QCA6174_BOARD_DATA_SZ,
|
||||
.board_ext_size = QCA6174_BOARD_EXT_DATA_SZ,
|
||||
},
|
||||
.decap_align_bytes = 4,
|
||||
},
|
||||
{
|
||||
.id = QCA6174_HW_3_2_VERSION,
|
||||
|
@ -140,6 +144,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|||
.board_size = QCA6174_BOARD_DATA_SZ,
|
||||
.board_ext_size = QCA6174_BOARD_EXT_DATA_SZ,
|
||||
},
|
||||
.decap_align_bytes = 4,
|
||||
},
|
||||
{
|
||||
.id = QCA99X0_HW_2_0_DEV_VERSION,
|
||||
|
@ -159,6 +164,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|||
.board_size = QCA99X0_BOARD_DATA_SZ,
|
||||
.board_ext_size = QCA99X0_BOARD_EXT_DATA_SZ,
|
||||
},
|
||||
.decap_align_bytes = 1,
|
||||
},
|
||||
{
|
||||
.id = QCA9377_HW_1_0_DEV_VERSION,
|
||||
|
@ -177,6 +183,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|||
.board_size = QCA9377_BOARD_DATA_SZ,
|
||||
.board_ext_size = QCA9377_BOARD_EXT_DATA_SZ,
|
||||
},
|
||||
.decap_align_bytes = 4,
|
||||
},
|
||||
{
|
||||
.id = QCA9377_HW_1_1_DEV_VERSION,
|
||||
|
@ -195,6 +202,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|||
.board_size = QCA9377_BOARD_DATA_SZ,
|
||||
.board_ext_size = QCA9377_BOARD_EXT_DATA_SZ,
|
||||
},
|
||||
.decap_align_bytes = 4,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -670,6 +670,10 @@ struct ath10k {
|
|||
size_t board_size;
|
||||
size_t board_ext_size;
|
||||
} fw;
|
||||
|
||||
/* Number of bytes used for alignment in rx_hdr_status */
|
||||
int decap_align_bytes;
|
||||
|
||||
} hw_params;
|
||||
|
||||
const struct firmware *board;
|
||||
|
|
Loading…
Add table
Reference in a new issue