Search Linux Wireless

RE: [PATCH] wifi: mt76: mt7921: use driver flags rather than mac80211 flags to mcu

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Deren Wu <deren.wu@xxxxxxxxxxxx>
> Sent: Saturday, March 4, 2023 4:10 PM
> To: Felix Fietkau <nbd@xxxxxxxx>; Lorenzo Bianconi <lorenzo@xxxxxxxxxx>
> Cc: Sean Wang <sean.wang@xxxxxxxxxxxx>; Soul Huang <Soul.Huang@xxxxxxxxxxxx>; YN Chen
> <YN.Chen@xxxxxxxxxxxx>; Leon Yen <Leon.Yen@xxxxxxxxxxxx>; Eric-SY Chang <Eric-SY.Chang@xxxxxxxxxxxx>;
> Deren Wu <Deren.Wu@xxxxxxxxxxxx>; KM Lin <km.lin@xxxxxxxxxxxx>; Robin Chiu <robin.chiu@xxxxxxxxxxxx>; CH
> Yeh <ch.yeh@xxxxxxxxxxxx>; Posh Sun <posh.sun@xxxxxxxxxxxx>; Stella Chang <Stella.Chang@xxxxxxxxxxxx>;
> Evelyn Tsai <evelyn.tsai@xxxxxxxxxxxx>; Ryder Lee <ryder.lee@xxxxxxxxxxxx>; Shayne Chen
> <shayne.chen@xxxxxxxxxxxx>; linux-wireless <linux-wireless@xxxxxxxxxxxxxxx>; linux-mediatek
> <linux-mediatek@xxxxxxxxxxxxxxxxxxx>; Neil Chen <yn.chen@xxxxxxxxxxxx>
> Subject: [PATCH] wifi: mt76: mt7921: use driver flags rather than mac80211 flags to mcu
> 
> From: Neil Chen <yn.chen@xxxxxxxxxxxx>
> 
> FIF_* flags from mac80211 is not ABI. mt7921 should not pass it into mcu
> directly. Remap FIF_* to driver defined flags as mcu command input.
> 
> Fixes: c222f77fd421 ("wifi: mt76: mt7921: fix rx filter incorrect by drv/fw inconsistent")
> Signed-off-by: Neil Chen <yn.chen@xxxxxxxxxxxx>

Miss your s-o-b, Deren?

> ---
>  .../net/wireless/mediatek/mt76/mt7921/main.c    | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/main.c
> b/drivers/net/wireless/mediatek/mt76/mt7921/main.c
> index 75eaf86c6a78..f67b37d38dbc 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt7921/main.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt7921/main.c
> @@ -703,10 +703,25 @@ static void mt7921_configure_filter(struct ieee80211_hw *hw,
>                                     unsigned int *total_flags,
>                                     u64 multicast)
>  {
> +#define MT7921_FILTER_FCSFAIL    BIT(2)
> +#define MT7921_FILTER_CONTROL    BIT(5)
> +#define MT7921_FILTER_OTHER_BSS  BIT(6)
> +#define MT7921_FILTER_ENABLE     BIT(31)
> +
>         struct mt7921_dev *dev = mt7921_hw_dev(hw);
> +       u32 flags = MT7921_FILTER_ENABLE;
> +
> +#define MT7921_FILTER(_fif, _type) do {                        \
> +               if (*total_flags & (_fif))              \
> +                       flags |= MT7921_FILTER_##_type; \
> +       } while (0)
> +
> +       MT7921_FILTER(FIF_FCSFAIL, FCSFAIL);
> +       MT7921_FILTER(FIF_CONTROL, CONTROL);
> +       MT7921_FILTER(FIF_OTHER_BSS, OTHER_BSS);
> 
>         mt7921_mutex_acquire(dev);
> -       mt7921_mcu_set_rxfilter(dev, *total_flags, 0, 0);
> +       mt7921_mcu_set_rxfilter(dev, flags, 0, 0);
>         mt7921_mutex_release(dev);
> 
>         *total_flags &= (FIF_OTHER_BSS | FIF_FCSFAIL | FIF_CONTROL);
> --
> 2.18.0
> 
> 
> ------Please consider the environment before printing this e-mail.



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux