mirror of
https://github.com/LineageOS/android_kernel_samsung_msm8226.git
synced 2026-09-29 00:00:25 +02:00
wcnss: Add API to read WLAN RX buffer count
WLAN driver's RX buffer count is a configurable value; WCNSS platform driver will expose an API to read this configurable value from device tree. Using a smaller coount of this buffer will reduce the memory usage of WLAN driver. Change-Id: Ida3da258ec1efdc16d37e50f69de8248fd6a26f9 Signed-off-by: Sameer Thalappil <sameert@codeaurora.org>
This commit is contained in:
@@ -24,6 +24,8 @@ Required properties:
|
||||
Optional properties:
|
||||
- qcom,has_autodetect_xo: boolean flag to determine whether Iris XO auto detect
|
||||
should be performed during boot up.
|
||||
- qcom,wlan-rx-buff-count: WLAN RX buffer count is a configurable value,
|
||||
using a smaller count for this buffer will reduce the memory usage.
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
@@ -103,6 +103,8 @@ static DEFINE_SPINLOCK(reg_spinlock);
|
||||
#define CCU_PRONTO_LAST_ADDR1_OFFSET 0x10
|
||||
#define CCU_PRONTO_LAST_ADDR2_OFFSET 0x14
|
||||
|
||||
#define WCNSS_DEF_WLAN_RX_BUFF_COUNT 1024
|
||||
|
||||
#define WCNSS_CTRL_CHANNEL "WCNSS_CTRL"
|
||||
#define WCNSS_MAX_FRAME_SIZE (4*1024)
|
||||
#define WCNSS_VERSION_LEN 30
|
||||
@@ -258,6 +260,7 @@ static struct {
|
||||
const struct dev_pm_ops *pm_ops;
|
||||
int triggered;
|
||||
int smd_channel_ready;
|
||||
u32 wlan_rx_buff_count;
|
||||
smd_channel_t *smd_ch;
|
||||
unsigned char wcnss_version[WCNSS_VERSION_LEN];
|
||||
unsigned char fw_major;
|
||||
@@ -977,6 +980,17 @@ int fw_cal_data_available(void)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
u32 wcnss_get_wlan_rx_buff_count(void)
|
||||
{
|
||||
if (penv)
|
||||
return penv->wlan_rx_buff_count;
|
||||
else
|
||||
return WCNSS_DEF_WLAN_RX_BUFF_COUNT;
|
||||
|
||||
}
|
||||
EXPORT_SYMBOL(wcnss_get_wlan_rx_buff_count);
|
||||
|
||||
|
||||
static int wcnss_smd_tx(void *data, int len)
|
||||
{
|
||||
int ret = 0;
|
||||
@@ -1498,6 +1512,11 @@ wcnss_trigger_config(struct platform_device *pdev)
|
||||
int has_pronto_hw = of_property_read_bool(pdev->dev.of_node,
|
||||
"qcom,has_pronto_hw");
|
||||
|
||||
if (of_property_read_u32(pdev->dev.of_node,
|
||||
"qcom,wlan-rx-buff-count", &penv->wlan_rx_buff_count)) {
|
||||
penv->wlan_rx_buff_count = WCNSS_DEF_WLAN_RX_BUFF_COUNT;
|
||||
}
|
||||
|
||||
/* make sure we are only triggered once */
|
||||
if (penv->triggered)
|
||||
return 0;
|
||||
|
||||
@@ -34,6 +34,7 @@ struct wcnss_wlan_config {
|
||||
#define HAVE_WCNSS_SUSPEND_RESUME_NOTIFY 1
|
||||
#define HAVE_WCNSS_RESET_INTR 1
|
||||
#define HAVE_WCNSS_CAL_DOWNLOAD 1
|
||||
#define HAVE_WCNSS_RX_BUFF_COUNT 1
|
||||
|
||||
struct device *wcnss_wlan_get_device(void);
|
||||
struct resource *wcnss_wlan_get_memory_map(struct device *dev);
|
||||
@@ -69,6 +70,7 @@ void wcnss_pronto_log_debug_regs(void);
|
||||
int wcnss_device_ready(void);
|
||||
void wcnss_riva_dump_pmic_regs(void);
|
||||
int wcnss_xo_auto_detect_enabled(void);
|
||||
u32 wcnss_get_wlan_rx_buff_count(void);
|
||||
|
||||
#define wcnss_wlan_get_drvdata(dev) dev_get_drvdata(dev)
|
||||
#define wcnss_wlan_set_drvdata(dev, data) dev_set_drvdata((dev), (data))
|
||||
|
||||
Reference in New Issue
Block a user