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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox