From a98e024f860c12a85ef366b25dcee2eeb1a83f75 Mon Sep 17 00:00:00 2001 From: Dhanashri Atre Date: Tue, 3 Jan 2017 14:37:27 -0800 Subject: [PATCH] qcacmn: Change due to R102 hardware headers for QCA6290 Changes needed to support the new definitions introduced in the R102 hardware header files for QCA6290. Change-Id: I4e3c27dfdc48b4d6a44f0f50f3e4a907be20e53d CRs-Fixed: 1105853 --- dp/wifi3.0/hal_rx.h | 14 ++++++++++---- hal/wifi3.0/hal_internal.h | 4 +--- hal/wifi3.0/hal_srng.c | 8 ++++---- hal/wifi3.0/hal_tx.h | 8 ++++---- hif/inc/regtable_pcie.h | 30 ++++++++++++++++-------------- hif/src/qca6290def.c | 12 +++++++++++- hif/src/qca8074def.c | 4 +--- 7 files changed, 47 insertions(+), 33 deletions(-) diff --git a/dp/wifi3.0/hal_rx.h b/dp/wifi3.0/hal_rx.h index b0b9c294ce..33b3a1f23f 100644 --- a/dp/wifi3.0/hal_rx.h +++ b/dp/wifi3.0/hal_rx.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -498,7 +498,9 @@ struct rx_pkt_hdr_tlv { * 2) TLV's don't span across 128 byte lines * 3) Rx Buffer is nicely aligned on the 128 byte boundary */ -#if defined(WCSS_VERSION) && (WCSS_VERSION >= 96) +#if defined(WCSS_VERSION) && \ + ((defined(CONFIG_WIN) && (WCSS_VERSION >= 96)) || \ + (defined(CONFIG_MCL) && (WCSS_VERSION >= 72))) #define RX_PADDING0_BYTES 4 #endif #define RX_PADDING1_BYTES 16 @@ -506,7 +508,9 @@ struct rx_pkt_tlvs { struct rx_msdu_end_tlv msdu_end_tlv; /* 72 bytes */ struct rx_attention_tlv attn_tlv; /* 16 bytes */ struct rx_msdu_start_tlv msdu_start_tlv;/* 40 bytes */ -#if defined(WCSS_VERSION) && (WCSS_VERSION >= 96) +#if defined(WCSS_VERSION) && \ + ((defined(CONFIG_WIN) && (WCSS_VERSION >= 96)) || \ + (defined(CONFIG_MCL) && (WCSS_VERSION >= 72))) uint8_t rx_padding0[RX_PADDING0_BYTES]; /* 4 bytes */ #endif struct rx_mpdu_start_tlv mpdu_start_tlv;/* 96 bytes */ @@ -572,7 +576,9 @@ hal_rx_mpdu_peer_meta_data_get(uint8_t *buf) return peer_meta_data; } -#if defined(WCSS_VERSION) && (WCSS_VERSION > 81) +#if defined(WCSS_VERSION) && \ + ((defined(CONFIG_WIN) && (WCSS_VERSION > 81)) || \ + (defined(CONFIG_MCL) && (WCSS_VERSION >= 72))) #define HAL_RX_MSDU_END_L3_HEADER_PADDING_GET(_rx_msdu_end) \ (_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_msdu_end, \ RX_MSDU_END_5_L3_HEADER_PADDING_OFFSET)), \ diff --git a/hal/wifi3.0/hal_internal.h b/hal/wifi3.0/hal_internal.h index 64b67c73bb..81240930c9 100644 --- a/hal/wifi3.0/hal_internal.h +++ b/hal/wifi3.0/hal_internal.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -59,9 +59,7 @@ #include "rx_msdu_end.h" #include "rx_attention.h" #include "tx_msdu_extension.h" -#ifdef CONFIG_WIN #include "wcss_version.h" -#endif /* TBD: This should be movded to shared HW header file */ enum hal_srng_ring_id { diff --git a/hal/wifi3.0/hal_srng.c b/hal/wifi3.0/hal_srng.c index 8893ac32db..e1d468b230 100644 --- a/hal/wifi3.0/hal_srng.c +++ b/hal/wifi3.0/hal_srng.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -28,9 +28,7 @@ */ #include "hal_api.h" -#ifdef CONFIG_WIN #include "wcss_version.h" -#endif /** * Common SRNG register access macros: @@ -615,7 +613,9 @@ static inline void hal_srng_src_hw_init(struct hal_soc *hal, srng->entry_size * srng->num_entries); SRNG_SRC_REG_WRITE(srng, BASE_MSB, reg_val); -#if defined(WCSS_VERSION) && (WCSS_VERSION > 81) +#if defined(WCSS_VERSION) && \ + ((defined(CONFIG_WIN) && (WCSS_VERSION > 81)) || \ + (defined(CONFIG_MCL) && (WCSS_VERSION >= 72))) reg_val = SRNG_SM(SRNG_SRC_FLD(ID, ENTRY_SIZE), srng->entry_size); #else reg_val = SRNG_SM(SRNG_SRC_FLD(ID, RING_ID), srng->ring_id) | diff --git a/hal/wifi3.0/hal_tx.h b/hal/wifi3.0/hal_tx.h index 23d2a59024..dbabb9bd9d 100644 --- a/hal/wifi3.0/hal_tx.h +++ b/hal/wifi3.0/hal_tx.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -23,9 +23,7 @@ Include files ---------------------------------------------------------------------------*/ #include "hal_api.h" -#ifdef CONFIG_WIN #include "wcss_version.h" -#endif /*--------------------------------------------------------------------------- Preprocessor definitions and constants @@ -825,7 +823,9 @@ static inline uint8_t hal_tx_comp_get_release_reason(void *hal_desc) * * Return: none */ -#if defined(WCSS_VERSION) && (WCSS_VERSION > 81) +#if defined(WCSS_VERSION) && \ + ((defined(CONFIG_WIN) && (WCSS_VERSION > 81)) || \ + (defined(CONFIG_MCL) && (WCSS_VERSION >= 72))) static inline void hal_tx_comp_get_status(void *desc, struct hal_tx_completion_status *ts) { diff --git a/hif/inc/regtable_pcie.h b/hif/inc/regtable_pcie.h index ca283b3168..296ad2337f 100644 --- a/hif/inc/regtable_pcie.h +++ b/hif/inc/regtable_pcie.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -209,7 +209,7 @@ #define SOC_POWER_REG_OFFSET (scn->targetdef->d_SOC_POWER_REG_OFFSET) /* end */ -#ifndef CONFIG_WIN +#if !defined(CONFIG_WIN) /* htt_rx.c */ #define RX_MSDU_END_4_FIRST_MSDU_MASK \ (pdev->targetdef->d_RX_MSDU_END_4_FIRST_MSDU_MASK) @@ -261,18 +261,6 @@ (pdev->targetdef->d_RX_MSDU_START_0_MSDU_LENGTH_MASK) #define RX_MSDU_START_0_MSDU_LENGTH_LSB \ (pdev->targetdef->d_RX_MSDU_START_0_MSDU_LENGTH_LSB) -#ifndef RX_MSDU_START_2_DECAP_FORMAT_OFFSET -#define RX_MSDU_START_2_DECAP_FORMAT_OFFSET \ - (pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_OFFSET) -#endif -#ifndef RX_MSDU_START_2_DECAP_FORMAT_MASK -#define RX_MSDU_START_2_DECAP_FORMAT_MASK \ - (pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_MASK) -#endif -#ifndef RX_MSDU_START_2_DECAP_FORMAT_LSB -#define RX_MSDU_START_2_DECAP_FORMAT_LSB \ - (pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_LSB) -#endif #define RX_MPDU_START_0_ENCRYPTED_MASK \ (pdev->targetdef->d_RX_MPDU_START_0_ENCRYPTED_MASK) #define RX_MPDU_START_0_ENCRYPTED_LSB \ @@ -283,6 +271,20 @@ (pdev->targetdef->d_RX_ATTENTION_0_MSDU_DONE_MASK) #define RX_ATTENTION_0_TCP_UDP_CHKSUM_FAIL_MASK \ (pdev->targetdef->d_RX_ATTENTION_0_TCP_UDP_CHKSUM_FAIL_MASK) +#if !defined(QCA6290_HEADERS_DEF) +#ifndef RX_MSDU_START_2_DECAP_FORMAT_OFFSET +#define RX_MSDU_START_2_DECAP_FORMAT_OFFSET \ + (pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_OFFSET) +#endif +#ifndef RX_MSDU_START_2_DECAP_FORMAT_LSB +#define RX_MSDU_START_2_DECAP_FORMAT_LSB \ + (pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_LSB) +#endif +#ifndef RX_MSDU_START_2_DECAP_FORMAT_MASK +#define RX_MSDU_START_2_DECAP_FORMAT_MASK \ + (pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_MASK) +#endif +#endif /*!QCA6290_HEADERS_DEF*/ /* end */ #endif diff --git a/hif/src/qca6290def.c b/hif/src/qca6290def.c index 14a23b237a..e755ced129 100644 --- a/hif/src/qca6290def.c +++ b/hif/src/qca6290def.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -22,6 +22,7 @@ #define WLAN_HEADERS 1 #include "lithium_top_reg.h" +#include "wcss_version.h" #define MISSING 0 @@ -150,8 +151,17 @@ #define CE_WRAPPER_INTERRUPT_SUMMARY_ADDRESS MISSING #define CE_DDR_ADDRESS_FOR_RRI_LOW MISSING #define CE_DDR_ADDRESS_FOR_RRI_HIGH MISSING + +#if defined(WCSS_VERSION) && \ + ((defined(CONFIG_WIN) && (WCSS_VERSION > 81)) || \ + (defined(CONFIG_MCL) && (WCSS_VERSION >= 72))) +#define HOST_IE_ADDRESS UMAC_CE_COMMON_WFSS_CE_COMMON_R0_CE_HOST_IE_0 +#define HOST_IE_ADDRESS_2 UMAC_CE_COMMON_WFSS_CE_COMMON_R0_CE_HOST_IE_1 +#else /* WCSS_VERSION < 72 */ #define HOST_IE_ADDRESS UMAC_CE_COMMON_CE_HOST_IE_0 #define HOST_IE_ADDRESS_2 UMAC_CE_COMMON_CE_HOST_IE_1 +#endif /* WCSS_VERSION */ + #define HOST_IE_COPY_COMPLETE_MASK MISSING #define SR_BA_ADDRESS MISSING #define SR_BA_ADDRESS_HIGH MISSING diff --git a/hif/src/qca8074def.c b/hif/src/qca8074def.c index d880f3e9b0..6fff817788 100644 --- a/hif/src/qca8074def.c +++ b/hif/src/qca8074def.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -22,9 +22,7 @@ #define WLAN_HEADERS 1 #include -#ifdef CONFIG_WIN #include "wcss_version.h" -#endif #define MISSING 0