Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e44905c authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "wil6210: add support for headroom configuration"

parents aaa741f0 2f6cb472
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -253,7 +253,6 @@ CONFIG_PPP=y
CONFIG_PPP_BSDCOMP=y
CONFIG_PPP_DEFLATE=y
CONFIG_PPP_MPPE=y
CONFIG_WIL6210=m
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_GPIO=y
# CONFIG_INPUT_MOUSE is not set
+12 −0
Original line number Diff line number Diff line
@@ -41,6 +41,18 @@ config WIL6210_TRACING

	  If unsure, say Y to make it easier to debug problems.

config WIL6210_PLATFORM_MSM
	bool "wil6210 MSM platform specific support"
	depends on WIL6210
	depends on ARCH_QCOM
	default y
	help
	  Say Y here to enable wil6210 driver support for MSM
	  Platform driver used to handle msm specific platform
	  requirement for 11ad chipset connected to msm platform

	  If unsure, say N.

config WIL6210_DEBUGFS
	bool "wil6210 debugfs support"
	depends on WIL6210
+3 −0
Original line number Diff line number Diff line
@@ -25,3 +25,6 @@ wil6210-y += ftm.o

# for tracing framework to find trace.h
CFLAGS_trace.o := -I$(src)

MSM_11AD_PATH = drivers/platform/msm/msm_11ad
CFLAGS_wil_platform.o := -I$(MSM_11AD_PATH)
+3 −2
Original line number Diff line number Diff line
@@ -379,7 +379,8 @@ static int wil_debugfs_iomem_x32_set(void *data, u64 val)
	if (ret < 0)
		return ret;

	writel(val, (void __iomem *)d->offset);
	writel_relaxed(val, (void __iomem *)d->offset);

	wmb(); /* make sure write propagated to HW */

	wil_pm_runtime_put(wil);
@@ -398,7 +399,7 @@ static int wil_debugfs_iomem_x32_get(void *data, u64 *val)
	if (ret < 0)
		return ret;

	*val = readl((void __iomem *)d->offset);
	*val = readl_relaxed((void __iomem *)d->offset);

	wil_pm_runtime_put(wil);

+27 −1
Original line number Diff line number Diff line
@@ -32,6 +32,32 @@ bool rx_large_buf;
module_param(rx_large_buf, bool, 0444);
MODULE_PARM_DESC(rx_large_buf, " allocate 8KB RX buffers, default - no");

#define WIL6210_MAX_HEADROOM_SIZE	(256)

ushort headroom_size; /* = 0; */
static int headroom_size_set(const char *val, const struct kernel_param *kp)
{
	int ret;

	ret = param_set_uint(val, kp);
	if (ret)
		return ret;

	if (headroom_size > WIL6210_MAX_HEADROOM_SIZE)
		return -EINVAL;

	return 0;
}

static const struct kernel_param_ops headroom_ops = {
	.set = headroom_size_set,
	.get = param_get_ushort,
};

module_param_cb(headroom_size, &headroom_ops, &headroom_size, 0644);
MODULE_PARM_DESC(headroom_size,
		 " headroom size for rx skb allocation, default - 0");

static inline uint wil_rx_snaplen(void)
{
	return rx_align_2 ? 6 : 0;
@@ -599,7 +625,7 @@ static int wil_rx_refill(struct wil6210_priv *wil, int count)
	u32 next_tail;
	int rc = 0;
	int headroom = ndev->type == ARPHRD_IEEE80211_RADIOTAP ?
			WIL6210_RTAP_SIZE : 0;
			WIL6210_RTAP_SIZE : headroom_size;

	for (; next_tail = wil_ring_next_tail(v),
	     (next_tail != v->swhead) && (count-- > 0);
Loading