From: Kalle Valo <kvalo@kernel.org>
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Cc: linux-wireless@vger.kernel.org, wcn36xx@lists.infradead.org,
linux-arm-msm@vger.kernel.org, loic.poulain@linaro.org,
benl@squareup.com
Subject: Re: [PATCH v3 3/3] wcn36xx: Implement downstream compliant beacon filtering
Date: Thu, 16 Dec 2021 17:30:22 +0200 [thread overview]
Message-ID: <87wnk4bm9d.fsf@codeaurora.org> (raw)
In-Reply-To: <20211214134630.2214840-4-bryan.odonoghue@linaro.org> (Bryan O'Donoghue's message of "Tue, 14 Dec 2021 13:46:30 +0000")
Bryan O'Donoghue <bryan.odonoghue@linaro.org> writes:
> Downstream facilitates the direct programming of beacon filter tables via
> SMD commands.
>
> The purpose of beacon filters is quote:
>
> /* When beacon filtering is enabled, firmware will
> * analyze the selected beacons received during BMPS,
> * and monitor any changes in the IEs as listed below.
> * The format of the table is:
> * - EID
> * - Check for IE presence
> * - Byte offset
> * - Byte value
> * - Bit Mask
> * - Byte reference
> */
>
> The default downstream firmware filter table looks something like this:
> tBeaconFilterIe gaBcnFilterTable[12] =
> {
> { WLAN_EID_DS_PARAMS, 0u, { 0u, 0u, 0u, 0u } },
> { WLAN_EID_ERP_INFO, 0u, { 0u, 0u, 248u, 0u } },
> { WLAN_EID_EDCA_PARAM_SET, 0u, { 0u, 0u, 240u, 0u } },
> { WLAN_EID_QOS_CAPA, 0u, { 0u, 0u, 240u, 0u } },
> { WLAN_EID_CHANNEL_SWITCH, 1u, { 0u, 0u, 0u, 0u } },
> { WLAN_EID_QUIET, 1u, { 0u, 0u, 0u, 0u } },
> { WLAN_EID_HT_OPERATION, 0u, { 0u, 0u, 0u, 0u } },
> { WLAN_EID_HT_OPERATION, 0u, { 1u, 0u, 248u, 0u } },
> { WLAN_EID_HT_OPERATION, 0u, { 2u, 0u, 235u, 0u } },
> { WLAN_EID_HT_OPERATION, 0u, { 5u, 0u, 253u, 0u } },
> { WLAN_EID_PWR_CONSTRAINT, 0u, { 0u, 0u, 0u, 0u } },
> { WLAN_EID_OPMODE_NOTIF, 0u, { 0u, 0u, 0u, 0u } }
> };
>
> Add in an equivalent filter set as present in the downstream Linux driver.
> For now omit the beacon filter "rem" command as downstream does not have an
> explicit call to that SMD command. The filter mask should only count when
> we are inside BMPS anyway.
>
> Replicating the downstream ability to program the filter table gives us
> scope to add and remove elements in future. For now though this patch
> makes the rote-copy of the downstream Linux beacon filter table, which we
> can tweak as desired from now on.
>
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
[...]
> +static struct beacon_filter_ie bcn_filter_ies[] = {
> + BEACON_FILTER(WLAN_EID_DS_PARAMS, 0, 0, 0,
> + WCN36XX_FILTER_IE_DS_CHANNEL_MASK, 0),
> + BEACON_FILTER(WLAN_EID_ERP_INFO, 0, 0, 0,
> + WCN36XX_FILTER_IE_ERP_FILTER_MASK, 0),
> + BEACON_FILTER(WLAN_EID_EDCA_PARAM_SET, 0, 0, 0,
> + WCN36XX_FILTER_IE_EDCA_FILTER_MASK, 0),
> + BEACON_FILTER(WLAN_EID_QOS_CAPA, 0, 0, 0,
> + WCN36XX_FILTER_IE_QOS_FILTER_MASK, 0),
> + BEACON_FILTER(WLAN_EID_CHANNEL_SWITCH, 1, 0, 0,
> + WCN36XX_FILTER_IE_CHANNEL_SWITCH_MASK, 0),
> + BEACON_FILTER(WLAN_EID_HT_OPERATION, 0, 0, 0,
> + WCN36XX_FILTER_IE_HT_BYTE0_FILTER_MASK, 0),
> + BEACON_FILTER(WLAN_EID_HT_OPERATION, 0, 2, 0,
> + WCN36XX_FILTER_IE_HT_BYTE2_FILTER_MASK, 0),
> + BEACON_FILTER(WLAN_EID_HT_OPERATION, 0, 5, 0,
> + WCN36XX_FILTER_IE_HT_BYTE5_FILTER_MASK, 0),
> + BEACON_FILTER(WLAN_EID_PWR_CONSTRAINT, 0, 0, 0,
> + WCN36XX_FILTER_IE_PWR_CONSTRAINT_MASK, 0),
> + BEACON_FILTER(WLAN_EID_OPMODE_NOTIF, 0, 0, 0,
> + WCN36XX_FILTER_IE_OPMODE_NOTIF_MASK, 0),
> + BEACON_FILTER(WLAN_EID_VHT_OPERATION, 0, 0, 0,
> + WCN36XX_FILTER_IE_VHTOP_CHWIDTH_MASK, 0),
> + BEACON_FILTER(WLAN_EID_RSN, 1, 0, 0,
> + WCN36XX_FILTER_IE_RSN_MASK, 0),
> + BEACON_FILTER(WLAN_EID_VENDOR_SPECIFIC, 1, 0, 0,
> + WCN36XX_FILTER_IE_VENDOR_MASK, 0),
> +};
All static variables should be const so I changed this to const as well.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
prev parent reply other threads:[~2021-12-16 15:30 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-14 13:46 [PATCH v3 0/3] wcn36xx: Implement explicit beacon filter tables Bryan O'Donoghue
2021-12-14 13:46 ` [PATCH v3 1/3] wcn36xx: Fix beacon filter structure definitions Bryan O'Donoghue
2021-12-16 15:37 ` Kalle Valo
2021-12-14 13:46 ` [PATCH v3 2/3] wcn36xx: Fix physical location of beacon filter comment Bryan O'Donoghue
2021-12-15 9:34 ` Loic Poulain
2021-12-14 13:46 ` [PATCH v3 3/3] wcn36xx: Implement downstream compliant beacon filtering Bryan O'Donoghue
2021-12-15 9:36 ` Loic Poulain
2021-12-16 10:31 ` Kalle Valo
2021-12-16 13:21 ` Bryan O'Donoghue
2021-12-16 15:30 ` Kalle Valo [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87wnk4bm9d.fsf@codeaurora.org \
--to=kvalo@kernel.org \
--cc=benl@squareup.com \
--cc=bryan.odonoghue@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=loic.poulain@linaro.org \
--cc=wcn36xx@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.