Merge remote-tracking branch 'origin/sm7225_s_fp4_target_dev' into kernel/12/fp4
Change-Id: I0883555a649c0959ced10dfc9652cdb745fe6477
diff --git a/arch/arm64/configs/vendor/fp4-perf_defconfig b/arch/arm64/configs/vendor/fp4-perf_defconfig
index 4dd3a34..e79dd61 100644
--- a/arch/arm64/configs/vendor/fp4-perf_defconfig
+++ b/arch/arm64/configs/vendor/fp4-perf_defconfig
@@ -527,6 +527,29 @@
CONFIG_ASHMEM=y
CONFIG_ION=y
CONFIG_ION_POOL_AUTO_REFILL=y
+CONFIG_QCA_CLD_WLAN=y
+CONFIG_QCACLD_WLAN_LFR3=y
+CONFIG_WLAN_FEATURE_11W=y
+CONFIG_WLAN_FEATURE_LPSS=y
+CONFIG_QCOM_VOWIFI_11R=y
+CONFIG_QCACLD_FEATURE_NAN=y
+CONFIG_QCACLD_FEATURE_GREEN_AP=y
+CONFIG_HELIUMPLUS=y
+CONFIG_64BIT_PADDR=y
+CONFIG_QCOM_TDLS=y
+CONFIG_QCOM_LTE_COEX=y
+CONFIG_WLAN_OFFLOAD_PACKETS=y
+CONFIG_FEATURE_TSO=y
+CONFIG_WLAN_FASTPATH=y
+CONFIG_WLAN_NAPI=y
+CONFIG_WLAN_TX_FLOW_CONTROL_V2=y
+CONFIG_WLAN_SYNC_TSF=y
+CONFIG_LFR_SUBNET_DETECTION=y
+CONFIG_MCC_TO_SCC_SWITCH=y
+CONFIG_WLAN_FEATURE_DISA=y
+CONFIG_WLAN_FEATURE_FIPS=y
+CONFIG_WLAN_FEATURE_FILS=y
+CONFIG_WLAN_FEATURE_SARV1_TO_SARV2=y
CONFIG_QPNP_REVID=y
CONFIG_SPS=y
CONFIG_SPS_SUPPORT_NDP_BAM=y
diff --git a/arch/arm64/configs/vendor/fp4_defconfig b/arch/arm64/configs/vendor/fp4_defconfig
index 8a28967..bbd3498 100644
--- a/arch/arm64/configs/vendor/fp4_defconfig
+++ b/arch/arm64/configs/vendor/fp4_defconfig
@@ -540,6 +540,29 @@
CONFIG_ASHMEM=y
CONFIG_ION=y
CONFIG_ION_POOL_AUTO_REFILL=y
+CONFIG_QCA_CLD_WLAN=y
+CONFIG_QCACLD_WLAN_LFR3=y
+CONFIG_WLAN_FEATURE_11W=y
+CONFIG_WLAN_FEATURE_LPSS=y
+CONFIG_QCOM_VOWIFI_11R=y
+CONFIG_QCACLD_FEATURE_NAN=y
+CONFIG_QCACLD_FEATURE_GREEN_AP=y
+CONFIG_HELIUMPLUS=y
+CONFIG_64BIT_PADDR=y
+CONFIG_QCOM_TDLS=y
+CONFIG_QCOM_LTE_COEX=y
+CONFIG_WLAN_OFFLOAD_PACKETS=y
+CONFIG_FEATURE_TSO=y
+CONFIG_WLAN_FASTPATH=y
+CONFIG_WLAN_NAPI=y
+CONFIG_WLAN_TX_FLOW_CONTROL_V2=y
+CONFIG_WLAN_SYNC_TSF=y
+CONFIG_LFR_SUBNET_DETECTION=y
+CONFIG_MCC_TO_SCC_SWITCH=y
+CONFIG_WLAN_FEATURE_DISA=y
+CONFIG_WLAN_FEATURE_FIPS=y
+CONFIG_WLAN_FEATURE_FILS=y
+CONFIG_WLAN_FEATURE_SARV1_TO_SARV2=y
CONFIG_QPNP_REVID=y
CONFIG_SPS=y
CONFIG_SPS_SUPPORT_NDP_BAM=y
diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S
index 86a57e2..05df6ff 100644
--- a/arch/arm64/kernel/vmlinux.lds.S
+++ b/arch/arm64/kernel/vmlinux.lds.S
@@ -76,10 +76,6 @@
#define TRAMP_TEXT
#endif
-#define RTIC_BSS \
- . = ALIGN(PAGE_SIZE); \
- KEEP(*(.bss.rtic)); \
- . = ALIGN(PAGE_SIZE); \
/*
* The size of the PE/COFF section that covers the kernel image, which
* runs from stext to _edata, must be a round multiple of the PE/COFF
@@ -260,10 +256,6 @@
STABS_DEBUG
HEAD_SYMBOLS
-
- .bss : { /* bss segment */
- RTIC_BSS
- }
}
/*
diff --git a/drivers/platform/msm/gsi/gsi.c b/drivers/platform/msm/gsi/gsi.c
index 8ded75a..a40d09f 100644
--- a/drivers/platform/msm/gsi/gsi.c
+++ b/drivers/platform/msm/gsi/gsi.c
@@ -2549,7 +2549,7 @@
}
static void __gsi_write_channel_scratch(unsigned long chan_hdl,
- union __packed gsi_channel_scratch val)
+ union gsi_channel_scratch val)
{
gsi_writel(val.data.word1, gsi_ctx->base +
GSI_EE_n_GSI_CH_k_SCRATCH_0_OFFS(chan_hdl,
@@ -2630,7 +2630,7 @@
EXPORT_SYMBOL(gsi_write_channel_scratch2_reg);
static void __gsi_read_channel_scratch(unsigned long chan_hdl,
- union __packed gsi_channel_scratch * val)
+ union gsi_channel_scratch *val)
{
val->data.word1 = gsi_readl(gsi_ctx->base +
GSI_EE_n_GSI_CH_k_SCRATCH_0_OFFS(chan_hdl,
@@ -2649,10 +2649,10 @@
gsi_ctx->per.ee));
}
-static union __packed gsi_channel_scratch __gsi_update_mhi_channel_scratch(
+static union gsi_channel_scratch __gsi_update_mhi_channel_scratch(
unsigned long chan_hdl, struct __packed gsi_mhi_channel_scratch mscr)
{
- union __packed gsi_channel_scratch scr;
+ union gsi_channel_scratch scr;
/* below sequence is not atomic. assumption is sequencer specific fields
* will remain unchanged across this sequence
@@ -2709,7 +2709,7 @@
}
int gsi_write_channel_scratch(unsigned long chan_hdl,
- union __packed gsi_channel_scratch val)
+ union gsi_channel_scratch val)
{
struct gsi_chan_ctx *ctx;
@@ -2742,7 +2742,7 @@
EXPORT_SYMBOL(gsi_write_channel_scratch);
int gsi_read_channel_scratch(unsigned long chan_hdl,
- union __packed gsi_channel_scratch *val)
+ union gsi_channel_scratch *val)
{
struct gsi_chan_ctx *ctx;
diff --git a/drivers/platform/msm/gsi/gsi.h b/drivers/platform/msm/gsi/gsi.h
index da43504..0b3d49e 100644
--- a/drivers/platform/msm/gsi/gsi.h
+++ b/drivers/platform/msm/gsi/gsi.h
@@ -147,7 +147,7 @@
struct completion compl;
bool allocated;
atomic_t poll_mode;
- union __packed gsi_channel_scratch scratch;
+ union gsi_channel_scratch scratch;
struct gsi_chan_stats stats;
bool enable_dp_stats;
bool print_dp_stats;
diff --git a/drivers/platform/msm/ipa/ipa_api.c b/drivers/platform/msm/ipa/ipa_api.c
index 2dab4ce..ef74697 100644
--- a/drivers/platform/msm/ipa/ipa_api.c
+++ b/drivers/platform/msm/ipa/ipa_api.c
@@ -2640,7 +2640,7 @@
int ipa_mhi_resume_channels_internal(enum ipa_client_type client,
bool LPTransitionRejected, bool brstmode_enabled,
- union __packed gsi_channel_scratch ch_scratch, u8 index)
+ union gsi_channel_scratch ch_scratch, u8 index)
{
int ret;
diff --git a/drivers/platform/msm/ipa/ipa_api.h b/drivers/platform/msm/ipa/ipa_api.h
index 901b4c3..101c4b4 100644
--- a/drivers/platform/msm/ipa/ipa_api.h
+++ b/drivers/platform/msm/ipa/ipa_api.h
@@ -302,7 +302,7 @@
enum ipa_client_type client,
bool LPTransitionRejected,
bool brstmode_enabled,
- union __packed gsi_channel_scratch ch_scratch,
+ union gsi_channel_scratch ch_scratch,
u8 index);
int (*ipa_mhi_destroy_channel)(enum ipa_client_type client);
diff --git a/drivers/platform/msm/ipa/ipa_clients/ipa_mhi_client.c b/drivers/platform/msm/ipa/ipa_clients/ipa_mhi_client.c
index b9f80e2..d8afe2f 100644
--- a/drivers/platform/msm/ipa/ipa_clients/ipa_mhi_client.c
+++ b/drivers/platform/msm/ipa/ipa_clients/ipa_mhi_client.c
@@ -113,7 +113,7 @@
u64 event_context_addr;
struct ipa_mhi_ev_ctx ev_ctx_host;
bool brstmode_enabled;
- union __packed gsi_channel_scratch ch_scratch;
+ union gsi_channel_scratch ch_scratch;
unsigned long cached_gsi_evt_ring_hdl;
};
diff --git a/drivers/platform/msm/ipa/ipa_common_i.h b/drivers/platform/msm/ipa/ipa_common_i.h
index d2f3b32..ee574fb 100644
--- a/drivers/platform/msm/ipa/ipa_common_i.h
+++ b/drivers/platform/msm/ipa/ipa_common_i.h
@@ -391,7 +391,7 @@
bool ipa_mhi_sps_channel_empty(enum ipa_client_type client);
int ipa_mhi_resume_channels_internal(enum ipa_client_type client,
bool LPTransitionRejected, bool brstmode_enabled,
- union __packed gsi_channel_scratch ch_scratch, u8 index);
+ union gsi_channel_scratch ch_scratch, u8 index);
int ipa_mhi_handle_ipa_config_req(struct ipa_config_req_msg_v01 *config_req);
int ipa_mhi_query_ch_info(enum ipa_client_type client,
struct gsi_chan_info *ch_info);
diff --git a/drivers/platform/msm/ipa/ipa_v2/ipa_i.h b/drivers/platform/msm/ipa/ipa_v2/ipa_i.h
index 514c3b4..e8fda34 100644
--- a/drivers/platform/msm/ipa/ipa_v2/ipa_i.h
+++ b/drivers/platform/msm/ipa/ipa_v2/ipa_i.h
@@ -1708,7 +1708,7 @@
int ipa2_mhi_resume_channels_internal(enum ipa_client_type client,
bool LPTransitionRejected, bool brstmode_enabled,
- union __packed gsi_channel_scratch ch_scratch, u8 index);
+ union gsi_channel_scratch ch_scratch, u8 index);
/*
* mux id
diff --git a/drivers/platform/msm/ipa/ipa_v2/ipa_mhi.c b/drivers/platform/msm/ipa/ipa_v2/ipa_mhi.c
index 72f4b20..1d75fb5 100644
--- a/drivers/platform/msm/ipa/ipa_v2/ipa_mhi.c
+++ b/drivers/platform/msm/ipa/ipa_v2/ipa_mhi.c
@@ -316,7 +316,7 @@
int ipa2_mhi_resume_channels_internal(enum ipa_client_type client,
bool LPTransitionRejected, bool brstmode_enabled,
- union __packed gsi_channel_scratch ch_scratch, u8 index)
+ union gsi_channel_scratch ch_scratch, u8 index)
{
int res;
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_client.c b/drivers/platform/msm/ipa/ipa_v3/ipa_client.c
index 5ba3830..dfeaf05 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_client.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_client.c
@@ -656,7 +656,7 @@
}
memcpy(&ep->chan_scratch, ¶ms->chan_scratch,
- sizeof(union __packed gsi_channel_scratch));
+ sizeof(union gsi_channel_scratch));
/*
* Update scratch for MCS smart prefetch:
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_dp.c b/drivers/platform/msm/ipa/ipa_v3/ipa_dp.c
index 12ad78e..1c0333a 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_dp.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_dp.c
@@ -4744,7 +4744,7 @@
u32 ring_size, struct ipa3_sys_context *user_data, gfp_t mem_flag)
{
dma_addr_t dma_addr;
- union __packed gsi_channel_scratch ch_scratch;
+ union gsi_channel_scratch ch_scratch;
struct gsi_chan_props gsi_channel_props;
const struct ipa_gsi_ep_config *gsi_ep_info;
int result;
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_i.h b/drivers/platform/msm/ipa/ipa_v3/ipa_i.h
index e9572d3..4baa7fd 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_i.h
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_i.h
@@ -922,7 +922,7 @@
unsigned long gsi_chan_hdl;
unsigned long gsi_evt_ring_hdl;
struct ipa_gsi_ep_mem_info gsi_mem_info;
- union __packed gsi_channel_scratch chan_scratch;
+ union gsi_channel_scratch chan_scratch;
struct gsi_chan_xfer_notify xfer_notify;
bool xfer_notify_valid;
struct ipa_ep_cfg cfg;
@@ -979,7 +979,7 @@
struct gsi_evt_ring_props evt_ring_params;
union __packed gsi_evt_scratch evt_scratch;
struct gsi_chan_props chan_params;
- union __packed gsi_channel_scratch chan_scratch;
+ union gsi_channel_scratch chan_scratch;
};
enum ipa3_sys_pipe_policy {
@@ -2778,7 +2778,7 @@
int ipa3_mhi_resume_channels_internal(enum ipa_client_type client,
bool LPTransitionRejected, bool brstmode_enabled,
- union __packed gsi_channel_scratch ch_scratch, u8 index);
+ union gsi_channel_scratch ch_scratch, u8 index);
int ipa3_mhi_destroy_channel(enum ipa_client_type client);
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_mhi.c b/drivers/platform/msm/ipa/ipa_v3/ipa_mhi.c
index 1c47b93..7f44347 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_mhi.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_mhi.c
@@ -189,7 +189,7 @@
struct gsi_evt_ring_props ev_props;
struct ipa_mhi_msi_info *msi;
struct gsi_chan_props ch_props;
- union __packed gsi_channel_scratch ch_scratch;
+ union gsi_channel_scratch ch_scratch;
struct ipa3_ep_context *ep;
const struct ipa_gsi_ep_config *ep_cfg;
struct ipa_ep_cfg_ctrl ep_cfg_ctrl;
@@ -613,12 +613,12 @@
int ipa3_mhi_resume_channels_internal(enum ipa_client_type client,
bool LPTransitionRejected, bool brstmode_enabled,
- union __packed gsi_channel_scratch ch_scratch, u8 index)
+ union gsi_channel_scratch ch_scratch, u8 index)
{
int res;
int ipa_ep_idx;
struct ipa3_ep_context *ep;
- union __packed gsi_channel_scratch gsi_ch_scratch;
+ union gsi_channel_scratch gsi_ch_scratch;
IPA_MHI_FUNC_ENTRY();
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_uc_wdi.c b/drivers/platform/msm/ipa/ipa_v3/ipa_uc_wdi.c
index 73a7ebb..b17cf1b 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_uc_wdi.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_uc_wdi.c
@@ -1184,7 +1184,7 @@
struct ipa_ep_cfg_ctrl ep_cfg_ctrl;
struct gsi_chan_props gsi_channel_props;
struct gsi_evt_ring_props gsi_evt_ring_props;
- union __packed gsi_channel_scratch gsi_scratch;
+ union gsi_channel_scratch gsi_scratch;
phys_addr_t pa;
unsigned long va;
unsigned long wifi_rx_ri_addr = 0;
@@ -2493,7 +2493,7 @@
struct ipa3_ep_context *ep;
struct ipa_ep_cfg_ctrl ep_cfg_ctrl;
struct gsi_chan_info chan_info;
- union __packed gsi_channel_scratch gsi_scratch;
+ union gsi_channel_scratch gsi_scratch;
struct IpaHwOffloadStatsAllocCmdData_t *pcmd_t = NULL;
IPADBG("ep=%d\n", clnt_hdl);
@@ -2629,7 +2629,7 @@
struct ipahal_ep_cfg_ctrl_scnd ep_ctrl_scnd = { 0 };
int retry_cnt = 0;
struct gsi_chan_info chan_info;
- union __packed gsi_channel_scratch gsi_scratch;
+ union gsi_channel_scratch gsi_scratch;
struct IpaHwOffloadStatsAllocCmdData_t *pcmd_t = NULL;
ipa_ep_idx = ipa3_get_ep_mapping(ipa3_get_client_mapping(clnt_hdl));
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_wdi3_i.c b/drivers/platform/msm/ipa/ipa_v3/ipa_wdi3_i.c
index 1679d8c..efa2338 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_wdi3_i.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_wdi3_i.c
@@ -69,7 +69,7 @@
{
struct gsi_evt_ring_props gsi_evt_ring_props;
struct gsi_chan_props gsi_channel_props;
- union __packed gsi_channel_scratch ch_scratch;
+ union gsi_channel_scratch ch_scratch;
union __packed gsi_evt_scratch evt_scratch;
const struct ipa_gsi_ep_config *gsi_ep_info;
int result, len;
@@ -909,7 +909,7 @@
{
int result = 0;
struct ipa3_ep_context *ep;
- union __packed gsi_channel_scratch ch_scratch;
+ union gsi_channel_scratch ch_scratch;
memset(&ch_scratch, 0, sizeof(ch_scratch));
if (clnt_hdl >= ipa3_ctx->ipa_num_pipes ||
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_wigig_i.c b/drivers/platform/msm/ipa/ipa_v3/ipa_wigig_i.c
index f91c2d1..649c699 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_wigig_i.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_wigig_i.c
@@ -603,7 +603,7 @@
{
struct gsi_evt_ring_props evt_props;
struct gsi_chan_props channel_props;
- union __packed gsi_channel_scratch gsi_scratch;
+ union gsi_channel_scratch gsi_scratch;
int gsi_res;
struct ipa_wigig_pipe_setup_info_smmu *pipe_smmu;
struct ipa_wigig_pipe_setup_info *pipe;
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
index 1abf76b..a3ec4be 100644
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@ -126,4 +126,6 @@
source "drivers/staging/erofs/Kconfig"
+source "drivers/staging/wlan-qc/qcacld-3.0/Kconfig"
+
endif # STAGING
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index ab0cbe8..38a9dbb 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -53,3 +53,4 @@
obj-$(CONFIG_STAGING_GASKET_FRAMEWORK) += gasket/
obj-$(CONFIG_XIL_AXIS_FIFO) += axis-fifo/
obj-$(CONFIG_EROFS_FS) += erofs/
+obj-y += wlan-qc/
diff --git a/drivers/staging/wlan-qc/Makefile b/drivers/staging/wlan-qc/Makefile
new file mode 100644
index 0000000..0d0970c
--- /dev/null
+++ b/drivers/staging/wlan-qc/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_QCA_CLD_WLAN) += qcacld-3.0/
diff --git a/include/linux/init.h b/include/linux/init.h
index bc719c7..586dd18 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -322,8 +322,6 @@
/* Data marked not to be saved by software suspend */
#define __nosavedata __section(.data..nosave)
-#define __rticdata __attribute__((section(".bss.rtic")))
-
#ifdef MODULE
#define __exit_p(x) x
#else
diff --git a/include/linux/msm_gsi.h b/include/linux/msm_gsi.h
index 177e1ab..94fa5d4 100644
--- a/include/linux/msm_gsi.h
+++ b/include/linux/msm_gsi.h
@@ -1275,7 +1275,7 @@
* @Return gsi_status
*/
int gsi_write_channel_scratch(unsigned long chan_hdl,
- union __packed gsi_channel_scratch val);
+ union gsi_channel_scratch val);
/**
* gsi_write_channel_scratch3_reg - Peripheral should call this function to
@@ -1314,7 +1314,7 @@
* @Return gsi_status
*/
int gsi_read_channel_scratch(unsigned long chan_hdl,
- union __packed gsi_channel_scratch *val);
+ union gsi_channel_scratch *val);
/**
* gsi_pending_irq_type - Peripheral should call this function to
@@ -1778,7 +1778,7 @@
}
static inline int gsi_write_channel_scratch(unsigned long chan_hdl,
- union __packed gsi_channel_scratch val)
+ union gsi_channel_scratch val)
{
return -GSI_STATUS_UNSUPPORTED_OP;
}
@@ -1795,7 +1795,7 @@
}
static inline int gsi_read_channel_scratch(unsigned long chan_hdl,
- union __packed gsi_channel_scratch *val)
+ union gsi_channel_scratch *val)
{
return -GSI_STATUS_UNSUPPORTED_OP;
}
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 305890c..d4e1e63 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -100,7 +100,7 @@
#include "audit.h"
#include "avc_ss.h"
-struct selinux_state selinux_state __rticdata;
+struct selinux_state selinux_state;
/* SECMARK reference count */
static atomic_t selinux_secmark_refcount = ATOMIC_INIT(0);