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

Commit 77775b77 authored by Vladimir Kondratiev's avatar Vladimir Kondratiev Committed by Ian Maund
Browse files

wil6210: enlarge TX/RX buffer length



HW supports upto 2304 packet size on the air.
HW is responsible for adding (Tx) or removing (Rx) the following headers:
802.11 hdr: 26B
SNAP: 8B
CRC: 4B
Security (optional): 24B
HW adds max 62B to the payload passed from driver. It means driver can use
max packet size of 2304-62 = 2242B

Change-Id: If1c50a8b54ea9d39f86e5e905690453ef5bec8e2
Signed-off-by: default avatarDedy Lansky <qca_dlansky@qca.qualcomm.com>
Signed-off-by: default avatarVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
Git-commit: e0106adade2dd16fb776f53f25ffe50da0793f3d
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git


Signed-off-by: default avatarHamad Kadmany <hkadmany@codeaurora.org>
parent b681e2c1
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#include <linux/etherdevice.h>

#include "wil6210.h"
#include "txrx.h"

static int wil_open(struct net_device *ndev)
{
@@ -40,8 +41,10 @@ static int wil_change_mtu(struct net_device *ndev, int new_mtu)
{
	struct wil6210_priv *wil = ndev_to_wil(ndev);

	if (new_mtu < 68 || new_mtu > IEEE80211_MAX_DATA_LEN_DMG)
	if (new_mtu < 68 || new_mtu > (TX_BUF_LEN - ETH_HLEN)) {
		wil_err(wil, "invalid MTU %d\n", new_mtu);
		return -EINVAL;
	}

	wil_dbg_misc(wil, "change MTU %d -> %d\n", ndev->mtu, new_mtu);
	ndev->mtu = new_mtu;
+2 −1
Original line number Diff line number Diff line
@@ -668,7 +668,8 @@ int wil_vring_init_tx(struct wil6210_priv *wil, int id, int size,
	struct vring *vring = &wil->vring_tx[id];
	struct vring_tx_data *txdata = &wil->vring_tx_data[id];

	wil_dbg_misc(wil, "%s()\n", __func__);
	wil_dbg_misc(wil, "%s() max_mpdu_size %d\n", __func__,
		     cmd.vring_cfg.tx_sw_ring.max_mpdu_size);

	if (vring->va) {
		wil_err(wil, "Tx ring [%d] already allocated\n", id);
+3 −3
Original line number Diff line number Diff line
@@ -20,9 +20,9 @@
#define BUF_SW_OWNED    (1)
#define BUF_HW_OWNED    (0)

/* size of max. Rx packet */
#define RX_BUF_LEN      (2048)
#define TX_BUF_LEN      (2048)
/* size of max. Tx/Rx buffers, as supported by FW */
#define RX_BUF_LEN      (2242)
#define TX_BUF_LEN      (2242)
/* how many bytes to reserve for rtap header? */
#define WIL6210_RTAP_SIZE (128)