qcacld-3.0: Changes to support rri_over_ddr support for Genoa

Changes to support rri_over_ddr support for Genoa.

Change-Id: I1b98e6ec765b8b9da7f0a2f8b21f410c44fa90c2
CRs-Fixed: 2357344
Tento commit je obsažen v:
Nirav Shah
2018-07-09 16:26:02 +05:30
odevzdal nshrivas
rodič 6c4599c854
revize a6c6dc9f75
2 změnil soubory, kde provedl 25 přidání a 1 odebrání

Zobrazit soubor

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
* Copyright (c) 2016-2019 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
@@ -205,6 +205,19 @@ struct pld_shadow_reg_v2_cfg {
u32 addr;
};
/**
* struct pld_rri_over_ddr_cfg_s - rri_over_ddr configuration
* @base_addr_low: lower 32bit
* @base_addr_high: higher 32bit
*
* pld_rri_over_ddr_cfg_s is used in Genoa to pass rri_over_ddr configuration
* to firmware to update ring/write index in host DDR.
*/
struct pld_rri_over_ddr_cfg {
u32 base_addr_low;
u32 base_addr_high;
};
/**
* struct pld_wlan_enable_cfg - WLAN FW configuration
* @num_ce_tgt_cfg: number of CE target configuration
@@ -215,6 +228,8 @@ struct pld_shadow_reg_v2_cfg {
* @shadow_reg_cfg: shadow register configuration
* @num_shadow_reg_v2_cfg: number of shadow register version 2 configuration
* @shadow_reg_v2_cfg: shadow register version 2 configuration
* @rri_over_ddr_cfg_valid: valid flag for rri_over_ddr config
* @rri_over_ddr_cfg: rri over ddr config
*
* pld_wlan_enable_cfg stores WLAN FW configurations. It will be
* passed to WLAN FW when WLAN host driver calls wlan_enable.
@@ -228,6 +243,8 @@ struct pld_wlan_enable_cfg {
struct pld_shadow_reg_cfg *shadow_reg_cfg;
u32 num_shadow_reg_v2_cfg;
struct pld_shadow_reg_v2_cfg *shadow_reg_v2_cfg;
bool rri_over_ddr_cfg_valid;
struct pld_rri_over_ddr_cfg rri_over_ddr_cfg;
};
/**

Zobrazit soubor

@@ -576,6 +576,13 @@ int pld_pcie_wlan_enable(struct device *dev, struct pld_wlan_enable_cfg *config,
cfg.num_shadow_reg_v2_cfg = config->num_shadow_reg_v2_cfg;
cfg.shadow_reg_v2_cfg = (struct cnss_shadow_reg_v2_cfg *)
config->shadow_reg_v2_cfg;
cfg.rri_over_ddr_cfg_valid = config->rri_over_ddr_cfg_valid;
if (config->rri_over_ddr_cfg_valid) {
cfg.rri_over_ddr_cfg.base_addr_low =
config->rri_over_ddr_cfg.base_addr_low;
cfg.rri_over_ddr_cfg.base_addr_high =
config->rri_over_ddr_cfg.base_addr_high;
}
switch (mode) {
case PLD_FTM: