1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
/* SPDX-License-Identifier: BSD-3-Clause-Clear */ /* Copyright (C) 2025 MediaTek Inc. */ #ifndef __MT7921_REGD_H #define __MT7921_REGD_H #include "mt7921.h" struct mt7921_regd_rule_header { u8 alpha2[2]; u8 dfs_region; u8 rsv[13]; }; struct mt7921_regd_rule { __le32 start_freq; __le32 end_freq; __le32 max_bw; __le32 eirp; __le32 flags; u8 rsv[12]; }; struct mt7921_regd_cc { u8 alpha2[2]; u8 ver; u8 rsv; __le32 n_reg_rules; u8 sign_type; u8 rsv1[7]; u8 data[]; }; struct mt7921_regd_rule_ev { __le16 tag; __le16 len; __le32 n_reg_rules; u8 dfs_region; u8 rsv[15]; struct mt7921_regd_rule reg_rule[]; }; struct mt7921_regd_query_req { u8 ver; u8 sign_type; u8 rsv1[2]; __le32 size; u8 alpha2[2]; u8 rsv2[2]; __le32 n_reg_rules; u8 rsv3[64]; u8 data[]; }; #define MT7921_REGD_SUPPORTED(phy) \ (((phy)->chip_cap & MT792x_CHIP_CAP_REGD_EN) && \ (phy)->clc[MT792x_CLC_REGD]) int mt7921_mcu_regd_update(struct mt792x_dev *dev, u8 *alpha2, enum environment_cap country_ie_env); int __mt7921_mcu_regd_update(struct mt792x_dev *dev, u8 *alpha2, enum environment_cap country_ie_env); void mt7921_regd_notifier(struct wiphy *wiphy, struct regulatory_request *request); bool mt7921_regd_clc_supported(struct mt792x_dev *dev); int mt7921_regd_change(struct mt792x_phy *phy, char *alpha2); int mt7921_regd_init(struct mt792x_phy *phy); int mt7921_regd_update(struct mt792x_phy *phy, char *alpha2); #endif