Linux wireless drivers development
 help / color / mirror / Atom feed
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

      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